当前位置:网站首页 > Java基础 > 正文

黑马Java基础班考试

www Jtheima cxxn

传智播/旗下

离?IT效育品牌

【黑马程序员】面试中常见Java面试题

Java面试中常见面试问题:

JDK和JRE有什么区别?

二二和equals的区别是什么?

两个对象的hashCode()相同,则equalsQ也一定为true ,对吗?

final在Java中有什么作用?

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

String属于基础的数据类型吗?

Java中操作字符串都有哪些类?它们之间有什么区别?

String str二丁与 String str=new String(i)一样吗?

如何将字符串反转?

String类的常用方法都有那些?

Java面试中常见面试题答案:

JDK和JRE有什么区别?

JDK : Java Development Kit的简称,Java开辟工具包,提供了 Java的开辟环境和运 ^亍环境。

JRE : Java Runtime Environment的简称,Java运行环境,为Java的运行提供了所需 尔竟。

具体来说JDK其实包含了 JRE ,同时还包含了编译Java源码的编译器Javac z还包含了 不少Java程序调试和分析的工具。简单来说:如果你需要运行Java程序,只需安装JRE

就可以了,如果你需要编写Java程序,需要安装JDKO

==和equals的区别是什么?

==解读

对于基本类型和引用类型==的作用效果是不同的,如下所示:

传智Ml客01

传智Ml客01下

? *IT效育品牌

www itheima com I

基本类型:比较的是值是否相同;

引用类型:比较的是引用是否相同;

代码示例:

String x = string;

String y = string;

String z 二 new StringCstring);

System.out.println黑马Java基础班考试(x= =y); // true

System.out.println(x= =z); // false

System.out.println(x.equals(y)); // true

System.out.println(x.equals(z)); // true

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

equals解读

equals本质上就是==,只无非String和Integer等重写了 equals方法,把它变成为 了值比较。看下面的代码就明白了。

首先来看默认情况下equals比较一个有相同值的对象,代码如下:

class Cat {

public Cat(String name) { = name;

)

private String name;

public String getName() {

return name;

www itheima com

)

public void setName(String name) {

= name;

)

)

Cat cl = new Cat(“王磊)

Cat c2 = new Cat(王磊)

System.out.println(cl.equals(c2)); // false

输出结果出乎我们的意料,居然是false ?这是怎么回事,看了 equals源码就知道了,源 码如下:

public boolean equals(Object obj) {

return (this == obj);

}

原来equals本质上就是二二。

那问题来了,两个相同值的String对象,为什么返回的是true ?代码如下:

String si = new String(老王”);

String s2 = new String(老王);

System.outprintln(sl.equals(s2)); // true

同样的,当我们进入String的equals方法,找到了答案,代码如下:

public boolean equals(Object anObject) {

if (this == anObject) {

return true;

)

if (anObject instanceof String) {

String anotherString = (String)anObject;

int n = value.length;

if (n == anotherString.value.length) {

www itheima com

char vl[] = value;

char v2[] = anotherString.value;

版权声明


相关文章:

  • 力扣刷JAVA基础2024-11-13 18:02:05
  • java基础3032024-11-13 18:02:05
  • java基础入门翁恺2024-11-13 18:02:05
  • 前端要有java基础吗2024-11-13 18:02:05
  • java校招基础面试题2024-11-13 18:02:05
  • java哈希表基础讲解2024-11-13 18:02:05
  • 张孝详java基础加强2024-11-13 18:02:05
  • 谁有Java基础设计毕业项目2024-11-13 18:02:05
  • java基础类库怎么看2024-11-13 18:02:05
  • Java基础语法没用2024-11-13 18:02:05