《Java基础知识学习(共11页).docx》由会员分享,可在线阅读,更多相关《Java基础知识学习(共11页).docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上Java基础知识学习1、Java的三个版本:J2ME:主要用于控制移动设备和信息家电等有限存储的设备J2SE:是整个Java技术的核心和基础,它是J2ME和J2EE编程的基础J2EE:Java技术中应用最广泛的部分,J2EE提供了企业应用开发相关的完整解决方案2、Java语言的竞争对手:C#,Ruby,Python3、高级语言的运行机制计算机高级语言按程序的执行方式可以分为:编译型和解释型两种。现有的C,C+,FORTRAN,Pascal等高级语言都属于编译型语言;现有的Ruby,Python等语言都属于解释型语言。4、Java虚拟机(JVM)JVM是一个抽象的计算机
2、,和实际的计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据、内存和寄存器。JVM是Java跨平台的转换器。5、一个Java源文件可以包含多个类定义,但最多只能包含一个public类定义;如果Java源文件里包含public类定义,则该源文件的的文件名必须与这个public类的类名相同。6、垃圾回收机制只能回收内存资源,对其他物理资源如数据库连接、磁盘I/O等无用。7、面向对象的三种基本特性:继承、封装和多态。8、面向对象的组成部分:OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程);采用UML(统一建模语言)描述并记录OOA和OOD的结果。9、方法
3、的所属性如果要定义方法,则只能在类体内定义,不能独立定义一个方法。一旦将一个方法定义在某个类体内,如果这个方法使用了static修饰,则这个方法属于这个类,否则这个方法属于这个类的对象。10、方法的参数传递机制在Java中方法的参数传递方式只有一种:值传递。所谓值传递就是将实际参数值的副本传入方法内,而参数本身不会受到任何影响。11、封装两方面的含义:把该隐藏的隐藏起来,把该暴露的暴露出来;通过使用Java提供的访问控制符来实现。12、继承(组合也可实现类的重用)Java的继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类被称为父类。Java的子类不能获得父类的构造器。Ja
4、va摒弃了C+中难以理解的多继承特征,即每一个类最多只有一个直接父类。方法重写:子类包含与父类同名方法的现象,也被称为方法覆盖(Override)。方法重写遵循“两同两小一大”规则:“两同”即方法名、形参列表相同;“两小”即子类方法返回值类型应比父类方法返回值类型更小或者相等、子类方法声明抛出的异常应比父类方法声明抛出的异常类更小或者相等;“一大”指的子类方法的访问权限应比父类方法更大或者相等。方法重写要么都是类方法,要么都是实例方法。调用父类的构造器:在一个构造器中调用另一个重载的构造器使用this调用实现,在子类中调用父类构造器使用super调用实现。13、多态Java引用变量有两个类型:
5、一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型有实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就会出现所谓的多态。14、Java的常用包15、初始化操作的两种方法:构造器和初始化块。初始化块是构造器的补充,初始化块总是在构造器执行之前执行。16、final关键字Java提供了final关键字来修饰变量、方法和类,系统不允许为final变量重新赋值,子类不允许覆盖父类的final方法,final类不能派生子类。final修饰的类属性、实例属性能指定初始值的地反如下:类属性:可在静态初始化块中、声明该属性时指定初始值;实例属性:可在非静
6、态初始化块、声明该属性、构造器中指定初始值。17、包装类解决8个基本数据类型的变量不能当成Object类型变量使用的问题。18、Object类提供的toString方法总是返回该对象实现类的类名+hashCode值,这个返回值并不能真正实现“自我描述”的功能,因此如果用户需要实现“自我描述”的功能,必须重写Object类的toString方法。19、类成员在Java类里只能包含属性、方法、构造器、初始化块、内部类和枚举类等六种成员。其中static可以修饰属性、方法、初始化块、内部类和枚举类,以static修饰的成员就是类成员。类成员属于整个类,而不属于单个对象。(null对象可以访问他所属类
7、的类成员,但不能访问实例成员)20、抽象类抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。抽象方法和抽象类的规则:抽象类、抽象方法必须使用abstract来修饰,抽象方法不能有方法体;抽象类不能被实例化;抽象类可以包括类的六种成分,抽象类的构造器主要用于被其子类调用;static 和abstract不能同时修饰某个方法,即没有所谓的类抽象方法。abstract方法必须被子类重写才有意义,故private和abstract不能同时使用。21、更彻底的抽象:接口接口的定义使用interface关键字。一个接口可以有多个直接父类接口(
8、多继承),但接口只能继承接口,不能继承类。接口里可以包含属性(只能是常量)、方法(只能是抽象的实例方法)、内部类(包括内部接口)和枚举类的定义。接口不能用于创建实例,接口的主要用途就是被实现类实现。一个类可以实现一个或者多个接口,继承使用extends关键字,实现则使用implements关键字。一个类实现了一个或者多个接口后,必须重写接口里面的所有抽象方法。22、接口和抽象类:都不能被实例化,他们位于继承树的顶端,用于被其他类实现和继承;都可以包含抽象方法,实现接口或者继承类的普通子类都必须实现这些抽象方法;接口体现的是一种规范,抽象类体现的是一种模板式设计。接口只能包含抽象方法,抽象类可以
9、包含普通方法;接口不能定义静态方法,抽象类可以定义静态方法;接口只能定义静态常量属性,抽象类可以定义普通属性;接口不包含构造器、初始化块,抽象类可以包含但不用于创建对象;一个类最多只有一个直接父类,但一个类可以直接实现多个接口。23、内部类把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类。内部类的作用:内部类提供了更好的封装,可以把内部类隐藏在外部类中,不允许同一个包中其他类问该类;内部类可以直接访问外部类的私有数据,但外部类不能访问内部类的实现细节;匿名内部类适合用于创建那些仅需要一次使用的类。非静态内部类里不能有静态方法、静态属性、静态初始化块。静态内部类(stati
10、c修饰)是外部类类相关的,属于整个外部类;静态内部类可以包含静态成员、非静态成员,静态内部类不能访问外部类的实例成员只能访问它的类成员,静态内部类的实例方法也不能访问外部类的实例成员。对于局部成员而言,不管是局部变量,还是局部内部类,他们的作用域是所在的方法,所以static、访问控制符无用。24、闭包和回调闭包是一种能被调用的对象,它保存了创建它的作用域的信息。回调就是允许客户类通过内部类引用来调用其外部类的方法。25、枚举类(enum)实例有限而且固定的类。枚举类可以实现一个或者多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类;枚举类的构造器只能使用private
11、修饰符;枚举类的所有实例必须在枚举类中显示列出,否则这个枚举类将永远不能产生实例;所有枚举类都提供一个values方法,可以方便地遍历所有的枚举值。26、对象在内存中的状态当一个对象在堆内存中运行时,根据他被引用变量所引用的状态,可分为三种状态:激活状态:当一个对象被创建后,有一个以上的引用变量引用它;去活状态:某个对象不再有任何引用变量引用它,在这个状态系统会调用所有去活状态对象的finalze方法进行资源清理,如果finalize方法有可能使该对象激活;死亡状态:当对象与所有引用关联被切断,且执行finlize方法也没使其激活。强制垃圾回收的方法:(但系统是否进行了垃圾回收仍不确定)调用S
12、ystem类的gc()静态方法:System.gc()调用Runtime对象的gc()实例方法:Runtime.getRuntime().gc()27、修饰符的使用范围28、Java的集合类保存数据量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组);集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。数组元素既可以是基本数据类型也可以是对象,而集合类只能保存对象。Java的集合类主要由两个接口派生而出:Collection和Map。Iterator接口也是Java集合框架的成员,但它与Collection系列、Map系列的集合不一样:Collection、Map系列集合主要
13、用于盛装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器。Iterator必须依附于Collection对象。有一个Iterator对象则必然有一个与子关联的Collection对象。Iteraor迭代访问Collection集合元素时不能改变它的元素只有通过Iterator的remove方法来删除上一次next方法返回的集合元素才可以。29、泛型Java的参数化类型被称为泛型。创建这种特殊集合方法:在集合接口、类后面增加尖括号,尖括号里放一个数据类型,即表明这个集合接口、集合类只能保存特定类型的对象。包含泛型声明的类型可以再定义变量、创建对象时传入一个类型实参,从而可以动态生成无数多个逻辑上的子类,但这种子类在物理上并不存在。当创建带泛型声明的自定义类,为该类定义了构造器时,构造器名还是原来的类名,不要增加泛型声明;但调用该构造器时却可以使用带类型形参传入。静态方法、静态初始化或者静态变量的声明和初始化不允许使用类型形参。为了表示各种泛型的父类,可以使用类型通配符(?),比如List类的父类List(ps:本文章由北大青鸟广安门校区搜集自互联网)专心-专注-专业
限制150内