java其他类
2022/1/12 20:04:18
本文主要是介绍java其他类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.BigDecimal类
public class BigDecimalDemo { public static void main(String[] args) { double d1=1.0; double d2=0.9; System.out.println(d1-d2);//0.09999999999999998 System.out.println((1.4-0.5)/0.9);//0.9999999999999999 } }
-
上面两个输出说明double或float类型并不精确,是近似值存储,但在很多实际场景下,需要实用精确计算,如银行等,因此引入BigDecimal
-
BigDecimal位于java.Math包中,作用是精确计算浮点数,创建方式:BigDecimal bd=new BigDecimal("1.0")
public class BigDecimalDemo { public static void main(String[] args) { BigDecimal b1 = new BigDecimal("1.0"); BigDecimal b2 = new BigDecimal("0.9"); //加 BigDecimal add = b1.add(b2); System.out.println(add);//1.9 //减 System.out.println(b1.subtract(b2));//0.1 //乘 System.out.println(b1.multiply(b2));//0.90 //除,若不进行限制,可能会报错,BigDecimal.ROUND_HALF_UP为四舍五入,scale为保留几位小数 System.out.println(b1.divide(b2,2,BigDecimal.ROUND_HALF_UP));//1.11 BigDecimal divide = new BigDecimal("1.4") .subtract(new BigDecimal("0.5")) .divide(new BigDecimal("0.9"),2,BigDecimal.ROUND_HALF_UP); System.out.println(divide);//1.00 } }
2.Date类
- Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法所取代
- 时间单位 :1秒=1000毫秒 1毫秒=1000微秒 1微秒=1000纳秒(也叫毫微秒)
import java.util.Date; public class DateDemo { public static void main(String[] args) { Date date1=new Date(); System.out.println(date1.toString()); System.out.println(date1.toLocaleString()); //当前时间减1天的毫秒数 Date date2=new Date(date1.getTime()-(60*60*24*1000)); System.out.println(date2.toString());//Sat Jan 08 22:22:37 CST 2022 System.out.println(date2.toLocaleString());//2022-1-8 22:22:37 //方法 //1.after before System.out.println(date1.after(date2));//true System.out.println(date1.before(date2));//false //2.compareTo equals //compareTo:前者比后者大则返1,小则返回-1,相等返回0 System.out.println(date1.compareTo(date2));//1 System.out.println(date2.compareTo(date1));//-1 System.out.println(date1.compareTo(date1));//0 System.out.println(date1.equals(date2));//false } }
3.Calendar类
- Calendar提供了获取或设置各种日历字段的方法
- 构造方法
- 抽象类,无法直接实例化
- 其他方法
import java.util.Calendar; public class CalendarDemo { public static void main(String[] args) { //Calendar是抽象类,无法直接实例化 Calendar calendar=Calendar.getInstance(); System.out.println(calendar.getTime().toLocaleString()); //方法:get System.out.println(calendar.get(Calendar.YEAR)); System.out.println(calendar.get(1)); System.out.println(calendar.get(Calendar.MONTH)); System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//Carlendar.HOUR为12进制表示小时 System.out.println(calendar.get(Calendar.MINUTE)); System.out.println(calendar.get(Calendar.SECOND)); //set calendar.set(Calendar.HOUR_OF_DAY,13); System.out.println(calendar.getTime().toLocaleString()); //add calendar.add(Calendar.MINUTE,-10); System.out.println(calendar.getTime().toLocaleString()); //getTimeInMillis获得一个毫秒数 long timeInMillis = calendar.getTimeInMillis();//获得一个毫秒数 System.out.println(timeInMillis); //getActualMaximum/getActualMaximum System.out.println(calendar.getActualMaximum(Calendar.MONTH));//11月份是0开始的 System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); } }
4.SimpleDateFormat类
- SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类
- 进行格式化(日期-->文本)、解析(文本-->日期)
- 常用的时间模式字母:y、M、d、H、m、s(秒)、S(毫秒)
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatDemo { public static void main(String[] args) throws ParseException { //方法一:第一种构造方法,不带参数 SimpleDateFormat simpleDateFormat1=new SimpleDateFormat(); simpleDateFormat1.applyPattern("yyyy-MM-dd"); //格式化format(Date date):将时间格式转换成String System.out.println(simpleDateFormat1.format(new Date())); //第二种构造方法 SimpleDateFormat simpleDateFormat2=new SimpleDateFormat("y-M-d H:m:s"); System.out.println(simpleDateFormat2.format(new Date()));//2022-1-10 9:23:58 //解析:将String转成Date类型parse(String) String str="2099-19-10"; //会抛出一个异常 Date date = simpleDateFormat1.parse(str); System.out.println(date);//Sat Jul 10 00:00:00 CST 2100 } }
5.System类
- System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有。
- 方法:
import java.util.Arrays; public class SystemDemo { public static void main(String[] args) { int []arr1={9,1,4556,4456,234,346,123,234}; int []arr2=new int[8]; //实现数组的copy //参数1:源数组 ;参数2:从源数组的哪个位置开始copy; //参数3:目标数组;参数4:从目标数组的哪个位置开始copy; //参数5:copy长度 System.arraycopy(arr1,4,arr2,4,4); for (int x:arr2) { System.out.println(x); } //Arrays.copyOf底层是调用的System.arraycopy //System.arraycopy方法是本地方法,有native(相当于调用c或c++)修饰,执行效率高 int[] ints = Arrays.copyOf(arr1, 8); //获取当前毫秒数(1970年到现在),此方法一般用于计算一段程序执行的时间 System.out.println(System.currentTimeMillis()); long start=System.currentTimeMillis(); for (int i = 0; i < 999999; i++) { for (int j = 0; j < 999999; j++) { int result=i+j; } } long stop=System.currentTimeMillis(); System.out.println(stop-start); //gc垃圾回收器,调用此方法请求jvm启动垃圾回收器,但不一定会回收垃圾 new Student();//Student类在下面 new Student("abc",1); new Student("cba",6); System.gc(); //回收了cba6 //回收了abc1 //回收了null0 //exit方法退出jvm System.out.println("我正在退出..."); System.exit(0);//0表示正常退出 System.out.println("我已经退出了");//已经退出jvm,所以这句不打印 } }
public class Student { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Student(String name, int age) { this.name = name; this.age = age; } public Student() { } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } @Override protected void finalize() throws Throwable { System.out.println("回收了"+this.name+this.age); } }
这篇关于java其他类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?