1、java.io.Reader和java.io.InputStream的区别
Reader 用于读入16位字符,也就是 Unicode 编码的字符;而 InputStream 用于读入 ASCII 字符和二进制数据。
2、String、StringBuffer、StringBuilder
String类是不可变类,任何对String的改变都会引发新的String对象的生成;
StringBuffer是可变类,任何对它所指代的字符串的改变都不会产生新的对象,线程安全的。StringBuilder是可变类,线性不安全的,不支持并发操作,不适合多线程中使用,但其在单线程中的性能比StringBuffer高。
3、Java中继承和接口的区别
一个类只能继承一个类,但是可以实现多个接口;接口传达的意思是:拥有某种功能,能干嘛;继承传达的是意思是:is-a
4、Collection 和 Collections的区别:
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
HashMap不是线程安全的
HashTable是线程安全的一个Collection。
对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。
sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。
在调用sleep()方法的过程中,线程不会释放对象锁。
而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备
获取对象锁进入运行状态。
7、java实现四舍五入两位小数,使用哪个API
Math.round()
8、java截取字符串
split()+正则表达式来进行截取。
将正则传入split()。返回的是一个字符串数组类型。不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。
String str = "abc,12,3yy98,0";
String[] strs=str.split(",");
for(int i=0,len=strs.length;i<len;i++){
System.out.println(strs[i].toString());
}
运行结果:
abc
12
3yy98
0
通过subString()方法来进行字符串截取。
String sb = "bbbdsajjds";
sb.substring(2);
将字符串从索引号为2开始截取,一直到字符串末尾。(索引值从0开始);
Include指令 Forward指令 UseBean指令 GetProperty指令 SetProperty指令 Plugin指令
10、java单例
就是说,单例模式的类只能创建一个对象,这个经常用到的,比如解析配置文件的类就是单例的。
饿汉式
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
}
懒汉式
class Singleton {
private static Singleton instance=null;
private Singleton(){}
static Singleton getInstance() {
if(instance==null)
instance=new Singleton();
return instance;
}
}
创建单例的两种方式。你可以看到无论那种方式都将无参构造函数设为了私有,也就是说想得到这个类的对象是无法使用new来创建了,必须通过它提供的静态方法获得。而静态方法返回的是一个该类的静态对象,静态变量是全局唯一的,这样就保证了,每次get时始终都是返回的这个对象。
var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则
var phoneNum = '15507621999';//手机号码
var flag = reg.test(phoneNum); //true
12、js如何判断单选按钮被选中
利用checked属性判断就可以了。
document.getElementById('inp').checked == true