1w+ 字总结 Java 常用类,整理太全了,建议收藏..(2)

简介: 1w+ 字总结 Java 常用类,整理太全了,建议收藏..(2)

包装类


1.基本数据类型以及对应的包装类:


byte -> Byte
short -> Short
int -> Integer
long -> Long
float -> Float
double -> Double
char -> Character
boolean -> Boolean


这些类都在java.lang包


2.包装类的意义:


让基本数据类型有面向对象的特征

「封装了字符串转化成基本数据类型的方法(重点)」


3.包装类常用方法:


Integer.parseInt()
Long.paseLong()
Double.parseDouble()


【参考代码】


public class Test {
    public static void main(String[] args) {
//        Integer i = new Integer(10);// 创建包装类对象
//        Integer ii = 10; // 自动打包
//        System.out.println(i+10); // 在使用上,int 和Integer 其实没有区别,可以互相使用
//        System.out.println(ii+10);
//        int j = ii;// 自动解包
//        System.out.println(j+100);
        String a = "12";
        String b = "34";
        System.out.println(a+b); // 1234
    // 转型:
        // 字符串转成int的唯一方案
        int c = Integer.parseInt(a);
        int d = Integer.parseInt(b);
        System.out.println(c+d); // 46
        // 字符串转成double类型
        String e = "1.25";
        double f = Double.parseDouble(e);
        System.out.println(f*6); // 7.5
        // 转成long类型
        long l = Long.parseLong("1234567");
        System.out.println(l);
    }
}


数学类


数学类的方法都是静态方法,可以直接引用——Math.方法();


「常用数学类方法:」


abs():获取绝对值

max():求最大值

min():求最小值

pow():求次幂

round():四舍五入

sqrt():求平方根


时间类


Java常用时间类:

Date 日期类

Calendar 日历类

SimpleDateFormat 格式化时间类


Date和Calendar类 在java.util包中, SimpleDateFormat类 在java.text包


1.Date 日期


【1】new Date() 可以获取到系统时间


【2】getTime() 能获取到时间的long形式,可以用来计算时间差


getTime()——获取计算机底层存储的数字,返回一个数字用来表示时间,这个数字的类型long,单位为毫秒。


【参考代码】


import java.util.Date;
public class Test {
    public static void main(String[] args) {
        Date d = new Date();
        System.out.println(d); // 系统时间
        //get...()——获取年月日.....
        System.out.println(d.getYear()+1900); // 从1900年开始算的
        System.out.println(d.getMonth()+1); // 月份从0开始计算
        System.out.println(d.getDate()); // 天数
        System.out.println(d.getHours());// 小时
        //getTime()——获取到时间的毫秒形式 返回的是long
        System.out.println(d.getTime());
    }
}


2.Calendar 日历


【1】get() 获取到时间的某一部分


【2】set() 设置时间 - -> 计算时间:系统已经帮我们设置好了,不用担心二月有多少天等问题,计算时间十分方便


注:Calendar 日历类是抽象类,因此不可以去new对象。虽然抽象类不能创建对象,但是jdk官方提供了一个实例对象的操作:
Calendar rightNow = Calendar.getInstance();
我们通过这条代码就是直接造了一个Calender的对象


【参考代码】:get() 获取到时间的某一部分:


package date;
import java.util.Calendar;
public class TestCalendar {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
//        System.out.println(cal);
        /*
 假设当天:
        2021
        8
        10
         */
  cal.set(Calendar.DATE,cal.get(Calendar.DATE)+31); // 计算时间(这里用天数计算的)
        // 获取Calendar创建的对象里的所有内容
        System.out.println(cal.get(Calendar.YEAR)); // 2021 年
        System.out.println(cal.get(Calendar.MONTH)+1); // 月份:从0开始的  结果:为10月
        System.out.println(cal.get(Calendar.DATE)); // 日
        System.out.println(cal.get(Calendar.HOUR_OF_DAY));// 小时
        System.out.println(cal.get(Calendar.MINUTE));
        System.out.println(cal.get(Calendar.SECOND));
    }
}


【参考代码】:set() 设置时间 - -> 计算时间:


注:cal.setTime(d); 把Date转化成Calendar


