2021年09月08日 java1

考点1:Java常识

以下关于构造函数的描述错误的是 ( )

  • A 每个类有且只能有一个构造函数。
  • B 构造函数是类的一种特殊函数,它的方法名必须与类名相同
  • C 构造函数的主要作用是完成对类的对象的初始化工作
  • D 一般在创建新对象时,系统会自动调用构造函数
显示答案/隐藏答案正确答案: A

考点2:异常

代码String str=”123456a”;int i=Integer.parseInt(str);会报异常的是()

  • A java.lang.NullPoninterException
  • B java.lang.NumberFormatException
  • C java.lang.RuntimeException
  • D java.lang.ArrayindexOutOfBoundsException
显示答案/隐藏答案正确答案: B

java.lang.NullPoninterException:变量未被初始化、对象未赋值、对象为空(俗称的空指针异常)
java.lang.NumberFormatException:数据格式转换失败(integer的取值范围为:-127-128,超过范围都会访问false
java.lang.RuntimeException:运行时异常
java.lang.ArrayindexOutOfBoundsException:数组下标越界

考点3:常识

下列关于Java类中方法的定义,正确的是()

  • A 若代码执行到return语句,则将当前值返回,而且继续执行return语句后面的语句。
  • B 只需要对使用基本数据类型定义的属性使用getter和setter,体现类的封装性。
  • C 方法的返回值只能是基本数据类型。
  • D 在同一个类中定义的方法,允许方法名称相同而形参列表不同。
显示答案/隐藏答案正确答案: D

选D
A、一旦执行到return,就不再执行后续的代码。
B、类的封装性可不是这么体现的,数据域和方法都可以被封装。数据域可以是基本数据类型也可以是引用类型。
C、方法的返回值可以是引用类型。
D、这是重载,同一个类中,方法名相同,形参列表不同。

封装是通过访问控制符实现的

https://www.runoob.com/java/java-encapsulation.html

封装性仅仅有get,set方法是不够的,要是成员变量是public的,那么外界就可以随意访问该成员变量。
所以封装要求 成员变量私有,然后提供公有的getter和setter方法来访问成员变量。

考点4:浮点数转整数

下列语句序列执行后,输出结果是()

1
2
3
4
5
6
7
public class ex{
public static void main(String[]args){
int a=13;
a=a/5;
System.out.println(a);
}
}
  • A 1
  • B 2
  • C 3
  • D 4
显示答案/隐藏答案正确答案: B

整数相除之后还是整数,会丢失掉小数部分的数值。

浮点数转整数:丢弃小数部分

a是int类型,13/5得到一个浮点类型,浮点类型转成整数类型的原则是,不四舍五入,只取整数部分,小数部分直接丢弃。.

G:\dev2\idea_workspace\MyJavaTools\RunableTools\src\base\Test.java
1
2
3
4
5
6
7
public class Test {
public static void main(String[] args) {
for (double i = 1.0; i < 2.2; i = i + 0.1000000000000000) {
System.out.println("double(" + i + ") \tto int(" + (int) i+")");
}
}
}

运行结果:

1
2
3
4
5
6
7
8
9
10
11
12
double(1.0)	to int(1)
double(1.1) to int(1)
double(1.2000000000000002) to int(1)
double(1.3000000000000003) to int(1)
double(1.4000000000000004) to int(1)
double(1.5000000000000004) to int(1)
double(1.6000000000000005) to int(1)
double(1.7000000000000006) to int(1)
double(1.8000000000000007) to int(1)
double(1.9000000000000008) to int(1)
double(2.000000000000001) to int(2)
double(2.100000000000001) to int(2)

可以看到,double转int的时候,只保留浮点数中的整数部分,小数部分全部丢弃。

考点5:面向对象的三大特征

面向对象的基本特征是()

  • A 封装
  • B 继承
  • C 重载
  • D 多态
显示答案/隐藏答案正确答案: ABD

三大基本特征:封装、继承、多态

1、封装
2、继承
3、多态

五大基本原则

1、单一职责原则(SRP)
2、开放封闭原则(OCP)
3、里氏替换原则(LSP)
4、依赖倒置原则(DIP)
5、接口隔离原则(ISP)

1.单一职责原则

就一个类而言,应该仅有一个引起它变化的原因。

2.开放-封闭原则

一个软件实体应当对扩展开放,对修改关闭

3.里氏代换原则

子类型(subtype)必须能够替换它们的基(父)类型

4.依赖倒转(置)原则

要依赖于抽象,不要依赖于具体

5.接口隔离原则

使用多个专门的接口比使用单一的总接口总要好

考点6:标识符规则

下面哪些标识符是正确的?

  • A MyWorld
  • B parseXML
  • C –value
  • D &maybe
显示答案/隐藏答案正确答案: AB

Java中标识符规则

  • 字母数字美元符号$、**下划线_**4种组成,
  • 不能以数字开头,
  • 不能是保留字和关键字
  • 不能是true,false,null等引用常量

C语言标识符规则

  • 标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,
  • 首字符不能是数字,但可以是字母或者下划线
  • 不能是保留字和关键字

Java标识符字符构成比C语言的多了一个美元符$

考点7:java有哪些包装类

下面属于java包装类的是?

  • A String
  • B Long
  • C Character
  • D Short
显示答案/隐藏答案正确答案: BCD

基本数据类型及其包装类对照表

基本数据类型 包装类
byte Byte
boolean Boolean
short Short
char Character
int Integer
long Long
float Float
double Double

String既不是包装类,也不是基本类型

考点8:反射机制能做什么

JAVA反射机制主要提供了以下哪些功能?

  • A 在运行时判断一个对象所属的类
  • B 在运行时构造一个类的对象
  • C 在运行时判断一个类所具有的成员变量和方法
  • D 在运行时调用一个对象的方法
显示答案/隐藏答案正确答案: ABCD

A: Class.isInstance();
B: Class.newInstance();
C: Class.getMethod(); Class.getField();
D: Method.invoke();

Class类方法

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html#method.summary
https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#method.summary

image-20210908162522801

考点9:常识 面向对象程序设计优点

面向对象程序设计方法的优点包含:

  • A 可重用性
  • B 可扩展性
  • C 易于管理和维护
  • D 简单易懂
显示答案/隐藏答案正确答案: ABC