java面试题加答案(java面试基础问题)
导语:Java(基础)面试题帮你查缺补漏
我们在学习Java的过程中,有的时候不知道自己掌握的如何,这个时候除了多敲代码,还可以找一些面试题来自己回答一下,看看自己的基础到底掌握的怎么样。下面是一些经常被提问的Java基础面试题,希望能够帮助大家查缺补漏。
青岛Java
1、JDK 和 JRE 有什么区别?
答:JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。
即:JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。
2、== 和 equals 的区别是什么?
答:(1)==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同 。
(2)==是指对内存地址进行比较 , equals()是对字符串的内容进行比较。
(3)==指引用是否相同, equals()指的是值是否相同。
3、两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
答:不一定。同时反过来equals为true,hashCode也不一定相同。类的hashCode方法和equals方法都可以重写,返回的值完全在于自己定义。
4、final 在 java 中有什么作用?
答:根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。
final类不能被继承,没有子类,final类中的方法默认是final的。
final方法不能被子类的方法覆盖,但可以被继承。
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final不能用于修饰构造方法。
注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。
5、Java 中的 Math.round(-1.5) 等于多少?
答:Math.round(-1.5)的返回值是-1。
注:这道题目考察的主要知识点就是:Math.round方法的返回值类型。
6、String 属于基础的数据类型吗?
答: String类并不是基本数据类,而是一个类(class),是C++、java等编程语言中的字符串。
String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。
7、Java 中操作字符串都有哪些类?它们之间有什么区别?
主要是:String、StringBuffer和StringBuilder。
区别:String是不可变的对象,对每次对String类型的改变时都会生成一个新的对象,StringBuffer和StringBuilder是可以改变对象的。对于操作效率:StringBuilder > StringBuffer > String。对于线程安全:StringBuffer 是线程安全,可用于多线程。StringBuilder 是非线程安全,用于单线程不频繁的字符串操作使用 String。
8、String str="i"与 String str=new String("i")一样吗?
答:不一样,因为内存的分配方式不一样。String str="i"的方式,Java 虚拟机会将其分配到常量池中;而 String str=new String(“i”) 则会被分到堆内存中。
9、如何将字符串反转?
答:1、通过String类的charAt()的方法来获取字符串中的每一个字符,然后将其拼接为一个新的字符串。
2、通过String的toCharArray()方法可以获得字符串中的每一个字符串并转换为字符数组,然后用一个空的字符串从后向前一个个的拼接成新的字符串。
3、通过StringBuiler的reverse()的方法,最快的方式。
4、通过递归的方式,其实有以上的就可以了,但是还是说一下递归,实在是应为这个感觉高大上一点而已。
10、String 类的常用方法都有那些?
答:
本文内容由小凡整理编辑!