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提供了对文件的基本操作,包括对删除,文件路径等操作。