java基础
1.jre是java运行环境,包含jvm和java基础类库。jdk是java开发运行环境,包含jre和编译器。开发安装jdk,运行可以只安装jre。
2.==比较的是地址值,equals比较的是内容。
3.不一定,在hashCode和equals都调用自Object类时,hashCode()相同,equals一定为true。在重写了equals和hashCode方法时,hashCode相同,equals不一定为true。但是equals为true,hashCode一定相同。
4.final可以修饰类、方法、变量。被修饰后,类不可以被继承,方法不可以被重写,变量只能被赋值一次。
5.四舍五入:-1。
6.不是基本数据类型,String是一个类,是引用数据类型。
7.String,Stringbuffer,Stringbuilder。String是字符串常量,每次字符串变了后,其实都是在创建新的对象。Stringbuffer和Stringbuild是字符串变量。但是Stringbuffer是线程安全的。
8.从写法上看,两者是一样的,String str="i"在class文件中,实际是写成String str = new String(“i”);从比较方面看,两者不一样,都各自创建了一个新对象。
9.第一种直接调用StringBuilder的**reverse()**方法;通过split(),toCharArray()等方法,将字符串变成数组,然后通过遍历的方式,拼接成反转的字符串;
String str = "abcdef";
String rts = new StringBuilder(str).reverse().toString();
String str = "abcdef";
String[] strs = str.*split*("");
String rts = "";
for(int i = strs.*length*-1;i >= 0;i--){
rts = rts+strs[i];
}
10.subString(),equals(),trim(),replace(),split().length()
11.抽象类可以没有抽象方法,但是抽象方法一定是在抽象类中。
12.抽象类不能被实例化;抽象类不能有构造方法,抽象方法不能为静态。抽象类可以有抽象方法;抽象类的方法必须被非抽象子类抽象。
13.抽象类不能被final修饰,因为被final修饰的类不能继承,抽象类不能被继承,那里面的方法就不能被重写,那抽象类就失去了意义。
14.接口是特殊的抽象类,相同点是两者都有抽象方法,不同点是接口只能有抽象方法,不能有普通方法,接口的变量只能是公共的静态常量,抽象类的变量是普通变量。
15.io流分为:从流的方式分为输入流和输出流。从流的类型分为:字节流、字符流
16.BIO同步堵塞的,即io行为同步,线程堵塞。NIO同步非堵塞:io行为同步,线程非堵塞。AIO异步非堵塞:io行为异步,线程非堵塞。
17.exists();delete();createFile();createDirectory();move();copy();read();write();size()