2019年11月24日 java1
考点1
下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换:
byte[] src,dst;
- A
dst=String.fromBytes(src,"GBK").getBytes("UTF-8")
- B
dst=new String(src,"GBK").getBytes("UTF-8")
- C
dst=new String("GBK",src).getBytes()
- D
dst=String.encode(String.decode(src,"GBK")),"UTF-8" )
解析
显示答案/隐藏答案
正确答案: B先解码再编码
- 用
new String(src,"GBK")
解码得到字符串 - 用
getBytes("UTF-8")
得到字符串对应的UTF8
编码字节数组
String类没有fromBytes()和encode以及decode方法
考点2
在java7中,下列哪个说法是正确的:
- A
ConcurrentHashMap
使用synchronized
关键字保证线程安全 - B
HashMap
实现了Collection
接口 - C
Arrays.asList
方法返回java.util.ArrayList
对象 - D
SimpleDateFormat
对象是线程不安全的
解析
显示答案/隐藏答案
正确答案: DConcurrentHashMap
使用ReentrantLock
来保证线程安全
ConcurrentHashMap
使用segment
来分段和管理锁,segment
继承自ReentrantLock
,因此ConcurrentHashMap
使用ReentrantLock
来保证线程安全。
Arrays.asList()
返回Arrays
类的静态内部类
Arrays.asList()
将一个数组转化为一个List
对象,这个方方法返回一个ArrayList
类型的对象, 这个ArrayList
类是Arrays
类的静态内部类
而不是java.util.ArrayList
类,
不能对这个列表进行添加删除更新操作,否则会报UnsupportedOperationException
异常。
考点3
以下哪个命令用于查看tar(backup.tar)文件的内容而不提取它?()
- A
tar -xvf backup.tar
- B
tar -tvf backup.tar
- C
tar -svf backup.tar
- D
none of these
解析
显示答案/隐藏答案
正确答案: BLinux解压缩和压缩命令
有空了解一下
把常用的tar解压命令总结下,当作备忘:
tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思
压缩
tar –cvf jpg.tar *.jpg 将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg zip格式的压缩,需要先下载zip for linux
解压
tar –xvf file.tar 解压 tar包
tar -xzvf file.tar.gz 解压tar.gz
tar -xjvf file.tar.bz2 解压 tar.bz2
tar –xZvf file.tar.Z 解压tar.Z
unrar e file.rar 解压rar
unzip file.zip 解压zip
总结
*.tar 用 tar –xvf 解压
*.gz 用 gzip -d或者gunzip 解压
.tar.gz和.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar –xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压
linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。
1.命令格式:
tar[必要参数][选择参数][文件]
2.命令功能:
用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的
3.命令参数:
必要参数有如下:
-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性
可选参数如下:
-b 设置区块数目
-C 切换到指定目录
-f 指定压缩文件
–help 显示帮助信息
–version 显示版本信息
4.常见解压/压缩命令
tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
5.使用实例
实例1:将文件全部打包成tar包
命令:
tar -cvf log.tar log2012.log
tar -zcvf log.tar.gz log2012.log
tar -jcvf log.tar.bz2 log2012.log
考点4
jdk1.8版本之前的前提下,接口和抽象类描述正确的有( )
- A 抽象类没有构造函数
- B 接口没有构造函数
- C 抽象类不允许多继承
- D 接口中的方法可以有方法体
解析
显示答案/隐藏答案
正确答案: BC抽象类可以有构造函数。只是不能被实例化!
JDK8以后的默认方法和静态方法可以有方法体,题目的方法应该是指普通方法
考点5
以下选项中,合法的赋值语句是()
- A
a>1;
- B
i++;
- C
a= a+1=5;
- D
y = int ( i );
解析
显示答案/隐藏答案
正确答案: B考点6
执行完以下代码 int [ ] x = new int[10] ;后,以下哪项说明是正确的( )
- A
x[9]
为0 - B
x[9]
未定义 - C
x[10]
为0 - D
x[0]
为空
解析
显示答案/隐藏答案
正确答案: A- 基本类型数组:
byte[],short[],int[]
,默认值为0; boolean[]
默认值为false
;float[],double[]
,默认值为0.0;- 对象类型数组: 默认值为
null
考点7
Java的体系结构包含( )。
- A
Java
编程语言 - B
Java
类文件格式 - C
Java API
- D
JVM
解析
显示答案/隐藏答案
正确答案: ABCD考点8
以下代码的循环次数是
1 | public class Test { |
- A 0
- B 1
- C 7
- D 无限次
解析
显示答案/隐藏答案
正确答案: D每次循环都减2,7÷2不可能等于0。所以死循环。
考点9
一个Java源程序文件中定义几个类和接口,则编译该文件后生成几个以.class为后缀的字节码文件。
- A 正确
- B 错误
解析
显示答案/隐藏答案
正确答案: A如果类中有内部类,会产生类名$内部类名.class
,
如果有匿名类则会产生类名$1.class
有空测试一下
考点10
java8中,下面哪个类用到了解决哈希冲突的开放定址法
- A
LinkedHashSet
- B
HashMap
- C
ThreadLocal
- D
TreeMap
解析
显示答案/隐藏答案
正确答案: C- ThreadLocalMap使用开放定址法解决hash冲突,
- HashMap使用链地址法解决hash冲突。
考点11
Java程序的种类有( )
- A 类(
Class)
- B
Applet
- C
Application
- D
Servlet
解析
显示答案/隐藏答案
正确答案: BCDjava程序的种类有:
内嵌于web文件中,由浏览器来观看的Applet
可独立运行的Application
服务器端的Servlet
考点12
有这样一段程序:
1 | public class Test{ |
请问运行主要的程序会打印出的是什么()
- A 2,2
- B 2,3
- C 3,2
- D 3,3
解析
显示答案/隐藏答案
正确答案: Clist有序可重复,set无序不可重复
考点13
以下程序输出()
public static void main(String[] args) {
int num = 2;
switch (num) {
case 1:
++num;
case 2:
++num;
case 3:
++num;
default:
++num;
break;
}
System.out.println(num);
}
}
- A 2
- B 3
- C 4
- D 5
解析
显示答案/隐藏答案
正确答案: Dcase遇到break才跳出
- 匹配到case 2 num等于3
- 但是其后没有break,所以继续执行case 3 num等于4、
- 还是没有break,继续匹配到default语句 num等于5
所以答案为 5
考点14
以下代码在编译和运行过程中会出现什么情况
1 | public class TestDemo{ |
- A 编译运行通过,输出结果是88
- B 编译时错误,
count
变量定义的是私有变量 - C 编译时错误,
System.out.println
方法被调用时test
没有被初始化 - D 编译和执行时没有输出结果