Object
java中的顶级父类。任何一个类都将Object作为父类,也就意味着任何一个对象都可以赋值给Object对象。Object类也是Java中唯一的一个没有父类的类。
方法介绍:
Clone() --- 如果一个对象要想被克隆,那么这个对象所对应的 类必须实现接口 ---Cloneable --- 这个接口中没有任何的方法和属性仅仅起标志性的作用
Finalize() --- 通知GC回收垃圾,GC不一定启动
Equals() --- 比较俩个对象是否相等,未重写是比较的地址值
getClass() 返回此Object的运行时类,-->Class
hashCode()返回该对象的哈希码值
Notify() 唤醒在此对象监视器上等待的单个线程
notifyAll()唤醒在此对象监视器上等待的所有线程
toString()返回该对象的字符串表示。
Wait() 在其他线程调用此对象的notify()方法或notifyAll()方法,导致当前线程等待
Wait(long timeout) 在其他线程调用此对象的 notify()方法或notifyAll()方法,或者超过指定的时间量前,导致当前线程等待。
Wait(long time,int namos)
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
String
最终类(使用final修饰不可被继承)。代表字符串的类,所有的字符串都是String的对象。
字符串是一个常量,定义好之后不可改变。
因为字符串是一个常量,所以它是被共享的 --- 只要值相同,用的都是同一个字符串
字符串本质上是一个不可变的字符数组
注意:在String中提供了一系列操作而不改变原字符串的方法,大部分都是产生了一个新的字符串,所以拼接字符串效率较低,单线程建议使用StringBuilder,线程并发情况下使用StringBuffer
包装类
基本类型身上没有属性和方法让便捷的操作数据,因此针对每一种基本类型提供了对应的类形式的包装类。
基本类型对应的包装类
byte | short | int | long | float | double | char | boolean | void |
Byte | Short | Integer | Long | Float | Double | Character | Boolean | Void |
当把基本类型的变量直接赋值给对应的引用类型的对象 --- 自动封箱,底层是调用了对应类身上的valueOf()方法
当把应用类型的对象直接赋值给对应的基本类型的变量 --- 自动拆箱,底层是调用了对应对象身上的**Value方法
strictfp关键字:
原来在程序中是以64位二进制来计算小数
strictfp要求方法在计算过程中以80位二进制来计算小数
但是计算完成之后仍然要求结果以64位二进制来进行存储
Number 类是数字的总类:
子类有:
- AtomicInteger(可以用原子方式更新int值)
- AtomicLong(可以用原子方式更新Long值)
- BigDecimal(大数集合,能够精确运算小数,要求参数以字符串形式传递)
- BigInteger(大类型Int类型)
- Byte, Double, Float, Integer, Long, Short
关于原子类Atomic的介绍在后续更新中会补上。
日期类
Date -- 时间表示类
SimpleDateFormat -- 日期格式转换类
日期与字符串的相互转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
Date date = sdf.parse("2000.12.15 18:58:45");
SimpleDateFormat sdf2 = new SimpleDateFormat("yy年MM月dd日\r\nHH时mm分ss秒");
String str = sdf2.format(date);
Calender 日期类(进行日期的格式转换和时间调整)
Calender calender=Calender.getInstance();
//设置当前基于的时间
claender.setTimelnMillis("时间毫秒值");
calender.set(Claendar.HOUR,0);//进行小时时段的设置
....//基于设置的时间,进行各个时间段时间的设置
Long time=calender.getTimelnMillis();//获取改变后时间的毫秒值