-
JDK 和 JRE 有什么区别?
JDK(java development kit)java的开发工具包,里面包含了各种类库和工具。
JRE (Java Runtime Enviroment)java运行环境,最核心的内容就是JVM(Java虚拟机)及核心类库。 -
== 和 equals 的区别是什么?
== 内存空间中的存储位置是否一致,一般用于基本数据类型比较的是值
equals 比较两个对象的值是否相等,一般用于字符串内容是否相等比较多 -
两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
不一定相同。正常情况下,因为equals()方法比较的就是对象在内存中的值,如果值相同,那么Hashcode值也应该相同。但是如果不重写hashcode方法,就会出现不相等的情况。 -
final 在 java 中有什么作用?
被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被覆盖(重写) -
java 中的 Math.round(-1.5) 等于多少?
-1 -
String 属于基础的数据类型吗?
不属于 -
java 中操作字符串都有哪些类?它们之间有什么区别?
string:为字符串常量,对象一旦创建之后该对象是不可更改的,适用于少量的字符串操作的情况。
StringBuffer:字符串变量,对象一旦创建之后该对象可修改,适用多线程下在字符缓冲区进行大量操作的情况
StringBuilder:字符串变量,对象一旦创建之后该对象可修改,适用于单线程下在字符缓冲区进行大量操作的情况在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的
-
String str="i"与 String str=new String(“i”)一样吗?
不一样。
String str="i"字符串保存在常量池中,常量池中没有重复的元素,比如当执行代码“abc”时,java虚拟机会先在常量池中检索是否已经有“abc”,如果有那么就将“abc”的地址赋给变量,如果没有就创建一个,然后在赋给变量。
String str=new String(“i”)创建的对象保存在堆内存中即使内容一样还是会创建新的对象。 -
如何将字符串反转?
public static String reverse2(String s) {
int length = s.length();
String reverse = “”;
for (int i = 0; i < length; i++)
reverse = s.charAt(i) + reverse;
return reverse;
}
或
public static String reverse4(String s) {
return new StringBuffer(s).reverse().toString();
} -
String 类的常用方法都有那些?
replace()、split()、length()、indexOf()、lastIndexOf()、substring()、trim()、toLowCase()、toUpperCase()、equals()、charAt()、getBytes() -
抽象类必须要有抽象方法吗?
抽象类可以没有抽象方法 -
普通类和抽象类有哪些区别?
抽象类不能被实例化。
抽象类可以有构造函数,被继承时子类必须继承父类一个构造方法,抽象方法不能被声明为静态。
抽象方法只需申明,而无需实现,抽象类中可以允许普通方法有主体
含有抽象方法的类必须申明为抽象类
抽象的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类 -
抽象类能使用 final 修饰吗?
Java抽象类不可以被final修饰。因为抽象类必须被继承才能用,而final修饰的类是不能被继承的。 -
接口和抽象类有什么区别?
抽象类 和 接口 都是用来抽象具体对象的. 但是接口的抽象级别最高
抽象类可以有具体的方法 和属性, 接口只能有抽象方法和不可变常量
抽象类主要用来抽象类别,接口主要用来抽象功能.
抽象类中,且不包含任何实现,派生类必须覆盖它们。接口中所有方法都必须是未实现的。 -
java 中 IO 流分为几种?
两种类型的流:字节流(byte)和字符流(char) -
BIO、NIO、AIO 有什么区别?
同步阻塞IO(BIO):服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制来改善同步非阻塞IO(NIO):服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有IO请求时才启动一个线程进行处理
异步阻塞IO(AIO):服务器实现模式为一个有效请求一个线程,客户端的IO请求都是由操作系统先完成了再通知服务器用其启动线程进行处理。
-
Files的常用方法都有哪些?
createNewFile()、mkdir()、mkdirs()、 renameTo(File dest)、delete()、exists() 、isFile()、isDirectory()、isHidden()、isAbsolute()、getName() 、length() 、getParent()