2022年JAVA基础知识点 .pdf





《2022年JAVA基础知识点 .pdf》由会员分享,可在线阅读,更多相关《2022年JAVA基础知识点 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 面向对象的软件开发有哪些优点? 1 )把软件系统看成是各种对象的集合,这更接近人的思维。2)软件需求的变动往往是功能的变动,而功能的执行者- 对象一般不会有太大的变化。这使得按照对象设计出来的系统结构比较稳定。3)对象包括属性和方法,对象把属性和方法的具体实现方式一起封装起来,这使得方法与之相关的属性不再分离,提高每个子系统的相对独立性,从而提高了软件的可维护性。 4 )支持封装、继承、多态和抽象,提高了软件的可重用性、可维护性和可扩展性。2 把一个类放在包里有什么作用?( 包的作用 ) 1 )能够区分名字相同的类。 2 )有助于实施访问权限控制。 3 )有助于划分和组织java 应用中的
2、各个类。3 说出一些常用的类,包,接口,请各举出5 个。 Runable,ActionListener,Conllection,Map,Set,List接口 1 )java.lang包-包括线程类 (Thread) 、异常类 (Exception)、系统类 (System) 、整数类 (Integer)和字符串类 (String) 等,这些类是 java 程序中经常用到的。 2 )java.awt包-抽象窗口工具箱包,awt 是(Abstract Window Toolkit) 的缩写。这个包中包含了用于构建GUI界面的类及绘图类。 3 )java.io包-输入/ 输出包,包含各种输入流类和输
3、出流类,如文件输入流类(FileInputStream类) 及文件输出流类 (FileOutputStream)等。 4 )java.util包-提供一些实用类,如日期类(Data) 和集合类 (Collection)等。 5 )包-支持 TCP/IP 网络协议,包括Socket 类及和 URL相关的类,这些类都用于网络编程。除了上面提到的基本包,JDK中还有很多其他包,比如用于数据库编程的java.sql包,用于编写网络程序的java.rmi包(rmi是 “Remote Method Invocation” 的缩写 ) 。 另外,javax.*包是对基本包的扩展, 包括用于编写GUI 的 j
4、avax.Swing包,以及用于编写声音程序的javax.sound包等。4. 描述一下你最常用的编程风格。 1 )注意编码规则,符合编码要求。 2 )变量,类等起名要有意义。 3 )经常格式化代码,注意格式。 4 )代码中加入测试方法或测试类,尽量提早发现错误。 5 )代码中要加入注释,为别人和自己将来理解代码带来方便。5. 说一说标识符的命名规则,以及java 的编程规范。 Java标识符的命名规则:1) 标识符由字母、数字、下划线“_” 、美元符号“ $”或者人民币符号“¥”组成,并且首字母不能是数字。2) 不能把关键字和保留字作为标识符。3) 标识符没有长度限制。4) 标识符对大小写敏
5、感。 Java编程规范:1)类名和接口名:首字母大写,其余字母小写。如SamDoc 2)方法名和变量名:首字母小写,其余的字母大写。如 bothEyesOfDoll。3)包名:字母全部小写。如,com.abc.dollapp。4)常量名:采用大写形式,单词之间以下划线“_”隔开。如 DEFAULT_COLOR_DOL。6用 new关键字的作用是什么? 1 ) 为对象分配内存空间,将对象的实例变量自动初始化为其变量类型的默认值。 2 ) 如果实例变量在声明时被显示初始化,那就把初始化值赋给实例变量。 3 ) 调用构造方法。 4 ) 返回对象的引用。名师归纳总结 精品学习资料 - - - - -
6、- - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 7简述变量的作用域。 1 ) 成员变量:在类中声明,它的作用域是整个类。 2 ) 局部变量:在一个方法的内部或方法的一个代码块的内部声明。如果在方法的内部声明,它的作用域是整个方法;如果在一个方法的某个代码块的内部声明,它的作用域是这个代码块。 3 ) 方法参数:方法或者构造方法的参数,它的作用域是整个方法或者构造方法。 4 ) 异常处理的参数:它的作用域是紧跟着catch(Exception e)后的代码块。
7、8静态变量和实例变量有什么区别? 1 ) 类的静态变量在内存中只有一个,java 虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名被访问。静态变量的生命周期取决于类的生命周期,当加载类的时候静态变量被创建并分配内存,当卸载类的时候,静态变量被销毁并撤销所在内存。 2 ) 类的每个实例都有相应的实例变量。每创建一个类的实例,java 虚拟机就为实例变量分配一次内存,实例变量位于堆中。实例变量的生命周期取决于实例的生命周期,当创建实例的时候,实例变量被创建并分配内存,当销毁实例的时候,实例变量被销毁并撤销所在内存。9使用 switch语句的
8、时候需要注意什么事项? 1 )在 switch(exp)语句中, exp 表达式的类型必须是与int类型兼容的基本类型,即能自动转换为int的类型。 包括 byte 、 short、char 和 int类型。其他类型不能作为exp 表达式的类型。 2 )在 case value字句中, value 表达式必须满足以下条件:1value 类型必须是与int类型兼容的基本类型,包括byte 、short 、char 和 int 类型。2value 必须是常量。3每个 case 子句的 value 表达式的值必须不同。 3 )在 switch语句中最多只能有一个default子句。 default子
9、句是可选的,并且可以位于switch语句中的任何位置。 4 )如果 switch表达式与某个case 表达式匹配,或者与default情况匹配,就从case 子句或 default子句开始执行。假如遇到了 break 语句,就退出整个switch语句,否则依次执行switch语句中后续的case 子句,不再检查case 表达式的值。10方法重载和覆盖的区别。重载方法必须满足以下条件: 1 )方法名相同。 2 )方法的参数类型、个数、顺序至少有一项不同。 3 )方法的返回类型可以不相同。 4 )方法的修饰符可以不相同。覆盖方法必须满足以下条件: 1 )子类方法的名称、参数签名和返回类型必须与父类
10、方法的名称、参数签名和返回类型一致。 2 )子类方法不能缩小父类方法的访问权限。 3 )子类方法不能抛出比父类方法更多的异常。 4 )方法覆盖只存在于子类和父类(包括直接父类和间接父类)之间。在同一个类中方法只能被重载,不能被覆盖。 5 )父类的静态方法不能被子类覆盖为非静态的方法。 6 )子类可以定义与父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法。 7 )父类的非静态方法不能被子类覆盖为静态方法。 8 )父类的私有方法不能被子类覆盖。 9 )父类的抽象方法可以被子类通过两种途径覆盖:一是子类实现父类的抽象方法;二是子类重新声明父类的抽象方法。 10 )父类的非抽象方法可以被覆
11、盖为抽象方法。方法重载和方法覆盖具有以下相同点: 1 )都要求方法名相同。 2 )都可以用于抽象方法和非抽象方法之间。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 方法重载和方法覆盖具有以下不同点: 1 )方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致。 2 )方法覆盖要求返回类型必须一致,而方法重载对此不做限制。 3 )方法覆盖只能用于子类覆盖父类的方法,而方法重载用于同一类的所有方法 4
12、)方法的覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制。 5 )父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次。11多态有什么样的特征?多态的特征如下: 1 )对于一个引用类型的变量,编译器按照它声明的类型处理。 2 )对于一个引用类型的变量,运行时java 虚拟机按照它实际引用的对象处理。 3 )在运行时环境中,通过引用类型变量来访问所引用对象的方法和属性时,java 虚拟机采用以下的绑定规则。 1 实例方法与引用变量实际引用的对象的方法绑定,这种绑定属于动态绑定,因为是在运行时由java 虚拟机动态决定的。 2 静态方法与引用变量所声明
13、的类型的方法绑定,这种绑定属于静态绑定,因为实际上是在编译阶段就已经做了绑定。 3 成员变量 ( 包括静态变量和实例变量) 与引用类型所声明的类型的成员变量绑定,这种绑定属于静态绑定,因为实际上是在编译阶段就已经做了绑定。12什么是多态?面向对象程序设计为什么要引入多态的特殊性?使用多态有什么优点?多态性是对象根据实际情况自动调用不同类层上适当的同名方法的一种现象。无论什么时候,创建有层次关系的一些类时,如果这些类有可能共享一个方法声明,就应当考虑分别在每个类中实现不同的方法。在超类中使用抽象( 或普通 ) 的方法,然后在子类中实现( 或覆盖 ) 该方法,这样就能产生多态性。多态性能使我们很容
14、易在从超类继承来的新类上添加新的功能。13继承的使用原则。 1 )继承树的层次不可太多,应该尽量保持在两到三层。如果继承树的层次过多会导致以下弊端: 1对象模型的结构太复杂,难以理解,增加了设计和开发的难度。 2影响了系统的可扩展性。 2 )继承层的上层为抽象层,继承树上层的类具有以下的作用: 1定义了下层子类都拥有的相同属性和方法,并且尽可能地为多数方法提供默认的实现,从而提高代码的可重用性。 2代表系统的接口,描述系统所能提供的服务。 3 )继承关系最大的弱点是打破了封装,对于专门用于被继承的类必须精心设计,应该遵循以下原则: 1对这些类必须提供良好的文档说明,使得创建该类的子类的开发人员
15、知道如何安全的扩展它。 2尽可能的封装父类的实现细节,也就是把代表实现细节的属性和方法定义为private类型。 3把不允许被子类覆盖的方法定义为final类型。 4父类的构造方法不允许调用可被子类覆盖的方法。 5如果某些类不是专门为了继承而设计,那么随意继承它是不安全的,因此可以采用以下两种措施来禁止继承: 1 把类声明为final类型。2 把这个类的所有构造方法声明为private类型,然后通过一些静态方法来负责构造自身的实例。14Abstract修饰符的用法。1)用 abstract修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化,即不允许创建抽象类本身的实例。2)用 a
16、bstract修饰的方法表示抽象方法,抽象方法没有方法体,不提供具体的实现。3)抽象类可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类。4)如果子类没有实现父类中所有的抽象方法,那么子类也必须被定义为抽象类,否则编译出错。5)没有抽象构造方法,也没有抽象静态方法。6)抽象类中可以有非抽象的构造方法,创建子类的实例时可能会调用这些构造方法。7)抽象类及抽象方法不能被final修饰符修饰。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 9 页 - -
17、 - - - - - - - 15Final修饰符的用法。1)用 final修饰的类不能被继承,没有子类。2)用 final修饰的方法不能被子类的方法覆盖。3)用 final修饰的变量表示常量。4)final不能用来修饰构造方法。5)用 final修饰的变量表示常量,只能被赋一次值。16Static修饰符的用法。 1 )静态变量在内存中只有一个拷贝,在类的所有实例中共享。 2 )在静态方法中不能直接访问实例方法和实例变量。 3 )在静态方法中不能使用this和 super 关键字。 4 )静态方法不能被abstract修饰。 5 )静态方法和静态变量都可以通过类名直接被访问。 6 )在类被加载
18、时,静态代码块只被执行一次。类中不同的静态代码块按它们在类中出现的顺序被依次执行。17接口的特征。 1 )接口中的成员变量默认都是public 、static、final类型的,必须被显示初始化。 2 )接口中的方法默认都是public 、abstract类型的。 3 )接口中只能包含public 、static、final类型的成员变量和public 、abstract类型的成员方法。 4 )接口没有构造方法,不能被实例化。 5 )一个接口不能实现另一个接口,但它可以继承多个其他接口。 6 )接口必须通过类来实现它的抽象方法。 7 ) 与子类继承抽象父类相似,当类实现某个接口时,它必须实现接
19、口中的所有抽象方法,否则这个类必须被定义为抽象类。 8 )不能创建接口的实例,但允许定义接口类型的引用变量,该变量引用实现了这个接口的类的实例。 9 )一个类只能继承一个直接的父类,但能实现多个接口。18比较抽象类与接口。抽象类与接口都位于继承树的上层,它们具有以下的相同点: 1 )代表系统的抽象层。 2 )都不能被实例化。3)都能包含抽象方法。这些抽象方法用于描述系统能提供那些服务,但不必提供具体的实现。抽象类与接口主要有两大区别: 1 )在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,提高代码的可重用性,这是抽象类的优势所在;而接口中只能包含抽象的方法。 2 )一个类
20、只能继承一个直接的父类,这个父类有可能是抽象类;但一个类可以实现多个接口,这是接口的优势所在。接口和抽象类各有优缺点,开发人员应该扬长避短,发挥接口和抽象类各自的长处。使用接口和抽象类总的原则如下: 1 )用接口作为系统与外界交互的窗口。 2 )由于外界使用者依赖系统的接口,并且系统内部会实现接口,因此接口本身必须十分稳定,接口一旦制定,就不允许随意修改,否则会对外界使用者及系统内部都造成影响。 3 )用抽象类来定制系统中的扩展点。19传统的异常处理与java 异常处理有什么区别。 1 )传统的表示异常情况的能力有限,仅靠方法的返回值难以表达异常情况所包含的所有信息。Java 把不同类型的异常
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年JAVA基础知识点 2022 JAVA 基础 知识点

限制150内