1.valueOf()
对于一般类而言是将基本类型封装成包装类的函数
对于String类而言是将参数转换成String类型
和toString()的区别,valueOf()是静态函数,toString()是普通函数
2.Character
Character是char的包装类,引用类型
3.为什么泛型只能用引用类型?
因为基本类型,没有class对象,java代码在编译阶段会进行泛型擦除,将类型转换成Object,类型校验也是在编译期间完成
4.substring()
这个函数专门用来截取String字符串的子字符串,有两个参数(起点包含,终点不包含)
5.抽象函数和接口的区别
(1)一个类只能继承一个抽象类,但是一个类却可以同时实现多个接口
(2)抽象类有普通函数,抽象函数,可变的成员变量,构造方法,静态方法
接口只有抽象函数(隐式),默认函数(default 无方法实现),静态函数,常量(隐式 public static final)
(3)抽象函数可以方法和属性可以使用private,public,protected,接口只能使用public
6.方法重载和重写的区别
方法重载:同名不同参数
方法重写:子类重新实现父类方法,实现多态
7.几个设计模式
(1)单例模式:一个类全局只有一个实例
(2)工厂模式:定义工厂接口子类决定实例哪个类
(3)建造者模式:分布构建复杂对象(如Stringbuilder)
8.String类
java中的String类是受final修饰,底层是private final char[],是不可变的
对应想要修改String如何操作
(1)使用StringBuilder(单线程,效率高)
java
String s = "hello";
StringBuilder sb = new StringBuilder(s);
sb.append("world!");
sb.insert(0,"Hi");
sb.delete(0,3);
sb.replace(0,1,"H");
String ans = sb.toString();
(2)使用StringBuffer(线程安全,速度慢)
什么叫做线程安全?多个线程同时操作一个对象的时候,结果依然正确叫做线程安全。
方法自带synchronized锁
9.synchronized
synchronized是java中的锁,用来保证线程安全
一般用来锁方法或者锁代码块