java复习资料.docx_第1页
java复习资料.docx_第2页
java复习资料.docx_第3页
java复习资料.docx_第4页
java复习资料.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章1.java源文件包含以下内容:(1)零个或一个包生明语句(package statement)(2)零个或多个包引入语句(import statement)(3)零个或多个类的声明(class statement)(4)零个或多个接口声明(interface statement)2.每个java源文件可包含多个类或接口的定义,但是至多只有一个类或接口是public的,而且java源文件必须以其中的public类型的类的名字命名。3.如果引用了同名类,必须通过类的完整类名来区分这两个类。4.顶层包不会包含子包中的类。5.package语句必须位于第一行,(忽略注释行)6.如果方法的返回类型为void,可以没有return语句,如果有return语句,那么该return语句不允许返回数据。7.return的两个功能:(1)结束执行本方法;(2)向本方法的调用者返回数据。8.由于static修饰的方法默认都是final类型,所以在main()方法前加上final修饰符也是可以的。9.java虚拟机(Java Virtual Machine,JVM)由类加载器、字节码检验器、解析器组成。10.JVM运行步骤:(1)把 .class文件中的二进制数据加载到内存中(2)对类的二进制数据进行验证(3)解析并执行指令11.javac、java、jar命令分别用于编译、运行和打包java应用。javac使用方法:javac 文件名.javajava使用方法:java 文件名jar使用方法:jar cvf 包名.jar 类名(class).java12.path、classpath的用法:Path:让操作系统更容易找到相应的应用程序Classpath:让jvm更容易找到java类库。第三章13.八种基本类型:boolean、float、double、byte、short、int、long、char三种引用类型:类类型、接口类型、数组类型14.数据类型关键字字节数取值范围默认赋值方法转换方法布尔型Boolean1字节(8位)True,falsefalse不允许把整数和null赋值给boolean字节型Byte1(8位)-1281270短整型Short2(16位)-215215-10整型Int4(32位)-231231-10长整型Long8(64位)-263263-10字符型Char2(16位)0216-1u0000单精度浮点Float4(32位)1.4013E-453.4028E+380.0F双精度浮点Double8(64位)4.9E-3241.7977E+3080.0D15.变量count和counter分配的内存空间Counter引用变量堆区Counter实例Count变量(4个字节,值为13) 16.java虚拟机执行语句Sample obj=new Sample()的步骤如下:(1)为一个新的Sample对象分配内存空间,它所有的成员变量都被分配了内存空间,并自动初始化为其变量类型的默认值,参见图1(2)显示初始化memberV2变量,把它的值设为1,参见图2(3)调用构造方法,显示初始化成员变量memberV3,参见图3MemberV1=0MemberV2=0MemberV3=0MemberV1=0MemberV2=1MemberV3=0MemberV1=0MemberV2=1MemberV3=3图1 图2 图317.成员变量:在类中声明,它的作用域是整个类局部变量:在一个方法的内部或方法的一个代码块的内部声明。如果在一个方法内部声明,它的作用域是整个方法;如果在一个方法的某个代码块的内部声明,它的作用域是这个代码块。方法参数:方法或者构造方法的参数,它的作用域是整个方法或者构造方法。异常处理参数:指语句中的异常参数e,它的作用域是紧跟着catch(Exception e)语句后的代码块18.当一个对象创建好后,Java虚拟机就会给他分配一个引用自身的指针:this。19.局部变量必须先经过显示初始化,才能使用它。第4章 操作符一、整型操作符在计算表达式时,自动提升,如果有一个操作元是long型,那么结果结果也是long型,否则不管操作元是byte、short、char型,运算结果都是int型。4.4、短路与非短路的区别:“&”“|”短路操作符,如果能根据操作符左边的布尔表达式就能推算出整个表达式的布尔值,将不再执行操作符右边的布尔表达式;对于“&”“|”非短路操作符,始终会执行操作符两边的布尔表达式。2、 字符串连接操作符“+”1、如果“+”操作符中有一个操作元为String类型,则另一个操作元可以是任意类型,不过该操作元将被装换成字符串。当一个操作元为String类型时,如果另一个操作元为引用类型,就调用所引用对象的toString()方法获得字符串。2、在java.lang.Object类中定义了toString()方法,因此所有的Java类都有这一方法(把某一个类转换为String类型会自动调用toString()方法)。3、如果“+”操作符的两个操作元都不是String类型,那么“+”操作符的两个操作元必须都是除了boolean以外的基本数据类型,此时“+”作为数学加法操作符处理。4、操作符“=”与对象的equals()方法的区别(大题):当操作符“=”两边都是引用类型变量时,这两个引用变量必须都引用同一个对象,结果才为true;而equals方法是两个对象指向同一个地址,两个对象的类型和内容一致,则返回true 5、instanceof操作符:用于判断一个引用类型所引用的对象是否是一个类的实例。 6、注意:在进行自动或强制类型转换时,被转换的变量本身没有任何变化。第5章 流程控制一、三大循环:顺序、选择、循环。二、流程跳转语句:break、continue、和return语句。 1、break语句:终止循环 2、continue语句:跳出本次循环,集训执行下次循环。(跳出距离最近) 3、return语句:退出本方法,调到上层调用方法。(跳出距离最远)第6章 继承1、 继承的基本方法:用extends关键字来表示一个类继承另一个类二、子类拥有,父类定义。一个类只能继承一个类,但可以实现多个接口。三、Java语言中不支持多继承,即一个类只能继承一个类但它可以有多个间接的父类。所有的Java都直接或间接的继承了java.lang.Object类。四、方法重载(Overload) 1、对于类的方法,如果有两个方法的方法名相同,但参数不一致,那么一个方法是另一个方法的重载方法。 2、重载方法必须满足以下条件: a方法名相同 b方法的参数类型、个数、顺序至少有一项不相同 c方法的返回类型可以不相同。d方法的修饰符可以不相同。五、方法覆盖(Override) 1、覆盖方法必须满足多种约束:(除了修饰符,其他都相同) (1)、方法名、参数列表、返回类型都相同。 (2)、子类方法不能缩小父类方法的访问权限。 (3)、子类方法不能抛出比父类方法更多的异常。 (4)、方法覆盖只存在于子类和父类之间,在同一个类中方法只能被重载,不能被覆盖。 (5)、父类的静态方法不能被子类覆盖为非静态方法。 (6)、子类可以定义与父类的静态方法同名的静态方法。以便在子类中隐藏父类的静态方法。 (7)、父类的非静态方法不能被子类覆盖为静态方法。 (8)、父类的私有方法不能被子类覆盖。 (9)、父类的抽象方法可以被子类通过两种途径覆盖:一是子类实现父类的抽象方法;二是子类重新声明父类的抽象方法。 (10)、父类的非抽象方法可以被覆盖为抽象方法6、 方法覆盖于方法重载的相同点与异同点相同点:1)、都要求方法同名 2)、都可以用于抽象方法和非抽象方法之间。异同点:1)、方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致。 2)、方法覆盖要求返回类型必须一致,而方法重载对此不作限制。 3)、方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类的所有方法 4)、方法覆盖对方法的访问权限和抛出的异常有特殊要求,而方法重载在这方法没有任何限制。 5)、父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次。7、 Super关键字 1、Super和this关键字都可以用来覆盖java语言的默认作用域,被屏蔽的方法或变量为可见。 2、java语言允许某个类型的引用变量引用子类的实例,而且可以对这个引用变量进行类型转换。(多态:一是访问引用类型的属性,二是访问实例类型的方法) 3、不在继承树的同一个继承分支上,java编译器不允许进行类型转换。 4、在运行时,子类的对象可以转换为父类类型,而父类的对象实际上无法转换为子类类型。 5、当一个系统使用一棵继承树上的类时,应该尽可能地把引用变量声明为继承树的上层类型,还可以提高两个系统之间的松耦合。 6、位于继承树上层的类具有以下作用: (1)、定义了下层子类都拥有的相同属性和方法,并且尽可能地为多数方法提供默认的实现,从而提高程序代码的可重用性。 (2)、代表系统的接口,描述系统所能提供的服务。 7、把不允许子类覆盖的方法定义为final类型。第七章访问控制修饰符:访问级别访问控制修饰符同类同包子类不同的包公开Public受保护Protected默认没有访问控制修饰符私有PrivateAbstract修饰符:不允许创建抽象类本身的实例,用abstract修饰的方法没有方法体。Final修饰符具有不可改变的含义:没有子类;不能被子类的方法覆盖;只能被赋一次值。 static修饰符 (1)用static修饰的成员变量可以直接通过类名来访问。 (2)用static修饰的成员方法可以直接通过类名来访问。(3)用static修饰的程序代码块在类加载时初始化。第八章接口的定义: Public interface Photographable Public abstract void takePhoto();接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。第九章Throw和Throws的区别: throws声明抛出只能在方法签名中使用,throws可以声明抛出多个异常类,多个异常类之间以逗号隔开。如果需要在程序中自行抛出异常,应使用throw语句,throw语句可以单独使用,throw语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例。Trycatch语句的写法和执行过程: Try /可能会出现异常情况的代码catch(SQLExcetion e) 处理操纵数据库出现的异常catch(IOException e)处理操纵输入流和输出流出现的异常异常流程的运行过程(看懂P260)P265主要java异常类的类框图 Throwable(顶层类)ThrowableExceptionErrorIOExceptionRuntimeException区分运行时异常和受检查异常: 受检查异常是可以处理的异常,编译器可以检测出。第十一章创建对象的方式:1、调用new关键字2、运用反射机制3、调用对象的clone()方法4、运用反序列化手段。构造方法的注意事项:1、方法名必须与类名相同2、不要声明返回类型3、不能被static、fina、synchronized、abstract、native修饰。默认构造方法是没有参数的构造方法,可分为两种:1、隐含的默认构造方法2、程序显示定义的默认构造方法。一旦定义了构造方法,Java编译器不会提供默认构造方法。Super语句必须作为构造方法的第一条语句。Super的作用:调用父类的方法或属性(调用普通父类用super. 调用构造方法用super())。在多级继承的情况下,将从继承树的最上层的父类开始,依次执行各个类的构造方法,这可以保证子类对象从所有直接或间接父类中继承的实例变量都被正确地初始化。构造方法的作用域:1、当前类的其他构造方法通过this语句调用它2、当前类的子类的构造方法通过super语句调用它3、在程序中通过new语句调用它单例类的编写方法:(P318)public class GlobalConfigprivate static final GlobalConfig INSTANCE = new GlobalConfig(); Private GlobalConfig() public static GlobaloConfig getInstance()return INSTANCE;比较finallize()/finally、final的区别:final用于申明属性,方法和类,表示属性不可变,方法不可以被覆盖,类不可以被继承。Finally是异常处理语句结构中,表示总是执行的部分。Finallize表示是object类一个方法,在垃圾回收机制中执行的时候会被调用被回收对象的方法。第12章内部类成员内部类局部内部类实例内部类静态内部类内部类的分类实例内部类:(1) 在创建实例内部类的实例时,外部类的实例必须已经存在。(2) 实例内部类的实例自动持有外部类的实例的引用。静态内部类:(1) 静态内部类的实例不会自动持有外部类的特定实例的引用。(2) 静态内部类可以直接访问外部类的静态成员,如果访问外部类的实例成员,就必须通过外部类的实例无访问。(3) 在静态内部类中可以定义静态成员和实例成员。(4) 客户类可以通过完整的类名直接访问静态内部类的静态成员。局部内部类:局部内部类时在一个方法中定义的内部类,不能用访问控制修饰符(public、private、protectd)及static修饰符来修饰。不能包含静态成员。P352内部类的继承程序:public class Sample extends Outer.Inner/public Sample() /编译错误 public Sample(Outer o)o.super();子类与父类中的内部类同名:内部类并不存在覆盖的概念,因为在不同的命名空间中。匿名类: A a =new A() /匿名类 void method()System.out.println(“from anonymous”);第十三章线程的创建和启动方法(重点)1、 Extends Thread方法:public class TestThread extends Threadpublic void run()for(int i = 0;i10;i+)System.out.println(Thread.currentThread().getName();/*创建线程的第一种方法:*1、继承Thread类*2、重写run方法*3、调用start方法*/public static void main(Stringargs)TestThread tt = new TestThread();/*start的作用是创建一个线程,并且用这个线程去执行run方法*线程的默认名字为:Thread*/tt.start();/从Thread类继承得来的2、 Runnable方法:public class TestRunnable implements Runnablepublic void run()for(int i = 0;i10;i+)System.out.println(Thread.currentThread().getName();/*线程创建的第二种方法*1、创建一个Runnable接口的实现类*2、创建run方法*3、创建Thread对象并将Runnable接口实现类的对象作为参数*4、调用Thread对象的start方法*/public static void main(Stringargs)TestRunnable tt = new TestRunnable();Rr r=new Rr();Thread t = new Thread(r,第一个线程);t.sleep(1000);new Thread(tt).start();Thread t1 = new Thread(tt,2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论