Java 基础面试 实用而又不失颜

1、访问修饰词 public,private,protected ,以及默认(default) 修饰范围的区别?

在这里插入图片描述

2、Java 常见的基本数据类型 ?

Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。

3、float f=3.4;是否正确?

答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;

4、举例内存中的栈(stack)、堆(heap)和静态区(static area)的用法?

栈空间操作起来最快但是栈很小,通常大量的对象都是放在堆空间

String str = new String(“hello”);

上面的语句中变量str放在栈上,用new创建出来的字符串对象放在堆上,而”hello”这个字面量放在静态区。

5、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。

6、switch 的 case 可以放什么类型

答:byte、short 、int 、long、枚举、String 六种类型

7、== 和 equals()区别

答:“==” 比较的是值是否相等,equals() 一般比较的是地址是否相等 (Object 类equals 一般比较的是地址是否相等,String 类 一般比较的是 值是否相等)

8、一个函数里 break、continue、return 的区别?

答:
break 结束内层循环,到外层循环去 。
continue 结束本次循环,执行下一次循环。
return 结束该方法,返回值给调用者。

9、怎么判断一个对象是否属于某一个类?

答:“boolean result = object instanceof class 参数 Result:布尔类型。 Object:必选项。任意对象表达式。 class:必选项。任意已定义的对象类。”

10、final 在Java 中的作用?

答:1) final 修饰的类 不能被继承
2) final 修饰的方法 不能被重写
3)final 修饰的变量,必须初始化,并且不能被修改

11、String 属于基础的数据类型嘛?

答:String 不属于基础的类型,基础类型有八种:
byte、boolean、char、short、int、float、long、double,而 String 属于对象。

12、Java 操作字符串有哪些类?

答:String,StringBuffer, StringBuilder.
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。

StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。

13、普通类和抽象类有哪些区别?

答:1) 普通类不能包含抽象方法,抽象类可以包含抽象方法。
2)抽象类不能直接实例化,普通类可以直接实例化。

14、什么是线程安全和不安全?

答:线程安全: 指多个线程在执行同一段代码的时候采用加锁机制,使每次的执行结果和单线程执行的结果都是一样的,不存在执行程序时出现意外结果。
线程不安全: 是指不提供加锁机制保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。

15、Array 和 ArrayList 有何区别?

答:1) Array 可以存储基本数据类型和对象, ArrayList 只是存储对象
2)Array 指定固定大小,ArrayList 大小自动扩展
3)Array 内置方法没有ArrayList 多,比如 addAll ,remvoveAll,等只有ArrayList 含有。

16、怎么确保一个集合不被修改?

答:可以使用 Collections. unmodifiableCollection(Collection c) 方法来创建一个只读集合,这样改变集合的任何操作都会抛出 Java. lang. UnsupportedOperationException 异常。
示例:

List<String> list = new ArrayList<>();
list. add("x");
Collection<String> clist = Collections. unmodifiableCollection(list);
clist. add("y"); // 运行时此行报错
System. out. println(list. size());

待续·········

发布了354 篇原创文章 · 获赞 114 · 访问量 44万+

猜你喜欢

转载自blog.csdn.net/qq_27061049/article/details/104196980