2019年11月2日_java_1
考点1 抽象类和接口
关于抽象类和接口叙述正确的是? ( )
- A 抽象类和接口都能实例化的
- B 抽象类不能实现接口
- C 抽象类方法的访问权限默认都是public
- D 接口方法的访问权限默认都是public
展开/折叠
正确答案: D解析
抽象类
如果一个类含有抽象方法那么这个类就是抽象类。
抽象类需要使用关键字abstract来声明。
抽象类中的抽象方法只需要声明,并不需要实现。
抽象类一定具有子类,并且子类必须覆写抽象类中的所有的抽象方法。
在使用abstract定义抽象方法时,抽象方法的权限不能为private,这是因为抽象方法必须被覆写,如果使用private来定义方法的权限,那么该方法无法被子类覆写,会出现错误
普通通类和抽象类的区别
实际上抽象类相比于普通类,只是在类定义的时候多定义了一个抽象方法,除了不能直接进行对象的实例化之外没有其它区别
考点2 合法标识符 合法变量名
下面属于java合法变量定义的是?
- A final
- B 1var1
- C _var2
- D var3&
展开/折叠
正确答案: C解析
标识符可以包括这4种字符:
- 字母、数字,下划线、$、
- 开头不能是数字;
- 不能是关键字
A.final 是关键字
B.不能以数字做首写
C.首写字母可以为下划线
D.符号只能使用美元符合下划线,不能使用&
考点3 程序初始化顺序
运行下面代码,输出的结果是()
1 | class A { |
A
1 | class A static |
B
1 | class A static |
C
1 | class A static |
D
1 | class A static |
展开/折叠
正确答案: A解析
Java程序初始化顺序:
- 父类的静态代码块
- 子类的静态代码块
- 父类的普通代码块
- 父类的构造方法
- 子类的普通代码块
- 子类的构造方法
考点4 成员变量有默认值 数组有默认值
关于如下程序的描述哪个是正确的?( )
1 | public class Person{ |
- A 编译将产生错误
- B 编译时正确,但运行时将产生错误
- C 正确,输出0
- D 正确,输出 null
展开/折叠
正确答案: C解析
数组会自动初始化
数组无论是在定义为实例变量还是局部变量,若没有初始化,都会被自动初始化
- Java中对于整型数组默认初始化0。
- 对字符数组初始化空格。
- 对对象数组初始化为null。
成员变量有默认值
只有类的成员变量才有默认初始值。
局部变量必须手动赋值
局部变量必须手动赋初值,否则编译报错
考点5 JSP分页
JSP分页代码中,哪个步骤次序是正确的?
- A 先取总记录数,得到总页数,最后显示本页的数据。
- B 先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。
- C 先取总页数,得到总记录数,再取所有的记录,最后显示本页的数据。
- D 先取本页的数据,得到总页数,再取总记录数,最后显示所有的记录。
展开/折叠
正确答案: A解析
不足:JSP方面的我还不是很了解
先取总记录数,得到总页数,再取所有的记录,最后显示本页的数据
考点6 编译
下面关于程序编译说法正确的是()
- A java语言是编译型语言,会把java程序编译成二进制机器指令直接运行
- B java编译出来的目标文件与具体操作系统有关
- C java在运行时才进行翻译指令
- D java编译出来的目标文件,可以运行在任意jvm上
展开/折叠
正确答案: C解析
A:java编译成的是字节码,再被各系统的jvm翻译成本系统可以识别的机器码,这就是java一次编程多平台应用的跨平台性
B:java源文件生成的是class文件,与系统无关
C:注意字节码和机器码不是一回事 java程序在运行时字节码才会被jvm翻译成机 器码,所以说java是解释性语言
D:注意jvm的版本,好比人穿裤子,一条裤子能被任何人穿上吗
低版本的jvm没有办法运行高版本的java代码
考点7 线程
下面说法正确的是?()
- A 调用Thread的sleep()方法会释放锁,调用wait()方法不释放锁
- B 一个线程调用yield方法,可以使具有相同优先级线程获得处理器
- C 在Java中,高优先级的可运行的线程会抢占低优先级线程的资源
- D java中,线程可以调用yield方法使比自己低优先级的线程运行
展开/折叠
正确答案: BC解析
yield()让当前正在运行的线程回到可运行状态,以允许具有相同优先级的其他线程获得运行的机会。因此,使用yield()的目的是让具有相同优先级
的线程之间能够适当的轮换执行。但是,实际中无法保证yield()达到让步的目的,因为,让步的线程可能被线程调度程序再次选中。