Java第十一章总结

11.1 包装类

 

11.1.1 Integer 类

Integer 类在对象中包装了一个基本数据类型 int 的值,该类的对象包含了一个 int 类型的字节。

package elevenbao;
public class 例题1 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int num = Integer.parseInt("456");
		Integer iNum = Integer.valueOf("456");
		System.out.println("int数据与Integer对象的比较:" + iNum.equals(num));
		String str2 = Integer.toBinaryString(num);
		String str3 = Integer.toHexString(num);
		String str4 = Integer.toOctalString(num);
		String str5 = Integer.toString(num,15);
		System.out.println("456的二进制表示为:" + str2);
		System.out.println("456的十六进制表示为:" + str3);
		System.out.println("456的八进制表示为:" + str4);
		System.out.println("456的十五进制表示为:" + str5);
	}
}

 

 

MAX_VALUE: 表示 int 类型可取的最大值,即2的31次方减一。

MIN_VALUE:表示  int 类型可取的最小值,即-2的31次方。

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

TYPE:表示基本类型 int 的Cless 实例。

例题11.2:
 

package elevenbao;
public class 例题2 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int maxint = Integer.MAX_VALUE;
		int minint = Integer.MIN_VALUE;
		int intsize = Integer.SIZE;
		System.out.println("int类型可取的最大值是:" + maxint);
		System.out.println("int类型可取的最小值是:" + minint);
		System.out.println("int类型的二进制数是:" + intsize);
	}
}

  11.1.2 Double类
Double 类在对象中包装一个基本数据类型为 double 的值,每个 Double 类的对象都包含一个 double 类型的字段。此外,该类还提供了多个方法,可以将 double 类型转换为 String 类型,将 String 类型转化为 double 类型。

 例题11.3:

package elevenbao;
public class 例题3 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Double dNum = Double.valueOf("3.14");
		System.out.println("3.14是否为非数字值:" + Double.isNaN(dNum.doubleValue()));
		System.out.println("3.14转换为int值为:" + dNum.intValue());
		System.out.println("值为3.14的Double对象与3.14的比较结果:" + dNum.equals(3.14));
 
	}
}

 

 

11.1.3 Boolean 类 

Boolean 类的常用方法

 例题 11.4: 

package elevenbao;
public class 例题4 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Boolean b1 = Boolean.valueOf("true");
		Boolean b2 = Boolean.valueOf("ok");
		System.out.println("b1: " + b1.booleanValue());
		System.out.println("b2: " + b2.booleanValue());
	}
}

 11.1.4 Character 类

该提供了多种方法,以确定字符的类别(小写字母、数字等),并可以很方便地将字符从大写转化为小写,反之亦然。Character 类的常用方法:

 

package elevenbao;
public class 例题5 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Character mychar1 = Character.valueOf('A');
		Character mychar2 = Character.valueOf('a');
		if(Character.isUpperCase(mychar1)) {
			System.out.println(mychar1 + "是大写字母 ");
			System.out.println("转换为小写字母的结果:" + Character.toLowerCase(mychar1));
		}if(Character.isLowerCase(mychar2)) {
			System.out.println(mychar2 + "是小写字母 ");
			System.out.println("转换为小写字母的结果:" + Character.toUpperCase(mychar2));
		}
	}
}

 11.1.5 Number 类

前面介绍了 java 中的包装类,对于数值型的包装类,它们有一个共同的父类——Number 类,该类是一个抽象类。

数值型包装类共有方法:

 

 

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

DecimalFormat 类是 NumberFormat 的一个子类,用于格式化十进制数字。它可以将一些数字格式化为整数、浮点数、百分数等。通过使用该类可以为要输出的数字加上单位或控制数字的精度。

DecimalFormat 类中的特殊字符及其说明:

 

package elevenbao;
 
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Random;
 
