第十一章总结

目录

一.包装类

        1.Integer类

 【例11.1】Integer类的常用方法

【例11.2】查看Integer类的常量值

        2.Double类 

【例11.3】Double类的常用方法

        3.Boolean类

 【例11.4】Boolean类的常用方法

        4.Character类

【例11.5】Character类的常用方法 

        5.Number类

二.数字处理

        1.数字格式化

 【例11.6】DecimalFormat类的常用方法

        2.Math类

                (1)三角函数方法

【例11.7】在Java代码中进行三角函数运算

                 (2)指数函数方法

【例11.8】在Java代码中进行指数函数运算

                (3)取整函数方法 

【例11.9】各场景下取整函数的运算结果

                (4)取最大值、最小值、绝对值函数方法

【例11.10】取最大值、最小值、绝对值的方法

        3.Random类

【例11.11】获取不同取值范围、不同类型的随机数

        4.BigInteger类 

【例11.12】使用BigInteger类进行数学运算

        5.BigDecimal类

 【例11.13】使用BigDecimal类进行数学运算 

总结:

三.System类

        1.控制台输出字符 

(1)不会自动换行的print()方法

(2)可以自动换行的println()方法

        2.计时

【例11.14】查看执行一万次字符串拼接所消耗的时间

四.Scanner类

【例11.15】猜数字游戏

五.日期时间类

        1.Date类

 【例11.16】获取当前的日期和时间

        2.日期时间格式化

【例11.17】以中文的形式打印当前的日期和时间 

 总结:

        3.Calendar类

【例11.18】今天离中华人民共和国成立100周年差多少天

对Calendar类的使用的总结: 

六.Runtime类

        1.执行本地命令

 【例11.19】让Java程序执行Windows系统的help命令

        2.查看内存 

【例11.20】监控虚拟机内存使用情况


第十一章总结_第1张图片

第十一章总结_第2张图片

一.包装类

第十一章总结_第3张图片

        1.Integer类

        Integer类在对象中包装了一个基本数据类型int的值,该类的对象包含了一个int类型的字段。此外,该类提供了多个方法,能在int类型和String类型之间互相转换,同时还提供了其他一些处理int类型时非常有用的常量和方法。

第十一章总结_第4张图片

 【例11.1】Integer类的常用方法

代码:

第十一章总结_第5张图片

         

结果:

第十一章总结_第6张图片

 Integer类提供了以下4个常量:

(1)MAX_VALUE:表示int类型可取的最大值,即2^31-1。

(2)MIN_VALUE:表示int类型可取的最小值,即-2^31。

(3)SIZE:用来以二进制补码形式表示int值的位数。

(4)TYPE:表示基本类型int的Class实例。

【例11.2】查看Integer类的常量值

代码:

第十一章总结_第7张图片

结果:

        2.Double类 

        Double类在对象中包装一个基本类型为double的值,每个Double类的对象都包含一个double类型的字段。此外,该类还提供多个方法,可以将double类型转换为String类型,将String类型转换为double类型,也提供了其他一些处理double类型时有用的常量和方法。

第十一章总结_第8张图片

【例11.3】Double类的常用方法

代码:

第十一章总结_第9张图片

结果:

第十一章总结_第10张图片

Double类主要提供了以下变量:

(1) MAX_EXPONENT:返回int值,表示有限double变量可能具有的最大指数。

(2) MIN_EXPONENT:返回int值,表示标准化double变量可能具有的最小指数。

(3) NEGATIVE_INFINITY:返回double值,表示保存double类型的负无穷大值的常量。

(4) POSITIVE_INFINITY:返回double值,表示保存double类型的正无穷大值的常量。

        3.Boolean类

        Boolean类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。此外,此类还为boolean类型和String类型的相互转换提供了许多方法,并提供了处理boolean类型时非常有用的其他一些常量和方法。

第十一章总结_第11张图片

 【例11.4】Boolean类的常用方法

 代码:

第十一章总结_第12张图片

 结果:

 Boolean提供了以下3个变量:

