- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Java日常练习题,每天进步一点点(2)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案) 。
1
2
3
4
|
x =
2
;
while
(x<n/
2
){
x =
2
*x;
}
|
假设n>=0,则其时间复杂度应为( ) 。
正确答案: A 。
O(log2(n)) 。
O(nlog2(n)) 。
O(n) 。
O(n^2) 。
题解:循环终止条件是 x > n/2 。
正确答案: B 。
正确 。
错误 。
题解:运行异常,可以通过java虚拟机来自行处理。非运行异常,我们应该捕获或者抛出.
I. 扩展两个或多个类 。
II. 扩展一个类并实现一个或多个接口.
III. 实现两个或更多接口.
正确答案: B 。
只有I &II 。
只有II & III 。
只有III 。
都是 。
题解: Java只支持单继承,实现多重继承三种方式:(1)直接实现多个接口(2)扩展(extends)一个类然后实现一个或多个接口(3)通过内部类去继承其他类 。
正确答案: C 。
客户端通过new ServerSocket()创建TCP连接对象 。
客户端通过TCP连接对象调用accept()方法创建通信的Socket对象 。
客户端通过new Socket()方法创建通信的Socket对象 。
服务器端通过new ServerSocket()创建通信的Socket对象 。
题解:客户端通过new Socket()方法创建通信的Socket对象服务器端通过new ServerSocket()创建TCP连接对象 。
正确答案: B 。
tar -xvf backup.tar 。
tar -tvf backup.tar 。
tar -svf backup.tar 。
none of these 。
题解: -s 还原文件的顺序和备份文件内的存放顺序相同。 -t 列出备份文件的内容。 -v 显示指令执行过程。 -f 指定压缩文件 -x 从备份文件中还原文件。所以不能有x和s 。
把常用的tar解压命令总结下,当作备忘:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
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
|
正确答案: C 。
java.exe 。
javadoc.exe 。
jdb.exe 。
javaprof.exe 。
题解: javac.exe是编译.java文件 java.exe是执行编译好的.class文件 javadoc.exe是生成Java说明文档 jdb.exe是Java调试器 javaprof.exe是剖析工具 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package
algorithms.com.guan.javajicu;
public
class
Inc {
public
static
void
main(String[] args) {
Inc inc =
new
Inc();
int
i =
0
;
inc.fermin(i);
i= i ++;
System.out.println(i);
}
void
fermin(
int
i){
i++;
}
}
|
正确答案: A 。
0 。
1 。
2 。
3 。
题解: i++ 先赋值在计算结果; ++i 先计算结果再赋值。 int i = 0; i = i ++; // 左边这个i其实是障眼法,就是一个中间变量,可以和下行的i合并; System.out.println(i); 这里等价于: int i = 0; System.out.println(i++); 这下再看,先赋值(先将i传给println函数打印出来,在计算表达式结果) 所以打印出来的是0,实际上整个表达式的结果已经是1了,只是没有打印出整个表达式的结果。所以我们知道如下结论: 1、无论怎么变,i++和++i的整个表达式的结果都是1. 2、有时我们打印的是表达式的结果(System.out.println(++i)), 有时我们打印的只是一个中间变量(System.out.println(i++))。 Ps: int i = 0; i++; System.out.println(i); //值为1 打印的是表达式的结果 int i = 0; ++i; System.out.println(i); //值为1 打印的是表达式的结果 int i = 0; i = i++; System.out.println(i); //值为0 打印的是中间变量(JVM中间缓存变量机制) int i = 0; i = ++i; System.out.println(i); //值为1 打印的是表达式的结果 。
<%@ page language=“java” import=“java.util.*” errorPage=“error.jsp” isErrorPage=“false” %> 。
正确答案: A 。
该页面可以使用 exception 对象 。
该页面发生异常会转向 error.jsp 。
存在 errorPage 属性时,isErrorPage 是默认为 false 。
error.jsp 页面一定要有isErrorPage 属性且值为 true 。
题解: A项:页面有isErrorPage属性且值为false,不可以使用 exception 对象当isErrorPage ="false"时,用errorPage=“error.jsp”(isErrorPage默认是false) 当isErrorPage ="true"时,页面会直接使用exception 。
String s = null,
会抛出NullPointerException异常的有().
正确答案: A C 。
1
2
3
4
|
if
( (s!=
null
) & (s.length()>
0
) )
if
( (s!=
null
) && (s.length()>
0
) )
if
( (s==
null
) | (s.length()==
0
) )
if
( (s==
null
) || (s.length()==
0
) )
|
题解: 逻辑运算符:&&和|| 是按照“短路”方式求值的。如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了。 位移运算符:&和| 运算符应用于布尔值,得到的结果也是布尔值,不按“短路”方式计算。即在得到计算结果之前,一定要计算两个操作数的值。 String s=null;没有给s开辟任何空间,当执行length()方法时候,因为没有具体指向的内存空间,所以报出NullPointerException没有指向的错误。 A项: &是与,位运算,两个都得执行,执行到s.length()自然就报错了。 B项: S!=null 结果为false 整体就为false ,&& 后面就不会执行。下面的同理.
正确答案: B D F 。
A:默认情况下,Java应用启动过程涉及三个ClassLoader: Boostrap, Extension, System 。
B:一般的情况不同ClassLoader装载的类是不相同的,但接口类例外,对于同一接口所有类装载器装载所获得的类是相同的 。
C:类装载器需要保证类装载过程的线程安全 。
D:ClassLoader的loadClass在装载一个类时,如果该类不存在它将返回null 。
E:ClassLoader的父子结构中,默认装载采用了父优先 。
F:所有ClassLoader装载的类都来自CLASSPATH环境指定的路径 。
题解: A、java中类的加载有5个过程,加载、验证、准备、解析、初始化;这便是类加载的5个过程,而类加载器的任务是根据一个类的全限定名来读取此类的二进制字节流到JVM中,然后转换为一个与目标类对应的java.lang.Class对象实例,在虚拟机提供了3种类加载器,引导(Bootstrap)类加载器、扩展(Extension)类加载器、系统(System)类加载器(也称应用类加载器)。A正确 B、一个类,由不同的类加载器实例加载的话,会在方法区产生两个不同的类,彼此不可见,并且在堆中生成不同Class实例。所以B前面部分是正确的,后面接口的部分真的没有尝试过,等一个大佬的讲解吧; C、类加载器是肯定要保证线程安全的;C正确 D、装载一个不存在的类的时候,因为采用的双亲加载模式,所以强制加载会直接报错,D错误 java.lang.SecurityException: Prohibited package name: java.lang E、双亲委派模式是在Java 1.2后引入的,其工作原理的是,如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式,即每个儿子都很懒,每次有活就丢给父亲去干,直到父亲说这件事我也干不了时,儿子自己想办法去完成,所以默认是父装载,E正确 F、自定义类加载器实现 继承ClassLoader后重写了findClass方法加载指定路径上的class,F错误 。
1、正确答案: A 。
2、正确答案: B 。
3、正确答案: B 。
4、正确答案: C 。
5、正确答案: B 。
6、正确答案: C 。
7、正确答案: A 。
8、正确答案: A 。
9、正确答案: A C 。
10、正确答案: B D F 。
本篇文章就到这里了,希望能给你带来帮助,也希望能够您能够关注我的更多内容! 。
原文链接:https://blog.csdn.net/weixin_43883917/article/details/118939294 。
最后此篇关于Java日常练习题,每天进步一点点(2)的文章就讲到这里了,如果你想了解更多关于Java日常练习题,每天进步一点点(2)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!