Java面试题-Java基础(⑫)-常用类

85 阅读2分钟

Java面试题-Java基础(⑫)-常用类

Java面试题专栏---点击进入学习

是.png

1.final,finally,finalize的区别

fina和fnally属于关键字

finalize属于Object类中的方法

final修饰属性,称之为常量,值不能改变

final修饰方法,不能被重写

final修饰类,不能被继承

finally用于处理异常,表示任何情况都执行的代码块

finalize表示当前对象被垃圾回收自动调用的方法

2.手写冒泡排序

for(n - 1)

for(n - 1 - i)

if(条件成立)

// 交换位置

3.int,long,char,short包装类使用==比较的特点

如果直接使用等号赋值,取值在byte范围以内,则多个不同的对象==比较为true

如果取值超出byte范围,则多个对象==比较为false

4.什么是自动拆箱和装箱,jdk版本有什么要求? 代码举例并标明

装箱: 将基本数据类型自动转换为包装类类型 Integer a = 100;

拆箱:将包装类对象自动转换为基本数据类型 int b = a;

JDK1.5开始支持

5.Math类获取随机数的方式,向上取整,向下,四舍五入

Mathrandom()

Math.ceil()

Math.floor()

Math.round()

6.Random类获取随机数的方式

nextBoolean()

nextInt()

nextlnt(int bound)

nextLong()

nextFloat()

nextDouble()

7.NumberFormatException是什么异常? 代码说明会导致这种异常的情况

数字格式化异常

Integer a = new Integer("abc");

Integer.parselnt("hello world");

8.写出你知道的String类常用方法

length()

equals()

equalslgnoreCase()

toLowerCase()

toUpperCase()

concat()

startsWith()

endsWith()

contains()

replace()

substring()

intdexOf()

lastIndexOf()

split()

trim()

replaceAll()

toCharArray()

charAt()

9.基本数据类型以及对应包装类

byte short int long float double boolean char

Byte Short Integer Long Float Double Boolean Character

10.String类为什么不可变,有没有什么方式使String可变

1.String类使用final修饰,表示不能有子类

2.维护字符串的char数组是使用final修饰的,表示不能指向新的地址

3.维护字符串的char数组也使用private修饰,表示只能在String类内部操作使用反射可以改变String的内容

11.String,StringBuffer和StringBuilder的区别

String是不可变字符串对象

StringBuffer和StringBuilder是可变字符串对象

StringBuffer是线程安全的

StringBuilder线程不安全

12.写出你所知道的日期相关类

Date

Calendar

SimpleDateFormat

LocalDate

LocalTime

LocalDateTime

13.有哪些内部类

普通内部类

静态内部类局部内部类匿名内部类

14.instanceof关键字的作用

判断左侧的对象是否属于右侧的类型

15.手写任意一种单例模式

public class HungrySingleton{

private static HungrySingleton instance = new HungrySingleton();

private HungrySingleton(){}

public static HungrySingleton getlnstance(){

return instance;

}

}

16.匿名内部类的前提

必须是接口或者是抽象类

17.书写结果

String str1 = "abc":

String str2 = "abc";

String str3 = "a" + "abc"

String str4 = new String ("abc") ;

String str5 = new String ("abc").intern () :

String str6 ="a"

String str7 ="bc";

String str8 = str6 + str7;

System. out. println (str1 == str2) ; true

System. out.println (str1 == str3); false

System. out. println (str1 == str4) ; false

System. out.println (str1 == str5) ; true

System. out. println (str1 == str8) ; false