JavaSE笔试选择题(续)(知识点总结)

1、下面哪个标识符是合法的?D

A "9HelloWorld" B "_Hello World" C "Hello*World" D"Hello$World" 

1.  标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:9HelloWorld 就是不合法滴

 2.  标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以

 3.  标识符是严格区分大小写的。 所以一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!

 4.  标识符的命名最好能反映出其作用,做到见名知意。

2、 以下java程序代码,执行后的结果是()C

java.util.HashMap map=new java.util.HashMap();
map.put("name",null);
map.put("name","Jack");
System.out.println(map.size());

A.0 B.null C.1D.2

size() 方法用于返回在此映射中的键 - 值映射关系的数量。 HashMap在插入新元素时,会使用equals()方法判断集合中是否已经存在与新元素key相同的元素,如果存在,新元素会覆盖掉和他key相同的对象。 HashMap允许null作为key/value,因此map.put("name",null);会在map集合中存入key为"name",value为null的对象。map.put("name","Jack");会在map 集合中存入key为"name",value为"Jack"的对象。前后两次存入的对象的key都为"name",因此刚存入的key为"name",value为null的对象会被覆盖掉,即map 中只有一个key为"name",value为"Jack"的对象。map.size()为1。

3、 以下描述正确的是 B

A CallableStatement是PreparedStatement的父接口

B PreparedStatement是CallableStatement的父接口

C CallableStatement是Statement的父接口

D PreparedStatement是Statement的父接口   

Statement 是 PreparedStatement 的父接口,PreparedStatement 是 CallableStatement 的父接口。

PreparedStatement 采用预编译,PreparedStatement 把用户非法输入的单引号用反斜杠做了转义,从而达到了防止 SQL 注入的问题。

CallableStatement 支持调用存储过程,提供了对输入/输出参数的支持。

4、下列关于容器集合类的说法正确的是?C

A LinkedList继承自List

B AbstractSet继承自Set

CHashSet继承自AbstractSet

D WeakMap继承自HashMap 

A.LinkedList是继承自AbstractSequentialList(抽象类,实现了List接口)的,并且实现了List接口。所以A错误。

B.AbstractSet是实现了Set接口的,本身是一个抽象类。继承自AbstractCollection(抽象类,实现了Collection接口)。所以B错误。

C.HashSet是继承自AbstractSet,实现了Set接口。所以C正确。

D.WeakMap不存在于java集合框架的。只有一个叫做WeakHashMap(继承自AbstractMap)。

Java集合框架图  

5、 ArrayList list = new ArrayList(20);中的list扩充几次A

A 0 B 1 C 2 D 3 

ArrayList动态扩容机制
初始化
1、默认的构造器,将会以默认的大小来初始化内部的数组:
public ArrayList();
2、用一个ICollection对象来构造,并将该集合的元素添加到ArrayList:
  public ArrayList(Collection<? extends E> c)
3、用指定的大小来初始化内部的数组:
 public ArrayList(int initialCapacity)   
这里我们来重点关注一下无参数构造器的实现过程:

通过代码可是它的初始容量为0。而在之前JDK1,6中,初始容量为10。 
发生扩容的条件:
根据传入的最小需要容量minCapacity来和数组的容量长度对比,若minCapactity大于或等于数组容量,则需要进行扩容。(如果实际存储数组是空数组,则最小需要容量就是默认容量)
实现扩容:jdk7中采用>>位运算,右移动一位。 容量相当于扩大了1.5倍;

题目中这种是指定数组大小的创建,创建时直接分配其大小,没有扩充。

6、 提供Java存取数据库能力的包是( )A

A java.sqlB java.awt C java.lang D java.swing

java.sql提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。此 API 包括一个框架,凭借此框架可以动态地安 装不同驱动程序来访问不同数据源。

java.lang   提供利用 Java 编程语言进行程序设计的基础类

java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 

7、在Java中,关于HashMap类的描述,以下错误的是 B

A HashMap使用键/值得形式保存数据

B HashMap 能够保证其中元素的顺序

C HashMap允许将null用作键

D HashMap允许将null用作值 

HashMap不能保证元素的顺序,HashMap能够将键设为null,也可以将值设为null,与之对应的是Hashtable,(注意大小写:不是HashTable)

Hashtable不能将键和值设为null,否则运行时会报空指针异常错误;

HashMap线程不安全,Hashtable线程安全

8、下列哪种异常是检查型异常,需要在编写程序时声明? C

A NullPointerException

B ClassCastException

C FileNotFoundException

D IndexOutOfBoundsException 

异常可以分为非检查异常和检查异常:

非检查异常主要包括运行时异常(RuntimeException极其子类)和错误(Error)。编译器不会进行检查并且不要求必须处理的异常,也就说当程序中出现此类 异常时,即使我们没有`try-catch`捕获它,也没有使用`throws`抛出该异常,编译也会正常通过。

检查异常是除了`Error`和 `RuntimeException`的其它异常。这是编译器要求必须处理的异常。这样的异常一般是由程序的运行环境导致的。因为程序可能被运行 在各种未知的环境下,而程序员无法干预用户如何使用他编写的程序,所以必须处理这些异常。 

9、如下代码,执行test()函数后,屏幕打印结果为() D

public class Test2{
    public void add(Byte b){
        b = b++;
    }
    public void test(){
        Byte a = 127;
        Byte b = 127;
        add(++a);
        System.out.print(a + " ");
        add(b);
        System.out.print(b + "");
    }
}

A 127 127

B 128 127

C 129 128

D 其他选项都不对

包装类的值是final修饰不可变的,无论是++b还是b++都创建了一个新对象,那么作为参数传递时,形参和实参不会指向一个地址。也就是说,即使add() 方法 中不是 b = b++;这样没有意义的代码,传入参数的值也不会改变。 byte类型取值范围为-128~127,在a变量进行++a运算时,会导致a变为-128,这是因为整数在内存中使用的是补码的形式表示,最高位是符号位,0表示正 数,1表示负数,加一导致补码进位,符号位变为1.

因此,本题正确输出为-128 127,答案选择D 

10、在Java中,( )类提供定位本地文件系统,对文件或目录及其属性进行基本操作 D

A FileInputStream B FileReader C FileWriter D File 

FileInputStream提供了对文件的字节读取;
FileReader提供了对文件的字符读取;
FileWriter提供了对文件的字符写入;
File提供了对文件的基本操作,包括对删除,文件路径等操作。


版权声明:本文为m0_51601105原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。