第五章 Java基础类库

目录

一、获取键盘输入:Scanner

二、系统相关类:System和Runtime

        (1)System类(当前Java程序的运行平台)

      (2)Runtime类(Java程序的运行时环境)

三、常用类

        (1)Object类(所有类、数组、枚举类的父类)

        (2)Objects类(Object类的工具类)

        (3)String类

        (4)StringBuffer和StringBuilder类

        (5)Math类(数学工具类)

        (6)BigDecimal类(浮点数计算)

四.日期时间类

        (1)Date时间类,SimpleDateFormat时间格式类

        (2)Calender日期类

        (3)LocalDateTime时间类,DateTimeFormatter格式化日期类

        (4)Period日期间隔类

        (5)Duration时间间隔类

       (6)ChronoUnit类(用于计算时间间隔)


一、获取键盘输入:Scanner

       (1)Scanner sc = new Scanner(System.in);

              方法:① sc.hasNext()                是否还有下一个输入项

                            sc.nextXXX()                获取下一个输入项

                        ② sc.hasNextLine()          是否还有下一行输入项

                             sc.nextLine()                获取下一行输入项

二、系统相关类:System和Runtime

        (1)System类(当前Java程序的运行平台)

                方法:①System.getenv();       获取系统所有环境变量 

                           ②System.getenv(”JAVA_HOME“);         获取指定的系统环境变量,例:JAVA_HOME

                           ③System.getProperties();         获取所有的系统属性

                           ④System.getPropertiy(”os.name“);         获取指定的系统属性,例:os.name

                           ⑤System.currentTimeMillis();        以毫秒为单位获取系统当前时间

                           ⑥System类的in(输入)、out(输出)、err(错误输出)

                           ⑦System.indentityHashCode();        指定对象的精确hashCode值

                           ⑧System.gc();           通知系统进行垃圾回收

                           ⑨System.runFinalization();         通知系统进行资源清理

                            ⑩System.exit(int status);        终止当前正在运行的Java虚拟机

      (2)Runtime类(Java程序的运行时环境)

                Runtime rt = new Runtime();

                方法:① rt.availableProcessors();        运行时的处理器数量

                           ② rt.freeMemory();        空闲内存数

                           ③ rt.totalMemory();        总内存数

                           ④ rt.maxMemory();        可用的最大内存

                           ⑤ rt.exec("notepad.exe")        运行程序,例:记事本

三、常用类

        (1)Object类(所有类、数组、枚举类的父类)

         因为所有Java类都是Object类的子类,所以任何Java对象都可以直接调用Object方法;(注:⚪表示当前方法的引用对象)

         方法: ① ⚪.equlas(Object obj);        判定指定对象和当前对象是否相等

                     ② ⚪.finalize();        当对象没用变量引用时,该方法可以清理引用对象的资源

                     ③ ⚪.getClass();        返回当前对象的运行时class类

                     ④ ⚪.hashCode();        返回当前对象的hashCode值

                     ⑤ ⚪.toString();         返回当前对象的字符串表示

                     ⑥ ⚪.clone();        克隆生成当前对象的副本(实现Cloneable接口的类才可以克隆)

        (2)Objects类(Object类的工具类)

        当引用变量为null时,调用变量的toString()方法就会引发NullPonterExcetpion异常.所以有些方法建议使用Objects类的方法;

      方法: ①Objects.hashCode(Object obj);        输出对象的hashCode值

                  ②Objects.toString(Object obj);         输出对象的字符串表示

        (3)String类

        String类在创建后对象中字符序列不可改变,直至销毁.

        String str = new String();

        方法:①str.compareTo(String s);        比较当前两个字符串的大小

                   ②str.equals(Object obj);        与对象比较是否相等

                   ③str.equalsIgnoreCase(Object obj);        不区分大小写的,对象比较是否相等

                   ④str.getBytes();        字符串转换为byte数组

                   ⑤str.indexOf(String s,int index);        字符或字符串在该字符串的index位置开始,第一次出现位置(index可不写,表示字符串s在当前字符串第一次出现位置)

                   ⑥str.lastIndexOf(String s,int index);        字符或字符串在该字符串的index位置开始,最后一次出现位置(index可不写,表示字符串s在当前字符串中最后一次出现位置)

                   ⑦str.length();        字符串的长度

                   ⑧str.startsWith(String s,int index);        当前字符串从index开始,是否是字符串s开头(index可不写,表示当前字符串是否以s开头)

                   ⑨str.endsWith(String s,int index);         当前字符串从index开始,是否是字符串s结尾(index可不写,表示当前字符串是否以s结尾)

                   ⑩str.subString(int from,int end);        字符串截取从from位置到end位置的子字符串

                   ⑪str.toCharArray();        字符串转换成字符数组

                   ⑫str.toLowerCase();        字符串转换成小写

                   ⑬str.toUpperCase();        字符串转换成大写

                   ⑭str.splt(String s);        以字符串s为断点,截取当前字符串

                   ⑮str.valueOf(X x);        将基本类型转换为String字符串

        (4)StringBuffer和StringBuilder类

        StringBuffer和StringBuilder类是一个字符序列可以改变的字符串. StringBuffer是线程安全,而StringBuilder是线程不安全,StringBuilder的性能要比StringBuffer高.

       StringBuilder sb = new  StringBuilder();

        方法:①sb.append(String s);        sb字符串后面追加字符串s

                ②sb.insert(int index,String s) ;        sb字符串在index位置追加字符串s

                ③sb.replace(int from,int end,String s);        将sb字符串从from到end位置替换为字符串s

                ④sb.delete(int from,int end);        删除sb字符串的from到end位置

                ⑤sb.reverse();        反转字符串

                ⑥sb.length();        字符串长度

        (5)Math类(数学工具类)

         主要用于完成复杂的数学运算.Math类的构造器定义为private,无法创建Math对象,可以直接通过类名调用,并且Math类还提供了两个变量:PI和E,它们的值相当于π和e.

        方法:①Math.floor(double a);        取整,返回小于a的最大整数

                ②Math.ceill(double a);        取整,返回大于a的最小整数

                ③Math.sqrt(double a);        计算a的平方根

                ④Math.cbrt(double a);        计算a的立方根

                ⑥Math.pow(double a,double b);        计算乘方,结果为a的b次方,a ^ b

                ⑦Math.max(double a,double b);       计算两个数a,b中的最大值

                ⑧Math.min(double a,double b);        计算两个数a,b中的最大值

                ⑨Math.random();        返回大于等于0.0且小于1.0的随机数    

                ⑩Math.round(double a);        计算a的四舍五入

                ⑪Math.abs(double a);        计算a的绝对值,| a |

        (6)BigDecimal类(浮点数计算)

        在计算小数时,用float或double类型时会发生精度缺失.所以Java提供了BigDecimal类用于精确的计算浮点数.

        BigDecimal bd = new BigDecimal(String s);        参数为String类型

        BigDecimal bd = BigDecimal.valueOf(double d);        参数为double类型

        方法:①bd.add(BigDecimal bdo);        加法,bd + bdo

                ②bd.subtract(BigDecimal bdo);        减法,bd - bdo

                ③bd.multiply(BigDecimal bdo);        乘法,bd * bdo

                ④bd.divide(BigDecimal bdo);        除法,bd / bdo

