Java开发工程师最新面试题库系列——Java基础部分 (3)

答:接口没有构造方法,抽象类有。抽象类中可以有普通成员变量;接口中没有普通成员变量。抽象类中可以包含非抽象普通方法;接口中的所有方法必须都是抽象的,不能有非抽象的方法。一个类可以实现多个接口,用逗号隔开,但只能继承一个抽象类;接口不可以实现接口,但可以继承接口,并且可以继承多个接口,用逗号隔开。

接口里面可以写方法实现吗?

答:可以,jdk1.8之后可以写接口的默认方法实现

Java中的UUID是什么?

答:生成一串随机的数字,它保证对在同一时空中的所有机器都是唯一的

Java类初始化顺序是怎样的?

答:如下

img

img

hashCode有什么作用?

答:hashcode在java中用于表示对象的唯一码。hashcode也用在Hash数据结构中,用来计算对象存放在Hash中的位置(存储地址)

hashCode和identityHashCode的区别?

答:

Object类中的hashCode方法会返回一个hash码,只有指向同一个对象的引用变量调用才会返回相同值,而String类中放宽了要求,对象里的值相等也返回相同值

identityHashCode方法是System类中的方法,调用该方法时,不管类中是否重写了Object类中的hashCode方法,都执行Object类中的hashCode方法,返回一个hashCode值。所以只有指向同一个对象的引用变量调用才会返回相同值

什么是Hash冲突?

答:两个对象都放入同一个hash容器中,且计算出的hash值都相同。也称为hash碰撞,此时的解决办法是再hash

Java常用的元注解有哪些?

答:

@Target:描述了注解修饰的对象范围

METHOD:用于描述方法

PACKAGE:用于描述包

PARAMETER:用于描述方法变量

TYPE:用于描述类、接口或enum类型

@Inherited:使被它修饰的注解具有继承性

@Retention:表示注解的运行时期范围

RetentionPolicy.SOURCE -------------注解将被编译器丢弃

RetentionPolicy.CLASS -------------注解在class文件中可用,但会被VM丢弃

RetentionPolicy.RUNTIME ---------VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息

@Documented:使用 javadoc 工具为类生成帮助文档时是否要保留其注解信息

Java泛型中的T、R、K、V、E分别指什么?

答:

? --不确定的Java类型,是一个通配符泛型

T --表示确定的Java类型

K、V --Java中的键值对key、value

E --Element (在集合中使用,因为集合中存放的是元素,也表示Collection容器中的类型)
Java源码中的Class代表这个类型所对应的类,而Class<?>表示类型不确定的类。

Java金额计算怎么避免精度丢失?

答:使用BigDecimal进行与金钱相关的计算

Java语法糖是什么意思?

答:通过提供简单的编写方式在编译时完成对复杂操作的转换。通常是指Java中的简单语法,在编译时期还原成基础语法。

transient关键字有什么作用?

答:将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会被序列化

如何实现对象克隆?

答:Java对象克隆又分深拷贝和浅拷贝,浅拷贝调用Object跟对象继承下来的clone,深拷贝可以借助SpringFramework提供的BeanUtils工具或者通过Java的序列化与反序列化实现。

对象克隆浅拷贝和深拷贝有什么区别?

答:浅拷贝与深拷贝的区别,浅拷贝:如果对象中还包括着子对象,浅拷贝只能拷贝一份父对象的内存空间,而子对象则只是拷贝了其引用,值没有进行拷贝。深拷贝则是涉及到这个对象当前所占的所有空间(值)都进行拷贝。

Java反射机制有什么作用?

答:反射可以让程序在运行时具有检测自己和获取当前运行环境的能力。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxwpz.html