Java 杂谈

十年架构师:从Java码农到年薪80w需要知道那些面试题

2019-05-05  本文已影响0人  a847c1ac3b3f

小编在这里总结了十道Java面试题,希望对大家有所帮助。

如果有想学习java的同学,可来我们的java技术学习QQ群:928204055,免费送整套系统的java视频教程!我每晚上8点还会在群内直播讲解Java知识,欢迎大家前来学习哦。

1、JDK 和 JRE 区别

JDK全名为Java development kit

JRE全名为Java Runtime environment

JDK包括JRE,编译器javac,以及很多调试和分析工具,例如jconsole等等

Java程序运行环境必须有JRE

2、==和equals的区别

在基本数据类型对比中,==用于对比两者是否相等,没有equals的适用

equals是Object类的实例方法,若子类没有重写equals方法,则跟==作用一致

在引用数据类型对比中,==用于对比实例内存地址是否相同,若引用都指向同一对象,则返回true

在引用数据类型对比中,euqals的返回值取决于重写逻辑

3、两个对象的 hashCode()相同,则 equals()也一定为 true,对吗

equals用于对比对象间是否相等

hasCode则是给对象返回一个hash code值

在使用Object默认的hasCode以及equals时,equals返回为true

若hasCode或equals任一方法被重写,返回的结果取决于重写逻辑的实现

4、final 在 Java 中作用

final可以修饰类,方法,变量

final修饰类,则该类不能被继承,且类内所有方法自动指定为final方法

final修饰方法,则该方法不能被继承,类内private隐式指定为final方法

final修饰基本数据类型变量,则该变量需在定义时指定初始值,且后续该值不能被改变

final修改引用类型的变量,则该变量不能再指向其他对象。

final修饰变量,在编译时JVM已经将他作为常量,存放于常量池中

5、Java 中的 Math.round(-1.5)

Java 中的 Math.round(-1.5) 等于-1

Java 中的 Math.round(-1.4) 等于-1

Java 中的 Math.round(-1.6) 等于-2

6、String 属于基础的数据类型吗

String不属于基础数据类型,属于引用数据类型

String拥有很多方法对字符串进行处理,翻转裁切追加等等

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

StringBuilder以及StringBuffer

StringBuffer为线程安全的,性能较StringBuilder弱

StringBuilder为线程不安全的,但是性能比StringBuffer好

若无线程安全的考虑,通常使用StringBuilder

8、String str="i"与 String str=new String(“i”)一样吗

不一样

两者的引用都存放于栈中,但是前一引用指向常量池,后一引用指向堆中对象中,对象再指向常量池

9、如何将字符串反转

采用递归以及二分法进行字符串反转

调用String中的reverse方法进行反转

正序遍历字符串倒序拼接字符串

将字符串转换成字符数组,倒序遍历数组拼接

正序遍历1/2长度字符串,将开头以及对应结尾的字符对调

10、String 类的常用方法

字符类

* charAt(int),根据索引找到索引上字符* indexOf,寻找条件在当前字符串上的索引

字符串信息类

* length,字串长度* isEmpty,判断字符串是否为空

字符串操作类

* trim,删除字符串中所有空格* substring,截取一部分字符串* toUpperCase,将字符串全变成大写* spilt,根据条件切割字符串并返回数组* concat,追加字符串

对比

* equals* compareTo

欢迎关注胖胖爱Java的简书号,可视化学习java,每天更新文章,让Java学习更加简单。

声明:本文内容来源于网络,如有侵权请联系删除

上一篇下一篇

猜你喜欢

热点阅读