java面经——基础篇(2)

导读:本篇文章讲解 java面经——基础篇(2),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

💴哈喽,大家好丫,你们的小郭子又来啦 ~

1. 两个对象的 hashCode() 相同,则 equals() 也一定为 true 吗?

2. & 和 && 的区别?

3. 如何实现对象的克隆?

4. 构造方法有哪些特性?

 5. Java 中创建对象的几种方式?                

6. final、finally、finalize 的区别

7. Java 中的参数传递时传值呢?还是传引用?

8. 静态变量和实例变量的区别?

                   


💴哈喽,大家好丫,你们的小郭子又来啦 ~

话不多说,直接上干货,嘻嘻嘻 ~

java面经——基础篇(2)

1. 两个对象的 hashCode() 相同,则 equals() 也一定为 true 吗?

两个对象的 hashCode() 相同,equals() 不一定为 true。因为在散列表中,hashCode() 相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等【散列冲突】

2. & 和 && 的区别?

Java 中 && 和 & 都是表示与的逻辑运算符,都表示逻辑运输符 and,当两边的表达式都为 true 的时候,整个运算结果才为 true,否则为 false

&&有短路功能,当第一个表达式的值为 false 的时候,则不再计算第二个表达式;

&:不管第一个表达式结果是否为 true,第二个都会执行。除此之外,& 还可以用作位运算符:当 & 两边的表达式不是 Boolean 类型的时候,& 表示按位操作。

3. 如何实现对象的克隆?

(1)实现 Cloneable 接口并重写 Object 类中的 clone() 方法;

(2)实现 Serializable 接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深克隆。

4. 构造方法有哪些特性?

(1)名字与类名相同;

(2)没有返回值,但不能用 void 声明构造函数;

(3)成类的对象时自动执行,无需调用。

 5. Java 中创建对象的几种方式?                

1、使用 new 关键字

2、使用 Class 类的 newInstance 方法,该方法调用无参的构造器创建对象(反射):Class.forName.newInstance();

3、使用 clone() 方法

4、反序列化,比如调用 ObjectInputStream 类的 readObject() 方法。

6. final、finally、finalize 的区别

final用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖、被其修饰的类不可继承;

finally异常处理语句结构的一部分,表示总是执行;

finallize:Object类的一个方法,在垃圾回收时会调用被回收对象的finalize

7. Java 中的参数传递时传值呢?还是传引用?

Java 的参数是以值传递的形式传入方法中,而不是引用传递。

当传递方法参数类型为基本数据类型(数字以及布尔值)时,一个方法是不可能修改一个基本数据类型的参数。

当传递方法参数类型为引用数据类型时,一个方法将修改一个引用数据类型的参数所指向对象的值。即使 Java 函数在传递引用数据类型时,也只是拷贝了引用的值罢了,之所以能修改引用数据是因为它们同时指向了一个对象,但这仍然是按值调用而不是引用调用。

8. 静态变量和实例变量的区别?

静态变量:是被 static 修饰的变量,也称为类变量,它属于类,因此不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;静态变量可以实现让多个对象共享内存。

实例变量:属于某一实例,需要先创建对象,然后通过对象才能访问到它。

             

好啦,今天的分享到这里就结束啦 ~

觉得我分享的文章不错的话,可以关注一下哦,嘻嘻嘻

java面经——基础篇(2)

 

      

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73260.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!