(1)TRUE:对应基值true的Boolean对象。

(2)FALSE:对应基值false的Boolean对象。

(3)TYPE:基本类型boolean的Class对象。

        4.Character类

        Character类在对象中包装一个基本类型为char的值,该类提供了多种方法,以确定字符的类型(小写字母、数字等),并可以很方便地将字符从大写转换成小写,反之亦然。

第十一章总结_第13张图片

【例11.5】Character类的常用方法 

代码:

第十一章总结_第14张图片

结果:

第十一章总结_第15张图片

 Character类提供了大量表示特定字符的常量,例如:

(1)COUNECTOR_PUNCTUATION:返回byte型值,表示Unicode规范中的常规类型“Pc”。

(2)UNASSIGNED:返回byte型值,表示Unicode规范中的常规类型“Cn”。

(3)TITLECASE_LETTER:返回byte型值,表示Unicode规范中的常规类型“Lt”。

        5.Number类

        对于数值型的包装类,它们有一个共同的父类——Number类,该类是一个抽象类,它是Byte、Integer、Short、Long、Float和Double类的父类,其子类必须提供将表示的数值转换为byte、int、short、long、float和double的方法。

第十一章总结_第16张图片

二.数字处理

        1.数字格式化

        数字格式化操作主要针对的是浮点型数据,包括double型和float型数据。在Java中使用java.text.DecimalFormat格式化数字。

        在Java中,没有格式化的数据遵循以下原则:

(1)如果数据绝对值大于0.001并且小于10000000,使以常规小数形式表示。

(2)如果数据绝对值小于0.001并且大于10000000,使用科学记数法表示。

        DecimalFormat类是NumberFormat的一个子类,用于格式化十进制数字。它可以将一些数字格式化为整数、浮点数、百分数等。通过使用该类可以为要输出的数字加上单位或控制数字的精度。一般情况下,可以在实例化DecimalFormat对象时传递数字格式,也可以通过 DecimalFormat类中的applyPattern()方法来实现数字格式化。

        当格式化数字时,可在 DecimalFormat类中使用一些特殊字符构成一个格式化模板,使数字按照一定的特殊字符规则进行匹配。

第十一章总结_第17张图片

第十一章总结_第18张图片

 【例11.6】DecimalFormat类的常用方法

代码:

第十一章总结_第19张图片

结果:

第十一章总结_第20张图片

        在 DecimalFormat类中,除了可通过格式化模板来格式化数字,还可以使用一些特殊方法对数字进行格式化设置。例如:

DecimalFormat myFormat=new DecimalFormat();//实例化DecimalFormat类对象
myFormat.setGroupingSize(2);//设置将数字分组的大小
myFormat.setGroupingUsed(false);//设置是否支持分组

        在上述代码中,setGroupingSize()方法设置格式化数字的分组大小,setGroupingUsed()方法设置是否可以对数字进行分组操作。

在项目中创建DecimalMethod类,在类的主方法中调用setGroupingSize()与setGroupingUsed()方法实现数字的分组。

代码:

第十一章总结_第21张图片

结果:

        2.Math类

        Math类提供了众多数学函数方法,主要包括三角函数方法,指数函数方法,取整函数方法,取最大值、最小值,以及平均值函数方法。这些方法都被定义为static形式,所以在程序中应用比较简便,可以使用如下形式调用:

Math.数学方法

        在Math类中,除函数方法外还存在一些常用数学常量,可以使用如下形式调用:

Math.PI
Math.E

                (1)三角函数方法

Math类中包含的三角函数方法:

(1)public static double sin(double a):返回角的三角正弦。

(2)public static double cos(double a):返回角的三角余弦。

(3)public static double tan(double a):返回角的三角正切。

(4)public static double asin(double a):返回一个值的反正弦。

(5)public static double acos(double a):返回一个值的反余弦。

(6)public static double atan(double a):返回一个值的反正切。

(7)public static double toRadians(double angdeg):将角度转换为弧度。

(8)public static double toDegrees(double angdeg):将弧度转换为角度。

