JavaSE常用类(JavaSE大全)

本文介绍了JavaSE中的一些核心类,包括System类的CurrentTimeMillis()、Date类、DateFormat类、SimpleDateFormat类、Math类、Random类、BigInteger类、BigDecimal类、对象克隆、Time定时器以及单例模式。详细讲解了各个类的方法和使用示例,帮助读者掌握JavaSE的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

System类
System类:系统类,用于获取系统的属性和方法,没有构造方法。
System的属性都是静态属性,方法是静态方法
方法:
获取当前系统时间
CurrentTimeMillis()返回的是毫秒值。返回当前时间与1970年1月一日午夜时间差。(毫秒为单位)
.exit(0)强制退出
demo:判断运行时间

long start=System.currentTimeMillis();
		
		for (int i = 0; i < 500; i++) {
			System.out.println(i);
		}
		long ends=System.currentTimeMillis();
		System.out.println(ends-start);
		System.out.println("程序开始了!");
		//强制退出java程序
		System.exit(0);
		System.out.println("程序结束");
0
1
2
3
4
1
程序开始了!

Date类
Date日期类:提供了java中日期和时间的支持。
创建一个当前时间的Date对象
Date date=new Date();
获取距离1970年毫秒数
.getTime();
demo:

//Date类 获取当前系统时间
		Date date=new Date();
		System.out.println(date);
		//获取离1970年的毫秒数
		Date date2=new Date();
		long l=date2.getTime();
		System.out.println(l);
		
		Date date3=new Date();
		long start=date3.getTime();
		for (int i = 0; i <10; i++) {
			System.out.print(i);
		}
		
		Date end=new Date();
		long send=end.getTime();
		System.out.println(send-start);

控制台太长就不复制了。
DateFormat类
DateFormat类:主要提供了日期的格式化显示。
获取日期:
DateFormat df1=new DateFormat.getDateInstance();
df1.format();
获取日期时间:
DateFormat df2=DateFormat.getDateimeInstance();
demo:

//获取要格式化的日期对象
		Date date=new Date();
		//获取Dateformat工具类对象
		DateFormat df=DateFormat.getDateInstance();
		//获取格式化的字符串
		System.out.println(df.format(date));
		
		//获取详细的时间和日期
		DateFormat dateFormat=DateFormat.getDateTimeInstance();
		System.out.println(dateFormat.format(date));

控制台

2020-5-21
2020-5-21 9:25:00

SimpleDateFormat类
SimpleDateFormat类:提供了日期和字符串的转换。
(1)字符串转Date
(2)Date转字符串
demo:

//字符串转日期
		String day="2020/05/21 09:38:22";
		//参数对应的是字符串解析出的日期
		SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		Date date=simpleDateFormat.parse(day);
		System.out.println(date);
		
		//日期转字符串
		Date date2=new Date();
		//我们希望转换的字符串形式
		SimpleDateFormat simpleDateFormat2=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		String s=simpleDateFormat2.format(date2);
		System.out.println(s);
Thu May 21 09:38:22 CST 2020
2020/05/21 09:55:49

Math类
Math类:提供 了一系列数学操作方法
Math类的方法都是静态方法,直接由类名调用。
方法:
(1)求绝对值:Math.abs(a)
(2)求平方根:Math.sqrt(a)
(3)求较大值:Math.max(a)
(4)求较小值:Math.min(a,b)
(5)四舍五入:Math.round(num,2)
(6)获取0-1随机数:Math.random()
demo:

int a=15;
		double b=3.1415;
		//求绝对值
		double s1=Math.abs(b);
		System.out.println(s1);
		//求平方根
		double s2=Math.sqrt(b);
		System.out.println(s2);
		//比较大小
		int s3=Math.max(55, 66);
		System.out.println(s3);
		//四舍五入
		double s5=Math.round(b);
		System.out.println(s5);
		//随机数
		double s6=Math.random();
		System.out.println(s6);
		
		double c1=15.3;
		double c2=3;
		DecimalFormat dFormat=new DecimalFormat("0.00");
		String s7=dFormat.format(c1/c2);
		System.out.println(s7);
3.1415
1.772427713617681
66
3.0
0.6172979109859751
5.10

Random类
Random类提供了Java中随机素的支持
使用Random类需要先创建Random对象。
Random r1=new Random();
demo:

