您好,欢迎访问三七文档
JAVA总复习一.j2se1.什么是类类是某一种事务一般性的集合体,是相同或相似的各个事务共同特性的一种抽象。2.什么是对象?在面向对象概念中,对象是类的实例,对象与类的关系就像变量与数据类型的关系一样。3.类的核心特性封装性:为类的成员提供公有的(public),缺省的(default),保护的(protect),私有的(private)等多级访问权限,目的是隐藏类的私有变量和类中的方法细节。2)继承性:提供从已存在的类,创建新类的机制。继承使一个新类自动拥有被继承类的全部可继承的成员。3)多态:提供类中方法执行的多样性,多态性有两种表现形式(重载和覆盖)。对象中的方法:对象中的方法表达了对象所具有的行为,属性:能够被外界或对象所处的环境,所感知或操作的数据或状态。4.什么是JAVAJava是一门易于编程的跨平台的编程语言,同时又是一个开发,应用和部署的平台。5为什么使用java因为java与平台无关,一次编译处处运行,以及其易于编程的特性。6java的开发步骤1)第一要编写源代码,*.Java。2)编译3)执行9java的环境变量1)JAVA_HOME,jdk的安装路径。2)CLASS_PATH,jvm装载class字节码文件时的搜索路径。2)PATH,是系统的环境变量,命令的搜索路径。10.jvm是什么JavaVirtualMachine(java虚拟机),是一个逻辑的操作系统,他屏蔽了硬件和平台的信息。Jvm可以将字解码文件编译并执行。正是一种独立执行的方式,使得java具有与平台无关的特性。11类的加载过程类加载器加载字解码文件到内存。Jvm内存数据区将对象状态放置到堆区,各线程使用的变量放到栈区,类的特征放在方法区。然后进行字解码验证,在执行。12常用的java命令Javac:Java:Javadoc:Jar:13类的语法和规范1)一个源文件只能有一个public的类。2)public源文件可以有多个类定义。3)源文件名必须与public类名一致。4)包名必须放在第一行。5)包名可以有0个或1个,但是不能有多个。6)源文件如果带包的话,最好存放着包结构对应的录下。14标识符程序语言中用于标识变量名方法名,类名的字符串就是标识符。15java语言命名规范1)开头必须以字母,下划线,$开头,数字不能开头,大小写敏感.2)类名首字母要大写.方法名首字母要小写,每个单词的首字母大写.3)常量名所有字母都要大写.如果常量名有几个字母的组合要用下划线连接.16关键字程序语言当中,程序已经使用.用户不得在使用的单词.一般关键字都是小写.17数据类型1)基本数据类型A整形shortintbytelong默认的是intB浮点型floatdouble默认的是doubleC布尔型booleanD字符型char2)引用数据类型A类B接口C数组18main方法执行的过程1)先到方法去搜索Student,如果搜索不到则取加载Student的字解码文件,2)通过CLASS_PATH查找对应的Student对应的字解码文件.找不到就返异常,类找不到.(ClassNotFoundExecpetion)3)将字解码文件的二进制数据转换成Class对象放置于方法区,然后加载完成.(此对象描述了Student类的方法特征和静态成员..)4)验证字解码文件5)在堆区划分空间放置Student对象6)在栈区放置引用对象变量stu,stu指向Student对象的内存地址.7)Student对象存放了Class对象的地址8)通过stu引用类型变量的值找到Student对象。用过Student对象存放Class对象的地址,找到对应的Study对象的方法然后执行。9)释放资源,jvm运行结束。19基本类型和引用类型的区别1)引用类型存放的是对象地址,基本类型存放的是变量的实际值。2)引用类型变量可以指向复杂的数据结构,3)引用类型数据变量可以使用.操作。来访问他所指向的对象的方法或属性。20操作符运算符和操作数按照一定规则组成的语句就是表达式。比较运算符====4)位运算符~:取反(3)相等运算符^:异或|:或&:与5)逻辑运算符6)条件运算符21变量的作用域1)类的成员变量:A:类的静态成员变量,生命周期,从类加载开始到类刻意卸载结束,静态成员初始化后放到方法区。B:类的实例成员变量,类的实例成员变量初始化后放到队去。生命周期,此对象生成开始到对象生成结束。2)3)方法的参数:4)异常的参数:22数组数组就是相同元素类型的线性集合,是一个指向数组的引用对象.Iterator是一个迭代器接口ListIteraror继承Iterator,只能用于List接口Colleaction是集合框架的集成接口,List是有序可重复,Set是无序不可重复List实现了类ArrayList是实现了可变数组的数据结构LinkedList实现了双向链表的数据结构Set实现类HashSet实现了无序不重复LinkedHashSet有序不重复TreeSet升序不重复Map最大特点是键值对映射(keyvalu)实现类HashMap按照key无序LinkedHashMap按照key有序TreeMap按照key升序Utilities是集合框架的工具类,其下所有的类都是Static的Arrays是对数组辅助类。Comarable和Comparator是做比较排序的Victor1.3版本以前的,其代替ArrayList。Victor和ArrayList的区别:1)Victor是线程安全的,ArratyList不是,相比之下ArrayList的效率会高。2)当初始容量满的时候ArrayaList增加原来的一般,Victor增加原来的一倍。HashTble和HashMap,HaspTable是线程安全的,HashMap不是,HashMap效率高。2)HaspMap运行null的key存在,HaspTable不允。23类里可以有的成员属性名实例属性和静态属性方法静态方法和实例方法构造器缺省构造器和带参构造器静态代码块和实例代码块24参数传递1)对于基本数据类型,将实际变量原样的付给实参。2)对于引用类型,将引用类型的变量地址复制给实参。25this何时使用1)实例变量与局部变量同名用this,用this来区分实例变量名和局部变量名2)在构造器重载时,用this来调用其他的构造器3)在实例方法中,用来当作当前对象的引用传递给方法26方法的重载1)方法名要相同2)在一个类中多个方法具有不同的方法签名(方法签名包括不同的参数类型,参数个数,参数顺序)。3)返回值类型不做要求。27类的初始化过程1)在堆区分配内存空间(即new后的事情)。2)给对象属性符默认值。引用类型赋null。3)调用构造方法进一步赋值。28构造器类中提供的用于初始化对象的特殊方法。这个方法与类同名无返回值,类中没有提供构造器。Jvm会提供以默认的不带参的缺省的构造器。类中有带参的构造器,则jvm不再提供。30封装继承多态封装:1)将类的实现细节隐藏起来。2)对外提供一致的接口。3)提高系统的维护性。继承:一个类自动获得另一个类的属性或方法过程。使用:extends,单根继承。所有的类都是Object的子类。构造器不能被继承。子类初始化时默认调用父类缺省的构造器。子类调用弗雷带参的构造器,则父类可以不提供缺省的构造器.否则必须有缺省的构造器.(1)如何使用继承?1)区分Has-aIs-a.2)子类要扩充父类的功能.3)子类需要大量置换父类的功时,不应该使用继承.4)不要动工具类继承.(2)继承的有缺点?优点1)继承是最容易复用代码的形式2)修改父类功能时子类可以自动获得父类的功能.缺点:1)打破了封装,继承只是类型用.31复用1).编译时编译器检查声明的类型和方法信息2).运行时jvm对实例方法和引用变量即实际引用的对象动态绑定,对静态方法和引用的变量声明的类型静态绑定3).类的属性在编译阶段绑定。32instanceof判断实例是否是某个类型或其子类型的。用法:1)只能在夫子类之间进行比较。2)null可以进行比较结果为false,器返回值即为true或false。3)判断实例类型时,一般从子类开始。然后是父类。33override方法覆盖:子类重写父类中的方法。子类重写父类方法的条件:1)方法名相同。2)方法签名相同。3)返回值相同。4)子类的修饰符大于等于父类的修饰符。5)子类抛出的异常要小于等于父类抛出的异常。34依赖关系1)一个类中的方法,其局部变量类型是另一个类,则这两个类具有依赖关系。2)一个类中的方法,调用另一个类的静态方法。3)一个类中的方法参数是另一个类中的静态方法。35多态的运行机制1)在类编译阶段,编译器会检查类型是否匹配。2)在运行阶段,JVM会调用实例的对应方法。先检查父类的方法,然后检查子类的方法。然后编译器会检查实际声明的类型。36super1)子类调用父类的属性和方法。2)子类预付类有同名的方法时,子类可用super来区分是父类的方法。37finall1)finall修饰的类不能被继承。2)finall修饰的方法不能被覆盖。3)finall修饰的变量是常量,常量不可修改,但有例外。一种是实例常量,若定义时没有赋值,则可以在构造器或实例代码块时赋值,但二者只能选一个为其赋值。第二种静态常量,若定义时没有赋值则可以在静态代码块中赋值。38抽象类抽象类:具有部分实现的类。抽象类使用时注意事项:1)不能实例化。2)可有0到多个抽象方法。3)可有构造器。4)具体类继承抽象类时,必须实现所有的抽象方法。5)抽象类可以间接的被子类调用其构造器,并在内存中分配空间,简介实例化。6)抽象类可以有静态方法,可以返回其子类的实例。39怎样使用抽象类1)把个各类中可以共用的方法和逻辑,放到抽象的父类中,越多越好。2)属性应该尽可能的放到子类中。40接口一什么是接口:总宏观角度说是一个规范。从面向对象来说是一个类型。1)属性是常量一定要赋值。2)方法是抽象方法,没有方法体。3)没有构造器4)接口支持ctasting,支持强制类型转换。5)接口可以继承至多个接口。6)实现接口的类,必须实现全部方法。如果是抽象类则可以选择实现部分的方法。二为什么使用接口1)可插拔性的保证。可以随意更换接口的实现类。2)接口可以解决多继承的问题。3)接口使规范的制定者,实现者,使用者分开。40接口和抽象类的区别.1)接口没有任何实现,而抽象类可以有部分实现也可以没有。2)如果需要复用或者共享代码。应该用抽象类而不是接口。3)继承无法的解决类型转换问题,接口就是未解决这一问题而出生的41访问控制作用域当前类同一package子孙类其他packagepublic√√√√protected√√√×default√√××private√×××42static修饰符1)static修饰属性,成为静态属性,犬类都有,常叫类变量,和具体对象无关。无多态,类名去访问.2)修饰方法,静态方法中,只能访问静态成员.非静态方法中可以访问静态成员..工具类的对象都是static的.3)修饰代码块出世代码块是在类中,而不是在任何方法之内的,被static修饰的代码块被称为静态代码块,静态代码块在类加载的时候执行一次。43异常异常:JVM将程序中运行的不正常情况的现场信息打包成一个对象叫异常类对象。并且将此对象抛出,交由相应的方法或对象来处理。异常信息:记录了错误的原因,指出了错误的位置,打印了错误的栈信息。异常处理机制:是责任链机制,子类不处理异常。子类则交由父类处理。交由父类处理后知道追究到JVM然后跑给后台处理。子类不处理异常的原因:让程序能够执行完毕异常类的层次结构:error和exception都是throwable的子类。Error:错误,程序运行中发生的系统异常。此种异常当前程序一般无法解决。Exception:异常的分类1)checked:()编译器强迫必须捕获并处理的异常2)unchecked:对于此种异常编译器不要求捕获。RuntimeExc
本文标题:JAVA总复习
链接地址:https://www.777doc.com/doc-2878682 .html