Java面试题基础篇

目录

1.JDK和JRE的区别

2.==和equals的区别是什么?

 


最近看了篇面试题文章,准备写篇博客复习下

Java面试题大纲

Java面试题基础篇_第1张图片

 

Java基础

1.JDK和JRE的区别

  • JDK:Java Development Kit的简称,即Java开发包工具,提供了Java的开发环境和运行环境。

  • JRE:Java RunTime Environment的简称,Java运行环境,为Java的运行提供了需要的环境

具体说JDK包含了JRE,同时还包含了Javac,还包含了很多Java程序员调试和分析的工具。

 

2.==和equals的区别是什么?

==:

 

对于基本类型和应用类型==的作用是不同的,如下所示

  • 基本类型:比较值是否相等

  • 引用类型:比较的是引用是否相等

 

代码示例:

String x="string";
String y="string";
String z = new String ("string");
System.out.println(x==y);//true
System.out.println(x==y);//false
System.out.println(x.equals(y));//true
System.out.println(x.equals(z));//true

代码解读:因为x和y指向的是一个引用,所以==也是true,而new String()方法则重新开辟了内存空间,所以==结果为false,而equals比较的一直是值,所以结果为true。

 

equals:

equals本质是==,只不过String和Integer等重写了equals方法,把它变成了值比较,我们来举个例子,定义实体类Cat,再定义两个对象比较。

Cat cat1 = new Cat("张三");
Cat cat2 = new Cat("张三");
System.out.println(cat1.equals(cat2));//false

String s1 = new String("张三");
String s1 = new String("张三");
System.out.println(s1.equals(s2));//true

我们发现是false,那为什么String的equals比较是true呢

原因就是String重写了Object的equals方法,把引用比较改成值比较。

3.两个对象的Hashcode()相同,equals()一定相同为true吗?

不对,因为在Hashcode()计算的是散列表的位置,而equals()比较的对应位置上存储的值,同一个位置可以存储多个值,所以不一定true

4.final在Java中有什么作用?

  • final修饰的类叫最终类,该类不能被继承
  • final修饰的方法不能被重写
  • final修饰的变量叫常量,常量必须初始化,初始化后值不得修改

5.Java中Math.round(-1.5)等于多少?

等于-1,原理是+0.5然后去掉小数

6.String属于基础类型吗?

基础类型有八种,没有String

7.String str=“i” 和String str = new String("i")一样吗?

String str=“i” 分配的是常量池的内存

String str = new String("i")分配的是堆中的内存

8.如何进行字符反转?

使用StringBuffer或者StringBuilder的reverse();

9.String类常用的方法有哪些?

  • indexOf() 返回指定字符的索引

  • charAt() 返回指定索引上的字符

  • replace() 替换字符串

  • trim() 去除两边空白

  • getBytes() 返回字符串的byte类型数组

  • length() 返回字符串长度

  • toLowerCase() 将字符串转为小写字母

  • toUpperCase()将字符串转为大写字母

  • substring()截取字符串。

  • equals() 字符串比较

10.接口类和抽象类有什么区别?

  • 实现:抽象类由extends继承,接口用implements继承

  • 构造方法:抽象类可以有构造方法,接口在1.8之前不能

  • 实现数量:类可以继承多个接口,但是只能继承一个抽象类

  • 访问修饰符:接口中默认方法使用public;抽象类可以任意访问修饰符

11.Files有哪些常用方法

  • Files.exists();文件路径是否存在

  • Files.createFile()创建文件

  • Files.createDirectory()创建文件夹

  • Files.delete()删除一个文件和目录

  • Files.copy()复制文件

  • Files.move()移动文件

  • Files.size()文件数量

  • Files.read()读取文件

  • Files.write()写入文件

 

 

 

 

你可能感兴趣的:(面试题)