JAVA基本知识点(适合面试)

上传人:go****e 文档编号:136846320 上传时间:2020-07-02 格式:PDF 页数:8 大小:175.97KB
返回 下载 相关 举报
JAVA基本知识点(适合面试)_第1页
第1页 / 共8页
JAVA基本知识点(适合面试)_第2页
第2页 / 共8页
JAVA基本知识点(适合面试)_第3页
第3页 / 共8页
JAVA基本知识点(适合面试)_第4页
第4页 / 共8页
JAVA基本知识点(适合面试)_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《JAVA基本知识点(适合面试)》由会员分享,可在线阅读,更多相关《JAVA基本知识点(适合面试)(8页珍藏版)》请在金锄头文库上搜索。

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 的 jav

4、ax.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) 返回对象的引用。 7简述变量的作用

6、域 1)成员变量:在类中声明,它的作用域是整个类。 2)局部变量:在一个方法的内部或方法的一个代码块的内部声明。如果在方法的内部声明,它的作用域是整个方法; 如果在一个方法的某个代码块的内部声明,它的作用域是这个代码块。 3)方法参数:方法或者构造方法的参数,它的作用域是整个方法或者构造方法。 4)异常处理的参数:它的作用域是紧跟着 catch(Exception e)后的代码块。 8静态变量和实例变量有什么区别? 1) 类的静态变量在内存中只有一个,java 虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被 类所有实例共享。静态变量可以直接通过类名被访问。静态变量的生命周期取

7、决于类的生命周期,当加载类的时候静 态变量被创建并分配内存,当卸载类的时候,静态变量被销毁并撤销所在内存。 2) 类的每个实例都有相应的实例变量。每创建一个类的实例,java 虚拟机就为实例变量分配一次内存,实例变量位实例变量位 于堆中于堆中。实例变量的生命周期取决于实例的生命周期,当创建实例的时候,实例变量被创建并分配内存,当销毁实例 的时候,实例变量被销毁并撤销所在内存。 9使用 switch 语句的时候需要注意什么事项? 1)在 switch(exp)语句中,exp 表达式的类型必须是与表达式的类型必须是与 int 类型兼容的基本类型类型兼容的基本类型,即能自动转换为 int 的类型。包

8、括 byte、 short、char 和和 int 类型类型。其他类型不能作为 exp 表达式的类型。 2)在 case value 字句中,value 表达式必须满足以下条件: 1value 类型必须是与 int 类型兼容的基本类型,包括 byte、short、char 和 int 类型。 2value 必须是常量。 3每个 case 子句的 value 表达式的值必须不同。 3)在 switch 语句中最多只能有一个 default 子句。default 子句是可选的,并且可以位于 switch 语句中的任何位置。 4)如果 switch 表达式与某个 case 表达式匹配,或者与 def

9、ault 情况匹配,就从 case 子句或 default 子句开始执行。假 如遇到了 break 语句,就退出整个 switch 语句,否则依次执行 switch 语句中后续的 case 子句,不再检查 case 表达式的 值。 10方法重载和覆盖 重载方法必须满足以下条件: 1)方法名相同 2)方法的参数的数据类型、个数、顺序至少有一项不同 3)方法的返回类型可以不相同 4)方法的修饰符可以不相同 覆盖方法必须满足以下条件: 1)子类方法的名称名称、参数签名参数签名和返回类型返回类型必须与父类方法的名称、参数签名和返回类型名称、参数签名和返回类型一致; 2)子类方法不能缩小父类方法的访问权

10、限; 3)子类方法不能抛出比父类方法更多的异常; 4)方法覆盖只存在于子类和父类(包括直接父类和间接父类)之间。在同一个类中方法只能被重载,不能被覆盖; 5)父类的静态方法不能被子类覆盖为非静态的方法; 6)子类可以定义与父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法; 7)父类的非静态方法不能被子类覆盖为静态方法; 8)父类的私有方法不能被子类覆盖; 9)父类的抽象方法可以被子类通过两种途径覆盖:一是子类实现父类的抽象方法;二是子类重新声明父类的抽象 方法; 10)父类的非抽象方法可以被覆盖为抽象方法。 方法重载和方法覆盖具有以下相同点: 1)都要求方法名相同; 2)都可以用于

