IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 第五章 Java基础类库 -> 正文阅读

[Java知识库]第五章 Java基础类库

目录

一、获取键盘输入Scanner

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

二、系统相关类: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....)

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-02-24 15:08:34  更:2022-02-24 15:10:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:00:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码