Random random=new Random();
		//获取0-80之间的随机整数
		int num=random.nextInt(80);
		System.out.println(num);
		
		double num1=random.nextDouble();
		System.out.println(num1);
		
		//获取0-55的10个整数
		for (int i=0;i<10 ;i++ ) {
			System.out.println(random.nextInt(55));
0
0.8779117053782289
31
13
49
15
36
16
53
28
44
13

BigInteger类
BigInteger类表示大整数类,封装了大整数常见的数学运算。
声明一个 BigInteger类的对象,使用字符串形式表示数字。
BigInteger bi=new BigInteger(“13516”)
常用运算:
加法:bi.add( BigInteger b);
减法:bi.subtract(BigInteger b);
乘法:bi.multiply(BigInteger b);
除法:bi.divide(BigInteger b);
模:bi.remainder(BigInteger b)

BigInteger bInteger=new BigInteger("5211314");
		BigInteger bInteger1=new BigInteger("1314521");
		//加减乘除取模
		System.out.println(bInteger.add(bInteger1));
		System.out.println(bInteger.subtract(bInteger1));
		System.out.println(bInteger.multiply(bInteger1));
		System.out.println(bInteger.divide(bInteger1));
		System.out.println(bInteger.remainder(bInteger1));
6525835
3896793
6850381690594
3
1267751

BigDecimal类
BigDecimal类表示超大小数类,可对超大小数进行精确计算
BigDecimal bd=new BigDecimal();
常用运算:
加法:bd.add( BigDecimal b);
减法:bd.subtract(BigDecimal b);
乘法:bd.multiply(BigDecimal b);
除法:bd.divide(BigDecimal b);
四舍五入:bd.divide(BigDecimal b,int len,BigDecimal.ROUND_HALF_UP)
同上一方法,就不写demo了。
对象克隆
在java中,如果要拷贝一个简单的变量,可以直接赋值。但是如果做这个变量是一个复杂的对象,直接赋值就会带来一系列的问题,我们就需要克隆技术。
一个类要实现克隆,需要做两个操作:
(1)实现Cloneable接口;
(2)重写Object的clone方法

stu s1=new stu("张三", 15);
		
		//直接赋值
		stu s2=s1;
		
		//克隆
		stu s3=s1.clone();
		s3.setAge(150);
		s3.setName("王五");
		System.out.println(s3.getName()+s3.getAge());
		System.out.println(s1.getName()+s1.getAge());
		
		s2.setAge(20);
		s2.setName("aa");
		System.out.println(s2.getName()+s2.getAge());
		System.out.println(s1.getName()+s1.getAge());

Time定时器
Timer类是一种线程 设施,可以用来实现某一时间或者某一段时间后安排一个任务的执行。
Timer类需要和TimerTask类配合使用
(1)创建Timer对象:
Timer timer=new Timer();
实现一段时间后执行某任务:
Timer.schedule(TimerTask t,long time)
实现某个时间点执行某任务:
Timer.schedule(TimerTask t,Date date)
重复执行定时任务:
Timer.schedule(TimeTask,firsttime,period)

	//控制定时任务的执行方式
		Timer timer=new Timer();
		//定义定时任务的执行内容
		TimerTask task=new TimerTask() {
			public void run() {
				System.out.println("定时任务被执行");
			}
		};
		//一段时间后执行定时任务
		timer.schedule(task, 3000);
		//在固定时间点执行任务
		timer.schedule(task, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2020-05-21 12:05:50"));
		//重复执行定时任务
		timer.schedule(task, 2000, 1000);
		

单例模式
是java设计模式之一:目的在于避免频繁创建和销毁实例,减少内存开销
单例模式使用场景:
1.要求生产唯一序列号
2.计数器,不用每次刷新都在数据库里加一次,用单例对象先缓存起来
3.连接数据库的对象等等
单例模式实现步骤:
1.定义一个属性,保存当前类的静态对象(单例对象)
2.将构造方法私有
3.创建一个静态get()方法返回给这个单例对象
两种模式实现单例,懒汉模式和饿汉模式
懒汉模式
创建实例的过程是在get()方法中,当需要单例对象时,调用get()方法菜实例化。
优点:使用的时候才创建实例,避免内存浪费
缺点:线程不安全,无法保证绝对的单例(可以加线程锁解决,但会降低执行效率)
饿汉模式:
直接在属性中实例化,类加载的时候单利对象就准备好了。
优点:不需要的时候也会创建实例,会导致内存浪费;
缺点:线程安全,而且执行效率高;
(使用枚举也可以很方便实现单利模式,本质上也是懒汉模式)
下一章节:JavaSE字符串(JavaSE大全)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值