System类
//1.exit(0),0表示正常状态
//退出程序
System.exit(0);
//2.arraycopy
int[] src = {1,2,3};
int[] dest = new int[3];//此时内容为默认的:0,0,0
//参数中,两个0为 starting position,3为 length
System.arraycopy(src,0,dest,0,3);
//System.out.println(Arrays.toString(dest));
//3.返回当前时间距离 1970-1-1 的毫秒数
System.out.println(System.currentTimeMillis());
//4.System.gc(); 运行/调用垃圾回收机制
BigInteger, BigDecimal类
BigInteger
//底层是将数转成字符串,处理完了再转
BigInteger b = new BigInteger("1234567891011121314151617181920");
System.out.println(b);
//1.加减乘除,必须调用对应方法
BigInteger a = new BigInteger("999999999999999999");
//此假发方法不会影响原先的 b 的值
System.out.println(b.add(a));
System.out.println(b.subtract(a));
System.out.println(b.multiply(a));
System.out.println(b.divide(a));
BigDecimal
BigDecimal big = new BigDecimal("13.123456789123456789123456789");
System.out.println(big);
BigDecimal big1 = new BigDecimal("3");
//加减乘除同上,但除法时可能会抛出异常,因为除不尽,无限循环,而且精度无限制
//ArithmeticException
//解决方法如下,保留分子,即为被除数的精度。
System.out.println(big.divide(big1,BigDecimal.ROUND_CEILING));
日期类
第一代日期类
格式化过程中双引号里面的字母是有含义的:
自1970年起通过毫秒数获取时间:
PS:下列图片中 parse 函数可能会显示异常,是一个待处理的编译异常,把其抛出即可,就可以正常运行了
Parse 意为解析、转换。
第二代日期类
//Calendar
//没有专门的格式化方法,需要程序员自己去组合显示,很自由
Calendar c = Calendar.getInstance();
System.out.println(c);
//返回月时从0开始编号
System.out.println(c.get(Calendar.MONTH) + 1);
System.out.println(c.get(Calendar.DAY_OF_MONTH));
//获取24小时的小时字段:将 HOUR 改成 HOUR_OF_DAY
System.out.println(c.get(Calendar.HOUR));
System.out.println(c.get(Calendar.MINUTE));
System.out.println(c.get(Calendar.SECOND));
第三代日期类
常用方法
课堂练习
程序处理异常的技巧
if(!(str != null)){
//在该方法的调用方,try-catch 该异常
//将正确情况取反考虑进去,思路会很清楚
throw new RuntimeException("参数不正确");
}
字符串和字符数组的相互转换
//String转成char[],才可以交换
char[] chars = str.toCharArray();
//字符数组和字符串可以相互转换
return new String(chars);
有关字符的一些方法
int i = str.indexOf('@');
String[] names = str.split(" ");
System.out.println(String.format("%s, %s .%c",names[2],names[0],names[1].toUpperCase().charAt(0)));
字符串的内存分布题