### SCJP历年真题知识点详解 #### 知识点一:Short数据类型的取值范围 - **题目描述**:下列哪个选项表示了short类型的正确取值范围? - A. -2^7到2^7-1 - B. 0到2^16-1 - C. -2^15到2^15-1 - D. -2^31到2^31-1 - **答案解析**:选项C正确。在Java中,`short`类型的数据长度为16位,并且是有符号的。这意味着它能够存储的最大正数值为2^15-1,最小负数值为-2^15。因此,正确答案是C。 #### 知识点二:Java中的合法标识符 - **题目描述**:以下哪些选项是Java语言中的合法标识符? - A. $persons - B. TwoUsers - C. *point - D. this - E. _endline - **答案解析**:合法标识符的答案是A、B、E。在Java中,标识符可以由字母、数字、下划线(_)或美元符号($)组成,但不能以数字开头,也不能使用关键字作为标识符。此外,标识符是大小写敏感的。选项A、B、E符合这些规则;选项C使用了非法字符*;选项D使用了关键字`this`。 #### 知识点三:Long类型与十六进制值的赋值 - **题目描述**:以下哪项是将十六进制值赋给long类型变量的正确示例? - A. `long number = 345L;` - B. `long number = 0345;` - C. `long number = 0345L;` - D. `long number = 0x345L;` - **答案解析**:正确答案是D。在Java中,十六进制数以0x开头,而long类型通常以L(或l)结尾来表明其类型。因此,`long number = 0x345L;`是正确的语法。 #### 知识点四:String类型的操作与异常处理 - **题目描述**:下列哪些代码片段可能会导致错误? - A. `String s = "Gonewiththewind"; String t = "good"; String k = s + t;` - B. `String s = "Gonewiththewind"; String t; t = s[3] + "one";` - C. `String s = "Gonewiththewind"; String standard = s.toUpperCase();` - D. `String s = "homedirectory"; String t = s - "directory";` - **答案解析**:选项B和D可能会导致错误。选项A中,字符串可以直接通过加号(+)进行拼接;选项B中,`s[3]`这种形式的访问方式在Java中是非法的,因为String不是数组;选项C中,`toUpperCase()`是String类的方法,用于将所有字符转换成大写;选项D中,字符串类型不支持减法操作。 #### 知识点五:类与方法访问权限 - **题目描述**:在以下代码中,哪些语句在`//pointx`处是语法上合法的? ```java class Person { private int a; public int change(int m) { return m; } } public class Teacher extends Person { public int b; public static void main(String arg[]) { Person p = new Person(); Teacher t = new Teacher(); int i; //pointx } } ``` - A. `i = m;` - B. `i = b;` - C. `i = p.a;` - D. `i = p.change(30);` - E. `i = t.b;` - **答案解析**:选项D和E是合法的。选项A中的`m`未声明;选项B中,虽然`b`是公开(public)成员变量,但在静态方法中不能直接访问非静态成员;选项C中,`a`是私有(private)成员,不能直接访问;选项D中,`change(int m)`是一个公开的方法,可以被调用并返回一个int值;选项E中,`b`是公开成员变量,可以通过实例变量`t`访问。 #### 知识点六:不同布局管理器的行为 - **题目描述**:当Frame的大小发生变化时,哪个布局管理器会使其中按钮的位置也发生改变? - A. BorderLayout - B. FlowLayout - C. CardLayout - D. GridLayout - **答案解析**:正确答案是B。`FlowLayout`布局管理器根据组件的默认大小以及容器的大小自动调整组件的位置。当容器大小变化时,组件的位置可能会随之变化。相比之下: - `BorderLayout`布局管理器将容器划分为五个区域,容器大小的变化会影响这些区域的大小,但不会影响其中组件的位置。 - `CardLayout`布局管理器只显示当前页面中的组件,因此容器大小的变化不会影响这些组件的位置。 - `GridLayout`布局管理器按照网格的形式排列组件,每个格子的大小相同,因此容器大小的变化不会影响组件的位置。
剩余40页未读,继续阅读
- 粉丝: 1
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助