2019年11月29日 java1
考点1
关于依赖注入,下列选项中说法错误的是()
- A 依赖注入能够独立开发各组件,然后根据组件间关系进行组装
- B 依赖注入使组件之间相互依赖,相互制约
- C 依赖注入提供使用接口编程
- D 依赖注入指对象在使用时动态注入
解析
显示答案/隐藏答案
正确答案: B依赖注入是相互依赖(减少耦合),使开发更加简洁
考点2
如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? ( )
- A
void use() { …}
- B
protected void use() { …}
- C
public void use() { …}
- D 以上语句都可以用在类
SmallCup
中
解析
显示答案/隐藏答案
正确答案: C- 接口中的常量修饰符是public static final,
- 接口中的方法修饰符是public abstract
- 两头两小一大
考点3
使用mvc模式设计的web应用程序具有以下优点,除了?
- A 可维护行强
- B 可扩展性强
- C 代码重复少
- D 大大减少代码量
解析
显示答案/隐藏答案
正确答案: D考点4
关于ASCII码和ANSI码,以下说法不正确的是()?
- A 标准
ASCII
只使用7个bit
- B 在简体中文的
Windows
系统中,ANSI
就是GB2312
- C
ASCII
码是ANSI
码的子集 - D
ASCII
码都是可打印字符
解析
显示答案/隐藏答案
正确答案: DA、标准ASCII
只使用7个bit
,扩展的ASCII
使用8个bit
。
B、ANSI
通常使用 0x00
00x7f
范围的1 个字节来表示 1 个英文字符。超出此范围的使用0x80
xFFFF
来编码,即扩展的ASCII
编码。不同 ANSI
编码之间互不兼容。在简体中文Windows
操作系统中,ANSI
编码代表 GBK
编码;在繁体中文Windows
操作系统中,ANSI
编码代表Big5
;在日文Windows
操作系统中,ANSI
编码代表 Shift_JIS
编码。
C、ANSI
通常使用 0x00
~0x7f
范围的1 个字节来表示 1 个英文字符,即ASCII
码
D、ASCII
码包含一些特殊空字符,这些特殊的空字符无法打印。
考点5
在开发中使用泛型取代非泛型的数据类型(比如用ArrayList
- A 正确
- B 错误
解析
显示答案/隐藏答案
正确答案: B泛型仅仅是java的语法糖,它不会影响java虚拟机生成的汇编代码,在编译阶段,虚拟机就会把泛型的类型擦除,还原成没有泛型的代码,顶多编译速度稍微慢一些,执行速度是完全没有什么区别的.
考点6
java中将ISO8859-1字符串转成GB2312编码,语句为 ?
- A
new String("ISO8859-1".getBytes("ISO8859-1"),"GB2312")
- B
new String(String.getBytes("GB2312"), ISO8859-1)
- C
new String(String.getBytes("ISO8859-1"))
- D
new String(String.getBytes("GB2312"))
解析
显示答案/隐藏答案
正确答案: A得到的是以charsetName编码得到的byte数组;
1 | byte [ ] String.getBytes(String charsetName); |
String的构造函数有:
1 | String(byte[] bytes, String charsetName); |
考点7
对于以下代码段,4个输出语句中输出true的个数是( )。
1 | class A{} |
- A 1
- B 2
- C 3
- D 4
解析
显示答案/隐藏答案
正确答案: Ca instanceof A;表示的是a指向的实际对象
,是否是A类或者A的子类的实例。
1 | A obj = new D(); |
这里obj指向的实际对象类型为D
1 | obj instanceof B |
obj是B的子类D的实例,true
1 | obj instanceof D |
obj是D对象的实例,true
1 | obj instanceof A |
obj是A类的子类B的子类D的实例,true
总结可以从obj的实际类型D开始,依次向上查找父类,如果在继承链中找到这个类,则返回true。
考点8
关于异常的编程,以下描述错误的是:( )
- A 在有除法存在的代码处,为了防止分母为零,必须抛出并捕获异常
- B
int i=Integer.parseInt("123a");
将产生NumberFormatException
- C
int a[]=null;
a[0]=1;
将产生NullPointerException
- D 输入输出流编程中,读和写时都要抛出
IOException
解析
显示答案/隐藏答案
正确答案: A除零异常是运行时异常,不需要显示处理
Java的异常分为两种,一种是运行时异常(RuntimeException),一种是非运行异常也叫检查式异常(CheckedException)。
1、运行时异常不需要程序员去处理,当异常出现时,JVM会帮助处理。常见的运行时异常有:
- ClassCastException(类转换异常)
- ClassNotFoundException
- IndexOutOfBoundsException(数组越界异常)
- NullPointerException(空指针异常)
- ArrayStoreException(数组存储异常,即数组存储类型不一致)
- 除零异常
- 还有IO操作的BufferOverflowException异常
2、非运行异常需要程序员手动去捕获或者抛出异常进行显示的处理,因为Java认为Checked异常都是可以被修复的异常。常见的异常有:
- IOException
- SqlException
考点9
关于java集合下列说法不正确的有哪些()
- A
HashSet
它是线程安全的,不允许存储相同的对象 - B
ConcurrentHashMap
它是线程安全的,其中存储的键对象可以重复,值对象不能重复 - C
Collection
接口是List
接口和Set
接口的父接口,通常情况下不被直接使用 - D
ArrayList
线程安全的,允许存放重复对象
解析
显示答案/隐藏答案
正确答案: ABD线程安全(Thread-safe)的集合对象:
- Vector 线程安全:
- HashTable 线程安全:
非线程安全的集合对象:
- ArrayList
- LinkedList
- HashMap
- HashSet
- TreeMap
- TreeSet
StringBuffer线程安全
StringBulider线程不安全