package date;
import java.util.Calendar;
import java.util.Date;
public class TestCalendar {
    public static void main(String[] args) {
        Date d = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);// 把Date转化成Calendar
        System.out.println(cal);
        System.out.println(cal.get(Calendar.YEAR)); //  年
        System.out.println(cal.get(Calendar.MONTH)+1); // 月份:从0开始的
        System.out.println(cal.get(Calendar.DATE)); // 日
    }
}


3.SimpleDateFormat格式化时间


Date,Calendar通过引用也可以进行时间的格式化,但比较繁琐,而SimpleDateFormat类是专门帮我们格式化时间的工具类,它在java.text包中。


【时间格式】:yyyy-MM-dd HH:mm:ss


SimpleDateFormat类有两大常用方法:


【1】format(Date):


format(Date) 帮我们把时间转成字符串,字符串的格式为SimpleDateFormat类定义对象时设置的时间格式


【参考代码】


package Simple;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;
public class Test {
    public static void main(String[] args) {
        Date d = new Date();
        System.out.println(d); //Thu Aug 12 08:40:08 CST 2021  不美观
  //                  设置格式化时间的模式,我们常用yyyy-MM-dd HH:mm:ss这个模式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 时间格式
        String s = sdf.format(d); // 格式化时间
        System.out.println(s); // 2021-08-12 08:45:09
    }
}


【2】parse(String):


parse(String) 帮我们把字符串转化成时间


【参考代码】


package Simple;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Test2 {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个时间(yyyy-MM-dd HH:mm:ss):");
        String s = sc.nextLine();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       Date d =  sdf.parse(s); // 把字符串转成时间
        System.out.println(d);
        /*
        请输入一个时间(yyyy-MM-dd HH:mm:ss):
        2021-08-12 12:25:21
        Thu Aug 12 12:25:21 CST 2021
         */
    }
}
注:由于用户输入的字符串不一定是我们要求的格式,可能是任何东西,想把它们转成时间是不可能的,你不可能把一个人转成时间 对吧,因此存在着很大的风险未处理(异常: java.text.ParseException),为此我们需要处理异常。


4.计算时间差


计算思路:


格式化时间

先将字符串转化成long类型时间

计算毫秒级别时间差,取绝对值

毫秒级别时间差转成秒级别

秒级别时间差转成分钟级别

分钟级别时间差转化显示成xx小时xx分钟


【参考代码】

package Simple;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDiff {
    public static void main(String[] args) throws ParseException {
        String s1 = "2021-08-12 12:00:00"; // 开始时间
        String s2 = "2021-08-12 14:35:00"; // 结束时间
        //格式化时间
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
        //将字符串转成时间形式
        Date d1 = sdf.parse(s1);
        Date d2 = sdf.parse(s2);
        //计算时间差:先要获取时间毫秒形式(long类型) 再做差
        long long1 = d1.getTime();
        long long2 = d2.getTime();
        long diffTime = Math.abs(long1 - long2);
        // 秒级别时间差
        long diffSec = diffTime / 1000;
        // 分级别时间差
        long diffMin = diffSec / 60;
        //显示 xx小时xx分钟
        long displayHours = diffMin / 60; // 小时
        long displayMin = diffMin % 60; //分钟
        System.out.println("您学习的时长为:"+displayHours+"小时"+displayMin+"分钟");
    }
}



相关文章
|
5月前
|
Java 编译器 API
Java 密封类:精细化控制继承关系
Java 密封类:精细化控制继承关系
380 83
|
3月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
264 101
|
3月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
300 100
|
6月前
|
IDE Java 数据挖掘
Java 基础类从入门到精通实操指南
这份指南专注于**Java 17+**的新特性和基础类库的现代化用法,涵盖开发环境配置、数据类型增强(如文本块)、字符串与集合处理进阶、异常改进(如密封类)、IO操作及实战案例。通过具体代码示例,如CSV数据分析工具,帮助开发者掌握高效编程技巧。同时提供性能优化建议和常用第三方库推荐,适合从入门到精通的Java学习者。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
251 36
|
4月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
444 143
|
2月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
115 4
|
2月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
206 5
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
196 1
|
2月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
247 1
|
2月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
199 1