public class MathTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//11.2 数字处理
		//11.2.1 数字格式化
		DecimalFormat myFormat = new DecimalFormat();
		myFormat.applyPattern("###,###,###");
		String my = myFormat.format(7857478);
		System.out.println(my);
		
		DecimalFormat myFormat1 = new DecimalFormat();
		myFormat1.setGroupingSize(2);
		myFormat1.setGroupingUsed(true);
		String my1 = myFormat1.format(7857478);
		System.out.println(my1);
    }
}

 

 

11.2.2 Math 类

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

1.三角函数方法

package elevenbao;
 
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Random;
 
public class MathTest {
	public static void main(String[] args) {
        //11.2.2 math类
		//三角函数
		System.out.println(Math.toRadians(45));
		double temp = Math.tan(Math.toRadians(45));
		System.out.println(temp);
		System.out.println(Math.tan(Math.toRadians(45)));
    }
}

 

  2. 指数函数方法

package elevenbao;
 
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Random;
 
public class MathTest {
	public static void main(String[] args) {
		//指数函数Mat
		System.out.println(Math.cbrt(64));
		System.out.println(Math.pow(3, 5));
    }
}

 

 3. 取整函数方法

package elevenbao;
 
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Random;
 
public class MathTest {
	public static void main(String[] args) {
		//取整函数
		System.out.println(Math.ceil(3.1));
		System.out.println(Math.floor(3.9));
		System.out.println(Math.rint(3.51));
		System.out.println(Math.rint(3.49));
		System.out.println(Math.rint(3.5));
		System.out.println(Math.rint(2.5));
    }
}

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

package elevenbao;
 
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Random;
 
public class MathTest {
	public static void main(String[] args) {
		//最大最小 绝对值
		System.out.println(Math.max(3.5, 4.6));
		System.out.println(Math.min(7, 9));
		System.out.println(Math.abs(9));
		System.out.println(Math.abs(-3.25));
    }
}

 

 

11.2.3 Random 类

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

Random r = new Random(seedValue);

package elevenbao;
 
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Random;
 
public class MathTest {
	public static void main(String[] args) {
		//11.2.3 Random类
		Random r = new Random();
		System.out.println(r.nextInt());
		System.out.println(r.nextInt(100));
		System.out.println(r.nextDouble());
    }
}

 

 11.2.4 BigInteger 类
BigInteger 类的数字范围教 Integer 类的数字范围大的多。

在 BigInteger 类中封装了多种操作,除了基本的加、减、乘、除操作,还提供了绝对值、相反数、最大公约数以及判断是否为质数等操作。

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

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

BigInteger twolnstance = new BigInteger("2");

package elevenbao;
 
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Random;
 
public class MathTest {
	public static void main(String[] args) {
		//11.2.4 BigInteger
		BigInteger bi1 = new BigInteger("789765799765");
		BigInteger bi2 = new BigInteger("789765799765");
		BigInteger mul1 = bi1.multiply(bi2);
		System.out.println(mul1);
		System.out.println();
    }
}

11.2.5 BigDecimal 类 

BigDecimal 类和 BigInteger 类都能实现大数字的运算,不同的是 BigDecimal 类加入了小数的概念。

BigDecimal 类中的常用构造方法:

  BigDecimal 类实现的加、减、乘、除的方法:

 

 BigDecimal 类中的 divi() 方法的多钟处理模式:

 实例:

package elevenbao;
 
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Random;
 
public class MathTest {
	public static void main(String[] args) {
		//11.2.5 BigDecimal
		BigDecimal bd1 = new BigDecimal("78976579.9765");
		BigDecimal bd2 = new BigDecimal("789765799.765");
		BigDecimal mul2 = bd1.multiply(bd2);
		System.out.println(mul2);
	}
} 

 

 

11.3 System 类

System 类是 JDK 中提供的系统类,该类是用 final 修饰的,所以不允许被继承。

System 类提供的常用方法:

 

11.3.1 控制台输出字符

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

System.out.print("Hello");

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

System.out.println("Hello");

使用这俩个输出方法时还要注意一下两点:

(1)“System.out.println("\n");”  会打印两个空行。

(2) “System.out.print();”  无参数会报错。

11.3.2 计时

System.currentTimeMillis() 方法可以获取自1970年1月1日零点至今的毫秒数。

