Object类
1、Object类中有许多方法是用native修饰的,这些方法是本地方法,用C语言实现。
2、Object类的一些方法:
clone()方法:需要继承Clonable接口,并覆写clone(),修改为public权限,原来为protected
equals()方法:
finalize()方法:当垃圾收集器认为这个对象没有引用了,就会调用该对象的此方法
3、clone()方法详解:深拷贝和浅拷贝,深拷贝会将引用类型(指的是有其他定义的类,例如学术类、学校类等)一同克隆,但浅拷贝并不会。简单类型(简单类型即只包含基本类,Integer、String等)的类不区分深拷贝和浅拷贝。
Math类(final类)
1、floor()方法:将double类型的小数部分变为0了。例:num=10.36;Math.floor(num) 为10.0
2、ceil()方法:同样,向上取整
日期的操作类:Date类、SimpleDataFormat类、Calendar类
StringBuffer类(线程安全)
线程安全、和String类比较,内容可变。
重要方法:
public StringBuffer append():追加字符串
public StringBuffer delete(int start ,int end ):删除字符串,[start,end)【原字符串有影响】
public StringBuffer substring( int start ):截取字符串,start开始截取下标。【原字符串没有影响】
public StringBuffer substring(int start ,int end) 【原字符串没有影响】
StringBuilder类(线程不安全)
提供了和StringBuffer一样的方法,单线程中替换StringBuffer类的,在单线程情况下,优先使用StringBuilder,因为运行速度更快。
StringBuffer中的方法都是使用同步关键字修饰,synchronized
重点面试题:
Runtime类
只能通过getRuntime()方法来获取运行环境对象,因为其构造方法是private修饰的,不允许直接调用,只能通过getRuntime()来返回。方法如下:
(1) getRuntime():该方法用于返回当前应用程序的运行环境对象。
(2) exec(String command):该方法用于根据指定的路径执行对应的可执行文件。
public class Demo7 {
public static void main(String[] args) throws IOException, InterruptedException {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\Windows\\notepad.exe");//打开记事本程序,并返回一个进程
Thread.sleep(3000); //让当前程序停止3秒。
process.destroy();
}
}
(3) freeMemory():该方法用于返回Java虚拟机中的空闲内存量,以字节为单位。
(4) maxMemory():该方法用于返回Java虚拟机试图使用的最大内存量。
(5) totalMemory():该方法用于返回Java虚拟机中的内存总量。
public class Demo8 {
public static void main(String[] args) throws IOException{
Runtime runtime = Runtime.getRuntime();
System.out.println("Java虚拟机中的空闲内存量:"+runtime.freeMemory());
System.out.println("Java 虚拟机试图使用的最大内存量:"+ runtime.maxMemory());
System.out.println("返回 Java 虚拟机中的内存总量:"+ runtime.totalMemory());
}
}
Comparable接口
该接口用来实现对象的排序比较,有一个实现方法compareTo(),排序规则在这个方法中自定义
String类为什么可以支持字符串的比较,是因为String类实现的了Comparable接口,并在compareTo()方法中实现了字典序的排序规则。
枚举类
关键字:enum ,以这个定义的枚举类都是Enum的子类