基础java题目

1.jdk,jre,jvm的关系
java开发工具包包含java开发环境,包含java虚拟机

2.继承的好处和特点
提高了代码的复用性
提高了代码的维护性
类和类之间产生了关系,是多态的前提
但是类的耦合性增强了

3.局部变量和成员变量的区别
成员变量:在类中方法外面
局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中)
成员变量:在堆中(方法区中的静态区)
局部变量:在栈中
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失
成员变量:有默认初始值
局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错(The local variable xxx may not have been initialized)

4.java有哪些类型,什么是自动拆装箱
字符类型char
布尔类型boolean
整数类型byte、short、int、long
浮点数类型float、double。
这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。

5.类变量和实例变量的区别
实例变量为所属对象所私有,而类变量为所有对象所共有
6.static关键字的特点
修饰成员变量和成员方法
静态代码块
修饰类(只能修饰内部类)
静态导包(用来导入类中的静态资源,1.5之后的新特性)

7.实现对象克隆
clone()进行浅复制,另外一种方法进行深复制

8.类的修饰符的区别
①该类自身;②与它在同一个包中的其它类;③在其它包中的该类的子类。使用修饰符 protected 的主要作用是允许其它包中它的子类来访问父类的特定属性。
9.如何实现序列化
Java中实现序列化的两种方式 Serializable 接口和 Externalizable接口
10.抽象类和接口的关系
抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
抽象类要被子类继承,接口要被类实现。
接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。
抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果
抽象类里可以没有抽象方法
如果一个类里有抽象方法,那么这个类只能是抽象类
抽象方法要被实现,所以不能是静态的,也不能是私有的。
接口可继承接口,并可多继承接口,但类只能单根继承。
11.两个对象值相同,切有不同的两个hashcode
两个对象值相同(x.equals(y) == true),则一定有相同的hash code。

14.封装的原则
对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。
对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的
15.java参数传递的问题
参数传递一般有两种,一种是“传值”,另一种是“传地址值”。传值是指在调用方法时,把参数的值传递给方法,而传地址值则是给方法提供参数的地址值。Java中的参数传递方法都为传值调用。下面我通过例子来验证。

猜你喜欢

转载自blog.csdn.net/weixin_37565521/article/details/84787811