本文主要是介绍从零学Java 常用类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Java 常用类
文章目录
- Java 常用类
- 1 BigDecimal
- 1.1 为什么要用BigDecimal类?
- 1.2 什么是BigDecimal类?
- 1.3 常用方法
- 2 Math
- 2.1 什么是Math类?
- 2.2 常用方法
- 3 Random
- 3.1 什么是Random类
- 3.2 常用方法
- 4 Date
- 4.1 什么是Date类?
- 4.2 常用方法
- 5 SimpleDateFormat
- 5.1 什么是SimpleDateFormat类?
- 5.2 常用方法
- 5.3 面试题
- 6 Calendar
- 6.1 什么是Calendar类?
- 6.2 常用方法
- 7 System类
- 7.1 什么是System类?
- 7.2 常用方法
- 8 Runtime类
- 8.1 什么是Runtime类?
- 8.2 常用方法
1 BigDecimal
1.1 为什么要用BigDecimal类?
思考: 以下程序输出结果是多少?
public class Test {public static void main(String[] args) {double d1 = 1.0;double d2 = 0.9;// 近似存储System.out.println(d1-d2);//0.09999999999999998}
}res:
0.09999999999999998
1.2 什么是BigDecimal类?
位置:java.math包中。
作用:精确计算浮点数。
创建方式:BigDecimal bd=new BigDecimal(“1.0”);
1.3 常用方法
eg:
public class Test {public static void main(String[] args) {double d1 = 1.0;double d2 = 0.9;// 近似存储System.out.println(d1-d2);//0.09999999999999998BigDecimal bd1 = new BigDecimal("1.0");BigDecimal bd2 = new BigDecimal("0.9");//减法BigDecimal r1 = bd1.subtract(bd2);System.out.println(r1.doubleValue());//加法BigDecimal r2 = bd1.add(bd2);System.out.println(r2.doubleValue());//乘法BigDecimal r3 = bd1.multiply(bd2);System.out.println(r3.doubleValue());//除法BigDecimal bd3 = new BigDecimal("10");BigDecimal bd4 = new BigDecimal("3");//RoundingMode.HALF_UP 四舍五入 大于等于5//RoundingMode.HALF_DOWN 四舍五入 大于5/*RoundingMode.HALF_EVEN 银行舍入法 四舍六入 五取偶5后面有非0数字进一5后面为0看前面数字, 为奇数进一, 偶数不变3.4550 保留两位小数 3.463.2854 保留两位小数 3.293.1450 保留两位小数 3.14 */BigDecimal r4 = bd4.divide(bd4,2, RoundingMode.HALF_UP);System.out.println(r4.doubleValue());//模BigDecimal r5 = bd3.remainder(bd4);System.out.println(r5.doubleValue());}
}
2 Math
2.1 什么是Math类?
Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
2.2 常用方法
方法名 | 说明 |
---|---|
static int abs(int a) | 获取绝对值 |
static double pow(double a,double b) | 返回第一个参数的第二个参数次幂的值 |
static double random() | 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0 |
static long round(double a) | 返回最接近参数的long |
static double sqrt(double a) | 返回正确舍入的 double 值的正平方根 |
static double cbrt(double a) | 返回double值的立方根。 |
static double ceil(double a) | 返回大于或等于参数的最小整数 |
static double floor(double a) | 返回小于或等于参数的最大整数 |
public class Test {public static void main(String[] args) {System.out.println(Math.PI);System.out.println(Math.E);//方法//abs绝对值System.out.println(Math.abs(-10));//pow(a,b) a的b次幂System.out.println(Math.pow(2, 10));//ceil()System.out.println(Math.ceil(3.5));//floor()System.out.println(Math.floor(2.5));//求平方根System.out.println(Math.sqrt(100));//求立方根System.out.println(Math.cbrt(27));//random() 随机返回0-1之间的小数,含0不含1System.out.println(Math.random());//随机获取0-9之间的整数System.out.println((int) (Math.random() * 10));//随机获取0-99之间的整数System.out.println((int) (Math.random() * 100));//随机获取50-99之间的整数System.out.println((int) (Math.random() * 50) + 50);//规律: 随机获取a-b之间的整数 (int)(Math.random()*(b-a+1))+a//随机获取100-999之间的整数System.out.println((int) (Math.random() * 900) + 100);}
}
3 Random
3.1 什么是Random类
此类的实例用于生成伪随机数流。
此类使用 48 位的种子,使用线性同余公式 (linear congruential form) 对其进行了修改所得。
3.2 常用方法
eg:
public class Test {public static void main(String[] args) {//Random 伪随机数类Random random = new Random();//方法//nextInt(); 随机返回一个整数System.out.println(random.nextInt());//nextInt(bound); 随机返回0-bound(不包含)之间的一个整数System.out.println(random.nextInt(100));//nextDouble(); 随机返回一个0-1之间的小数, 含0不含1System.out.println(random.nextDouble());System.out.println("---------------------------");//指定种子的随机对象Random random1 = new Random(1000);Random random2 = new Random(1000);for (int i = 0; i < 10; i++) {System.out.println(random1.nextInt());System.out.println(random2.nextInt());}}
}
4 Date
4.1 什么是Date类?
Date表示特定的瞬间,精确到毫秒。
Date类中的大部分方法都已经被Calendar类中的方法所取代。
时间单位: 1秒=1000毫秒; 1毫秒=1000微秒; 1微秒=1000纳秒
4.2 常用方法
eg:
public class Test {public static void main(String[] args) {//创建今天Date now = new Date();System.out.println(now);//创建昨天Date yesterday = new Date(now.getTime()-60*60*24*1000);System.out.println(yesterday);//创建明天Date tomorrow = new Date(now.getTime()+60*60*24*1000);System.out.println(tomorrow);}
}
5 SimpleDateFormat
5.1 什么是SimpleDateFormat类?
SimpleDateFormat是以与语言环境有关的方式来格式化和解析日期的类。
进行格式化(日期 -> 文本)、解析(文本 -> 日期)
常用的时间模式字母
字母 | 日期或时间 | 示例 |
---|---|---|
y | 年 | 2019(yyyy) |
M | 年中月份 | 08(MM) |
d | 月中天数 | 10(dd) |
H | 1天中小时数(0-23) | 22(HH) |
m | 分钟 | 16(mm) |
s | 秒 | 59(ss) |
S | 毫秒 | 367(SSSS) |
5.2 常用方法
eg:
public class Test {public static void main(String[] args) throws ParseException {//创建任意时间//2001-10-8 10:08:10//创建格式化对象SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String s = "2001-10-8 10:08:10";//把字符串转换成日期Date date = simpleDateFormat.parse(s);System.out.println(date);//把日期对象转换成字符串System.out.println("--------------");System.out.println(simpleDateFormat.format(now));System.out.println(simpleDateFormat.format(yesterday));System.out.println(simpleDateFormat.format(tomorrow));System.out.println(simpleDateFormat.format(date));}
}
5.3 面试题
eg:
将日期字符串"Jan 9,2023"转成"2023-01-09"
public class Test2 {public static void main(String[] args) throws ParseException {//日期字符串"Jan 9,2023"转成"2023-01-09"//Date 和 SimpleDateFormatString s1 = "Jan 9,2023";//默认语言环境简体中文SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy", Locale.ENGLISH);Date d = sdf.parse(s1);System.out.println(d);SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");System.out.println(sdf2.format(d));}
}
6 Calendar
6.1 什么是Calendar类?
Calendar提供了获取或设置各种日历字段的方法。
protected Calendar() 构造方法为protected修饰,无法直接创建该对象。
6.2 常用方法
eg:
public class calendar {public static void main(String[] args) {//创建日历对象Calendar now = Calendar.getInstance();//获取年份System.out.println(now.get(Calendar.YEAR));//获取月份System.out.println(now.get(Calendar.MONTH)+1);//获取天数System.out.println(now.get(Calendar.DAY_OF_MONTH));//获取小时System.out.println(now.get(Calendar.HOUR_OF_DAY));//获取分钟System.out.println(now.get(Calendar.MINUTE));//获取秒System.out.println(now.get(Calendar.SECOND));//设置日历Calendar calendar = Calendar.getInstance();calendar.set(2024, Calendar.JANUARY,9,11,19,20);System.out.println(calendar.getTime());}
}
7 System类
7.1 什么是System类?
System系统类,主要用于获取系统的属性数据和其他操作
7.2 常用方法
public class Test {public static void main(String[] args) {//System 系统类//1 arraycopy() 复制数组//src: 源数组//srcPos: 源数组位置//dest: 目标数组//dest: 目标数组位置//length: 长度int[] arr1 = {10,8,5,20,23};int[] arr2 = new int[arr1.length*2];System.arraycopy(arr1,0,arr2,0,arr1.length);System.out.println(Arrays.toString(arr2));//2 currentTimeMillis(); 从1970-1-1 0:0:0(Unix系统元年) 开始到现在的毫秒值System.out.println(System.currentTimeMillis());//3 gc(); 通知垃圾回收器回收垃圾System.gc();//4 exit(); 退出jvm//0 表示正常退出, 非0: 异常退出System.exit(0);System.out.println("程序结束了...");}
}
8 Runtime类
8.1 什么是Runtime类?
每个 Java 应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。
可以通过getRuntime方法获取当前运行时。
8.2 常用方法
方法名 | 说明 |
---|---|
Process exec(String command) | 在单独的进程中执行指定的字符串命令。 |
void exit(int status) | 终止当前正在运行的 Java 虚拟机。 |
void gc() | 建议JVM赶快启动垃圾回收器回收垃圾 |
long totalMemory() | 返回 Java 虚拟机中的内存总量。 |
long freeMemory() | 返回 Java 虚拟机中的空闲内存量 |
long maxMemory() | 返回 Java 虚拟机试图使用的最大内存量。 |
eg:
public class Test {public static void main(String[] args) throws IOException {//Runtime类: 每一个应用程序启动都对应Runtime对象//1 获取运行时对象Runtime runtime = Runtime.getRuntime();//2 exec(); 执行程序(单独程序中执行)//runtime.exec("notepad");//3 exit(); 退出jvm//runtime.exit(0);//4 gc(); 告诉垃圾回收器回收垃圾//runtime.gc();//5 内存相关的方法(堆)//totalMemory(); 总内存 -Xms 堆的初始大小//freeMemory(); 空闲内存 //maxMemory(); 最大内存 -Xmx 堆的最大大小 System.out.println(runtime.totalMemory() / 1024 / 1024);//MB 默认电脑内存的1/64System.out.println(runtime.freeMemory() / 1024 / 1024);System.out.println(runtime.maxMemory() / 1024 / 1024);//MB 默认电脑内存的1/4System.out.println(args.length);for (String arg : args) {System.out.println(arg);}}
}
这篇关于从零学Java 常用类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!