内容:
1.Java介绍
2.Java安装及环境配置
3.经典的helloworld程序
4.eclipse使用
5.Java基础语法
6.Java基础数据结构
1.Java介绍
Java是一门什么样的语言:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征,另外Java还是一门跨平台的语言
Java特点及用途:
Java特点:简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性
Java用途:桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等
Java三大平台:
- J2SE
- J2EE
- J2ME
Java中常见术语:
- JDK:Java Development Kit Java开发包
- JVM:Java虚拟机
- JRE:Java运行时环境
Java编程工具:
- Eclipse:一个开放源代码的、基于Java的可扩展开发平台
- NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用
- IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能
2.Java安装及环境配置
(1)下载Java
官网地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
(2)安装JDK
直接运行exe可执行程序,默认安装即可
备注:路径可以选其他盘符,不建议路径包含中文名及特殊符号
(3)配置环境变量(最简单的办法)
在环境变量中添加bin目录(Java安装位置下的jdk文件夹下的bin目录),eg:C:Program Files (x86)Javajdk1.8.0_144in
右键点击文件夹-> 属性 -> 高级系统设置 -> 环境变量 -> 点开下面的:
进去后点击新建把bin目录添加进去就行了
(4)上述配置完成后,win+R打开cmd,输入Java然后回车,如果是下面的显示就证明环境已经配置好了:
3.经典的helloworld程序
(1)新建一个Hello.java文件,输入以下代码:
1 public class Hello{ 2 public static void main(String[] args) { 3 System.out.println("Hello World!"); 4 } 5 }
(2)在cmd中进入当前当前目录,输入以下命令:
(3)上述命令没有报错就说明没有问题
另外上述两条命令:
- javac:编译源文件 javac xxx.java
- java:执行独立程序 java xxx
4.eclipse使用
(1)eclipse安装
下载链接:http://www.eclipse.org/downloads/ 直接下载安装
根据自己的系统选择32位还是64位的,点击相应链接下载(可能会弹出一个叫你捐钱的页面,无需理会)
下载完成后,解压安装包,解压路径随意,解压后在解压路径下找到eclipse.exe,把这个文件在桌面创建快捷方式
(2)常用快捷键
1 ctrl+H 打开文件搜索对话框 2 alt+? 或 alt+/:自动补全代码或者提示代码 3 ctrl+o:快速outline视图 查看当前类的方法或某个特定方法 4 ctrl+shift+r:打开资源列表 5 ctrl+shift+f:格式化代码 6 ctrl+e:快速转换编辑器 7 ctrl+/:自动注释当前行或者选择的多行,自动注释掉当前行或者多行代码,用//注释,用ctrl+可以取消注释。 8 ctrl+shift+/:自动注释掉选择的代码块 9 ctrl+d:删除当前行 10 11 保存:Ctrl+S 12 保存所有:Ctrl+Shift+S 13 重命名:Alt+Shift+R 14 变为大/小写:Ctrl+Shift+X/Y 15 改变方法签名:Alt+Shift+C 16 移动:Alt+Shift+V
(3)关于工作区 workspace的选择
修改工作区:
进入eclipse -> 选择file中的switch workspace即可
(4)创建Java工程
file -> new java project
直接点击finish,最后建好的项目如下:
然后就可以在src文件夹中编写类文件(.java)了
(5)eclipse运行Java
eclipse可以直接运行Java(eclipse集成了编译和运行):
点击运行后项目目录下会出现一个bin目录,下面是编译好的class文件:
5.Java基础语法
Java基础语法十分类似C语言,基础语法中常用的东西如下:
1 public class BasicGrammer { 2 public static void main(String[] args) { 3 // 常量 4 final int total = 555; 5 // final初始化之后不能被改变: 6 // total = 333; 7 System.out.println("常量的值: " + total); 8 9 // 声明一个数组 10 float [] array = new float[10]; 11 12 13 // 运算符类似C语言 14 /* 常用运算符: 15 * + - * / > < >= <= == 16 * &&(并) ||(或) !(非) [](声明数组访问数组) .(访问对象实例或者类的成员函数) 17 * (params) -> 以逗号分开的参数系列 (type) -> 将某一个值转换成type类型 18 * new -> 创建一个新对象 instanceof -> 判断第一个运算对象是否是第二个运算对象的一个实例 19 * */ 20 21 22 // 表达式和语句类型C语言 23 // if语句实例: 24 boolean DEBUG = true; 25 if(DEBUG){ 26 System.out.println("DEBUG: true"); 27 } 28 else { 29 System.out.println("DEBUG: false"); 30 } 31 32 // switch语句实例: 33 int month = 5; 34 switch(month){ 35 case 1: System.out.println("January"); break; 36 case 2: System.out.println("February"); break; 37 case 3: System.out.println("March"); break; 38 case 4: System.out.println("April"); break; 39 case 5: System.out.println("May"); break; 40 case 6: System.out.println("June"); break; 41 case 7: System.out.println("July"); break; 42 case 8: System.out.println("August"); break; 43 case 9: System.out.println("September"); break; 44 case 10: System.out.println("October"); break; 45 case 11: System.out.println("November"); break; 46 case 12: System.out.println("December"); break; 47 } 48 49 // while语句实例 - 浏览复制字符串的各个字符直到到字符u: 50 String copyFromMe = "Copy this string until you encounter the letter 'u'."; 51 String copyToMe = new String(); // 创建一个空字符串 52 int i = 0; 53 char c = copyFromMe.charAt(i); 54 while(c!='u'){ 55 copyToMe = copyToMe + c; 56 c = copyFromMe.charAt(i+1); 57 i = i+1; 58 } 59 System.out.println(copyToMe); 60 61 StringBuffer testString = new StringBuffer("just a test for StringBuffer!"); 62 System.out.println(testString); 63 64 // for语句实例 65 /* 66 * for(初始条件; 终止条件; 增量){ 67 * 循环体 68 * } 69 * */ 70 71 // break continue return 72 /* 73 * break: 直接跳出循环 74 * continue: 终止当前本次循环,根据循环条件判断是否进入下一次循环 75 * return: 退出当前的方法(函数)并返回值 76 * */ 77 78 79 } 80 }
6.Java基础数据结构
(1)数组
基本数组:
1 public class Array { 2 public static void main(String[] args) { 3 // 创建一个数组 4 int[] anArray; // 声明一个整形数组 5 anArray = new int[10]; // 创建一个整形数组 6 7 // 数组赋值并输出值 8 for(int i=0; i<anArray.length; i++){ 9 anArray[i] = i+1; 10 // 访问数组元素 -> [] 11 if(i==anArray.length-1){ 12 System.out.println(anArray[i]); 13 } 14 else{ 15 System.out.print(anArray[i] + ", "); 16 } 17 } 18 19 // 数组大小 20 System.out.println("数组大小为: " + anArray.length); 21 22 // 数组初始化 23 boolean[] answers = {true, false, true, true, false}; 24 System.out.println(answers[0]); 25 26 // 对象数组 27 String[] stringArray = {"one", "two", "three", "four", "five"}; 28 for(int i=0; i<stringArray.length; i++){ 29 // System.out.println(stringArray[i].toLowerCase()); 30 if(i==anArray.length-1){ 31 System.out.println(stringArray[i].toLowerCase()); 32 } 33 else{ 34 System.out.print(stringArray[i].toLowerCase() + " "); 35 } 36 } 37 38 /* 39 * 声明数组: 元素类型 数组名[]; -> int a[]; 40 * 创建数组空间: 数组名 = new 类型[元素个数]; 41 * 42 * 上面两步可以合为一步: 43 * int a[] = new int[9]; 44 * 45 * 创建数组元素并初始化: 46 * for(int i=0; i<a.length; i++){ 47 * a[i] = i+1; 48 * } 49 * */ 50 51 } 52 }
多维数组:
1 // 多维数组 2 int [][] arrayOfInts = { 3 {1, 2, 3}, 4 {4, 5, 6}, 5 {7, 8, 9} 6 }; 7 int searchfor = 66; 8 int i = 0, j = 0; 9 boolean foundIt = false; 10 search: 11 // 遍历多维数组 12 for(i=0; i<arrayOfInts.length; i++){ 13 for(j=0; j<arrayOfInts[i].length; j++){ 14 if(arrayOfInts[i][j] == searchfor){ 15 foundIt = true; 16 break search; 17 } 18 } 19 } 20 if(foundIt){ 21 System.out.println("Found " + searchfor + " at " + i + ", " + j); 22 } 23 else{ 24 System.out.println(searchfor + " not in the array"); 25 }
复制数组:
System.arraycopy(src, srcPos, dest, destPos, length) -> src:原数组 srcPos:原数组复制起点 dest:目标数组 destPos:目标数组复制起点 length:复制长度
1 // 复制数组 -> 注意目标数组必须在调用arraycopy之前分配内存而且这个内存空间必须能容纳下被复制的数据 2 char[] copyFrom = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'}; 3 char[] copyTo = new char[7]; 4 System.arraycopy(copyFrom, 0, copyTo, 0, 7); 5 System.out.println(new String(copyTo)); 6 // 输出结果: abcdefg
(2)字符串
1 // String类基本使用 2 public class StringTest { 3 public static void main(String[] args) { 4 // 字符串长度: length() 5 String message = "Welcome to Java"; 6 System.out.println("The length of " + message + " is " + message.length()); 7 System.out.println(); 8 9 // 字符串连接: + or concat() 10 String myString = message + " and " + "HTML"; 11 System.out.println(myString); 12 System.out.println(message.concat(" and HTML")); 13 System.out.println(); 14 15 // 字符串转化: toLowerCase()、toUpperCase() 16 System.out.println(myString.toLowerCase()); 17 System.out.println(myString.toUpperCase()); 18 System.out.println(); 19 20 // 获得子字符串: substring() 21 System.out.println(message.substring(0, 11) + "JavaScript"); 22 23 // 在字符串中查找字符或子串: indexOf() 24 System.out.println(message.indexOf('e')); 25 System.out.println(message.indexOf("Welcome")); 26 27 // 字符串和数字之间的转换 28 int intValue = Integer.parseInt("123"); 29 double doubleValue = Double.parseDouble("123.56"); 30 String s = 3 + ""; 31 System.out.println(intValue + " " + doubleValue + " " + s); 32 } 33 }
1 // 字符基本使用 2 public class CharTest { 3 public static void main(String[] args) { 4 // char letter = 'A'; 5 // char numChar = '4'; 6 System.out.println("He said "Java is fun!""); 7 System.out.println("\t is a tab character"); 8 9 // Character类中的方法: 10 // isDigit isLetter isLetterOrDigit isLowerCase isUpperCase toLowerCase toUpperCase 11 System.out.println("isDigit('a') is: " + Character.isDigit('a')); 12 System.out.println("isLetter('a') is: " + Character.isLetter('a')); 13 System.out.println("isLetterOrDigit('a') is: " + Character.isLetterOrDigit('a')); 14 System.out.println("isLowerCase('a') is: " + Character.isLowerCase('a')); 15 System.out.println("isUpperCase('a') is: " + Character.isUpperCase('a')); 16 System.out.println("toLowerCase('A') is: " + Character.toLowerCase('A')); 17 System.out.println("toUpperCase('a') is: " + Character.toUpperCase('a')); 18 19 } 20 }
1 // 检测输入的第二个字符串是否是输入的第一个字符串的子串 2 import java.util.*; 3 public class CheckSubString { 4 public static void main(String[] args) { 5 Scanner input = new Scanner(System.in); 6 System.out.print("Enter string s1: "); 7 String s1 = input.nextLine(); 8 System.out.print("Enter string s2: "); 9 String s2 = input.nextLine(); 10 11 // 遍历第一个字符串 查找第一个字符串中的所有子串 将子串与第二个字符串比较 12 for(int i=0; i<s1.length(); i++){ 13 for(int j=i; j<s1.length()-i; j++){ 14 String sub = s1.substring(i, j); 15 if(sub.equals(s2)){ 16 System.out.println(s2 + " is a substring of " + s1); 17 System.exit(0); 18 } 19 } 20 } 21 22 System.out.println(s2 + " is not a substring of " + s1); 23 24 // debug: 25 // System.out.println(s1); 26 // System.out.println(s2); 27 } 28 }