概念理论
java三大版本
J2SE(标准版) 、J2EE(企业版)、J2ME(微缩版)
==和equals
区别
- ==对于基本类型来说就是值比较,对于引用类型(凡是用new关键的都是引用类型)来说是比较的引用
- equals默认情况下是引用比较,只是很多类重写了,equals方法,比如String,Interger等把它变成了值比较,所以一般情况下equals比较的值是否相等。
关键字
final
final在java中有什么作用?
- final修饰的类叫最终类,该类不能被继承
- final修饰的方法不能被重写
- final修饰的变量叫做常量,常量必须初始化,初始化之后值就不能被修改
字符串(String)
java中操作字符串有哪些类?它们之间有什么区别?
操作字符串的有:
- String
- StringBuffer
- StringBuilder
区别:
String和StringBuffer、StringBuilder的区别在于String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象,而StringBuffer、StringBuilder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用String
StringBuffer和StringBuilder最大区别在于,StringBuffer是线程安全的,而StringBuilder是非线程安全的,但StringBuilder的性能高于StringBuffer,所以在单线程环境下推荐使用StringBuilder,多线程环境下推荐试音StringBuilder。
String str=””和String str=new String(“”)一样吗?
不一样,因为内存的分配方式不一样。String str=””的方式,java虚拟机将其分配到常量池中;而String str=new String(“”)则会被分配到堆内存中
注意:凡是使用new关键字的都是会被分配到堆内存中
String类常用的方法都有哪些?
- indexOf():返回指定字符的索引
- charAt():返回指定索引的字符
- replace():字符串替换
- trim(["change"]):去除字符串两端的空白,可指定去除两边的字符
- split(["change"]):分割字符串,并返回一个数组,可指定以什么特殊字符分割
- getBytes():返回字符串的byte类型数组
- length():获取字符长度
- toLowerCase():将字符串内容都转换为小写
- toUpperCase():将字符串内容都转换为大写
- substring(int beginIndex, int endIndex):截取字符串可指定从开头到结束的截取的位置
- equals:字符串比较
正则表达式
请你谈谈Java中如何支持正则表达式操作的?
Java中的String类提供了支持正则表达式操作的方法,包括matches(),repalceAll()、replaceFirst()、split()。此外,Java中可以用Pattern类表示正则表达式对象,它提供了丰富的API进行各种正则表达式
请你简单描述正则表达式及其用途
在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的也需要,正则表达式就是用于描述这些规则的工具。
流程控制
数组
面向对象
异常
集合
IO流
网络编程
反射
Lambda表达式
新特性
面试访问路径:https://zhuanlan.zhihu.com/p/64147696