1、1、课程名称:JAVA SE 基础部分2、知识点2.1、课程说明2.2、本次预计讲解的知识点1、 JAVA 的发展及环境的搭建配置;2、 JAVA 中的主要数据类型及关键字;3、 基本的运算操作符;4、 程序的控制语句:循环、判断;5、 方法及数组的使用。3、具体内容3.1、认识 Java(了解)Java 是现在最流行的一种语言,而且在 Java 中完全的显示出了简单的特性,所以 java 语言足够简单。Java 最早的时候是在 1991 年的 GREEN 项目诞生的,但是其原本的名字不叫 Java 而是称为 OAK(橡树) ,GREEN的项目实际上就属于现在所提出的嵌入式的开发项目,通过 E
2、MAIL 可以控制家电的工作。但是最早的时候 SUN 公司的设计人员原本是使用 C+进行开发,但是由于其开发过于复杂了,所以使用了 C+开发出了一套新的平台 OAK。JAVA 语言的发展经历了以下的几个重大的版本: JDK 1.0:标志着整个 JAVA 体系的诞生; JDK 1.2:1998 年推出,Java 更名为 JAVA 2,加入了大量的图形界面的开发包,但是现在基本上已经不用了; JDK 1.5:2005 年推出,加入了很多的新特性,而且这些新特性几乎都是从.net 上学来的。JAVA 从诞生之初发展到今天也分成了三个方面的发展: J2SE 的开发(JAVA SE):主要提供了开发平台
3、的底层支持,可以开发单机版程序; J2EE 的开发(JAVA EE ):主要是完成各种企业软件的开发,是在 JAVA SE 的基础上构建的; J2ME 的开发(JAVA ME):使用 Java 完成嵌入式开发的平台。以上的三个方面,核心的基础部分就是 J2SE,所以,在把 JAVA 学习透彻的话,就必须先把 JAVA SE 彻底的精通。在讲解中,JAVA 主要使用的版本就是 JDK 1.6,但是需要说明的是,在实际的开发中使用最广泛的版本依然是 JDK 1.6 和 1.5,最新的版本是 JDK 1.7。 (jdk1.7 在开发中尚不可使用,希望大家不要做第一个吃螃蟹的人)以后在开发的时候一定要
4、注意:只要是新的产品都要小心使用,因为有 80%的可能性会造成项目的失败。在 JAVA 语言中有以下几个特点: 简单:Java 语言比任何一门都简单,但是这种简单只是针对于语法而言的,实际上对于 Java 来讲,其庞大和复杂程度确实太高了,支持公司太多了:IBM、BEA、Oracle、Apple、HP. 自动的垃圾收集:在程序的操作中会存在着许多的无用的内存空间,如果处理不当会使系统越来越庞大,在 java 中可以对无用的空间自动进行回收,而无需开发人员手工回收。 安全性高:Java 的所有程序都是通过字节码的方式保存的,所以其安全性相对较高。 多线程:多线程的处理可以使 JAVA 的处理能力
5、提高的更多。 可移植性高:Java 发展到今天,一直提倡的口号就是可移植性高,可以在不同的操作系统平台上运行。3.2、Java 的操作原理(理解)对于编程语言来讲,主要有两种: 编译型: 解释型:将一段代码在一个指定的平台上进行解释执行。正因为存在了解释器,所以 Java 语言开发的程序可以在各个平台上使用。一个 Java 程序需要先经过编译(由 JDK 自动提供命令:javac 执行) ,编译之后将形成一个字节码的文件(*.class) ,之后再进行解释执行(由 JDK 自动提供的命令:java 执行) ,再在电脑上进行程序的运行显示。但是,此时的电脑并不是一台物理上存在的电脑,而是一台由软
6、件和硬件模拟的一台虚拟电脑(Java 虚拟机) 。可以发现,所有的*.class 文件实际上最终认的不是操作系统,而是在操作系统上绑定的 JVM,依靠 JVM 执行,而JVM 去适应不同的操作系统。Windows XP 之后之所以不支持 Java,主要的原因就是从操作系统中将 JVM 移除掉了。3.3、搭建 Java 的开发平台(重点)如果要开发 JAVA 程序,则肯定要使用 JDK,现在的 JDK 的最新版本是 JDK 1.7,教学使用的是 JDK 1.6 版本。可以直接从 http:/ 上下载最新的 JDK 版本。安装的时候选择在 D 盘上安装 JAVA 开发环境。安装完成之后,此时本机就
7、具备了开发 Java 程序的能力,但是需要注意的是,如果要开发 Java 程序则肯定需要javac 和 java 两个命令,但是这两个命令是在 D:Javajdk1.6.0_02bin 目录下才存在的,本身的 windows 中是不支持的。如果要想让 windows 可以正常的使用这些命令进行开发的话,则必须配置一个环境:path 路径。【我的电脑】 【属性】 【高级】 【环境变量】 【新建 JAVA_HOME】 【新建 PATH】 。配置完成之后,以后就可以在命令行方式下使用 JDK 所提供的各种命令了。新的 path 路径配置完成之后,需要重新启动命令行窗口,因为每次在启动的时候才会将新的
8、配置加载进来。现在 Java 的开发环境搭建完成之后,下面开始编写第一个 java 程序,所有的程序依然以打印不完的“Hello World”为主。范例:第一个程序 Hello.javapublic class Hello/*主函数*/public static void main(String args)System.out.println(“Hello World!“) ;/ /* dd */ /* */main2();/*主函数 2*/public static void main2()第一个程序完成之后,下面就要进入到命令行方式下进行执行,按照如下的步骤完成:1、 编译程序:javac
9、 Hello.java2、 解释程序:java Hello结果在控制台窗口打印出 Hello World!。进入到控制台方式:1. 点击“开始”菜单-点击“运行(R).”- 在弹出的运行框里输入“cmd”再按回车键。出现默认是黑底白字的控制台。2. 作为一个程序员,我们要习惯和喜欢使用快捷键,达到高效的目的。按“win”键+ “R”键,也可以进入命令行窗口。3.Editplus 开发环境的搭建】配置 java 编译环境:工具-配置用户工具-组名称 回弹出一个 叫“重命名用户工具组”的对话框,在新的名字里写上“编译运行java”,再点击“添加工具”按钮,选择 “程序“,填写以下的信息:菜单文本:
10、javac命令:javac参数:$(FileName)初始目录:$(FileDir)最后再勾选上 捕获输出。3.配置 java 运行环境同理在“编译运行 java”这个组里面,点击“添加工具”按钮,选择 “程序“,填写以的信息:菜单文本:java命令:java参数:$(FileNameNoExt)初始目录:$(FileDir)最后再勾选上 捕获输出。到此,再 Editplus 里面的 java 编译运行环境就已经配置完成了,当你写完一个 java 文件,就可以在”工具“里点击 “javac“ 来编译,或则 “java“来运行,当然,像我这么懒的人肯定是会使用快捷键的,编译(javac)的快捷键
11、是 ctrl + 1, 运行(java)的快捷键是 ctrl + 2。3.4、第一个 Java 程序解释(重点)第一个 Java 程序完成之后,下面对于 Java 程序来做进一步的了解。3.4.1、文件名称在编写 java 程序的时候一定要注意,只要是 java 程序则一定要放在一个类之中,使用如下的语法定义类:public class 类名称在编写类名称的时候单词的首字母是采用大写的方式进行的,例如:Test HelloJava。但是,如果一个类使用 public class 和 class 声明的话是有区别的。 public class:文件名称必须与类名称保持一致。 (当一个 java
12、文件中有多个类的时候,有 main 方法的类称为主类,那么这个主类的名字必须和该 java 文件名相同) class:文件名称可以与类名称不一致,执行的时候执行的是生成的*.class 文件。所以在一个*.java 的文件中,只能有一个 public class 声明,但是允许有多个 class 声明,在编译之后会生成不同的*.class 文件。3.4.2、程序理解在一个 java 程序之中,所有的程序都是从 主方法(main )中开始执行,在 java 中主方法定义如下:public static void main(String args)在主方法后面的“”之中编写具体的语句,例如:系统输
13、出:System.out.println() ;此语句表示的是在屏幕上进行打印,如果后面有“ln”的话表示输出之后会加一个换行出来,如果没有“ln”表示只是输出而没有换行。public class Hellopublic static void main(String args)System.out.println(“Hello kity!“) ;System.out.print(“Hello kity!“) ;System.out.print(“Hello kity!“) ;3.4.3、classpath 属性例如:在当前文件夹之中保存着所有的*.class 文件。如果现在在其他路径上,则无
14、法执行,但是现在就非想执行的话,则就需要 classpath 的操作属性。在正常情况下,一个*.class 文件只能从本目录中被访问,因为在默认的要求下 classpath 就是默认的是从当前所在的文件夹中查找所要的文件,也就是说现在的 java 的运行机制:java 命令 classpath *.class。所以按照这种理解,如果将 classpath 指定好了一个位置的话,则以后不管在何种目录下都可以访问了。SET classpath=x:xxxx以上的设置表示的是,以后不管在那里,都从 x:xxxx 文件夹之中找到所需要的*.class 文件,那么即使不在当前类所在文件夹之中,依然可以访
15、问,但是从一个正常的开发习惯来讲,这种配置并不常见,因为最好的执行还是从当前所在的文件夹中查找类执行最方便,那么一般情况下 classpath 都会存在以下的设置:SET classpath=.“.”表示的是从当前所在的文件夹之中查找所需要的*.class 文件,而且以上通过命令设置的 classpath 也只是在当前命令行窗口下起作用,如果要想对全体其作用,则需要通过环境属性进行配置,增加一个 classpath 的选项:需要注意的是:在定义新的变量的时候,所有的单词都必须采用大写的形式出现。3.5、数据类型( 重点)既然 Java 是一门语言,则在这门语言肯定存在各种数据类型,Java 数
16、据类型分为两种:( 基本和引用)其中布尔型只有两种取值范围:true 或 false在数值型中使用最多的就是:byte、int在浮点型中:float 和 double 都经常使用。每种数据类型都会有其相应的取值范围:这里的值没有必要刻意去记,每一个基本数据类型都有一个封转类,除了 char 的封转类是多少 Character 和 int 的封装类是 Integer 外,其他的封转类都是数据类型的首字母大写的单词。比如 long 的封装类是 Long。求数据类型的范围我们就可以使用 XX.MIN_VALUE 和 XX.MAX_VALUE 来求得。 (这里的 XX 表示数据类型的封转类)比如现在我
17、们想要知道 byte 的数据范围,我们只需要使用 Byte.MIN_VALUE 求得最小值,Byte.MAX_VALUE 求得最大值。 (后面会细讲,可以先记住)一般在程序中出现了一个整数都属于 int 型数据,如果出现的是小数则都属于 double 型数据。范例:定义 int 型数据public class IntTestpublic static void main(String args)int x = 10 ; / 定义整型 int i; i=10;int y = 20 ; / 定义整型System.out.println(x + y) ;范例:使用 double 型数据public
18、class DoubleTestpublic static void main(String args)double x = 1.23 ; / 定义小数double y = 3.14 ; / 定义小数System.out.println(x + y) ;如果现在要是想使用 float 的话,则就比较麻烦,需要表示出一个数字应该按照 float 进行接收。public class FloatTestpublic static void main(String args)float x =3.14F ;float y = (float)9.99 ;System.out.println(x + y)
19、 ;本程序也就相当于属于数据类型的转换问题,一般在进行数据类型转换的时候都会采用由小到大的方式进行,例如:double 的范围大于 float,所以可以自动转型,double 的范围大于 int 也可以自动转型,但是如果由大到小的方式进行的话,则必须采用强制的手段,上面的代码就是采用了强制的方式。public class TransDemo1public static void main(String args)int x = 10 ;double y = x ; / 由小到大System.out.println(y * y) ;范例:由大到小public class TransDemo2pu
20、blic static void main(String args)double d = 100.9 ;int x = (int)d ;System.out.println(x * x) ;在整型的操作中如果出现了小数位,则肯定会自动抹掉,不会存在。public class Testpublic static void main(String args)System.out.println(10 / 3) ;/ 整型在计算前会先向 float 转型System.out.println(10 / (float)3) ;在整型的计算中也存在着长整型的数据。public class Testpubl
21、ic static void main(String args)int x = 999999 ;int y = 999999 ;System.out.println(x * y) ;当一个数字的最小值 1 就是数字的最大值,当一个数字的最大值再加上 1 则变成了最小值。public class Testpublic static void main(String args)int max = Integer.MAX_VALUE ;/ 整型最大值/ 2147483647int min = Integer.MIN_VALUE ; / 整型最小值System.out.println(max + 1)
22、 ;/溢出 打印 2147483647System.out.println(min - 1) ;/溢出 打印 -2147483648;这种代码就称为数据的溢出,如果要想避免溢出的话,则需要将数据类型扩大。public class Testpublic static void main(String args)long x = 999999L ;long y = 999999L ;System.out.println(x * y) ;这个时候实际上就出现了以下的一种题目:public class Testpublic static void main(String args)System.out
23、.println(11 + 1l) ;/12;字符(char)也是一种常见的操作类型,所有的字符都是使用“”括起来的一个内容,例如:字母 A 就是一个字符。public class Testpublic static void main(String args)char c = A ; / 字符char c2 = 哥; / 一个汉字 说明 char 类型是可以存放一个汉字的(最多一个)System.out.println(c + c2) ;但是,在程序中字符和数字往往是可以相互转换的,转换成 UNICODE 码。public class Testpublic static void main(
24、String args)char c = A ; / 字符int x = c ; / 将字符变为 int 型System.out.println(x) ;x = x + 1; / 求出 x 的内容并且加一c = (char) x ; / 将数字变回字符System.out.println(c) ;在字符的操作中还存在着转义字符,例如:有如下的转移字符: n:表示换行 t:表示 TAB :表示一个“” “:表示一个“ :表示一个 范例:验证转义字符public class Testpublic static void main(String args)System.out.println(“He
25、llo nWorldt!“) ;System.out.println(“Hello World“) ;问题:一个字符能否定义一个中文public class Test public static void main(String args)char c = 哥 ;System.out.println(c) ;System.out.println(int)c) ;可以包含中文,但是只能在中文的环境显示中文。 (曾经的一道面试题)对于 boolean 类型,本身只能存在 true 或 false 两种内容,不能像其他语言那样通过 0 表示 false,非 0 表示 true。一般 boolean
26、型的数据都会用在流程控制上。boolean 默认是 falsepublic class Testpublic static void main(String args)boolean flag = false ;if(flag)System.out.println(“满足条件!“) ; else System.out.println(“不满足条件!“) ; ;以上都属于一些常用的基本数据类型,但是在这些基本数据类型之上有一种 String 类型,表示的是字符串,一般字符串都是使用“”括起来的数据,所以 String 本身属于一个类,不是基本类型,但是此类的使用之后再解释。public clas
27、s Testpublic static void main(String args)String info = “哥曾信佛但佛信曾哥!“ ; / 一串信息System.out.println(info + “ ?!“) ;在字符串中, “+”表示的是字符串连接,可以定义一串信息。public class Testpublic static void main(String args)int x = 10 ;int y = 20 ;System.out.println(x + “ + “ + y + “ = “ + ( x + y ) ) ;在使用“+” 操作的时候,如果出现了字符串的话,则所有
28、的数据类型都会自动向字符串转换,如果对于某些计算操作,需要正确执行的话,要使用“()”完成。3.6、标识符及关键字关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字。Java 的关键字对 java 的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。goto 和 const 不能够用, 虽然他不是关键字,但也被 java 所保留下来了.标识符:可以用来定义方法、类名称、变量名称的一种标记,在 Java 中所有的标识符的定义风格如下: 由字母、数字、下划线、$符号组成,其中不能以数字开头,不能是 Java 中的关键字。例如
29、:demo 、x、 $Hello但是从一般的开发来看,一般的标识符用的最多的就是字母、数字、下划线。3.7、运算符( 重点)程序的主要功能就是计算,所以在 Java 中提供了以下的运算符: 赋值运算:= ; 3=4 3 = 4 三目运算:布尔表达式 ? 条件满足 : 条不满足 数学运算符:+ 、-、*、/、% 关系运算符: 、= 、 、 逻辑运算:int y = 20 ;/ 如果 x 的内容大于 y,则将 x 的值给 max,否则将 y 的值给 maxint max = xy ? x : y ;System.out.println(max) ;范例:数学运算public class Testp
30、ublic static void main(String args)int x = 10 ;int y = 20 ;System.out.println(x + y) ;System.out.println(x - y) ;System.out.println(x * y) ;System.out.println(x / y) ;System.out.println(x % y) ;范例:关系运算public class Testpublic static void main(String args)int x = 10 ;int y = 20 ;System.out.println(x y
31、) ;System.out.println(x = y) ;System.out.println(x 2) ;范例:观察左移位操作public class Testpublic static void main(String args)int x = 2 ;System.out.println(x 2 ;if(x=2) / if(flag)System.out.println(“条件满足“) ;也可以多条件进行判断:public class IFElseTest public static void main(String args)int age = 300 ;if(age=0 ;switc
32、h 虽然也可以同时判断多个条件,但是一般而言只能判断数字、字母、枚举(JDK 1.5) ,字符串(jdk1.7) 。= byte, short , char , int ,enum,String(前面四个是基本类型,后面两个是引用类型)public class SwitchTestpublic static void main(String args)char c = A ;switch(c)case A :System.out.println(“成绩优秀!“) ;break ;case B :System.out.println(“成绩中上!“) ;break ; case C :Syste
33、m.out.println(“成绩中等!“) ;break ;default:System.out.println(“没有满足的条件!“) ;break ;循环语句是整个程序中的重点部分:当某一段代码需要被反复执行的时候就要使用循环的操作,循环使用for、while、dowhile 语句完成。范例:观察循环public class Testpublic static void main(String args)int x = 0 ; / 循环的初始值while(x10) / 写出判断的条件System.out.println(“x = “ + x) ; / 执行循环语句x + ; / 修改循环
34、的条件;while 循环属于先判断后执行,如果条件满足了,则一直执行下去。public class Testpublic static void main(String args)int x = 0 ; / 循环的初始值do / 写出判断的条件System.out.println(“x = “ + x) ; / 执行循环语句x + ; / 修改循环的条件 while(x10) ;for 循环是使用最多的操作,因为其会将初始内容和循环条件一起编写。public class Testpublic static void main(String args)for(int x=0;x10;x+)Sys
35、tem.out.println(“x = “ + x) ;在循环中还存在着两个控制循环的语句:break、continue。public class Testpublic static void main(String args)for(int x=0;x10;x+)if(x=3)break ;System.out.println(“x = “ + x) ;public class Testpublic static void main(String args)for(int x=0;x10;x+)if(x=3)continue ;System.out.println(“x = “ + x)
36、;对于循环操作本身也是允许嵌套的。范例:打印三角形 需要两层循环,一层是控制显示的行,另外一层是控制输出“*”或者是“ ”的。public class Testpublic static void main(String args)int line = 10 ; / 定义出要打印的行数for(int x=0;xline;x+) / 控制行for(int y=0;yline-x;y+)System.out.print(“ “) ;for(int y=0;y=x;y+)System.out.print(“* “) ;System.out.println() ; / 换行;范例:打印九九乘法表public class Demo38 public static void main(String args)for(int x=1;x10;x+)for(int y=1;y=x;y+)System.out.print(x + “*“ + y + “=“ + x * y + “t“) ;System.out.println() ;