基本数据类型的包装类
基本数据类型并不是对象,为了将基本数据类型和对象之间实现相互转化,Java为每一个基本数据类型提供了相应的包装类。
自动装箱
基本类型的数据处于需要对象的环境中时,会自动转为“对象”。
自动拆箱
每当需要一个值时,对象会自动转成基本数据类型,没必要再去显示调用intValue()等转型方法
package group;
//自定义一个简单的包装类
public class MyInteger {
public static void main(String[] args) {
MyInteger a = new MyInteger(10);
MyInteger b = MyInteger.valueOf(100);
MyInteger b1=MyInteger.valueOf(100);
MyInteger b2=MyInteger.valueOf(1000);
MyInteger b3=MyInteger.valueOf(1000);
System.out.println(b==b1);
System.out.println(b2==b3);
}
private static MyInteger[] cache;
private static final int LOW = -128;
private static final int HIGH = 127;
static {
cache =new MyInteger[HIGH-LOW+1];
for(int i = LOW;i<=HIGH;i++) {
cache[i-LOW] = new MyInteger(i);
}//缓存机制
}
private final int value;
public MyInteger(int value) {
this.value = value;
}
public static MyInteger valueOf(int value) {
if(value>=LOW&&value<=HIGH) {
return cache[value-LOW];
}
return new MyInteger(value);
}//装箱
public int intValue() {
return value;
}//拆箱
}
String类
String类代表不可变的字符序列
StringBuilder和StringBuffer代表可变字符序列
StringBuffer:线程安全,效率低
StringBuilder:线程不安全,效率高
package group;
//测试字符串相关类
public class TestString {
public static void main(String[] args) {
StringBuilder sb1 = new StringBuilder("abc");
// StringBuffer sb2 = new StringBuffer("abc");
System.out.println(sb1);
sb1.append("123");//插入方法append
System.out.println(sb1);
sb1.delete(3, 5);//删除方法delete
System.out.println(sb1);
sb1.deleteCharAt(0);//删除指定位置上的字符方法deleteCharAt
System.out.println(sb1);
sb1.insert(0, "asdasd");
System.out.println(sb1);//在指定位置插入字符序列
sb1.reverse();//将字符序列逆序
System.out.println(sb1);
//以上方法均返回自己
}
}
Date类(Java.util.Date)
在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。
Date()分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒。
Date(long date),分配Date对象并初始化此对象,以表示自从标准基准时间以来的毫秒数。
Boolean equals(Object obj)比较两个日期的相等性。
long getTime()返回毫秒数
String toString()把此Date对象转换为String格式
package group;
import java.util.Date;
//测试时间类
public class TestDate {
public static void main(String[] args) {
long nowNum = System.currentTimeMillis();//返回计算机上的对应时间
System.out.println(nowNum);
Date date1 = new Date();
System.out.println(date1);
System.out.println(date1.getTime());
Date date2 = new Date(-10L*365*24*3600*1000);
System.out.println(date2);
System.out.println(date2.equals(date1));//比较两个时间是否相等
System.out.println(date2.before(date1));//比较两个时间的先后顺序
System.out.println(date2.after(date1));//比较两个时间的先后顺序
}
}
Math类
abs. 绝对值
acos,asin,atan,cos,sin,tan三角函数
sqrt平方根
pow(double a,double b)a的b次幂
max(double a,double b)取大值
min(double a,double b)取小值
ceil(double a)大于a的最小整数
floor(double a) 小于a的最大整数
random()返回0.0到1.0的随机数
long round(double a) double型的数据a转换为long型(四舍五入)
toDegrees(double angrad)弧度->角度
toRadians(double angdeg)角度->弧度
File类
java.io.File类:代表文件和目录,用于读取文件,创建文件,删除文件,修改文件
package group;
import java.io.File;
public class TestFile1 {
public static void main(String[] args) throws Exception {
System.out.println(System.getProperty("user.dir"));
File f = new File("a.txt");
f.createNewFile();//创建文件
System.out.println(f.exists());
f.delete();//删除文件
System.out.println(f.exists());
File f1 = new File("E:/123/456/789");
boolean flag = f1.mkdir();//如果目录结构不正确则无法创建
System.out.println(flag);//创建失败
flag = f1.mkdirs();//创建整个目录结构
System.out.println(flag);//创建成功
}
}