corejava的课程体系Java语法基础Java面向对象的编程Java的高级编程接口:4个专题Java图形GUI编程多线程编程I/O编程网络编程TheJavaProgrammingLanguageBasicsGettingStartedGettingStartedIdentifiers,Keywords,andTypesIdentifiers,Keywords,andTypesExpressionsandFlowControlExpressionsandFlowControlArraysArraysObject-OrientedProgrammingObjectsandClassesObjectsandClassesAdvancedLanguageFeaturesAdvancedLanguageFeaturesExceptionHandlingExceptionsExceptionsDevelopingGraphicalUserlnterfacesBuildingGUIsBuildingGUIsTheAWTEventModelTheAWTEventModelTheAWTComponentLibraryTheAWTComponentLibraryJavaFoundationClassesJavaFoundationClassesAppletsIntroductiontoJavaAppletsIntroductiontoJavaAppletsMultithreadingThreadsThreadsCommunicationsStreamI/OandFilesStreamI/OandFilesNetworkingNetworkingJava语言的知识体系结构图java语法基础Day01-Day03Day01了解java的产生与发展理解java语言的特性理解java虚拟机jvm的特性和功能理解字节码和垃圾收集的概念列举出在java平台上实现代码安全的方法知道在java中定义类,包,applets和applications掌握编码,编译,运行java应用程序的步骤安装,搭建java开发运行环境第一个java程序带包的java程序JVM搜索类的顺序和类加载CLASSPATH的应用常用的java命令Java的产生与发展Java的产生Sun公司的Green项目基于c++开发的Oak语言Mosaic和Netscape到JavaHot浏览器Internet的蓬勃发展推动了java的发展(Applet)Java(爪哇)名字的由来Java的发展Java的现状纯面向对象的语言平台无关性,一次编写,到处运行适合于基于Internet应用程序开发Java的地位确立IT产业很多大公司购买了java的许可证众多软件开发商已支持java软件产品Intranet是企业信息系统最佳的解决方案,java发挥了不可替代的作用Java的发展与其分支95.5.23Oak改名为java98.12.java1.2,后来改名为java2陆续出现了java1.3,java1.42004.12java1.5版本推出命名为java5.0后来陆续出现java6.0,java7.0Java的产生与发展Java的发展与其分支java在今天已形成了庞大的体系,经过十年发展,已有了3个平台标准三大技术平台都提供了相应的开发工具包(SDK:SoftWareDevelopmentKits)javaSE--标准版应用平台javaEE--企业级应用平台javaME—微型版应用平台:应用在存储,运算很小的受限的平台Java语言的特性什么是java?程序设计语言;开发环境;应用环境;部署环境Java的特性提供更简单的方式写程序无指针,无需做内存管理提供庞大的类库,纯粹面向对象设计支持静态和动态的代码继承和重用提供一个可解释执行的环境支持任何开发平台只写一次,到处使用支持多线程支持动态升级以上特性如何实现Java虚拟机:JVM垃圾收集:GarbageCollection代码安全:CodeSecurity字节码文件:VerifyingJava语言的特性JVM与跨平台性:一次编写,到处运行:不同操作系统,不同数据库,不同的服务器数据类型也可以实现跨平台Java虚拟机的作用程序的开发及运行方式Java的工作方式:先编译后解释源文件可执行的机器码文件编译器源文件边解释边执行解释器Java是先编译后解释执行CPUJava语言的特性Java源文件先通过编译生成一个字节码文件bytecode字节码不与当前OS相关,结构中立的,是二进制文件。任何平台编译生成的字节码都是一样的。字节码文件不能直接执行,必须需要JVM的支撑才能运行JVM是sun开发的,字节码的结构也是sun定义的,他们之间有很好的接口JVM存在的意义实际上就是屏蔽掉底层平台的差异,为上层结构中立的字节码统一运行的环境,而JVM会将字节码转化成相应的底层平台的机器码执行java解释器功能是用JVM来实现的,java的解释器是在jvm中运行的JVM的作用:对下是屏蔽掉了底层平台的差异,对于上层的字节码而言不需要关心它运行在什么平台上,由JVM去把底层平台的差异屏蔽掉对上为结构中立的字节码提供了统一的运行环境,实现了字节码的跨平台JVMBytecodeJava语言的特性Java的垃圾收集器Java的垃圾收集解除了程序员分配存储器的责任,它提供了一种系统级线程以便跟踪每一存储器的分配情况。在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器。内存泄漏垃圾收集线程垃圾收集调用的方法:java.lang.System.gc()/java.lang.Runtime.gc()Java代码的安全性Java语言的特性字节码的作用字节码的结构是JVM特定指定的字节码不会破坏,篡改系统禁止运行时堆栈溢出防止蠕虫病毒袭击参数类型正确类型转换正确安装,搭建java开发运行环境官方网站下载JDK官方网站:不同系统平台,JDK不一样,选择适合于自己平台的JDKJDK的安装Windows直接安装运行jdk的可执行exe文件Linux系统将JDK文件压缩包解压后放入opt目录,配置初始化文件的环境变量Windows下JDK安装后,会有2个文件夹生成JDK:java开发工具软件包,它包含了java的编译,调试,运行整个环境和包含了整个类库的软件包JRE:java运行环境JDK,JRE和JVM安装,搭建java开发运行环境JDK,JRE和JVMjre是jdk的子集,在一套完整的jdk中就包含了jrejre只负责运行一个编译好的java程序(字节码文件bytecode)jdk它可以去编译,调试,运行整个操作过程都支持在jre内部有一个软件组件jvm就是java虚拟机JDK的结构简介bin目录:java开发调试的命令,exe文件,连接库文件,编译器等等编译一个java文件:javac;运行一个字节码文件:javajre目录:jdk中自带的jresrc压缩文件:放置的是jdk类库的源码文件,按包结构组织的demo::java代码的演示实例文件include:用于编译本地方法的文件docs:html格式的类库文档lib:类库文件Java程序开发环境配置在windows平台:autoexec.bat文件;使用对话框(右击我的电脑/属性/高级/环境变量/系统或用户的环境变量)操作Unix平台需要分shell:csh$HOME/.cshrcbsh/ksh$HOME/.profile环境变量:JAVA_HOME:保存jdk的安装目录windows:setJAVA_HOME=c:\programfiles\java\jdk1.5.0_09Java程序开发环境配置csh:setenvJAVA_HOME/opt/jdk1.5.0_09bsh/ksh:JAVA_HOME=/opt/jdk1.5.0_09CLASSPATH:系统搜索字节码(类文件.class)文件的搜索路径。设置系统在查找字节码文件时,它的搜索路径。windows:setCLASSPATH=.;%JAVA_HOME%\jre\lib\rt.jar;csh:setenvCLASSPATH.:$JAVA_HOME/jre/lib/rt.jarbsh/ksh:CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jarPATH:设置命令的搜索路径,在执行命令时,操作系统就会在PATH设置的路径去查找命令的可执行文件。设置path不能覆盖原有的,可以使用特殊符号windows:%PATH%;…Linux:$PATH:…windows:setPATH=%PATH%;%JAVA_HOME%\bin;csh:setenvPATH$PATH:$JAVA_HOME/binbsh/ksh:PATH=$PATH:$JAVA_HOME/binLinux系统使用bsh/ksh时则需要exportJAVA_HOMECLASSPATHPATH将环境变量设置为全局的编辑,编译,调试,运行一个java程序写第一个java程序:HelloWorld.javapublicclassHelloWorld{publicstaticvoidmain(String[]args){Stringstr=“HelloWorld!”;编辑,编译,调试,运行一个java程序System.out.println(“TheStringis::”+str);System.out.println(MyAgeis:+age);}}通过这个程序掌握以下概念一个java源文件中可以定义多个类,但最多只能有一个类用public来修饰,而且该public修饰的类名要与java源文件名一样。一个java应用程序应该包含一个主方法,而且主方法的签名是固定不变的。主方法定义在哪个类中并不做固定安排。定义的所有的代码中,只看到类的定义。在类中去封装其他变量或方法。编译HelloWorld.java程序开始\运行\cmd进入dos,修改当前目录为d:\javacode\day01使用javacHelloWorld.java命令编译编译成功后,到day01程序目录下查看,发现有2个.class文件得出有效结论编译报错则根据错误提示找出错误位置然后修改程序重新编译举例来演示学习错误提示假如将String的S写为小写:stringstr=“HelloWorld!;假如将out写为out:System.otu.println(“TheStringis:+str);再次编译一下,查看错误提示,必须要会读错误提示分析错误提示,排除错误是基本的能力包的概念,含义和使用运行HelloWorld程序:包含有主方法的程序才可以运行,没有包含主方法的类是不能运行的开始\运行\cmd进入dos;使用cdd:\javacode\day01进入程序目录使用javaHelloWorld(包含有主方法的类的类名)来运行使用javaStudent就会报告错误提示没有主方法要求学员做HelloWorld程序并操作演示几种错误情况和调错带包的java程序包的声明:packageday01package是关键字day01是包名包的概念和含义包名的命名符合标识符命名规则即可企业项目开发中,包的命名也有企业规范的如:com.shunshi.abs.model.来隔开每一部分,每一部分都是包结构com.shunshi这个是软件公司网址的url,可以区分确认哪个公司开发的软件产品com.sun/com.ibm,这样包名不会产生冲突abs是项目名,model是项目中的模块/子模块名写M