当前位置:   article > 正文

面试题整理-Java基础

面试题整理-Java基础

1.JDK和JRE的区别

  • JDK:Java Development Kit的简称,Java开发工具包,提供了Java的开发环境和运行环境
  • JRE:Java Runtime Enviroment的简称,Java运行环境,为Java的运行提供了所需环境

具体来说JDK包含了JRE,同时还包含了编译Java源码的编译器Javac,还包含了很多Java程序调试和分析的工具。简单来说:如果你需要运行Java程序,只需要安装JRE就可以了,如果你需要编写Java程序,需要安装JDK。

 

2.==和equals的区别

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

  • 基本类型:比较的是值的引用是否相同
  • 引用类型:比较的是引用是否相同

equals本质是==,只不过String和Integer重写了equals方法,把它变成了值比较。

==对于基本类型来说是值比较,对于引用类型来说是引用比较;而equals默认情况下是引用比较,只是很多了重新了equals方法,比如String、Integer等把它变成了值比较,所以一般情况下equals比较的是值是否相等

 

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

不一定,会出现不同的值 hashcode值相同的情况。

 

4.final在Java中有什么作用

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

 

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

等于-1,因为在数轴上取值时,中间值0.5向右取整,所以正0.5是往上取整,负0.5直接舍去

 

6.String属于基本数据类型吗

不属于,基本数据类型有8种,byte,short,int,long,double,float,char,boolean

 

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

String,StringBuffer,StringBulider

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

StringBuffer 和 StringBulider的最大的区别在于,StringBuffer是线程安全的,StringBulider是非线程安全的,但StringBuilder性能高于StringBuffer,所以在单线程的情况下使用StringBulider,多线程的情况下使用StringBuffer

 

8.String str = "i" 和 String str = new String("i")一样吗?

不一样,分配内存的方式不同。String str = "i" 的方式,Java虚拟机会将其分配到常量池中,而String str = new String("i") 会被分配到堆内存中。

 

9.如何反转字符串

使用StringBuffer 或 StringBulider的reverse()方法。

 

10.String有哪些常用的方法

  • indexOf():返回指定字符的索引
  • charAt():返回指定索引的字符
  • replace():字符串替换
  • trim():去除字符两端空格
  • split():分割字符串
  • getBytes():返回字符串的byte数组
  • length():返回字符串长度
  • toLowerCase():将字符串转换成小写
  • toUpperCase():将字符串转换成大写
  • substring():截取字符串
  • equals():字符串比较

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/657554
推荐阅读
相关标签
  

闽ICP备14008679号