01-Oracle做题总结(随堂


一:
取值范围需要记住:
(1个字节)byte: [-128 ~ 127]
(2个字节)short:[-32768 ~ 32767] 可以表示65536个不同的数字
(4个字节)int: [-2147483648 ~ 2147483647]
(2个字节)char: [0~65535] 可以表示65536个不同的数字
short和char实际上容量相同,不过char可以表示更大的数字。
因为char表示的是文字,文件没有正负之分,所以char可以表示
更大的数字。
 
二:
int num = 'A';可行。
在Java中,字符类型(char)是一个16位的Unicode字符,而整数类型(int)可以用来存储字符的Unicode码。
在你的例子中,'A' 是一个字符字面量,它对应的Unicode码是65。当你将字符赋值给int类型的变量时,Java会自动将字符的Unicode码转换为整数。因此,int num = 'A'; 是合法的,并且num将会被赋值为65。
这种字符到整数的自动转换是因为char类型实际上是一个16位的整数类型,在Java中用于表示Unicode字符。
 
三:
++ 自加1
-- 自减1
    
    对于++运算符来说:
        可以出现在变量前,也可以出现在变量后。
        不管出现在变量前还是后,总之++执行结束之后,变量的值一定会自加1。
当++出现在变量后,会先做赋值运算,再自加1;当++出现在变量前的时候,会先进行自加1的运算,然后再赋值。

四:

for循环的语法机制以及运行原理?
        语法机制:
            for(初始化表达式; 条件表达式; 更新表达式){
                循环体; // 循环体由java语句构成
                java语句;
                java语句;
                java语句;
                java语句;
                ....
            }
            注意:
                第一:初始化表达式最先执行,并且在整个循环中只执行一次。
                第二:条件表达式结果必须是一个布尔类型,也就是:true或false
            执行原理:
                先执行初始化表达式,并且初始化表达式只执行1次。
                然后判断条件表达式的结果,如果条件表达式结果为true,
                则执行循环体。
                循环体结束之后,执行更新表达式。
                更新完之后,再判断条件表达式的结果,
                如果还是true,继续执行循环体。

                直到更新表达式执行结束之后,再次判断条件时,条件为false,
                for循环终止。
            
            更新表达式的作用是:控制循环的次数,换句话说,更新表达式会更新
            某个变量的值,这样条件表达式的结果才有可能从true变成false,从而
            终止for循环的执行,如果确实更新表达式,很有可能会导致死循环。
五:

在Java中,包(Package)是用于组织类和接口的命名空间的一种机制。包的作用主要有以下几点:


1. **组织和管理类:** 包提供了一种组织类和接口的方式,可以将相关的类和接口放在同一个包下,使得代码结构更加清晰和有序。


2. **命名空间管理:** 包在很大程度上帮助防止命名冲突。不同包中可以有相同名称的类,因为它们在不同的包中,所以不会发生冲突。


3. **访问控制:** 包也对访问控制提供了一定的支持。Java中有四种访问修饰符:`public`、`protected`、`default`(包内可见)、`private`。通过合理使用包和访问修饰符,可以控制类、方法和字段的可见性,实现对代码的封装和隐藏实现细节。


- `public`:可以被所有类访问。
- `protected`:可以被同一包内的类和不同包中的子类访问。
- `default`(包内可见):没有修饰符,默认的访问级别,可以被同一包内的类访问。
- `private`:只能被同一类内的方法访问。


通过将类放置在不同的包中,并使用适当的访问修饰符,可以实现对类和类成员的访问控制,从而增加代码的安全性和可维护性。

 

六:

在Java中,确实有一些类在使用时无需显式导入,因为它们属于`java.lang`包,而`java.lang`包的类会被默认导入。以下是一些无需显式导入即可使用的常见类:

1. **java.lang包下的类:** 包括一些基本的数据类型类,字符串类(String)、数学运算相关的类(Math)、异常类(Exception等),以及其他一些常用的类。

2. **自动装箱与拆箱:** 基本数据类型和它们的包装类之间可以自动进行转换,这被称为自动装箱和拆箱。例如,你可以直接将一个`int`类型的值赋给`Integer`类型的变量,或者将一个`Integer`类型的值赋给`int`类型的变量。

3. **枚举类型(Enum):** 在Java中,枚举类型也可以直接使用,而无需显式导入。枚举类型在`java.lang`包中。

其他不在`java.lang`包下的类,如果要在代码中使用,通常需要使用`import`语句进行显式导入。这包括Java标准库的许多其他类和第三方库的类。

 

七:

在Java中,默认包是指没有明确指定包名的类所属的包。默认包中的类在没有明确指定包名的情况下,只能在同一个默认包内的类中被访问和使用。如果你的类在一个具名的包中,那么它就不能直接访问默认包中的类,反之亦然。

八:

在Java中,布尔类型的关键字是 boolean,而不是 bool。因此,你不能使用 bool 来定义一个布尔值变量,必须使用 boolean

九:

在Java中,常见的进制包括二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六进制(Hexadecimal)。以下是对这些进制的简要介绍:

  1. 二进制(Binary):

    • 表示:以0b0B开头,后跟二进制数字。
    • 示例:0b1010 表示十进制的 10。
  2. 八进制(Octal):

    • 表示:以 0(零)开头,后跟八进制数字。
    • 示例:075 表示十进制的 61。
  3. 十进制(Decimal):

    • 表示:正常的数字表示法,没有前缀。
    • 示例:42 表示十进制的 42。
  4. 十六进制(Hexadecimal):

    • 表示:以 0x0X 开头,后跟十六进制数字。
    • 示例:0xFF 表示十进制的 255。

在Java中,你可以在整数字面值中使用这些进制。例如:

int binaryNumber = 0b1010; // 二进制,表示十进制的 10
int octalNumber = 075; // 八进制,表示十进制的 61
int decimalNumber = 42; // 十进制
int hexadecimalNumber = 0xFF; // 十六进制,表示十进制的 255

在Java 7及更高版本中,还支持在数字中使用下划线 _ 来增加可读性。例如:

int million = 1_000_000; // 百万,使用下划线提高可读性

十:

在Java中,使用下划线 _ 来提高数字的可读性是在Java 7及更高版本中引入的功能。主要的使用场景是在长数字或二进制、八进制、十六进制字面量中。使用下划线可以帮助提高数字的可读性,使其更容易理解。

以下是一些使用下划线的规则和注意事项:

  1. 位置: 下划线只能出现在数字字符之间,不能出现在数字的开头或结尾。例如,_123123_ 是不合法的。

  2. 基本数字类型: 可以在整数和浮点数字面量中使用下划线。例如:

    int million = 1_000_000; // 整数
    long creditCardNumber = 1234_5678_9012_3456L; // 长整数
    float pi = 3.14_15F; // 浮点数
    double avogadro = 6.022_140_76e23; // 科学计数法

  3. 进制字面量: 在二进制、八进制和十六进制字面量中,下划线也是允许的。例如:

    int binary = 0b1101_0101; // 二进制
    int octal = 075_144_322; // 八进制
    int hex = 0xFF_EE_CD; // 十六进制

  4. 不允许的位置: 下划线不能出现在标识符、保留字、类型名、或方法名中。例如,double _underscore = 3.14; 是不合法的。

posted @ 2023-11-16 15:19  小carlos  阅读(8)  评论(0编辑  收藏  举报