System类
System里面包含了一些对于系统信息相关的方法
System.exit(); 退出与停止虚拟机
System.currentTimeMillis();自1970年1月1日00:00:00起到现在程序运行的时间的差值;(毫秒)
long a=System.currentTimeMillis();类型必须用long
System.getenv() 获得和系统相关的信息
System.getenv(“Path”) 获得和系统相关的信息
Arrays.copyof(a,0,b,10 )返回一个指定长度的新数组,把原数组的值填进去
src(source):原数组 srcpao:从原数组的第几个开始复制
dest:目标数组 destpos:被复制的元素数量
Date类(spal ,util包里都有Date类)
Date date =new Date();新建对象(使用的是util包里的)
date.getYear()+1900 //+1900,
date.getMonth( )+1 //一年中的第几个月,月份从零开始,0就是一月,1就是二月
date.getDate ( ) //月中的第几天
date.getDay( ) //一周中的第几天
date.getHours( )//今天的小时是
date.getMinutes( ) //今天的第多少分钟
date.getSecond( )//今天的第多少秒
date.getTime( )//获得现在这一时刻的时间
date.to Locale String //根据本地区的习惯输出一个字符串格式的时间
Date date=new Date();//这些方法已经弃用,但任然可以使用执行,但是官方不推荐System.out.println(date.getYear()+1900);//自1900年开始,所以要加一个1900表示现在的年份System.out.println(date.getMonth());System.out.println(date.getDate());//表示这是月中的第几天System.out.println(date.getDay());//表示的是周中的第几天System.out.println(date.getHours());//小时System.out.println(date.getMinutes());//分钟System.out.println(date.getSeconds());//秒System.out.println(date.getTime());//返回时间的差值(long类型 毫秒)
Date date1=new Date(1621741054023L);//L表示long类型,因为int类型范围不够System.out.println(date1.toLocaleString());//根据本地区的习惯输出一个字符串类型的时间
Calendar 日历
Calendar类是抽象类不能创建对象
Calendar calendar= Calendar.get Instance( );返回的是子类对象
Calendar calendar=new Gregorian Calendar( );直接新建了一个子类对象
Date类型转为Calendar类型
Date date=new Date( );
Calendar calendar= Calendar.get Instance( );
calendar.setTime(date);
方法:
calendar.getTime
calendar.get(Calendar.Year)
/* System.out.println(calendar.getTime());//Sun May 23 14:25:52 CST 2021 System.out.println(calendar.get(Calendar.YEAR));//今年是几几年 System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天是本月中的第几天 System.out.println(calendar.get(Calendar.MONTH)+1);//本月是几月,+1是因为月份的排序从0开始,0就是1月,2是1月 System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//今天是今年的第几天
System.out.println(calendar.getFirstDayOfWeek());*/
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year (context sensitive) Month July; Jul; 07
L Month in year (standalone form) Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tueu Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
a Am/pm marker Text PMH
Hour in day (0-23) Number 0k
Hour in day (1-24) Number 24K
Hour in am/pm (0-11) Number 0h
Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone
Pacific Standard Time; PST;
GMT-08:00Z Time zone RFC 822 time zone -0800X
Time zone ISO 8601 time zone -08; -0800; -08:00
日期格式化 SimpleDateFormat(在java.text包中.
把java中的对象型(日期类型 new Date() Calendar )转为转为指定格式的字符,字符串
或者是将字符串格式转换为日期格式
SimpleDateFormat
//日期格式化--把日期对象转为字符串
Date date=new Date(1999-02-18);
SimpleDateFormat simpleDateFormat=new SimpleDateFormat ("yyyy年MM月dd日 HH时:mm分钟:ss秒 SSS毫秒 ");
String str= simpleDateFormat.format(date);
System.out.println(str);
//日期格式化--把字符串转为日期对象
String birthday="1999-02-18";
SimpleDateFormat simpleDateFormat1=new SimpleDateFormat("yyyy-MM-dd");
try {
Date date1=simpleDateFormat1.parse(birthday);
System.out.println(date1.getYear()+1900);
System.out.println(date1.getTime());
System.out.println(date1.toLocaleString());} catch (ParseException e) {
}
这里出现了异常,ParseException
/ BigInteger 大整型
/*在 Java 中,有许多数字处理的类,比如 Integer类,但是Integer类有一定的
局限性。
我们都知道 Integer 是 Int 的包装类,int 的最大值为 正负二十一亿。若希望描述
更大的整数数据时,使用Integer 数据类型就无法实现了,所以Java中提供了
BigInteger 类。*/
//BigInteger现在java.math包中
BigInteger a=new BigInteger("111111111111111111111111111111122");
BigInteger b=new BigInteger("111111111111111111111111111111333");
// BigInteger特有的运算方法
BigInteger c=a.add(b);//加
BigInteger c1=a.subtract(b);//减
BigInteger c2=a.multiply(b);//乘
BigInteger c3=a.divide(b);//除
BigDecimal 大浮点型
BigDecimal a=new BigDecimal("12.94");
BigDecimal b=new BigDecimal("1.28");
BigDecimal c =a.add(b);
BigDecimal c1 =a.subtract(b);
BigDecimal c2 =a.multiply(b);
BigDecimal c3 =a.divide(b);
System.out.println(c);//加 14.22
System.out.println(c1);//减 11.66
System.out.println(c2);//乘 16.5632
System.out.println(c3);//除 10.109375
异常(Exception)
广义上的异常是指,程序运行时出现的所有不正常情况
狭义上的异常是指,程序运行时,由于程序缺陷导致在运行时出现不正常情况
错误是指,出现不正常情况时候,程序无法解决的问题(例如,文件读写时文件删除,网络中断,内存不够)
异常:异常出现后程序可以控制,进行处理,程序可以继续执行的情况
/* int num=5; public static int sum(int num){
return num+sum(num:num-1); }*/
/*java.lang.ArrayIndexOutOfBoundsException 数组越界,索引超出
索引超出了数组的长度减去一
int []a={1,2,3,4,5,};
a[5]=5; */
/* java.lang.StringIndexOutOfBoundsException 数组越界
String s="abc";
s.charAt(3);*/
/* java.lang.NumberFormatException 数字格式化异常
Integer .parseInt("a");*/
/*java.lang.NullPointerException 空指针异常 地址为空
String s=null; s.length();*/
/*java.lang.ClassCastException类类型转换异常
Object obj ="abc";//最然是object类,但其实是String类型
Integer integer= (Integer) obj;//向下转型*/
/* java.lang.ArithmeticException 算术条件异常时抛出。
例如,“除以零”的整数会抛出此类的一个实例。
程序出现异常后,后面程序就不执行*/
int a=10; int b=0;
System.out.println(a/b);
System.out.println("daaafafaf");
/*try的书写方式
try{可能出现异常的代码1
try{ 可能出现异常的代码2 } }
catch(异常类型 e){ 捕获处理发生的异常}
catch(异常类型 n){捕获处理发生的异常 }*/
/*try { int a=10; int b=2;
int c = a / b;
System.out.println(c);
try {
String s="acczc";
System.out.println(s); }
catch (NullPointerException n) {
System.out.println("出错了"); } } catch (ArithmeticException e) { e.printStackTrace();// e.printStackTrace(); 打印异常信息(在程序开发期间使用) System.out.println(e.getMessage());//e.getMessage() 获得异常的原因 }*/ /*try的书写方式 try{可能出现异常的代码1 可能出现异常的代码2 } catch(异常类型 e){ 捕获处理发生的异常} catch(异常类型 n){捕获处理发生的异常 }*/ try { int a=10; int b=0; int c = a / b; System.out.println(c); String s=null; System.out.println(s.length()); } catch (NullPointerException n) { System.out.println("出错了"); } catch (ArithmeticException e) { System.out.println("运算错误,除数为零"); System.out.println(e.getMessage());//e.getMessage() 获得异常的原因 e.printStackTrace();// e.printStackTrace(); 打印异常信息(在程序开发期间使用) }
当有多个try的时候,一个错误后面的try就不执行了
catch(大的异常类型 e){ }
catch(小的异常类型 v){ }
大的异常类型必须写在小的异常类型后面