Javaday01=============================================================================================Java------------sun公司1995几个特点:简单,安全,跨平台,面向对象,分布,健壮,解析,高性能,多线程,动态性,体系结构中立安全:允许用户使用指针,不允许操作指针跨平台:C++:源码----(编译)----目标码-----(连接)----可执行文件目标码:二进制机器码c++中的源码是跨平台的。c++中的指针其实是内存中的编号(地址)一个字节=连续的8位二进制位。1G=1024*1024*1024JAVA:源码----(编译)----字节码JAVA是字节码跨平台。搭建Java开发环境:JDK/JRE/JVM什么是JDK:JAVA开发工具包(做JAVA开发是必须下载JDK)什么是JRE:JAVA的运行环境(若只运行JAVA文件只要下JRE就可以了)什么是JVM;JAVA虚拟机JVM(java虚拟机)功能:用来屏蔽不同系统的差异,为上层的字节码提供统一的运行环境。JDK下的bin目录:可执行文件(这些都是开发过程中所要用的命令。如javac,java)JDK下的JRE目录:BIN目录,LIB目录。这里的BIN目录中放的是运行中用到的命令,LIB目录中放的都是JAR文件,JAR文件中放的都是一写编译好的字节码。打成JAR文件的目的:方便传输。LIB目录下的rt.jar,改文件下放的是JAVA开发的类库JDK下的SRC.ZIP包:放的是rt.jar包中的源码,而rt.jar中放的是对应的字节码。----------------------------------------------------------------------设置环境变量:JAVA_HOME:代表JDK安装路径=/opt/jdk1.6.0d:/a/b/jdk1.6CLASSPATH:系统搜索类的路径=.(指的是当前目录)PATH:命令的搜索路径=/opt/jdk1.6.0/bin或=$PATH:/opt/jdk1.6.0/bin或=$PATH:$JAVA_HOME/bi$PATH:在原先的PATH基础上加上其它路径\--------------------------------------------------------------------------第一个JAVA代码第一步:viMyFirstJava.java第二步:publicclassMyFirstJava{-----------------定义一个类publicstaticvoidmain(String[]args){------主方法格式固定Stringname=tangliang;----定义一个变量为字符串,字符串值用双引号来引起intage=30;------定义一个整数类型值为30System.out.println(mynameis:+name);---输出语句()里是要输出的内容System.out.println(myageis:+age);----JAVA中加号也可以做字符串的链接}}第三步:javacMyFirstJava.java-----编译源代码文件(跟源文件名)第四步:javaMyFirstJava-----执行字节码文件(跟的是类名)通配符号编译:javacmy*.java----------编译以my字母开头的所有java文件带包编译:javac-d.PackageTest.java带包执行:javasd0807.day01.PackageTestPublic被称作为访问修饰符----作用是:控制程序的其他部分对该部分的访问级别Class表面JAVA程序中的全部内容是包含在类中的。注意点:1.一个JAVA源文件只能定义一个public类2.而且PUBLIC修饰的类名必须同文件名一致(大小写也要一直)3.可以定义其他非public类.4.字节码文件与类一一对应,而不是同你的源文件一一对应.5.可以运行的JAVA方法的文件,一定要包含一个主方法,而且主方法签名是固定的6.包含主方法的类叫主类,java命令后跟的是主类的名字7.main方法是程序的入口包的定义(目的是确保类名的唯一性)包用来放所写文件的目录.怎么来声明一个包:packageSD0807.day01;---包的定义(可以是0或1行,若声明则必须在java文件第一行)++++++++++++++++++++++++++++++++++++++++++++++++packageSD0807.day01;publicclassPackgeTest{publicstaticvoidmain(String[]args){System.out.println(PackageTest!);}}++++++++++++++++++++++++++++++++++++++++++++++++带包编译:javac-d.PackageTest.java带包执行:javasd0807.day01.PackageTest若javaPackageTest其实它将类找到了,只是它找到是带包的类,而命令里面是不带包的,所以会报错。为什么执行带包的类要加路径名???(由于JAVA命令的执行步骤)java命令的三个步骤:1,找到类的字节码文件2,加载类--从磁盘中去读取对应的类,到哪里去找就是从(classpath中配置的路径)3,找主方法执行若从网上下一写工具包必须在classpath中配置工具包所在的位置,这样我们就可以使用该工具包想使用中间件,这样classpath必须指向对应的xxx.jar。而在JDK中的rt.jar我们没有配置上,却能用到里面对应的类,因为她自动会去找JRE/lib/rt.jar找。rt.jar//放在jdk1.6.0/jre/lib/rt.jar使用api提供的类,java虚拟机是怎么找到的?就在rt.jar;里,即使不设到CLASSPATH下虚拟机也能运行;++++++++++++++++++++++++++++++++++++++++++++++++++++++++例子:第一步:(写类)ToolA类:packagecom.tarena;publicclassToolA{publicstaticvoidmain(String[]args){System.out.println(ToolA);}}Test类:packagecom.tarena.day01;publicclassTest{publicstaticvoidmain(String[]args){ToolAt=newToolA();System.out.println(test);}}第二步:(编译)javac-d.ToolA.java-----可以编译(生成一个文件夹为com)javac-d.Test.java-----直接编译Test.java会出错,因为用到了ToolA类第三步:(把类ToolA打包)jar-cvfabc.jar./com----------ToolA类在包com.tarena下将产生的abc.jar包放到任意的目录下,这里放到aa目录。第四步:配置ToolA类的classpath=d:\aa\abc.jar第五步:(编译Test类)javac-d.Test.java-----可以编译第六步:(执行)javacom.tarena.day01.Test也可以执行ToolA类javacom.tarena.ToolA+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++找对应类的顺序:1,在当前包下找(所以注意不要在自己的包下创建和JDK中同名的类,这样在调用JDK中同名的类回出错)2,在rt.jar中找3,在classpath中指定的路径下找+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++如果自己在本包中定义了一个String类这样下面代码会出错:publicclassAb{publicstaticvoidmain(String[]args){System.out.println(aaaaa);}}---------出现的错误是说主方法没找到。因为main参数中的String类不是JDK中的String类所以上面的main方法不是主方法了,只能是自己所定义的一个普通的类。所以该类在编译的时候不报错,在执行的时候就会出错。++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++java.lang包下的类,可以不需给出包明,其它的都要给出包名,由于java.long包下的类很常用。---------------------------------------------------------------------------------------类的导入import:可以多行。作用导入所要用到的类。java.lang包下的类,可以不需要导入,其它的包中的类都必须导入。怎么导入:importjava.util.scanner;------导入scanner类importjava.util.*;----------导入该包下所有的类packagexxxxx;(0或1行)importxxxxxxx;(0或多行);classxxxxx{}(1个或多个但只有一个publicclass)静态导入:不仅能导入类,还可以导入静态域。两个实际用:1,对算术函数的导入2,笨拙的常量+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++常用命令:Javac------编译命令Java------运行命令Javadoc-----生成程序文档,在java源文件中提取文档注释,生成程序文档.--------------------------------文档注释注释://单行注释(按住ctrl+/)就可以注释选中的程序)/**/多行注释/***/特殊的多行注释,定义在类之前,类的属性或方法之前,叫文档注释;javadocMyFirstJava.java–d.\docs//将生成的html文件放到当前目录下的docs子目录下;作用:生成JAVA文档.从你的程序代码中提取注释/***/后跟的是自由格式文本在自由格式文本中可以使用HTML修饰符:em/emcode/codeStrong/Strongimg一定不要使用h1,hr,因为他们与文档格式发生冲突。类的注释:多行注释的时候很多程序员习惯每行以星号开头,不建议这样做。方法的注释:@param----参数,可以占据多行,可以用HTML标记@return----返回@throws----可能抛出的异常域注释:只需要对公有域(通常指的是静态常量)建立文档/**The“hearts”cardsut*/PublicstaticfinalintHEARTS=1;通用注释@authorname----作者@versiontext----版本@sincetext-----始于条目@deprecatecdtext-----------对类,方法,变量添加一个不再使用的注释如:@deprecatedUsecodesetVisible(true)/codeinstead@seereference@seeahref=