【Java八股文总结】之类

文章目录

      • Q:一个Java文件中可以有多个类么(不含内部类)?
      • 一、Object类
        • 1、Object类的常见方法有哪些?
        • 2、== 和 equals() 的区别
        • 3、HashCode()的作用?
        • 4、为什么要有hashCode?
        • 5、为什么重写equals()时必须重写hashCode()方法?
      • 二、String类
        • 1、String、StringBuffer、StringBuilder的区别?
        • 2、String为什么是不可变的?
        • 3、字符串拼接用“+”还是StringBuilder?
        • 4、String#equals() 和 Object#equals() 有何区别?
        • 5、字符串常量池
        • 6、intern方法有什么作用?
        • 7、String类型的变量和常量做“+”运算时发生了什么?
      • 三、实用类
        • 1、枚举
          • Q:为什么要有枚举?
        • 2、Math
        • 3、random
        • 4、日期类
          • 1、java.util.Date
          • 2、java.util.Calendar

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

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

一、Object类

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

【Java八股文总结】之类_第1张图片
【Java八股文总结】之类_第2张图片

2、== 和 equals() 的区别

【Java八股文总结】之类_第3张图片
【Java八股文总结】之类_第4张图片

3、HashCode()的作用?

【Java八股文总结】之类_第5张图片

4、为什么要有hashCode?

【Java八股文总结】之类_第6张图片

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

【Java八股文总结】之类_第7张图片

二、String类

1、String、StringBuffer、StringBuilder的区别?

【Java八股文总结】之类_第8张图片
【Java八股文总结】之类_第9张图片

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

【Java八股文总结】之类_第10张图片

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

建议使用StringBuilder,因为使用“+”实际上还是调用StringBuilder来拼接字符串的。
【Java八股文总结】之类_第11张图片
【Java八股文总结】之类_第12张图片
【Java八股文总结】之类_第13张图片
【Java八股文总结】之类_第14张图片

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

在这里插入图片描述

5、字符串常量池

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

6、intern方法有什么作用?

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

  • 如果字符串常量池中保存了对应的字符串对象的引用,就直接返回该引用。
  • 如果字符串常量池中没有保存了对应的字符串对象的引用,那就在常量池中创建一个指向该字符串对象的引用并返回。
    【Java八股文总结】之类_第15张图片

7、String类型的变量和常量做“+”运算时发生了什么?

【Java八股文总结】之类_第16张图片
【Java八股文总结】之类_第17张图片
【Java八股文总结】之类_第18张图片

三、实用类

1、枚举

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

Q:为什么要有枚举?

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

2、Math

【Java八股文总结】之类_第19张图片

3、random

用来产生随机数的类,并且可以任意指定一个区间,在此区间范围内产生一个随机数。
【Java八股文总结】之类_第20张图片

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 提供了很多静态常量,专门用来记录日期数据)
【Java八股文总结】之类_第21张图片
②调用相关方法进行运算
【Java八股文总结】之类_第22张图片

你可能感兴趣的:(Java学习乐园,java,jvm,开发语言)