例如:

package elevenbao;
public class 例题14 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long start = System.currentTimeMillis();
		String str = null;
		for(int i = 0;i < 10000;i++) {
			str += i;
		}
		long end = System.currentTimeMillis();
		System.out.println("循环用时:" + (end - start) + "毫秒");
	}
}

 

11.4 Scanner 类

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

import.java.util.Scanner;

 

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

Scanner sc = new Scanner(System.in);

 

import javax.print.attribute.standard.QueuedJobCount;
import javax.swing.*;
import java.util.Random;
import java.util.Scanner;
public class 猜数字 {
    public static void main(String[] args) {
        Random r = new Random();
        int number = r.nextInt(200) - 100;   //-100到100
        System.out.println(number);
        Scanner sc = new Scanner(System.in);
        int a = 0;
        while(true){
            System.out.println("请输入你要猜的数字");
            //int a = sc. nextInt();
            //占内存
            a = sc.nextInt();
            if(a > number){
                System.out.println("大了");
            }else if(a < number){
                System.out.println("小了");
            }else if(a == number){
                System.out.println("猜中了");
                break;
            }else {
                System.out.println("输入错误");
            }
        }
        System.out.println("恭喜你答对了");
        sc.close();
    }
}

 

11.5 日期时间类

11.5.1 Date 类

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

package elevenbao;
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class DateTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//11.5 日期时间类
		Date d1 = new Date();
		System.out.println(d1);
		Date d2 = new Date(1664732264079L);
		System.out.println(d2);
		
		System.out.println(d1.after(d2));
		System.out.println(d1.before(d2));
		System.out.println(d1.getTime());
		d1.setTime(1985432264079L);
		System.out.println(d1.getTime());
		System.out.println();
    }
}

 

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

DateFormat df = DateFormat.getDateInstance();

DateFormat 类常用方法:

 SimpleDateFormat 的格式化:

 

常见的时间格式化:

package elevenbao;
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class DateTest {
	public static void main(String[] args) {
		//11.5.2 日期时间格式化
		DateFormat df1 = DateFormat.getInstance();
		System.out.println(df1.format(d1));
		DateFormat df2 = DateFormat.getDateInstance();
		System.out.println(df2.format(d1));
		DateFormat df3 = DateFormat.getTimeInstance();
		System.out.println(df3.format(d1));
		
		DateFormat df4 = new SimpleDateFormat("yyyy年MM月dd日 EEEE HH时mm分ss秒");
		System.out.println(df4.format(d1));
	}
}

 

11.5.3 Calender 类
Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY OF MONTH HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期)提供了一些方法。另外,该类还为实现包范围外的具体日历系统提供了其他字段和方法,这些字段和方法被定义为 protected。
Calendar 提供了一个类方法 getInstance(),以以获得此类型的一个通用的对象。Calendar类的 getInstance()方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化,其使用方法如下:

Calenderright Now = Calendar.getInstance();

 

 

 

package elevenbao;
 
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
 
public class 例题18 {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("————————————————中华人民共和国成立100周年倒计时————————————————");
		Date date = new Date();
		//创建 SimpleDateFormat 对象,指定目标格式
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
		//调用 format 方法,格式化时间,转化为指定格式
		String today = simpleDateFormat.format(date);
		System.out.println("今天是" + today);
		//获取自 1970 年 1 月 1 日至当期时间所经过的毫秒数
		long time1 = date.getTime();
		//使用默认时区和语言环境获得一个日历 calender
		Calendar calendar = Calendar.getInstance();
		//设置日历 calendar 中的年、月和日的值。因为月份是从 0 开始计算的,所以这里要减一
		calendar.set(2049, 10-1,1);
		//计算自 1970 年 1 月 1 日至2049 年 1 月 1 日所经过的毫秒数
		long time2 = calendar.getTimeInMillis();
		//计算2049 年 10 月 1 日距离当前时间相差的天数
		long day = (time2 - time1)/(1000 * 60 * 60 * 24);
		System.out.println("距离2049年10月1日还有 " + day + "天");
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值