1、Math类:
1、求一个数的绝对值 //abs(int a)
int a = -10;
System.out.println(Math.abs(a)); //输出10
2、求大于等于一个数的最小double值整数 //ceil(double a)
double a = 1.5;
System.out.println(Math.ceil(a)); //输出2.0
3、求小于等于一个数的最大double值整数 //floor(double a)
double a = 1.5;
System.out.println(Math.floor(a)); //输出1.0
4、求一个数四舍五入后最接近本身的整数 //round(float a)
float a = 1.2f;
System.out.println(Math.round(a)); //输出1
float b = 1.5f;
System.out.println(Math.round(b)); //输出2
5、求两个数中的最大最小值 //max(int a,int b) min(int a,int b)
int a = 1; int b = 2;
System.out.println(Math.max(a,b)); //输出2
System.out.println(Math.min(a,b)); //输出1
6、求一个数的n次幂 //pow(double a,double b)
double a = 2.0;
double b = 3.0;
System.out.println(Math.pow(a,b)); //输出8.0
7、求一个在【0.0,1.0)直接的double类型的随机数 //random( )
System.out.println(Math.random()); //结果随机产生 例如:0.26427109106015356
如果想取【0.0,100.0)之间
System.out.println(Math.random()*100); //结果随机产生 例如:26.427109106015356
如果想取【0.0,100.0)之间的整数
System.out.println((int)Math.random()*100); //结果随机产生 例如:26
如果想取【1.0,101.0)之间的整数
System.out.println((int)Math.random()*100+1); //结果随机产生 例如:26.427109106015356
2、System类:
1、退出java虚拟机 //exit( int status ) status如果为0,则是正常终止
结束不会输出
System.out.println("开始"); //输出开始
System.exit(0); //java虚拟机退出
System.out.println("结束");
2、返回当时时间 //currentTimeMillis( ) 返回当前时间与1970年1月1日差的毫秒值
System.out.println(System.currentTimeMillis()); //输出1626248051132
System.out.println(System.currentTimeMillis()*1.0 /1000 /60 /60 /24 /365 + "年");
//输出51.56798741539828年
另一种用法 //求出运行时间(单位是毫秒)
long start = System.currentTimeMillis();
for(int i=0;i<10000;i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println(end-start);
3、Arrays类:
1、先导包 //import java.util.Arrays;
2、给当前数组排序 sort( int[ ] arry )
int[] array = {163,171,130,81,168};
Arrays.sort(array); //array数组:[81, 130, 163, 168, 171]
3、输出当前数组 toString( int[ ] a )
System.out.println(Arrays.toString(array)); //输出[81, 130, 163, 168, 171]
4、基本包装类(Integer):
1、确定int类型的范围
System.out.println(Integer.MAX_VALUE); //输出2147483647
System.out.println(Integer.MIN_VALUE); //输出-2147483648
2、所有基本类型对应的包装类
3、将int类型或者String类型转换为Integer包装类
Integer i1 = Integer.valueOf("100"); //字符串必须是数字字符串
Integer i2 = Integer.valueOf(100);
4、int和String类型之间的转化
int转String
//方法一
int a = 10;
String b = "" + a;
//方法二
String x = String.valueOf(a);
String转int
//方法一
String a = "10";
Integer i = Integer.valueOf(a);
int x = i.intValue();
//方法二
int y = Integer.parseInt(a);
5、字符串中数据排序
String x = "10 9 12 1";
//将字符串转化为String数组
String[] arry = x.split(" ");
//将String数组转化为int数组
int[] array = new int[arry.length];
for(int i=0;i<arry.length;i++) {
array[i] = Integer.parseInt(arry[i]);
}
//将int数组中数据排序
Arrays.sort(array);
//将int数组转化为字符串
StringBuilder sb = new StringBuilder();
for(int i=0;i<array.length;i++){
if(i==array.length-1){
sb.append(array[i]);
}else {
sb.append(array[i]).append(" ");
}
}
String y = sb.toString();
System.out.println(y);
6、自动装箱和自动拆箱
Integer i = Integer.valueOf(100); //装箱
//自动装箱
Integer ii = 100; //隐含了Inter.valueof(100)
//自动装箱和自动拆箱
ii += 200; // 隐含了 ii = Integer.valueOf( ii.intvalue() + 200 )
//使用 ii += int 之前要做个判断
Integer iii = null;
if(ii != null){
ii += 200 ;
}
5、日期类:
1、日期类的两个构造方法
Date d = new Date();
System.out.println(d); //Wed Jul 14 17:47:29 CST 2021
long l = 1000*60*60;
Date d1 = new Date(l);
System.out.println(d1); //Thu Jan 01 09:00:00 CST 1970
2、日期类的常用方法
getTime( )和setTime( )方法:
Date d = new Date();
//getTime()是获取从1970年1月1日 00:00:00到现在的毫秒值
System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 +"年"); //51.5682499388001年
//setTime()是设置从1970年1月1日 00:00:00经过多少毫秒后的时间
long l = 1000*60*60;
d.setTime(l);
System.out.println(d); //Thu Jan 01 09:00:00 CST 1970 为什么是9点:还要加上中国的东八区
3、SimpleDateFormat类
(1)、导包:import java.text.SimpleDateFormat;
(2)、 两个构造方法
public SimpleDateFormat( ); public SimpleDateFormat( String pattern );
(3)、格式化:
从Date到String public final String format( Date d )
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat();
String s = sdf.format(d);
System.out.println(s); //2021/7/14 下午6:49
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String ss = sdf1.format(d);
System.out.println(ss); //2021年07月14日 18:49:22
从String到Date public Date parse( String source )
public class work11{
public static void main(String[] args) throws ParseException {
String s = "2021-7-14 18:52:00"; //字符串格式要和SimpleDateFormat()方法中参数格式一样
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(s);
System.out.println(d); //Wed Jul 14 18:52:00 CST 2021
}
}
例子:建立一个日期工具类,实现从String到Date和从Date到String的转换
//测试类
import java.text.ParseException;
import java.util.Date;
public class work11{
public static void main(String[] args) throws ParseException {
Date d = new Date();
String format1 = "yyyy年MM月dd日";
String format2 = "HH:mm:ss";
String format3 = "yyyy年MM月dd日 HH:mm:ss";
String s = DateUtils.DatetoString(d,format1);
String ss = DateUtils.DatetoString(d,format2);
String sss = DateUtils.DatetoString(d,format3);
System.out.println(s); //2021年07月14日
System.out.println(ss); //19:05:46
System.out.println(sss); //2021年07月14日 19:05:46
String x = "2021-07-14 19:05:46"; //x与format格式要一样
String format = "yyyy-MM-dd HH:mm:ss";
Date dd = DateUtils.StringtoDate(x,format);
System.out.println(dd); //Wed Jul 14 19:05:46 CST 2021
}
}
//日期工具类 DateUtils
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtils{
private DateUtils(){}
public static String DatetoString(Date d, String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
String s = sdf.format(d);
return s;
}
public static Date StringtoDate(String s,String format) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date d = sdf.parse(s);
return d;
}
}
4、Calendar类
(1)、获取Calendar对象: Calendar c = Calendar.getInstance( );
(2)、运用get方法获取当前日期 c.get( Calendar.YEAR );
import java.text.ParseException;
import java.util.Calendar;
public class work11{
public static void main(String[] args) throws ParseException {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1; //月从0开始计数
int date = c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日"); //2021年7月14日
}
}
(3)、Calendar类的常用方法:
public int get( int field ) //返回给定日历字段的值 同(2)
public abstract void add( int field , int amount )
//根据日历的规则,将指定的时间量添加或减去给定的日历字段
import java.text.ParseException;
import java.util.Calendar;
public class work11{
public static void main(String[] args) throws ParseException {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1; //月从0开始计数
int date = c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日"); //2021年7月14日
//十年后的五天前
c.add(Calendar.YEAR,10);
c.add(Calendar.DATE,-5);
int yearNow = c.get(Calendar.YEAR);
int monthNow = c.get(Calendar.MONTH) + 1; //月从0开始计数
int dateNow = c.get(Calendar.DATE);
System.out.println(yearNow+"年"+monthNow+"月"+dateNow+"日"); //2031年7月9日
}
}
public final void set( int year,int month,int date ) //设置当前日历的年月日
import java.text.ParseException;
import java.util.Calendar;
public class work11{
public static void main(String[] args) throws ParseException {
Calendar c = Calendar.getInstance();
c.set(1999,11,1);
int yearNow = c.get(Calendar.YEAR);
int monthNow = c.get(Calendar.MONTH) + 1; //月从0开始计数
int dateNow = c.get(Calendar.DATE);
System.out.println(yearNow+"年"+monthNow+"月"+dateNow+"日"); //1999年12月1日
}
}
5、例子:获取任意一年的二月份有多少天
import java.text.ParseException;
import java.util.Calendar;
import java.util.Scanner;
public class work11{
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();
Calendar c = Calendar.getInstance();
//设置当前年份的3月1日
c.set(year,2,1);
//3月1日往前减一天就是二月的最后一天
c.add(Calendar.DATE,-1);
//获取二月的最后一天
int date = c.get(Calendar.DATE);
System.out.println(year+"年的二月有"+date+"天");
//测试输入2049 输出:2049年的二月有28天
}
}