1.常用类
1.1包装类
八种基本数据类型的包装类
例:
int num = 8;
Integer num = 8;//对象
byte short int long float double char boolean
Byte Short Integer Long Float Double Character Boolean
//
Integer i1 = 1000;
Integer i2 = 1000;
System.out.println(i1==i2);//false
Integer i3 = 100;
Integer i4 = 100;
System.out.println(i3==i4);//true
//编译:
public static void main(String args[])
{
Integer i1 = Integer.valueOf(1000);
Integer i2 = Integer.valueOf(1000);
System.out.println(i1 == i2);
Integer i3 = Integer.valueOf(100);
Integer i4 = Integer.valueOf(100);
System.out.println(i3 == i4);
}
valueOf():
public static Integer valueOf(int i) {
//low:-128 high:127
if (i >= IntegerCache.low && i <= IntegerCache.high)
//内部类IntegerCache里面的一个静态数组
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
1.2 String
方法:
new String();//这个方法有很多重载
int length():长度
String toLowerCase(),toUpperCase():大小写转换
boolean equals(Object obj):比较字符串相等
int compareTo(String str):比较的是码表
String[] split():截断
char[] toCharArray():把字符串转为字符数组
String replace(old,new):替换
int indexOf(findStr[,fromIndex]):获取第一个位置的下标
String trim():去除两端空格
String subString(beginIndex[,endIndex]):前含后不含
//compareTo比较:
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;//比较下一位
}
return len1 - len2;
}
1.3 时间API
Date:
Date date = new Date();//获取当前时间
long millTimes = date.getTime();
Calendar:
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(c.get(Calendar.YEAR));//年份
System.out.println(c.get(Calendar.MONTH)+1);//月份
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.DAY_OF_WEEK));
System.out.println(c.get(Calendar.DATE));
System.out.println(c.get(Calendar.DAY_OF_WEEK_IN_MONTH)); System.out.println(c.get(Calendar.DAY_OF_YEAR));
SimpleDateFormat:
格式化
把字符串转为日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS");
Date date = sdf.parse("1900年12月30日 12:0:0 111");
System.out.println(sdf.format(date));
1.4 Math
public class TestMath {
public static void main(String[] args) {
System.out.println(Math.sin(Math.toRadians(30)));//三角函数
System.out.println(Math.sqrt(-9));//开方
System.out.println(Math.ceil(3.1));//向上取整
System.out.println(Math.floor(3.9));//向下取整
int num = Math.round(4.5f);
System.out.println(num);//取整 --四舍五入
System.out.println(Math.pow(8, 1.0/3));//多少次方
System.out.println(Math.random());//[0,1)随机数
System.out.println(abs(-2147483648));//取绝对值
System.out.println(max(8, 13));
}
}
1.5 Random
伪随机:
Random r = new Random(种子);
不给种子的话,那么种子跟时间有关,给了就用给定的种子
1.6 System
System.exit(int)//退出虚拟机
System.getProperties()//获取所有系统信息
System.getProperty("os.name")//获取某一个系统信息
System.out;//
System.err;
System.in;
1.7 Runrime
public static void main(String[] args) {
Runtime rt = Runtime.getRuntime();
int ps = rt.availableProcessors();
int[] nums = new int[500000000];
System.out.println(ps);
System.out.println(rt.totalMemory());//总内存---jvm实际从操作系统要到的内存
System.out.println(rt.maxMemory());//最大内存---jvm能到操作系统要到的最大内存
System.out.println(rt.freeMemory());//空闲内存--jvm剩余的内存
}
1.8 BigDecimal,BigInteger
大数值类型
public static void main(String[] args) {
long l1 = Long.MAX_VALUE;
System.out.println(l1);
BigInteger bi1 = new BigInteger("9223372036854775808");
System.out.println(bi1.add(new BigInteger("1")));//运算
System.out.println(0.01+0.09);
//精确
BigDecimal bd1 = new BigDecimal("0.01");
BigDecimal bd2 = new BigDecimal("0.09");
System.out.println(bd1.add(bd2));
}
2.枚举
public enum 枚举名字{
MON,TUS,WED,THR,FRI,SAT,SUN;
//先调用父类的构造方法,给每个枚举构造了一个name和ordinal属性
//把所有的枚举存为一个数组
//valueOf():字符串转枚举
//values():把缓存数组copy一份给你
}
编译后:
public final class Week extends Enum
{
public static final Week MON;
public static final Week TUS;
public static final Week WED;
public static final Week THR;
public static final Week FRI;
public static final Week SAT;
public static final Week SUN;
private static final Week ENUM$VALUES[];//存所有的枚举
private Week(String s, int i)
{
super(s, i);
}
//这个方法是提供所有的枚举值
//防止改
public static Week[] values()
{
Week aweek[];
int i;
Week aweek1[];
System.arraycopy(aweek = ENUM$VALUES, 0, aweek1 = new Week[i = aweek.length], 0, i);
return aweek1;
}
public static Week valueOf(String s)
{
return (Week)Enum.valueOf(com/qf/day17/clazz/enumdemo/Week, s);
}
static
{
MON = new Week("MON", 0);
TUS = new Week("TUS", 1);
WED = new Week("WED", 2);
THR = new Week("THR", 3);
FRI = new Week("FRI", 4);
SAT = new Week("SAT", 5);
SUN = new Week("SUN", 6);
ENUM$VALUES = (new Week[] {
MON, TUS, WED, THR, FRI, SAT, SUN
});
}
}
枚举的本质是常量集合
枚举类默认已经继承了Enum这个类,因此不能继承其他类,但是可以实现接口