【Java八股文总结】之类

Q:一个Java文件中可以有多个类么(不含内部类)?

答:可以,一个Java文件中可以有多个类,但是最多只能有一个被public修饰的类;此外,如果一个Java文件中包含public修饰的类,则这个类的类名必须和Java文件名保持一致。

一、Object类

1、Object类的常见方法有哪些?

在这里插入图片描述
在这里插入图片描述

2、== 和 equals() 的区别

在这里插入图片描述
在这里插入图片描述

3、HashCode()的作用?

在这里插入图片描述

4、为什么要有hashCode?

在这里插入图片描述

5、为什么重写equals()时必须重写hashCode()方法?

在这里插入图片描述

二、String类

1、String、StringBuffer、StringBuilder的区别?

在这里插入图片描述
在这里插入图片描述

2、String为什么是不可变的?

在这里插入图片描述

3、字符串拼接用“+”还是StringBuilder?

建议使用StringBuilder,因为使用“+”实际上还是调用StringBuilder来拼接字符串的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、String#equals() 和 Object#equals() 有何区别?

在这里插入图片描述

5、字符串常量池

字符串常量池 是JVM为了提升性能和减少内存消耗针对字符串(String类)专门开辟的一块区域。主要目的是为了避免字符串的重复创建。
String s1 = new String(“abc”);这句话创建了几个字符串对象?
创建1个或2个字符串对象 。(如果字符串常量池中不存在,则创建两个;反之,如果字符串常量池中存在,则创建一个)

6、intern方法有什么作用?

String.intern()是—个native(本地)方法,其作用是将指定的字符串对象的引用保存在字符串常量池中。可以简单分为两种情况:

  • 如果字符串常量池中保存了对应的字符串对象的引用,就直接返回该引用。
  • 如果字符串常量池中没有保存了对应的字符串对象的引用,那就在常量池中创建一个指向该字符串对象的引用并返回。
    在这里插入图片描述
7、String类型的变量和常量做“+”运算时发生了什么?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、实用类

1、枚举

枚举 Enum,是一种有确定值区间的数据类型,本质上就是一个类,具有简洁、安全、方便等特点。
枚举的值被约束到一个特定的范围内,只能从这个范围以内取值。

Q:为什么要有枚举?

因为描述某些对象的属性时,该属性的值不能随便定义,必须在某个特定的区间内取值,如星期、月份等。
出于对数据安全的考虑,类似这种有特定取值范围的数据我们就可以使用枚举来描述。
枚举指由一组常量组成的类型,指定一个取值区间,我们只能从区间中取值。

2、Math

在这里插入图片描述

3、random

用来产生随机数的类,并且可以任意指定一个区间,在此区间范围内产生一个随机数。
在这里插入图片描述

4、日期类
1、java.util.Date

Date表示当前的系统时间
SimpleDateFormat转换时间格式(“yyyy-MM-dd hh:mm:ss”)(M —— 月份,m —— 分钟,H —— 24小时制,h —— 12小时制)

2、java.util.Calendar

Calendar用来完成日期数据的逻辑运算
运算思路:(op + com + t)
①将日期数据传给Calendar (Calendar 提供了很多静态常量,专门用来记录日期数据)
在这里插入图片描述
②调用相关方法进行运算
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值