JavaSE笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.Java三种核心机制java虚拟机,垃圾收集机制,代码安全机制Java虚拟机实现平台的无关行面对对象编程的三个特性:继承,多态,封装2.高级编程语言类型编译型和解释型java为两者的结合3.数据的封装把属性声明为私有,通过声明公开的方法来对数据进行操作4.数据类型Byte1字节(-128-127)Short2字节Int4字节Long8字节Float4字节Double8字节CharStringdouble3.0/0.0无穷大0.0/3.00.0-3.0/0.0负无穷大0.0/0.0NaN//noanumber十进制八进制要求0开头如012十六进制以0x或0X开头如0x12运算符移位运算符ab二进制的a逐位左移b位空出来的补0ab带符号右移b位,空出来的补原来的符号(0或1)ab无符号右移b位空出来的补0自增自减运算符j=i++先运算j=i再运算i=i+1j=++i先运算i=i+1再运算j=i数据转换途径Byteshortintfloatdoublecharintlongdouble按顺序自动转化,逆行则需要强制类型转化break和continue用法break终结当前循环可以与跳转标签联合使用p1:-----;breakp1;//则跳出到p1标记的语句处continue跳出当次循环,继续下次循环类的访问控制public类可以在任何场合被引入和使用,非publicl类只能在所在包中被调用类成员访问控制修饰符同一个类中同一个包中子类中任意范围privateYes缺省YesYesprotectedYesYesYespublicYesYesYesYes方法重写Override在子类中根据需要对父类中继承来的方法进行重新定义规则:1.重写方法必须和被重写方法具有相同的方法名称,参数列表和返回值类型2.重写方法不能使用被重写方法更严格的访问权限(原方法为public,重写就不能为其他的如private或protected或缺省)3.不允许抛出被重写方法范围更大的异常类型注意:协变类型,重写时返回类型可以不一样,但必须是被重写方法返回类型的子类方法重载Overload在一个类中存在多个同名方法的情况称为方法重载,重载方法参数列表必须不同关键字super和this用super引用父类中的成分在子类中使用super(参数列表)调用父类的构造方法,子类中没有显示调用构造方法的话会自动this可以在构造方法的第一行用this调用其他重载的构造方法super和this调用构造方法只能选择一个使用或者都不用,并且要放在第一行关键字static在java类声明属性,方法,内部类时,可使用static作为修饰符。static标记的属性或方法由整个类共享(所有实例),调用方法时可以不对象化,直接通过类名+“.”+属性或方法调用static方法不能调用非static方法static语句块在类的定义体中,方法的外部可包含static语句块,static语句块仅在所属类被载入时被执行一次,非static语句块在创建对象时被自动调用。且static语句块先被执行如:classA{{System.out.println(非static语句块被执行);}static{System.out.println(static语句块被执行);}}publicclassTest{publicstaticvoidmain(String[]args){Aa=newA();Ab=newA();Ac=newA();}}importstatic静态导入静态导入包名后可直接使用包名中的方法而不需要通过类名+.+方法名调用如:通过引用importstaticjava.long.System.out;可以直接使用out.println(“”);方法输出,不需要通过System.out.println();使用关键字finalfinal可以修饰类、变量、方法。final标记的类不能被继承final标记的方法不能被重写Overridefinal标记的变量只能被赋值一次final变量必须在声明时或在构造方法中显示赋值然后才能使用final不允许修饰构造方法,抽象类以及抽象方法。(因为抽象类和抽象方法可能被重写)多态在java中,子类的对象可以替代父类的对象使用,即父类的类型指向子类的对象对象造型有继承关系的才能造型简而言之就是对象的强制类型转换。在多态情况下,子类到父类的类型转化自动Aa=newB();Bb=(B)a;//合法Aa=newA();Bb=(B)a;//非法法运算符instanceof用于检测一个对象的真正类型如对象if(stuinstanceofStudent){}设计模式Singleton模式(单态)任何时候只生成一个对象1.构造方法私有(在其他地方不能直接得到实例.即不能newSingle())2.通过静态方法获得当前类的事列如:publicclassSinglr{privatestaticSingleonlyone=newSingle();privateSingle(){}publicstaticSinglegetObject(){returnonlyone;}}调用方法Singles1=Single.getObject();Singles2=Single.getObject();这里s1和s2都是获得对象onlyone,而不是生成对象,s1和s2指向的是同一个对象onlyone抽象类abstract抽象方法:在定义Java方法时可以只给出方法头,不必要给出方法体,即实现细节抽象方法必须使用关键字abstract修饰,包含抽象方法的类必须声明为抽象类publicabstractclassAnimal{}抽象类不一定含有抽象方法,抽象类不能实例化,需要实例化只能通过子类继承,将子类实例化;在子类中必须将父类中的全部抽象方法重写Override。否则子类也要声明为抽象类。父类不是抽象类,但子类中可以添加抽象方法,此时,子类必须声明为抽象类。接口interface接口是抽象方法和常量值的定义的集合接口是特殊的抽象类,只包含常量和方法的定义,没有变量和方法的实现。接口的定义publicinterfaceRunner{}接口中定义的属性必须是pubicstaticfinal,定义的方法必须是publicabstract因此这些修饰符可以部分或全部省略。如:publicinterfaceRunner{publicinterfaceRunner{}publicstaticfinalintid=1;intid=1publicabstractvoidstart();voidstart();}}Java类可以实现接口如:publicclassPersonimplementsRunner{}实现接口必须把所有抽象方法重写一个类可以实现多个接口,可以看成继承了多个类(接口看成特殊的抽象类)因此可以实现多态。(即当一个方法的参数为接口的对象时,也可以传进实现该接口的类的对象。如:publicvoideat(Runnerr)Personp=newPerson();eat(p);)嵌套类嵌套定义:在一个类的内部定义一个或多个类嵌套类分为两种:静态嵌套类(StaticNestedClass):用static修饰的嵌套类内部类(InnerClass):非static的嵌套类。如:publicclassA{privateclassB{}//内部类privatestaticclassC{}//静态嵌套类}1.内部类和外层类存在着逻辑上的依赖关系,内部类的对象不能单独存在。必须依赖一个外层类的对象;2.内部类可以使用外层类中的所有成员(属性和方法),即使他们是private3.内部类可以声明为抽象类,因此可以被其他的内部类继承。又可以声明为final4.和外层类不同,内部类可以声明为private或protected(外部类只能声明为public或者不声明类型)注:具体内部类的使用见视频07高级类的特性枚举类型(Enum)使用一组常量值来表示特定的数据集合,该集合中的数目确定,却这些数据能取预先定义的值。如:publicenumWeek{MON,TUE,WED,THU,FRI,SAT,SUN}可单独编译(用法Week.TUE)异常1.错误(Error),JVM系统内部错误,资源耗尽2.违例(Exception),因编程错误或偶然的外在因素导致的一般性问题Java异常处理宗旨1.返回到一个安全和已知的状态2.能够让用户执行其他的命令3.如有可能,则保存所有的工作4.如果有必要,可以退出以避免造成进一步的危害註:程序员通常对错误无能为力,一般只处理违例常见违例1.ArrayIndexOutOfBoundsExcepion数组下标越界违例2.NullPointerException空指针违例3.IOExeption需要专门去捕获1.FileNotFoundException文件找不到违例异常处理一般两种做法,一:抛弃异常throws(即出现异常不出处)二:捕获异常,处理使程序返回到安全状态或已知状态发现异常不处理,可以声明抛弃异常,谁调用这个方法,谁处理这个异常publicvoidtest_1()throwsException{}异常捕获时,先捕获小范围违例再捕获大范围违例;有些类必须声明异常处理办法比如:IOExecption类在可能有异常的语句块用try{语句}catch(异常类型e){处理办法}catch(...){....//return;//则执行finally;//System.exit(0);//不执行finally;}【finally{//无条件执行语句}】重写方法Override时不能声明抛出比原方法更大的异常;【了解】用户自定义异常publicclassMyExceptionextendsException{}断言用来调试程序,当boolean表达式为false时,则程序停止用法:1.assertboolean表达式;2.assertboolean表达式:表达式;打开断言java–eaclass默认为关闭断言的显示关闭断言java–daclass常用的java类Object类1.hashCode()返回当前对象的十六进制哈希码的值,每个对象的哈希码不同,以此区别对2.toString()功能:1.以字符串形式返回当前对象的有关信息,Object类的原始定义中,所返回的是对象所属的类类型名称及哈希码2.当使用System.out.println()方法直接打印输出引用类型变量时,返回字符串信息输出3.进行String与其他类型数据连接操作(即+的运算符)时,自动调用toString()方法,基本类型数据转换为String类型时,调用了对应封装类的toString()方法3.equals()比较引用类型数据的等价性equals()方法与==操作符的区别:1.equals()方法只能比较引用类型数据即内容,而==可以比较引用类型及基本类型数据;==比较的是引用,即地址2.根据需要可以重写equals()方法4.finalize()方法【了解】功能:java运行时环境中的垃圾收集器在销毁一个对象之前,会自动调用该对象的finalize()方法,然后释放对象的内存空间。5.clone()功能:对象拷贝要进行克隆的对象所属类必须实现java.lang.Cloneable接口,需要捕获违例CloneNoteSupportedExceptionString类表示的是不可修改的Unicode字符串,通常的重新赋值是生成新的对象,而非修改,字符串底层使用的是Unicode编码String类的所有方法都必须熟悉,具体见JDKStringBuffer类保存可修改的Unicode字符序列在执行大的字符串查找等,先把String类转化成StringBuffer,StringBuffer具有更高的效率。主要功能,StringBuilder类该类提供

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功