Java-Chapter 2 Elementary Programming
Java-Chapter 2 Elementary Programming
中英对照表极速版
英文 | 中文 |
---|---|
A named constant is declared by using the keyword
final . By convention, constants are named in
uppercase. |
使用关键字 final
声明命名常量。按照惯例,常量的名称采用大写字母。 |
An identifier is a sequence of characters that consist of letters,
digits, _ , $ . It cannot start with a digit. It
cannot be a keyword. |
标识符是由字母、数字、_ 和 $
组成的字符序列。它不能以数字开头,不能是关键字。 |
A literal is a constant value of boolean, numeric, character, or string data which can be assigned to the variable. | 字面量是布尔值、数字、字符或字符串数据的常量值,可以赋值给变量。 |
Java provides four integer types (byte ,
short , int , long ) that represent
integers of four different sizes. |
Java
提供了四种整数类型(byte ,short ,int ,long ),表示四种不同大小的整数。 |
Java provides two floating-point types (float ,
double ) that represent floating-point numbers of two
different precisions. Note: The arithmetic of floating-point data is not
accurate. |
Java
提供了两种浮点类型(float ,double ),表示两种不同精度的浮点数。注意:浮点数据的运算不准确。 |
Character type (char ) represents a single
character. |
字符类型(char )表示一个单一字符。 |
Java provides operators that perform numeric operations:
+ (addition), - (subtraction), *
(multiplication), / (division), and %
(remainder). |
Java
提供了执行数字运算的运算符:+ (加法),- (减法),* (乘法),/ (除法)和
% (余数)。 |
Java provides shorthand operators += (addition
assignment), -= (subtraction assignment), *=
(multiplication assignment), /= (division assignment), and
%= (remainder assignment). |
Java 提供了简写运算符
+= (加法赋值),-= (减法赋值),*= (乘法赋值),/= (除法赋值)和
%= (余数赋值)。 |
The increment operator (++ ) and the decrement operator
(-- ) increment or decrement a variable by 1. |
自增运算符(++ )和自减运算符(-- )将变量增加或减少
1。 |
When evaluating an expression with values of mixed types, Java automatically converts the operands to appropriate types. | 当评估具有混合类型值的表达式时,Java 会自动将操作数转换为适当的类型。 |
Casting a variable of a type with a small range to a variable of a type with a larger range is known as widening a type. | 将一个小范围类型的变量转换为大范围类型的变量称为类型的扩展。 |
Casting a variable of a type with a large range to a variable of a type with a small range is known as narrowing a type. | 将一个大范围类型的变量转换为小范围类型的变量称为类型的收窄。 |
Widening a type can be performed automatically without explicit casting. Narrowing a type must be performed explicitly. | 扩展类型可以自动执行,无需显式转换。收窄类型必须显式执行。 |
You can explicitly convert a value from one type to another using
the (type)exp notation. |
可以使用 (type)exp
表示法显式地将一个值从一种类型转换为另一种类型。 |
问题 1:如何声明一个常量,并且常量的命名规则是什么?
答案:常量通过 final
关键字声明,按照惯例,常量的名称使用大写字母。
解释:
在 Java 中,使用 final
关键字声明常量,表示该变量的值一旦赋值后就不能修改。例如:
1 | final int MAX_SIZE = 100; |
根据命名约定,常量的名称通常使用大写字母,多个单词之间用下划线分隔,如
MAX_SIZE
。
问题 2:什么是标识符,Java 中标识符的命名规则是什么?
答案:标识符是由字母、数字、下划线(_
)和美元符号($
)组成的字符序列。标识符不能以数字开头,且不能是
Java 的关键字。
解释:
Java 标识符用于命名变量、类、方法等,它们必须遵循以下规则:
- 只能由字母、数字、下划线(
_
)和美元符号($
)组成。 - 不能以数字开头。
- 不能是 Java 的关键字(例如
class
,if
,int
等)。
例如,_myVariable
和 myVariable$
都是有效的标识符,而 123variable
和 if
是无效的标识符。
问题 3:什么是字面量?
答案:字面量是可以直接赋值给变量的常量值,具有布尔值、数字、字符或字符串的数据类型。
解释:
字面量是程序中直接表示固定值的常量,它不需要计算,直接赋值给变量。例如:
- 整数字面量:
5
、-123
- 浮动点字面量:
3.14
、-0.001
- 字符字面量:
'A'
- 布尔字面量:
true
、false
- 字符串字面量:
"Hello, World!"
问题 4:Java 提供了哪些整数类型?每种类型的大小是多少?
答案:Java
提供了四种整数类型:byte
、short
、int
、long
,它们代表不同大小的整数。
解释:
byte
:占 1 字节(8 位),表示的整数范围是 -128 到 127。short
:占 2 字节(16 位),表示的整数范围是 -32,768 到 32,767。int
:占 4 字节(32 位),表示的整数范围是 -2^31 到 2^31-1。long
:占 8 字节(64 位),表示的整数范围是 -2^63 到 2^63-1。
问题 5:Java 提供了哪些浮点类型?它们分别表示什么精度的浮点数?
答案:Java 提供了两种浮点类型:float
和
double
,分别表示不同精度的浮点数。
解释:
float
:占 4 字节(32 位),用于表示单精度浮点数,精度约为 6 到 7 位有效数字。double
:占 8 字节(64 位),用于表示双精度浮点数,精度约为 15 到 16 位有效数字。
注意:浮点类型的数据运算可能会出现精度问题,因为浮点数无法精确表示所有的小数。
问题 6:Java 中如何进行算术运算?
答案:Java
提供了加法(+
)、减法(-
)、乘法(*
)、除法(/
)和取余(%
)等算术运算符。
解释:
Java 提供了标准的算术运算符,用于处理数字类型的数据:
+
:加法运算符,用于计算两个数的和。-
:减法运算符,用于计算两个数的差。*
:乘法运算符,用于计算两个数的积。/
:除法运算符,用于计算两个数的商。%
:取余运算符,用于计算两个数的余数。
例如:
1 | int sum = 5 + 3; // sum = 8 |
问题 7:什么是简写运算符?Java 中有哪些简写运算符?
答案:简写运算符是对标准运算符的简化,用于在变量上直接执行运算并将结果赋值给该变量。
解释:
Java 提供了简写运算符,使得某些运算更加简洁:
+=
:加法赋值运算符,用于将一个值加到变量上并赋值给变量。-=
:减法赋值运算符,用于将一个值从变量中减去并赋值给变量。*=
:乘法赋值运算符,用于将一个值与变量相乘并赋值给变量。/=
:除法赋值运算符,用于将一个值除以变量并赋值给变量。%=
:取余赋值运算符,用于将变量与一个值进行取余运算并赋值给变量。
例如:
1 | int x = 5; |
问题 8:什么是自增和自减运算符?
答案:自增运算符(++
)将变量的值增加
1,自减运算符(--
)将变量的值减少 1。
解释:
- 自增运算符(
++
):将变量的值增加 1。它有两种形式:- 前缀自增:
++x
,先增加值,再使用。 - 后缀自增:
x++
,先使用值,再增加。
- 前缀自增:
- 自减运算符(
--
):将变量的值减少 1。它也有前缀和后缀两种形式:- 前缀自减:
--x
,先减少值,再使用。 - 后缀自减:
x--
,先使用值,再减少。
- 前缀自减:
例如:
1 | int a = 5; |
问题 9:当在混合类型的表达式中评估值时,Java 是如何处理操作数的类型转换的?
答案:Java 会自动将操作数转换为适当的类型。
解释:
当 Java 表达式中的操作数具有不同的数据类型时,Java
会自动进行类型转换,确保所有操作数具有相同的类型。这个过程叫做自动类型提升(implicit
type conversion)。例如,如果一个 int
和一个
double
进行运算,int
会自动转换为
double
,因为 double
的精度范围更大。
例如:
1 | int a = 5; |
问题 10:什么是类型扩展(widening)?
答案:将一个小范围类型的变量转换为一个大范围类型的变量,称为类型扩展(widening)。
解释:
类型扩展是指将一个较小范围的类型(如 byte
,
short
, int
)转换为一个更大范围的类型(如
long
, float
,
double
)。这种转换是自动进行的,不需要显式的类型转换。例如:
1 | int a = 100; |
在这个例子中,int
被自动转换为
long
,这是因为 long
的范围大于
int
。
问题11:什么是类型收缩(narrowing)?
答案:将一个大范围类型的变量转换为一个小范围类型的变量,称为类型收缩(narrowing)。
解释:
类型收缩是指将一个较大范围的类型(如 double
,
long
)转换为一个更小范围的类型(如 int
,
short
,
byte
)。这种转换必须通过显式类型转换进行,编译器不会自动进行类型收缩。例子:
1 | double a = 10.5; |
在这个例子中,double
类型的 a
被显式转换为
int
类型,这样会丢失小数部分。
问题 12:类型扩展是否需要显式转换?类型收缩需要显式转换吗?
答案:类型扩展不需要显式转换,类型收缩需要显式转换。
解释:
- 类型扩展(widening):由于 Java
会自动将小范围的类型提升为大范围类型,因此不需要显式的类型转换。例如,
int
可以自动转换为long
。 - 类型收缩(narrowing):Java
不会自动将大范围的类型转换为小范围类型,因为这可能导致数据丢失。因此,类型收缩必须使用显式的类型转换(强制转换)。例如,将
double
转换为int
,必须显式地写出(int)
。
问题 13:如何显式地将一个值从一种类型转换为另一种类型?
答案:可以使用 (type)exp
语法进行显式类型转换。
解释:
Java
允许你显式地将一个值从一种类型转换为另一种类型,方法是使用括号括起来的目标类型作为前缀。例如:
1 | double a = 10.5; |
在这个例子中,(int)
表示将 double
类型的
a
强制转换为 int
,这会丢失小数部分。