四.日期时间类

        (1)Date时间类,SimpleDateFormat时间格式类

        Date类从JDK1.0开始使用,是用来处理时间和日期.但此类的大部分构造器和方法都已过时,所以此类了解即可.

        SimpleDateFormat类为格式化Date时间类.

        Date date = new Date();

        方法:①date.getTime();        获取时间毫秒,返回当前时间距离1970年1月1日的时间差

                ②date.setTime(long l);        设置时间;

                ③date.after(Date d);        当前时间是否在时间d之后

                ④date.before(Date d);         当前时间是否在时间d之前

       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        方法:①sdf.format(Date d);        将d的Date类型格式化为String类型

                ②sdf.parse(String s);       将s的String类型格式化为Date类型

        (2)Calender日期类

        因为Date类在设计上存在缺陷,所以Java提供Calender日期类替代Date类来处理时间和日期.

        Calender c = Calender.getInstance();

        方法:①c.getTime();        将Calender日期类转化为Date类,返回Date对象

                ②c.setTime(Date d);         将Date类转化为Calender日期类,返回Calender对象

                ③c.add(int field,int num);        添加或减去时间量

                ④c.get(int field);        获取时间,如年YEAR

                ⑤c.set(int field,int num);        设置时间

        (3)LocalDateTime时间类,DateTimeFormatter格式化日期类

        JDK8提供的新的时间日期类,使用率比较大的.

         LocalDateTime ldt = LocalDateTime.now();        获取当前时间的LocalDateTime对象

        方法:①ldt.getYear();        获取年

                ②ldt.getMonthValue();        获取月份(1-12)

                ③ldt.getDayOfMonth();        获取月份中的第几天(1-31)

                ④ldt.getDayOfYear();        获取一年中的第几天(1-366)

                ⑤ldt.getDayOfWeek();        获取星期

                ⑥ldt.getMinute();        获取分钟

                ⑦ldt.getHour();        获取小时

                ⑧ldt.plusYears(long years);        添加或减去年

                ⑨ldt.plusMonths(long months);        添加或减去月

                ⑩ldt.plusDays(long days);        添加或减去日

                ⑪ldt.plusHours(long hours);        添加或减去时

                ⑫ldt.withYear(int year);        修改年

                ⑬ldt.withMonth(int month);        修改月

                ⑭ldt.withDayOfYear(int day);        修改日期,一年中第几天
                ⑮ldt.withDayOfMonth(int day);        修改日期,一年中第几月

                ⑯ldt.toLocalDate();        转换为LocalDate日期类对象

                ⑰ldt.toLocalTime();        转换为LocalTime时间类对象

        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")

                ⑱ldt.format(DateTimeFormatter dtf);        将LocalDateTime对象格式化成字符串  

                ⑲LocalDateTime.parset(String s,DateTimeFormatter dtf)        将日期字符串解析成LocalDateTime对象,此处为直接类方法调用.

        (4)Period日期间隔类

        此类可用于计算两个日期的差,参数类型必须是以日为单位的日期类,如LocalDate类型.

        Period pe = Period.between(LocalDate ldt1,LocalDate ldt2);

        方法:①pe.getYears();        计算这段时间的年数

                ②pe.getMonths();         计算这段时间的月份

                ③pe.getDays();         计算这段时间的天数

                ④pe.getTotalMonths();         计算这段时间的总月数

        (5)Duration时间间隔类

         此类可用于计算两个时间的差,参数类型必须以秒为单位的时间类.如LocalTime和LocalDateTime类型

        Duration du = Duration.between(LocalDateTime ldt1, LocalDateTime ldt1);

        方法:①du.toSeconds();        获取此时间间隔的秒

                ②du.toMillis();        获取此时间间隔的毫秒

                ③du.toNanos();        获取此时间间隔的纳秒

       (6)ChronoUnit类(用于计算时间间隔)

        JDK8提供的枚举类,提供基于单元的访问来操纵日期,可用于计算时间间隔.(常用)

        方法:①ChronoUnit.DAYS.between(Temporal tem1, Temporal tm2);        用来计算两个日期的时间差.(DAYS是计算天数的,可换成YEARS,MONTHS或HOURS....)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值