概念理论

java三大版本

J2SE(标准版) 、J2EE(企业版)、J2ME(微缩版)

==和equals

区别

  1. - ==对于基本类型来说就是值比较,对于引用类型(凡是用new关键的都是引用类型)来说是比较的引用
  2. - equals默认情况下是引用比较,只是很多类重写了,equals方法,比如StringInterger等把它变成了值比较,所以一般情况下equals比较的值是否相等。

关键字

final

final在java中有什么作用?

  1. - final修饰的类叫最终类,该类不能被继承
  2. - final修饰的方法不能被重写
  3. - final修饰的变量叫做常量,常量必须初始化,初始化之后值就不能被修改

字符串(String)

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

操作字符串的有:

  1. - String
  2. - StringBuffer
  3. - 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类常用的方法都有哪些?

  1. - indexOf():返回指定字符的索引
  2. - charAt():返回指定索引的字符
  3. - replace():字符串替换
  4. - trim(["change"]):去除字符串两端的空白,可指定去除两边的字符
  5. - split(["change"]):分割字符串,并返回一个数组,可指定以什么特殊字符分割
  6. - getBytes():返回字符串的byte类型数组
  7. - length():获取字符长度
  8. - toLowerCase():将字符串内容都转换为小写
  9. - toUpperCase():将字符串内容都转换为大写
  10. - substring(int beginIndex, int endIndex):截取字符串可指定从开头到结束的截取的位置
  11. - equals:字符串比较

正则表达式

请你谈谈Java中如何支持正则表达式操作的?

Java中的String类提供了支持正则表达式操作的方法,包括matches(),repalceAll()、replaceFirst()、split()。此外,Java中可以用Pattern类表示正则表达式对象,它提供了丰富的API进行各种正则表达式

请你简单描述正则表达式及其用途

在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的也需要,正则表达式就是用于描述这些规则的工具。

流程控制

数组

面向对象

异常

集合

IO流

网络编程

反射

Lambda表达式

新特性

面试访问路径:https://zhuanlan.zhihu.com/p/64147696