【例11.7】在Java代码中进行三角函数运算

代码:

第十一章总结_第22张图片

结果:

第十一章总结_第23张图片

                 (2)指数函数方法

Math类中与指数函数相关的函数方法:

(1)public static double exp(double a):用于获取e的a次方。

(2)public static double log(double a):用于取自然对数。

(3)public static double log10(double a):用于取底数为10的a的对数。

(4)public static double sqrt(double a):用于取a的平方根,其中a的值不能为负值。

(5)public static double cbrt(double a):用于取a的立方根。

(6)public static double pow(double a,double b):用于取a的b次方。

【例11.8】在Java代码中进行指数函数运算

代码:

第十一章总结_第24张图片

结果:

第十一章总结_第25张图片

                (3)取整函数方法 

Math类中主要包括以下几种取整方法:

(1)public static double ceil(double a):返回大于等于参数的最小整数。

(2)public static double floor(double a):返回小于等于参数的最大整数。

(3)public static double rint(double a):返回与参数最接近的整数,如果存在两个同样接近的整数,则结果取偶数。

(4)public static int round(float):将参数加上0.5后返回与参数最近的整数。

(5)public static long round(double a):将参数加上0.5后返回与参数最近的整数,然后强制转换为长整型。

【例11.9】各场景下取整函数的运算结果

代码:

第十一章总结_第26张图片

结果:

第十一章总结_第27张图片

                (4)取最大值、最小值、绝对值函数方法

        这是在程序中最常用的方法,Math类中包含的操作方法如下:

(1)public static double max(double a,double b):取a与b之间的最大值。

(2)public static int min(int a,int b):取a与b之间的最小值,参数为整型。

(3)public static long min(long a,long b):取a与b之间的最小值,参数为长整型。

(4)public static float min(float a,float b):取a与b之间的最小值,参数为单精度浮点型。

(5)public static double min(double a,double b):取a与b之间的最小值,参数为双精度浮点型。

(6)public static int abs(int a):返回整型参数的绝对值。

(7)public static long abs(long a):返回长整型参数的绝对值。

(8)public static float abs(float a):返回单精度浮点型参数的绝对值。

(9)public static double abs(double a):返回双精度浮点型参数的绝对值。

【例11.10】取最大值、最小值、绝对值的方法

代码:

第十一章总结_第28张图片

结果:

        3.Random类

        Random类是JDK中随机数生成器类,可以通过实例化一个Random对象创建一个随机数生成器,语法如下:

Random r=new Random();

        用户也可以在实例化Random类对象时,设置随机数生成器的种子。语法:

Random r=new Random(seedValue);

r:Random类对象。

seedValue:随机数生成器的种子。

在Random类中获取各种数据类型随机数的方法:

(1)public int nextInt():返回一个随机整数。

(2)public int nextInt(int n):返回大于等于0且小于n的随机整数。

(3)public long nextLong():返回一个随机长整型值。

(4)public boolean nextBoolean():返回一个随机布尔型值。

(5)public float nextFloat():返回一个随机单精度浮点型值。

(6)public double nextDouble():返回一个随机双精度浮点型值。

(7)public double nextGaussian():返回一个概率密度为高斯分布的双精度浮点型值。

【例11.11】获取不同取值范围、不同类型的随机数

代码:

第十一章总结_第29张图片

结果:

第十一章总结_第30张图片

        4.BigInteger类 

        使用BigInteger类,可以实例化一个BigInteger对象,并自动调用相应的构造函数。BigInteger类具有很多构造函数,但最直接的一种方式是参数以字符串形式代表要处理的数字。

        例如,将2转换为BigInteger类型,可以使用以下语句进行初始化操作:

BigInteger twoInstance=new BigInteger("2");

BigInteger类中常用的几种运算方法:

(1)public BigInteger add(BigInteger val):做加法运算。

(2)public BigInteger subtract(BigInteger val):做减法运算。

(3)public BigInteger multiply(BigInteger val):做乘法运算。