11、抽象方法和非抽象方法之间。 方法重载和方法覆盖具有以下不同点: 1)方法覆盖要求参数签名参数签名必须一致,而方法重载要求参数签名参数签名必须不一致; 2)方法覆盖要求返回类型返回类型必须一致,而方法重载对返回类型返回类型不做限制; 3)方法覆盖只能用于子类覆盖父类子类覆盖父类的方法,而方法重载用于同一类同一类的所有方法; 4)方法的覆盖对方法的访问权限和抛出的异常访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制; 5)父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次。 11多态有什么样的特征? 多态的特征特征如下: 1)对于一个引用类型的变量,编译器按照它

12、声明的类型处理。 2)对于一个引用类型的变量,运行时 java 虚拟机按照它实际引用的对象处理。 3)在运行时环境中,通过引用类型变量来访问所引用对象的方法和属性时,java 虚拟机采用以下的绑定规则: 1 实例方法与引用变量实际引用的对象的方法绑定,这种绑定属于动态绑定,因为是在运行时由 java 虚拟机动态 决定的。 2 静态方法与引用变量所声明的类型的方法绑定,这种绑定属于静态绑定,因为实际上是在编译阶段就已经做了 绑定。 3 成员变量(包括静态变量和实例变量)与引用类型所声明的类型的成员变量绑定,这种绑定属于静态绑定,因为实 际上是在编译阶段就已经做了绑定。 12什么是多态?面向对象程

13、序设计为什么要引入多态的特殊性?使用多态有什么优点? 多态性是对象根据实际情况自动调用不同类层上适当的同名方法的一种现象。无论什么时候,创建有层次关系的一 些类时,如果这些类有可能共享一个方法声明,就应当考虑分别在每个类中实现不同的方法。在超类中使用抽象(或普 通)的方法,然后在子类中实现(或覆盖)该方法,这样就能产生多态性。多态性能使我们很容易在从超类继承来的新类 上添加新的功能。 13继承的使用原则。 1)继承树的层次不可太多,应该尽量保持在两到三层。如果继承树的层次过多会导致以下弊端: 1对象模型的结构太复杂,难以理解,增加了设计和开发的难度。 2影响了系统的可扩展性。 2)继承层的上层

14、为抽象层,继承树上层的类具有以下的作用: 1定义了下层子类都拥有的相同属性和方法,并且尽可能地为多数方法提供默认的实现,从而提高代码的可重用 性。 2代表系统的接口,描述系统所能提供的服务。 3)继承关系最大的弱点是打破了封装,对于专门用于被继承的类必须精心设计,应该遵循以下原则: 1对这些类必须提供良好的文档说明,使得创建该类的子类的开发人员知道如何安全的扩展它。 2尽可能的封装父类的实现细节,也就是把代表实现细节的属性和方法定义为 private 类型。 3把不允许被子类覆盖的方法定义为 final 类型。 4父类的构造方法不允许调用可被子类覆盖的方法。 5如果某些类不是专门为了继承而设计

15、,那么随意继承它是不安全的,因此可以采用以下两种措施来禁止继承: (1) 把类声明为 final 类型。 (2) 把这个类的所有构造方法声明为 private 类型,然后通过一些静态方法来负责构造自身的实例。 14Abstract 修饰符的用法 1)用 abstract 修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化,即不允许创建抽象类本身的 实例。 2)用 abstract 修饰的方法表示抽象方法,抽象方法没有方法体,不提供具体的实现。 3)抽象类可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类。 4)如果子类没有实现父类中所有的抽象方法,那么子类也必须被定义为抽象

16、类,否则编译出错。 5)没有抽象构造方法,也没有抽象静态方法。 6)抽象类中可以有非抽象的构造方法,创建子类的实例时可能会调用这些构造方法。 7)抽象类及抽象方法不能被 final 修饰符修饰。 15Final 修饰符的用法。 1)用 final 修饰的类不能被继承,即没有子类。 2)用 final 修饰的方法不能被子类的方法覆盖。 3)用 final 修饰的变量表示常量。 4)final 不能用来修饰构造方法。 5)用 final 修饰的变量表示常量,只能被赋一次值。 16Static 修饰符的用法。 1)静态变量在内存中只有一个拷贝,在类的所有实例中共享。 2)在静态方法中不能直接访问实例方法和实例变量。 3)在静态方法中不能使用 this 和 super 关键字。 4)静态方法不能被 abstract 修饰。 5)静态方法和静态变量都可以通过类名直接被访问。 6)在类被加载时,静态代码块只被执行一次。类中不同的静态代码块按它们在类中出现的顺序被依次执行。 17接口的特征。 1)接

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号