《Java黑皮书基础篇第10版》 第4章【笔记】

本文介绍了Java中常用的数学函数,如三角函数、指数函数等,并详细解释了Math类的使用。同时,深入探讨了字符数据类型char的特性和操作,包括字符编码、自增自减操作、转义序列及字符与数值间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第四章

4.1 引言
4.2 常用数学函数

三角函数方法(trigonometric method)

指教函数方法(exponent method)

服务方法(service method)

取整方法(min、max、abs、random)

Math常量:Math.PI( π \pi π)和Math.E(自然对数的底)

Math 类在程序中使用,但是并没有导入,因为它在java.lang 包中,所有类是隐式导人的

4.3 字符数据类型和操作
关于char类型

字符数据类型char表示单个字符,字符串直接量必须括在双引号中,而字符直接量是括在单引号中的单个字符

计算机内部使用二进制数。一个字符在计算机中是以 0 和1构成的序列的形式来存储的。将字符映射到它的二进制形式的过程称为编码( encoding )。字符有多种不同的编码方式,编码表(encoding scheme) 定义该如何编码每个字符。

Unicode和ASCII

Java 支持 Unicode 码,Unicode 码是由 Unicode 协会建立的一种编码方案,它支持使用世界各种语言所书写的文本的交换、处理和显示。1个16 位 Unicode 码占两个字节,用以\u开头的4位十六进制数表示,范围从\ u0000 到\uFFFF

大多数计算机采用 ASCII 码(美国标准信息交换码),它是表示所有大小写字母、数字、标点符号和控制字符8位编码表。Unicode码包括ASCII码,从 \u0000到 \u007F对应128个ASCII字符

自增和自减操作符也可用在 char 型变量上,这会得到该字符之前或之后的 Unicode字符。例如,下面的语句显示字符b。

char ch = a;
System.out.println(++ch);
转义序列

转义序列中的序列号作为一个整体翻译,而不是分开翻译,一个转义序列被当作一个字符。例如,符号\和""一起代表一个字符。

//编译器会认为第二个引号字符就是这个字符串的结 束标志,而不知道如何处理剩余的字符。

System.out.println("He said "Java is fun"");

//需要使用转义序列

System.out.println("He said \\"Java is fun\\"");
字符型数据与数值型数据之间的转换

将整数转换成 char型数据时, 只用到该数据的低十六位,其余部分都被忽略。

char ch = (char)0XAB004; // The lower 16 bits hex code 0041 is assigned to ch
System.out.println(ch); // ch is character A

将浮点值转换成char型数据时,首先将浮点值转换成 int 型,然后将这个整型值转换为 char 型。

char ch = (char)65.25; // Decimal 65 is assigned to ch System.out.println(ch); ch is character A

将char型数据转换成数值型时,这个字符的Unicode 码就被转换成某个特定的数值类型。

int i = (int) 'A'; // The Unicode of character A is assigned to i 
System.out.println(i); // i is 65

如果转换结果适用于目标变量,就可以使用隐式转换方式; 因为a的Unicode码是97,在1个字节的范围内,所以就可以使用隐式转换方式

byte b = "a";
int i = "a";

但是,因为 Unicode 码 \uFFF4 超过了一个字节的范围,就需要显式转换

byte b = (byte)'\uFFF4';

如果另一个操作数是一个数字或字符, 那么 char 型操作数就会被自动转换成一个数字。如果另一个操作数是一个字符串,字符就 会与该字符串相连。

int i = '2' + '3'; // (int)'2' is 50 and (int)'3' is 51
System,out.println('i is " +i); // i is 101
int j = 2 + 'a'; // (int)'a' is 97
System.out.println("j is " + j); // j is 99
System.out.println(j + " is the Unicode for character " + (char)j); // 99 is the Unicode for character c
System.out.println("Chapter " + '2');

Output:

i is 101
j is 99
99 is the Unicode for character c
Chapter 2
字符的比较与测试

两个字符可以使用关系操作符进行比较,如同比较两个数字一样。这是通过比较两个字符的Unicode值实现的

小写字母的Unicode是连续的整数,从’a’的 Unicode 开始,然后是’b’, 同理,对于大写字母和数字字符也是这样的。这个特征可以用于编写测试字符的编码。比如,下列代码测试字符 ch 是大写字母、小写字母,还是数字字符。

if (ch >= 'A' && ch <= 'Z')
​	System.out.println(ch + " is an uppercase letter"); 
else if (ch >= 'a' && ch <= 'z')
​	System.out.println(ch + " is a lowercase letter"); 
else if (ch >= '0' && ch <= '9')
​	System.out.println(ch + " is a numeric character");

为了方便,Java 的Character类提供了下列方法用于进行字符测试

在这里插入图片描述

4.4 String类型

字符串String是一个字符序列,用来表示一串char

在这里插入图片描述

String 是 Java中的对象。表中的方法只能从一个特定的字符串实例来调用。由于这个原因,这些方法称为实例方法。非实例方法称为静态方法。静态方法可以不使用对象来调用。定义在 Math 类中的所有方法都是静态方法。它们没有绑定到一个特定的对象实例上。

调用一个实例方法的语法是 reference-Variable.methodName(arguments)。一个方法可以有多个参数,或者无参。例如,charAt(index)方法具有一个参数,但是length()方法则无参

调用静态方法的语法是 ClassName.methodName(arguments)。例如, Math类中的pow方法可以使用Math.pow(2,2.5)来调用。

4.5示例学习
4.6 格式化控制台输出

可以使用 System.out.printf 方法在控制台上显示格式化输出。语法是

System.out.printf(format, iteml, item2, ... ,itemk')

在这里插入图片描述

例如:

int count = 5;
Double amount = 45.56;
System.out.printf("count is %d and amount is %f", count, amount);

条目与格式标识符必须在类型上严格匹配。对应于格式标识符%f必须是浮点型值,例如:是40.0而不是40。因此,int型变量不能匹配%f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值