1目录CoreJavaDAY01Java概述1CoreJavaDAY02数据类型和控制结构6CoreJavaDAY03数组11CoreJavaDAY0415CoreJavaDAY05面向对象17CoreJavaDAY06类的加载过程、实例化、继承、多态20CoreJavaDAY07修饰符26CoreJavaDAY08常用类29CoreJavaDAY09高级语言特征30CoreJavaDAY10主方法,静态导入,包装类,枚举32CoreJavaDAY11内部类36CoreJavaDAY12集合List40CoreJavaDAY13集合Set46CoreJavaDAY14集合Map49CoreJavaDAY15异常、断言52CoreJavaDAY16反射、注释57CoreJavaDAY17GUI64CoreJavaDAY18awtevent81CoreJavaDAY19-20多线程85CoreJavaDAY21-22IO95CoreJavaDAY23网络编程107CoreJavaDAY01Java概述#########################################################################################CoreJavaDAY01(2009.02.21)######################MadebyNieXu###########################################################################################一、学习CoreJava的要求1、上课一定要听懂(理解)2、课后一定要练习3、练完后要思考二、Java的优势1、Java中省去了对指标的操作,但并不是没有指标了,只是被封装了而已,代替指标的是种新的变量,叫做引用,这个引用里面也是保存的一个对象的地址,它和指针的差别就是比指针功能要弱化了,也更简单了。内存空间自动回收,即垃圾回收,体现了其简单性。2、安全性好,字节码的验证3、Java的跨平台性:用这个语言开发出来的程序可以在不同系统中运行:源码是怎样成为可执行代码的源码--编译--目标码(二进制机器码)--连接--可执行档由此看来,汇编、C、C++等语言都是不跨平台的,因为他们的编译过程就直接与当前系统挂钩了,C和C++源码都是跨平台的,我们所指的跨平台是基于编译过程中的跨平台,以上几种语言在不同的系统中编译出来的目标码是不同的。Java跨平台就是编译过程中的跨平台,怎么实现的呢,那就是Java虚拟机:Java的源码编译过程:2源码--编译--字节码--把字节码装载到虚拟机中运行--JAVA虚拟机:JVM屏蔽掉了不同平台的差异,为上层的字节码提供了一个统一的运行环境虚拟机是为了给字节码提供统一的执行平台,每种操作系统所用的虚拟机是不同的,是为了统一JAVA字节码的解析执行方式,如果没有虚拟机,在一种操作系统上写了JAVA代码,编译成字节码后只能在本操作系统上运行,但是换一个操作系统的话就要重新再写一遍JAVA代码然后重新编译,所以虚拟机提高了代码的复用性,实现了一次编写,多处使用的优点。不同系统的Java虚拟机之前的源码和字节码部分都是跨平台的,从虚拟机就不是跨平台的了。这样Java的字节码就可以直接用来传播,而不用传播源码了。三、对Java课程总体的大纲的介绍四、JDK/JRE/JVMJDK:JAVA开发工具包,比JRE多了一些开发和调试的命令,比如javac、java(用于执行Java字节码文件)等等。JRE:JAVA运行环境JVM:JAVA虚拟机包含关系:JDK包含JRE,JRE包含JVM如果你搭建的Java开发环境是用来做Java开发的,那么就安一个JDK,从java.sun.com(最新的版本为1.6)下载,注意如果你不做开发,而只是运行别人开发调试好的程序(或者字节码文件),那么就只安装一个JRE就可以了一般服务器上就只安装JRE针对不同的操作系统有不同的JDK下载在JDK安装好后的档夹中有个bin目录,里面一般是我们经常用到的一些命令,比如javac、java在JDK目录下有个src.zip檔,解压开后就是JDK类库中的源码,也就是rt.jar压缩檔中class檔的源码。jre目录是JDK自带的JRE,里面也有bin目录,一般存放的是运行时的一些命令jre活页夹中的lib文件中有一些jar文件(叫JAVA的归档文件),里面都是一些class檔(以此为后缀名表示java的字节码文件)在虚拟机运行时作为类代码其中一个比较重要的jar檔就是rt.jar,里面放的是JDK给我们提供的一整套开发的基础类库的字节码,可以直接使用。(补充:.java为源文件,经过编译后成为.class字节码文件;了解一个类的定义和用途可以查找开发文档,如果还是没找到的话就找源文件,在src.zip中后缀名为class的文件)五、配置环境变量JAVA_HOME:JDK的安装路径CLASSPATH:字节码的搜索路径PATH:命令的搜索路径(要加上jdk.../bin)Linux:--一般JDK是放在/opt/jdk1.6.0_05--配置环境变量的文件是主目录中的.bash_profile文件进入终端后:vi.bash_profile在里面配置:3JAVA_HOME=/opt/jdk1.6.0_05CLASSPATH=.PATH=$PATH:$JAVA_HOME/bin:.......exportJAVA_HOMEexportCLASSPATHexportPATH--配置完后保存退出,然后source.bash_profile在命令行打java命令验证是否配置成功,如果成功了,注销一遍系统Windows:--右键我的计算机--高级--环境变量--在系统变量或者用户变量上配置--JAVA_HOME:当前机器上JDK的文件目录C:\ProgramFiles\Java\jdk1.6.0_05CLASSPATH:类的搜索路径.当前目录(.;%java_home%\lib;)Path:命令的搜索路径%JAVA_HOME%\bin;--开始--运行--cmd--javac验证是否配置成功六、第一个JAVA程序一个java檔只能定义一个public类,并且public修饰的类的类名要与文件名相同viMyFirstJava.javapublicclassMyFirstJava{publicstaticvoidmain(String[]args){Stringname=tangliang;intage=30;System.out.println(mynameis:+name);System.out.println(myageis:+age);}}写好后在命令行cd\到文件所在目录,然后打javacMyFirstJava.java编译檔编译成功后当前檔夹中会出现一个MyFirstJava.class文件运行:javaMyFirstJava结果:mynameis:tangliangmyageis:30要学会编译出错后查找错误!(补充:1、一个Java源文件中可以定义多个类,但最多只能有一个public类,而且该public类的类名要和文件名一致。2、一个Java源文件在编译后形成的字节码文件个数与该源文件中定义的类的相同,即每定义一个类可以形成一个字节码文件。3、一个可运行的Java类有且只有一个main方法,而且main方法的签名是固定的,main方法是程序的的入口方法。4、类的包:对同一个功能模块的类的统一管理,做大型开发时,一般按功能模块先来命名包,包结构的命名规则例如:com.tarena.abs.model即公司的URL+项目名称+模块名)在檔中在定义一个classAnimal{}保存编译后档中就会多一个Animal.class檔,也就是说,檔中有多少类,那么就有多少4类檔java命令执行所做的东西1、找到类的字节码文件,要用到CLASSPATH的环境变量2、加载类到内存中3、找类的主方法,main方法,执行代码七、包1、作用,java程序很庞大的话会有很多类檔,问了分类存放,那么就把相同类型的类檔放在同一个包中。2、语法:package包名;...正文;编译时用javac-d目录XX.java(运行时-d后空格加上包名.类名)编译好后,class檔会被自动放在自己定义的包(自动生成的檔夹)中,包会放在编译命令中指定的目录中执行时在包所在的当前目录下打java包名.类名(练习:在原来的MyFirstJava文件内容的第一行增加packagecorejava.day01;然后保存;然后在DOS下先后输入命令:javac.MyFirstJava.java-d.和Java.MyFirstJava-d此后就在D盘建立起两个文件夹,生成了名为MyFirstJava.class的文件,并在DOS下有结果显示。)(补充:1、java命令要做3个工作:首先是启动JVM;加载PackageTest.class(如果没发现则会出现提示,此时要检查CLASSPATH中设置的内容);运行PackageTest.main。2、找类的顺序:先在当前所在包下找,在jre/lib/xxx.jar,最后才在CLASSPATH中找。所以不要创建和JDK中同名的类)八、注释三种:1、单行注释://...2、多行注释:/*...*/3、文檔注释:/**......*/另一种多行注释,但是这种注释可以生成API文檔(HTML格式的)九、提取API文檔的命令:javadocjavadoc应用,提取说明文件,根据文档中的注释生成程序文档。javadocXX.java-d生成文文件路径比如:javadocString.java-d.\stringdoc(如果是直接在盘符下有该文件则-d后只用实心点即可,如果需要通过新建文件夹的同时生成则输入一个新的文件夹名字)在String.java所在的檔夹中便会生成一个stringdoc檔夹,里面是html格式的解释文檔顺便教下学生看API文檔九、import如果在一个java檔中用到了不在同一个包中的类的话,就要用import来引入一个类,允许在程序中使用的时候不用包名,直接用类名就可以了。语法:import包名.类名写在package后,类定义前(一个文件里面可以不说明package,有就只能有一个,可以一或二行,之后就是import声明,0或多行,也可以不用import导入很多类,即省略;然后就是类的声明)引入一个类注意:package在java檔中只能出现一次,并在最前面5import可以有多条写在package后,类前十、创建jar文件命令把指定的包中的class檔打包成jar檔K(里面是编译好的字节码文件)语法:jar-cvfjar文件名要打包的檔夹如jarcvfabc.jar./day01(即把day01中的文件打包到abc.jar里面)执行完后在当前目录会生成一个abc.jar的檔,解压后就是day01檔夹,里面还是class檔cvf:createviewfilename创建可视文件名如果在别的java檔中要用到此jar檔中的类,那么就要在环境变量的CLASSPATH中多配一个abc.jar的路径。然后在类檔中直接import这个类就可以了CLASSPATH配置完成后,JVM先从当前路径下找类,再从rt.jar中找类,然后再从abc.jar中找这个类十一、JDK中的基础包java.lang语言包java.awt/javax.swing/java.awt.event图形开发包java.appletJAVA的applet小程序包java.io输入输出流包java.net网络包java.util工具包第二章语言元素一、标识符只能以字母,“_”,“$”符号开头,不能以数字开头,但是非开头的位置可以出现数字.二、良好的编码习惯1、类的首字母要大写,如果有多个