(4)public BigInteger divide(BigInteger val):做除法运算。

(5)public BigInteger remainder(BigInteger val):做取余运算。

(6)public BigInteger[] divideAndRemainder(BigInteger val):用数组返回余数和商,结果数组中第一个值为商,第二个值为余数。

(7)public BigInteger pow(int exponent):进行取参数的exponent次方操作。

(8)public BigInteger negate():取相反数。

(9)public BigInteger shiftLeft(int n):将数字左移n位,如果n为负数,做右移操作。

(10)public BigInteger shiftRight(int n):将数字右移n位,如果n为负数,做左移操作。

(11)public BigInteger and(BigInteger val):做与操作。

(12)public BigInteger or(BigInteger val):做或操作。

(13)public int compareTo(BigInteger val):做数字比较操作。

(14)public boolean equals(Object x):当参数x是BigInteger类型的数字并且数值与对象实例的数值相等时,返回true。

(15)public BigInteger min(BigInteger val):返回较小的数值。

(16)public BigInteger max(BigInteger val):返回较大的数值。

【例11.12】使用BigInteger类进行数学运算

代码:

第十一章总结_第31张图片

结果:

第十一章总结_第32张图片

        5.BigDecimal类

        BigDecimal类和BigInteger类都能实现大数字的运算,不同的是BigDecimal类加入了小数的概念。BigDecimal类支持任何精度的定点数,可以用它来精确计算货币值。

         BigDecimal类类型的数字可以用来做超大的浮点型的运算,如加、减、乘、除等,但是在所有的运算中除法是最复杂的,因为在除不尽的情况下商小数点后的末位的处理是需要考虑的。

第十一章总结_第33张图片

        在上述方法中,BigDecimal类中divide()方法有多种设置,用于返回商小数点后的末位的处理。 

第十一章总结_第34张图片

 【例11.13】使用BigDecimal类进行数学运算 

代码:

第十一章总结_第35张图片

结果:

总结:

代码:

第十一章总结_第36张图片

结果:

第十一章总结_第37张图片

三.System类

        System类是JDK中提供的系统类,该类是用final修饰的,所以不允许被继承。System类提供了很多系统层面的操作方法,并且这些方法全部都是静态的。

第十一章总结_第38张图片

        1.控制台输出字符 

        System类提供了标准输出和错误输出流,也就是说,System类提供了3个静态对象:in、out和err

(1)不会自动换行的print()方法

System.out.print("Hello!");

       此方法输出“Hello”文字,输出完毕后,光标会停留在“Hello”文字末尾,不会自动换行

(2)可以自动换行的println()方法

System.out.println("书籍是人类进步的阶梯!");

        此方法输出文字后会自动换行。光标停留在下一行的开头。

Java输出换行的两种方法:

System.out.print("\n");//利用换行符\n实现换行
System.out.println();//空参数即可实现换行

        2.计时

        System.currentTimeMillis()方法可以获取自1970年1月1日零点至今的毫秒数,是为获取当前毫秒数最常用的方法。

【例11.14】查看执行一万次字符串拼接所消耗的时间

代码:

第十一章总结_第39张图片

结果:

四.Scanner类

        控制台输出内容用到了System.out就表示向控制台输出,System.in就表示从控制台输入,让Scanner扫描System.in就可以获取用户输入的值了。

        使用Scanner类首先要引入该类,语法:

import java.util.Scanner;//引入Scanner类

         使用Scanner类扫描控制台的代码如下:

Scanner sc=new Scanner(System.in);

【例11.15】猜数字游戏

代码:

第十一章总结_第40张图片

结果:

第十一章总结_第41张图片

五.日期时间类

        1.Date类

        Date类用于表示日期时间,使用该类表示时间需要使用其构造方法创建对象。

例如,使用Date类的第二种构造方法创建一个Date类的对象,代码:

long timeMillis=System.currentTimeMillis();//当前系统时间所经历的毫秒数
Date date=new Date(timeMillis);

 【例11.16】获取当前的日期和时间

代码:

