1、 以下关于字符串截取,描述错误的是 C
A、Java中的字符串截取方法进行了重载
B、对于字符串截取方法,subString(int beginIndex,int endIndex)返回值包含开始位置的字符,但不包含结束位置的字符.
C、Java中的字符串截取方法,可以从指定索引开始一直截取到最后一个字符。当指定索引不存在时候,返回空字符串
D、对于区间字符串截取,java是从某一索引开始,到某一索引结束;而Oracle中则是从某一索引开始截取指定长度.
2、对于字符串实现类,描述正确的是 C
A、从Java1.5(1.0)开始,新增了StringBuffer对象,用以处理动态字符串
B、String word=new String(“hello neusoft”)时候,内存中产生的字符串个数是一个。
C、对于动态字符串,如果需要保证其线程安全性,需要使用StringBuffer,如果在不涉及线程安全的环境中,建议使用StringBuilder,因为其性能更好。
D、String 是定长字符串,一经定义长度不可以变,一旦长度发生变化,会产生新的字符串对象,但进行局部替换时候不会产生新字符串对象。replace()
3、 关于集合框架描述错误的是 C
A、List中的元素可以重复,而Set不可以重复
B、影响HashMap性能的因素在于其初始容量和加载因子,因此,HashMap中元素永远不会灌满Hash桶
C、在软件实务中,应该为HashMap提供尽可能小的初始容量,当容量不足时候,使其自动扩容,以节约内存开销 (HsahMap扩容代价太大了,每次都要把所有的数据拿出来然后在计算hash值再赋值到新的HsahMap里 )
D、List和Set具有相同的父接口
4、以下关于迭代器Iterator描述正确的是:B
A、 通过迭代器,可以遍历集合中的元素,可以对元素进行读取和添加
B、 迭代器的设计初衷是替代 Java Collections Framework 中的 Enumeration
C、 全部正确
D、 Iterator 可以对所有实现了Collection接口的集合实现类,进行双向迭代
5、对于以下程序,描述正确的是 ( B )
public static void main(String[] args) {
List data=new ArrayList<>();
data.add(1);
data.add(2);
data.add(3);
ListIterator li=data.listIterator(1);
while(li.hasPrevious()){
System.out.println(li.previous());
}
}
A、无输出结果
B、存在编译错误
C、输出结果是1
D、输出结果是2和1
6、 以下关于HashMap的描述正确的是 D
A、HashMap是映射的实现方式之一,每个键(可以说是动态数组)/值(链表的连接方式)对都是由其内部的动态数组进行直接存储
B、HashMap读取的最快方式是应用迭代接口进行读取
C、HashMap中的每个映射,都必须以键值对的方式进行整体Entry操作,不可以(可以)独立获取其key或是value
D、对于所有的键值对,可以直接导出形成Set集合
7、 以下关于HashMap方法描述错误的是 A
A、remove(Object k)方法删除的key如果不存在,会引发异常(不会),因此一般在调用该方法之前,需要先调用containsKey(Object k)方法,判断key是否存在
B、clear()方法只是清除了所有的映射,内存对象实际上依然存在
C、HashMap中的key是不可以重复的,但是可以用null做key
D、当isEmpty( )返回true的时候,size()方法的返回值是0
8、 关于equals()与==描述正确的是 D
A、在内存对象是否相同的判断上,是不可以应用equals()的
B、在一个方法中,如果定义了如下语法:
String str1=”abcd”;
String str2=”abcd”;
此时,equals()返回true,而==返回false
C、在String类中,equals()与==作用是相同的
D、如果一个类没有重写equals方法,那么equals可以用来比较两个变量引用的内存对象是否相同
9、以下描述错误的是 D
A、对于I/O流Java提供了两种实现手段,分别是字节流和字符流,但在底层,一切I/O都是基于字节流实现的
B、缓冲流的意图在于通过空间消耗,换取时间上的效率
C、java中对于数据的输入输出是通过流实现的
D、java中的流分为输入流和输出流,输入流用以向文件中写入数据
10、 在FileOutputStream类的构造方法中,下面哪个类是合法的参数 B
A、OutputStream
B、File
C、InputStream
D、FileOutputStream
多选题
1、 下列哪两个语句能够创建一个InputStream输入流并且打开文件“file.txt”准备读取 DE
A、InputStream in=new FileReader(“file.txt”);
B、InputStream in=new InputStreamFileReader (“file.txt”, “read”);
C、FileInputStream in=new FileReader(new File(“file.txt”));
D、InputStream in=new FileInputStream(“file.txt”);
E、FileInputStream in=new FileInputStream(new File(“file.txt”));
2.以下哪些方法是属于Thread类的 ABC
A、getId()
B、destory()
C、sleep()
D、exist()
3、Java中的集合类包括ArrayList、LinkedList、HashMap等,下列关于集合类描述正确的是 ABC
A、 HashMap实现了Map接口,它允许任何类型的键和值对象,并允许将 null 用作键或值
B、 ArrayList和LinkedList均实现了List接口
C、 ArrayList的查询速度比LinkedList快
D、 添加和删除元素时,ArrayList的表现更佳
4、 Java程序代码如下:
List a = new ArrayList();
a.add(“Alpha”);
a.add(“Bravo”):
a.add(“Charlie”);
a.add(“Delta”);
Iterator iter = a.iterator();
______________________
下列哪两组的两行代码添加在虚线处,可按字典顺序打印输出ArrayList集合中的全部元素 AD
A、 while( iter.hasNext() ) System.out.println(iter.next()) ;
B、 for (int i=0, i < a.size(); i++) System.out.println(iter[i]);
C、 for (int i=0; i < a.size(); i++) System.out.println(iter.get(i));
D、 for (int i=0;iE、 for (int i=0; i < a.size(); i++) System.out.println(a[i]);
填空题
1、任何一个Java程序都默认引入了一个包,这个包的名字叫 java. lang。
参考答案:
lang
2、 java.lang.String是否可以再有子类(不可以),为什么(String是final类)
参考答案:
不可以
、
因为String是final类
3、Java中存在如下语句Double val=null;此时执行如下语句产生的情况分别是:
String.valueOf(val):____返回字符串null
val.toString(): _______空指针异常____________________________
参考答案:
返回字符串null
、
引发空指针异常
4、 String str=new String(“helolo”),此时内存中字符串对象个数是____2________个
参考答案 2
问答题
1、 Collection 和 Collections的区别
参考答案:
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口
2、String类与StringBuilder类的比较,StringBuffer与StringBuilder的比较。
参考答案:
1、String类与StringBuilder类的比较
1.1) String类与StringBuilder类相同点:
1.1.1) String与StringBuilder两个类都完成对字符串的各种操作;
1.1.2) String类与StringBuilder类都被放到了java.lang包中
1.2) String类与StringBuilder类两者的主要区别在于:
1.2.1) String类对象中的内容初始化不可以改变
1.2.2)StringBuilder类对象中的内容可以改变
2、StringBuffer与StringBuilder的比较
2.1) StringBuffer与StringBuilder的相同点
2.1.1) StringBuffer和StringBuilder都是长度可变的字符串。
2.1.2) 两者的操作基本相同。
2.2) 两者的主要区别在于
2.2.1)StringBuffer类是线程安全的;
2.2.2)StringBuilder类是线程不安全的。
2.2.3)StringBuffer在JDK1.0中就有,而StringBuilder是在JDK5.0后才出现的。
2.2.4)StringBuilder的一些方法实现要比StringBuffer快些。
3、Java中有几种类型的流,JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
参考答案:
从传输单位的不同分为:字节流,字符流
从传输方向的不同分为:输入流 输出流
对应的提供的API类包括:FileInputStream FileOutputStream FileReader FileWriter DataInputStream DataOutputStream 等等
编程题
1、 现有如下HashMap:
Map
data.put("empno", "10001");
data.put("ename", "scott");
data.put("job", "添坑队长");
请解析出每个键及其对应的值,并打印到控制台
2、编写一个程序,从文件(文件名键盘输入)得到该文件保存的10个正整数(每个数一行),并输出这10个整数的最大值和最小值。
3.编写应用程序类FileCopy,实现文件拷贝功能。设原文件为c:\data\soudata.txt,将其拷贝为c:\data\desdata.txt。
4.读取一个文件,文件中包含若干由空格分开的单词,写一个程序:统计出每个单词出现的次数。