Java第十一章

11.1 包装类

包装类对应基本数据类型包装类对应基本数据类型
BytebyteShortshort
IntegerintLonglong
FloatfloatDoubledouble
CharactercharBooleanboolean

11.1.1 Integer 类

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

例题11.1:

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 类的常用方法:

例题11.5: 

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 类,该类是一个抽象类。

数值型包装类共有方法:

方法功能介绍
byteValue()以 byte 形式返回指定的数值
intValue()以 int 形式返回指定的数值
floatValue()以 float 形式返回指定的数值
shortValue()以 short 形式返回指定的数值
longValue()以 long 形式返回指定的数值
doubleValue()以 double 形式返回指定的数值

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();

也可以设置随机数生成器的种子。语法如下:

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();
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值