第十一章总结_第42张图片

结果:

        2.日期时间格式化

        DateFormat类是日期时间格式化子类的抽象类,可以按照指定的格式对日期或时间进行格式化。

         DateFormat类提供了很多类方法,以获得基于默认或给定语言环境和多种格式化风格的默认日期时间Formatter,格式化风格主要包括SHORT、MEDIUM、LONGFULL4种:

        (1)SHORT:完全为数字,如12.13.52或3:30pm。

        (2)MEDIUM:较长,如Jan 12,1952。

        (3)LONG:更长,如January 12,1952或3:30:32pm。
        (4)FULL:完全指定,如Tuesday、April 12、1952 AD或3:30:42pm PST。

        使用DateFormat类还可以自定义日期时间的格式。要格式化一个当前语言环境下的日期,首先需要创建DateFormat类的一个对象,由于它是抽象类,因此可以使用其静态方法getDateInstance()进行创建,语法:

DateFormat df=DateFormat.getDateInstance();

        使用getDateInstance()方法获取的是所在国家或地区的标准日期格式。

        DateFormat类还提供了一些其他静态方法

         由于DateFormat类是一个抽象类,不能用new创建实例对象。因此,除了使用getXXXInstance()方法创建其对象,还可以使用其子类,如SimpleDateFormat类,该类是一个以与语言环境相关的方式来格式化和分析日期的具体类,它允许进行格式化(日期→文本)、分析(文本→日期)和规范化

 

【例11.17】以中文的形式打印当前的日期和时间 

代码:

第十一章总结_第43张图片

结果:

        DateFormat类提供的Date parse(String source)方法可以将字符串转为其字面日期对应的Date对象,整个过程相当于日期格式化的逆操作

        例如,将“2021-02-19”这个字符串转成Date对象,代码:

DateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date=sdf.parse("2021-02-19");

 总结:

代码:

第十一章总结_第44张图片

结果:

第十一章总结_第45张图片

        3.Calendar类

        Calendar提供了一个类方法getInstance(),以获得其类型的一个通用的对象。Calendar类的getInstance()方法返回一个Calendar对象,其日历字段已由当前日期和时间格式化,使用方法:

Calendar rightNow=Calendar.getInstance();

 

【例11.18】今天离中华人民共和国成立100周年差多少天

代码:

第十一章总结_第46张图片

结果:

对Calendar类的使用的总结: 

(1)c.set(Calendar.DAY_OF_MONTH,0)获取的是上个月的最后一天,所以调用前需要将月份往后加一个月

(2)Calendar.MONTH的第一个月是使用0记录的,所以在获得月份数字后要加1。年和日是从1开始记录的不需要加1

(3)Calendar.DAY_OF_WEEK的第一天是周日,周一是第二天,周六是最后一天

六.Runtime类

        Runtime类不能使用new关键字创建实例,只能通过Runtime.getRunntime()方法获取实例。

        1.执行本地命令

        本地命令指的是操作系统的命令

        Runtime类提供exec()方法让Java代码可以执行系统命令,exec()方法有很多重载形式,如:

Process exec(String command)
Process exec(String[] cmdarray)

command:要执行的系统命令,字符串类型。

cmdarray:要执行的命令和相应的命令参数,字符串数组类型。

        使用第一种重载方式的代码:

Runtime.getRuntime().exec("javac hello.java");

        使用第二种重载方式的代码:

String command[]={"javac","hello.java");
Runtime.getRuntime().exec(command);

 【例11.19】让Java程序执行Windows系统的help命令

代码:

第十一章总结_第47张图片

 

结果:

第十一章总结_第48张图片

        2.查看内存 

        Runtime类可以通过freeMemory()方法查看当前Java虚拟机可用内存的剩余量。

【例11.20】监控虚拟机内存使用情况

代码:

第十一章总结_第49张图片

 

结果:

第十一章总结_第50张图片

注意: freeMemory()方法得到的剩余内存量是近似值

        感谢观看!

你可能感兴趣的:(java,算法,c++)