内容:
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
官网地址:
(2)安装JDK
直接运行exe可执行程序,默认安装即可
备注:路径可以选其他盘符,不建议路径包含中文名及特殊符号
(3)配置环境变量(最简单的办法)
在环境变量中添加bin目录(Java安装位置下的jdk文件夹下的bin目录),eg:C:\Program Files (x86)\Java\jdk1.8.0_144\bin
右键点击文件夹-> 属性 -> 高级系统设置 -> 环境变量 -> 点开下面的:
进去后点击新建把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+R14 变为大/小写:Ctrl+Shift+X/Y15 改变方法签名: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 return72 /*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[]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 int a[];40 * 创建数组空间: 数组名 = new 类型[元素个数];41 * 42 * 上面两步可以合为一步:43 * int a[] = new int[9];44 * 45 * 创建数组元素并初始化:46 * for(int i=0; i
多维数组:
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
复制数组:
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 toUpperCase11 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