出自:国际开放大学Java语言程序设计

Java是一种面向对象的编译型程序设计语言。
Java程序在编译之后,生成可执行的二进制代码
boolean类型值不可以强制转换为整数值,会提示语法错误
强制类型转换存在一定的风险和问题,容易导致数据精度的丢失或数据值的不准确。
switch-case和if-else语句都可以支持多分支逻辑处理操作。
switch-case语句的分支语句中需要使用continue作为最后一条语句结束分支。
Java接口可以使用extends继承其它接口,但不能继承类。
在Java类继承中, 子类在构造方法中可以使用super调用父类的构造方法
Java抽象类声明必须使用abstract修饰符,可以使用抽象类创建对象实例
当使用synchronized关键字修饰Java类的时候, 被修饰的Java类中所有方法的执行都是线程安全的。
布尔值也可以被强制转化为整数型,true的整型值为0,false为1。
判断条件表达式的计算结果必须是Boolean类型的值。
一个类的内部会包含其他类中类似的特征和属性,可以考虑基于继承来借鉴这些属性和方法,但还是需要对于类进行重新定义和实现。
类的属性的类型没有限制,可以使用简单数据类型,但不能使用类作为数据类型。
对象仅做声明,并未做初始化,其默认情况下的值为1。
Java语言采用单重继承,一个类只能有一个直接父类。
子类在方法覆盖时,private的方法可以在子类中被修改为protected。
如果控制台输出下列内容,说明程序运行过程中出现了异常( )
Exception in thread "main" java.lang.NullPointerException
进程是具有一定独立功能的程序的一次运行。进程有独立的地址空间。
.线程对象调用了start()方法之后,线程对象就处于新建状态。
声明为布尔型的变量,在默认情况下取值为true。
do-while至少确保循环逻辑代码被执行一次,而while的循环逻辑代码可能一次都不执行。
父类中声明为 protected的属性,在子类中可以直接进行访问。
super调用构造方法的代码只能出现在子类构造方法可执行代码的第一行。
父类类型的对象可以自动转换为子类类型的对象。
continue语句只能在循环语句内部使用,作用是跳过该次循环,继续执行下一次循环。
由final关键字修饰的变量的值是不可修改的。
如果类中有一个抽象方法,这个类不一定是抽象类。
根据异常是否需要强制捕获和处理,可以将异常类分为受控异常和非受控异常。(
线程在整个生命周期中只包括运行和死亡两种状态。
在外部代码块中尝试访问内部代码块中定义的变量时,java编译器不会提示错误信息。
使用while语句,循环体逻辑代码至少可以执行一次
面向对象的继承性,可以大大减少类实现中的重复代码。
类的方法的修饰符final是不可变的,表示该方法可以被子类继承扩展。
对象的属性可以引用,对象的方法不能引用。
父类被访问控制符声明为private的方法,子类也可以继承父类的所有方法。
父类的静态方法不能被子类覆盖为非静态方法。
如果控制台输出下列内容,说明出现异常的代码在HouseDemo.java 代码中的第6行。( )
Exception in thread "main" java.lang.NullPointerException
at org.lang.book.chapter6.HouseDemo.main(HouseDemo.java:18)
线程是比进程更小的独立运行的基本单位。
一个线程执行了sleep(睡眠)方法,就会一直占用之前的CPU资源,该线程就从运行状态进入阻塞状态。
Java程序在编译之后,生成可执行的二进制代码.
某商场为用户设计一套积分系统,用以根据用户不同的级别,基于不同的规则计算积分:
计算规则如下:
1. VIP用户,消费1元,积分:按照消费金额*2 计算积分 向上取整
2. 普通用户 Level>=2级, 积分: 按照消费金额*1.5 计算,向上取整。
3. 普通用户Level<2级,积分: 按照消费金额 * 1计算,向上取整
用户等级的计算规则:
1. Vip用户默认级别为5:
2. 普通用户消费金额 0~20000, level为1
3. 普通用户消费金额 20000~30000, level为2
4. 普通用户消费金额 30000~40000, level为3
5. 普通用户消费金额 40000~50000, level为4
请阅读如下代码,补齐缺少的代码片段。

public 【1】ILevelCalculator {
//计算积分
public Integer calcIntegral(float amount);
}

public abstract class BaseCustomer implements ILevelCalculator {
private String name; //用户姓名
private float amount;//消费金额
private int level;//用户等级
private int integral;//积分

public BaseCustomer(String name, int level) {
this.name = name;
this.level = level;
this.integral = 0;
}

public Integer updateIntegral(Integer newAddedIntegral) {
this.integral += newAddedIntegral;
return this.integral;
}

public void updateAmount(float amount) {
this.amount += amount;

//vip用户直接跳过level设置
if (this.level>4) {
System.out.println("vip customer");
}
else if (this.amount>40000) {
this.level = 4;
}
else if (this.amount>30000) {
this.level = 3;
}
else if (this.amount > 20000) {
this.level = 2;
}
else {
this.level = 1;
}

//计算新增的积分
Integer integral = calcIntegral(amount);
this.updateIntegral(integral);
}
//getter/setter方法省略
}

public class VipCustomer 【2】 BaseCustomer {
public 【3】(String name) {
super(name, 5);
}

@Override
public Integer calcIntegral (float amount) {
return (int)Math.ceil(amount *2);
}
}

public class CommonCustomer extends BaseCustomer {
public CommonCustomer(String name, int level) {
super(name, level);
}

@Override
public Integer calcIntegral(float amount) {
return (this.getLevel()>=2) ? (int)Math.ceil(amount*1.5) : (int)Math.ceil(amount*1);
}
}

测试方法:
public static void main(String[] args) {
BaseCustomer vipCustomer = new VipCustomer("vip customer1");
BaseCustomer commonCustomer = new CommonCustomer("common1", 1);
vipCustomer.updateAmount(10000);
commonCustomer.updateAmount(25000);

System.out.println("VipCustomer积分为:" + vipCustomer.getIntegral());
System.out.println("CommonCustomer积分为:" + commonCustomer.getIntegral());
}

1. 选择合适的Java关键字()
A. class B. interface C. abstract D extends

2. 选择合适的Java关键词: ()
A. Implements
B. abstract
C. extends
D. static

3. 选择合适的方法名:()
A. VipCustomer
B. updateAmount
C. calcIntegral
D. BaseCustomer

4. VipCustomer的积分是多少()
A. 20000 B. 50000 C. 10000 D 37500

5. CommonCustomer的积分是多少()
B. 20000 B. 50000 C. 10000 D 37500
某公司在暑期为销售部的员工提供旅游奖励,规定销售额在50万(包括50万)到150万(包括150万)之间的员工可以报名参加。请阅读如下代码段,并补齐其中缺失的代码。
public class EmployeeSaleChecker {
public static void main(String[] args) {
int sale1 = 80;

EmployeeSaleChecker mdObj = 【1】 EmployeeSaleChecker ();
boolean isValid1 = mdObj.isVaidAge(sale1);
System.out.println("sale1:" + isValid1);
}

public boolean isVaidAge(【2】) {
【3】 isValid = false;

if (【4】&& sale<=150) {
isValid = true;
}
return 【5】;
}
}

【1】 选择合适的Java关键字,创建一个对象( )。
A. instanceof B. init C. create D. new
【2】 选择合适的入口参数( )。
A. sale B. sale1 C. int sale D. int sale1
【3】 选择合适的Java变量的变量类型( )。
A. int B. Integer C. char D. boolean
【4】 选择合适的入口判断条件( )。
A. sale>=50 B. sale1>=50 C. int sale>=50 D. int sale1>=50
【5】 选择合适的变量( )。
A. true B. isValid C. false D. sale1
如下代码段可根据员工输入的销售业绩,判断其奖金发放的级别信息。销售业绩与奖金级别的关系规则如下:
销售业绩>=100万,奖金为一级;
销售业绩在50万(包括)和100万之间,奖金为二级;
销售业绩<50万,奖金为三级。
请阅读如下代码段,并补齐其中缺失的代码。
public class SaleCode {
public 【1】void 【2】(String[] args) {
int sale = 60;

【3】(sale >= 100) {
System.out.println("一级奖金!");
} else if ( 【4】) {
System.out.println("二级奖金!");
} 【5】 {
System.out.println("三级奖金!");
}
}
}


【1】 选择合适的Java类修饰符( )。
A. final B. static C. volatile D. synchronzied
【2】 选择合适的Java 关键字( )。
A. maintest B. main C. test D. mytest
【3】 选择合适的Java 关键字( )。
A. while B. switch C. do D. if
【4】 选择合适的判断语句( )。
A. sale>=100 B. sale>=50 C. sale>50 D score<50
【5】 选择合适的判断语句( )。
A. else if B. do C. case D. else
根据下列示例代码,Student类中定义的getCategory() 方法将同学们的考试成绩分为优秀(大于等于90分)、良好(小于90分并且大于等于80分)、及格(小于80分并且大于等于60分)和不及格(小于60分)四种类别。请阅读如下代码段,并补齐其中缺失的代码。

public class Student {
public String getCategory(int score) {
if (score>= 90){
return "优秀";
}
【1】(score>=80) {
return "良好";
}
else if (score>=60) {
return "及格";
}
【2】 {
return "不及格";
}
}
public 【3】 void main (String[] args) {
Student s = 【4】 Student();
int score = 59;
System.out.println(s.getCategory(score));
}
}

输出:【5】



1.选择合适的Java关键字( )。
A. switch B. else if C. if D. else
2.选择合适的Java关键字( )。
A. switch B. while C. if D. else
3.选择合适的Java修饰符( )。
A. final B. static C. volatile D. synchronized
4.选择合适的Java关键字( )。
A.and B. instanceof C. new D. extends
5.以上代码段的输出结果为( )。
A.优秀 B良好 C. 及格D. 不及格