JAVAJAVAJAVAJAVAJAVAJAVAJAVAJAVA培训培训-----朱林目录JAVA概述语言基础面向对象JAVA集合、泛型运行环境、输入输出和异常处理数据库编程、多线程和网络编程注释和类的高级特性WEB开发知识和第三方类库JAVAJAVAJAVAJAVA概述JAVA发展JAVA参考书籍JAVA和其他语言的对比JAVA体系结构JAVAIDE开发环境项目开发环境JAVAhelloworldJAVAJAVAJAVAJAVA发展1995Java诞生1996JDK1.01997JDK1.11998JDK1.22002JDK1.42004JDK1.5目前JDK1.6TIOBETIOBETIOBETIOBE发布了2010201020102010年10101010月的编程语言排行榜JAVAJAVAJAVAJAVA参考书ThinkinginJava(BruceEckel)EffectiveJava(JoshuaBloch)TheJavaProgrammingLanguage(KenArnold,JamesGosling,DavidHolmes)疯狂JAVA讲义。。。。JAVAJAVAJAVAJAVA语言对比C#rubypythoncc++...JAVAJAVAJAVAJAVA体系结构J2SE:java2Standardedition(java2标准版) J2EE:java2enterpriseedition(Java2企业版) J2ME:java2microedition(Java2微缩版)JAVASEJAVASEJAVASEJAVASE体系结构JAVAIDEJAVAIDEJAVAIDEJAVAIDEeclipsenetbeanJetBrainsIntelliJOracleJDeveloperStudio。。。JAVAhelloworldJAVAhelloworldJAVAhelloworldJAVAhelloworldJAVA环境JAVAHelloWorld.javajavacjavaJAVAJAVAJAVAJAVA环境jdk-6u18-windows-i586.exe检查环境变量检查CLASSPATHeclipse-java-helios-win32HelloWorld.javaHelloWorld.javaHelloWorld.javaHelloWorld.java//一个文件中只能有一个共有的类,并且与文件名称一致,大小写注意publicclassHelloWorld{//程序的入口publicstaticvoidmain(Stringargs[]){//向控制台输出信息System.out.println(大家好!);}}javajavajavajava运行机制项目开发环境版本控制缺陷管理项目管理设计工具IDE数据库JAVAJAVAJAVAJAVA语言基础注释标识符和关键字基本数据类型基本类型的类型转换运算符流程控制数组注释注释//行注释:用于单行注释/*多行注释符:注释内容*//**注释内容:Java文档注释符*/分隔符.点号,用于分隔包、类或分隔引用变量中的变量和方法。;分号,是语句结束的标志;,逗号,分隔方法的参数和变量说明等;:说明语句标号。{}大括号,用来定义复合语句、方法体、类体及数组的初始化;[]方括号,用来定义数组类型及引用数字的元素值。()圆括号,用于在方法定义和访问中将参数表括起来或在表达式中定义运算符的先后次序。标识符Java语言中定义的变量,方法,类和对象都需要有一定的名称,这种名称叫做标识符。在Java语言中所有的标识符必须以字母、下划线或美元符号“$”开头的一串字符,后面可以跟包含字母、数字、下划线和美元符号。标识符是由用户自己定义规定的名称,长度不受限制,可按上面的规则随意选取。注意:Java语言严格区分大小写。关键字数据类型Java分基本类型和引用类型基本类型包括boolean和数字类型数字类型包括整数和浮点整数:byte、short、int、long字符类型:char浮点:float、double类型转换默认类型转换byte、short、int、long、float、doublechar强制类型转换(typeTarget)Value表达式类型的自动提升所有byte、short、char自动提升到int整个算术表达式类型自动提升到表达式中最高等级操作数同样的类型。运算符算术运算符加、减、乘、除、求余赋值运算符=比较运算符、=、=、==、!=逻辑运算符&&、&、||、|、!、^位运算符&、|、~、^、、、类型相关运算符三目运算符(expression)?if-true:if-false运算符优先级Inta=5;Intb=4;Intc=a++---b*++a/b2%a--;流程控制顺序结构If分支结构Switch分支结构Dowhile循环While循环嵌套循环控制循环结构分支结构IfintiAge=30;if(iAge20){System.out.println(“年龄大于20!);}一个例子:switchswitchswitchswitchswitch(expression)//expression整形,不包括long{casecondition1:{break;}casecondition2:{break;}default:{}}whiledowhilewhiledowhilewhiledowhilewhiledowhileintstatements;while(expression){statements;}//--------------------------------intstatements;do(expression){statements;}while;forforeachforforeachforforeachforforeachfor(intcount=0;count10;count++){System.out.println(count);}//--------foreach---------String[]tests={”aaa”,”bbb”,”ccc”};for(Stringtest:tests){System.out.println(test);}结束循环的3333种方法breakcontinuereturn数组数组定义和初始化使用数组工具集Arrays数组定义和初始化String[]tests={”aaa”,”bbb”,”ccc”};String[]tests=newString[]{”aaa”,”bbb”,”ccc”};String[]tests=newString[3];tests[0]=”aaa”;tests[1]=”bbb”;tests[2]=”ccc”;类、对象类和对象的区别对象定义修饰符class类名{属性方法}public、protected、provate、static、final、abstractStringstrTest=newString(“test”);类的方法方法只能在类体内定义,不能对立定义一个方法方法的参数传递机制:值传递形参长度可变的方法,长度可变的形参只能放在形参列表的最后,且只能有一个递归方法面向对象的三大特征封装继承多态封装将对象的状态信息隐藏在对象内部,不准许外部程序直接访问对象内部信息,而是通过提供的方法来对内部信息的操作和访问两个方面的含义:把该隐藏的隐藏起来,把该暴露的暴露出来访问控制符继承被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。因此,子类是超类的一个专门用途的版本,它继承了超类定义的所有实例变量和方法,并且为它自己增添了独特的元素。继承一个类,只要用extends关键字把一个类的定义合并到另一个中就可以了。多态Java引用变量有两个类型:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定,如果编译时和运行时的类型不一致,就是多态。当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。(但是如果强制把超类转换成子类的话,就可以调用子类中新添加而超类没有的方法了。)优先级由高到低依次为:this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。classA...{publicStringshow(Dobj)...{return(AandD);}publicStringshow(Aobj)...{return(AandA);}}classBextendsA...{publicStringshow(Bobj)...{return(BandB);}publicStringshow(Aobj)...{return(BandA);}}classCextendsB...{}classDextendsB...{}Aa1=newA();Aa2=newB();Bb=newB();Cc=newC();Dd=newD();System.out.println(a1.show(b));①System.out.println(a1.show(c));②System.out.println(a1.show(d));③System.out.println(a2.show(b));④System.out.println(a2.show(c));⑤System.out.println(a2.show(d));⑥System.out.println(b.show(b));⑦System.out.println(b.show(c));⑧System.out.println(b.show(d));⑨继承与组合继承是对已有的类做一番改造,就是将一个抽象类改造成一个适应特定需求的具体类。组合:两个类之间有明确的整体部分关系。继承is-a组合has-atoString==equalsfinaltoString==equalsfinaltoString==equalsfinaltoString==equalsfinalObject对象toString()对象指向同一个对象时用==返回true对象的值相等用equals方法final修饰类方法变量,表示不可改变接口和抽象类共同点:不能被实例,都可以包括抽象方法不同:接口是规范,抽象类是多个子类的父类,体现模板设计,可以被当做中间产品。枚举PublicenumSeasonEnum{SPRING,SUMMER,FALL,WINTER;}For(SeasonEnums:SeasonEnum.values()){System.out.println(s);}SeasonEnums=Enum.valueOf(SeasonEnum.class,“SPRING”)JavaJavaJavaJava集合CollectionSetQueueListEnumSetTreeSetHashSetLinkedHashSetDequeArrayListVectorStackMapEnumMapWeakHashMapSortedMapTreeMapHashtablePropertiesHashMapLinkedHashMapSetlistmapSetlistmapSetlistmapSetlistmapSet集合类似一个罐子,把一个对象添加到set集合时,set集合无法记住元素的顺序,所以set不能重复List集合像一个数组,可以记住添加元素的顺序,只是list长度是可变的。map集合也类似一个罐子,只是里面的值是由两部分组成。exampleexampleexampleexampleCollectionbooks=newHashSet();books.add(“aaa”);books.add(“bbb”)