欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(31)

 更新時(shí)間:2021年07月26日 09:09:59   作者:牛哄哄的柯南  
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你

承蒙各位厚愛(ài),我們一起每天進(jìn)步一點(diǎn)點(diǎn)?。ㄊ髽?biāo)選中空白處查看答案)

1、現(xiàn)有如下代碼段:

x = 2;
while(x<n/2){
	x = 2*x;
}  

假設(shè)n>=0,則其時(shí)間復(fù)雜度應(yīng)為( )

正確答案: A

O(log2(n))

O(nlog2(n))

O(n)

O(n^2)

題解:
循環(huán)終止條件是 x > n/2
在這里插入圖片描述

2、對(duì)于非運(yùn)行時(shí)異常,程序中一般可不做處理,由java虛擬機(jī)自動(dòng)進(jìn)行處理。

正確答案: B

正確

錯(cuò)誤

題解:
運(yùn)行異常,可以通過(guò)java虛擬機(jī)來(lái)自行處理。非運(yùn)行異常,我們應(yīng)該捕獲或者拋出。

3、多重繼承的概念在Java中實(shí)現(xiàn)是通過(guò)如下哪些?()

I. 擴(kuò)展兩個(gè)或多個(gè)類(lèi)

II. 擴(kuò)展一個(gè)類(lèi)并實(shí)現(xiàn)一個(gè)或多個(gè)接口。

III. 實(shí)現(xiàn)兩個(gè)或更多接口。

正確答案: B

只有I &II

只有II & III

只有III

都是

題解:
Java只支持單繼承,實(shí)現(xiàn)多重繼承三種方式:
(1)直接實(shí)現(xiàn)多個(gè)接口
(2)擴(kuò)展(extends)一個(gè)類(lèi)然后實(shí)現(xiàn)一個(gè)或多個(gè)接口
(3)通過(guò)內(nèi)部類(lèi)去繼承其他類(lèi)

4、關(guān)于 Socket 通信編程,以下描述正確的是:( )

正確答案: C

客戶(hù)端通過(guò)new ServerSocket()創(chuàng)建TCP連接對(duì)象

客戶(hù)端通過(guò)TCP連接對(duì)象調(diào)用accept()方法創(chuàng)建通信的Socket對(duì)象

客戶(hù)端通過(guò)new Socket()方法創(chuàng)建通信的Socket對(duì)象

服務(wù)器端通過(guò)new ServerSocket()創(chuàng)建通信的Socket對(duì)象

題解:
客戶(hù)端通過(guò)new Socket()方法創(chuàng)建通信的Socket對(duì)象
服務(wù)器端通過(guò)new ServerSocket()創(chuàng)建TCP連接對(duì)象

5、以下哪個(gè)命令用于查看tar(backup.tar)文件的內(nèi)容而不提取它?()

正確答案: B

tar -xvf backup.tar

tar -tvf backup.tar

tar -svf backup.tar

none of these

題解:
-s 還原文件的順序和備份文件內(nèi)的存放順序相同。
-t 列出備份文件的內(nèi)容。
-v 顯示指令執(zhí)行過(guò)程。
-f 指定壓縮文件
-x 從備份文件中還原文件。
所以不能有x和s

把常用的tar解壓命令總結(jié)下,當(dāng)作備忘:

tar
-c: 建立壓縮檔案
-x:解壓
-t:查看內(nèi)容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件
這五個(gè)是獨(dú)立的命令,壓縮解壓都要用到其中一個(gè),可以和別的命令連用但只能用其中一個(gè)。下面的參數(shù)是根據(jù)需要在壓縮或解壓檔案時(shí)可選的。
-z:有g(shù)zip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過(guò)程
-O:將文件解開(kāi)到標(biāo)準(zhǔn)輸出
下面的參數(shù)-f是必須的
-f: 使用檔案名字,切記,這個(gè)參數(shù)是最后一個(gè)參數(shù),后面只能接檔案名。
# tar -cf all.tar *.jpg 
這條命令是將所有.jpg的文件打成一個(gè)名為all.tar的包。-c是表示產(chǎn)生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif 
這條命令是將所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif 
這條命令是更新原來(lái)tar包all.tar中l(wèi)ogo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar 
這條命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar 
這條命令是解出all.tar包中所有文件,-x是解開(kāi)的意思

壓縮
tar –cvf jpg.tar *.jpg  將目錄里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg   將目錄里所有jpg文件打包成jpg.tar后,并且將其用gzip壓縮,生成一個(gè)gzip壓縮過(guò)的包,命名為jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg 將目錄里所有jpg文件打包成jpg.tar后,并且將其用bzip2壓縮,生成一個(gè)bzip2壓縮過(guò)的包,命名為jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg   將目錄里所有jpg文件打包成jpg.tar后,并且將其用compress壓縮,生成一個(gè)umcompress壓縮過(guò)的包,命名為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
總結(jié)
*.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程序打出來(lái)的包我們常稱(chēng)為tar包,tar包文件的命令通常都是以.tar結(jié)尾的。生成tar包后,就可以用其它的程序來(lái)進(jìn)行壓縮。
1.命令格式:
tar[必要參數(shù)][選擇參數(shù)][文件] 
2.命令功能:
用來(lái)壓縮和解壓文件。tar本身不具有壓縮功能。他是調(diào)用壓縮功能實(shí)現(xiàn)的 
3.命令參數(shù):
必要參數(shù)有如下:
-A 新增壓縮文件到已存在的壓縮
-B 設(shè)置區(qū)塊大小
-c 建立新的壓縮文件
-d 記錄文件的差別
-r 添加文件到已經(jīng)壓縮的文件
-u 添加改變了和現(xiàn)有的文件到已經(jīng)存在的壓縮文件
-x 從壓縮的文件中提取文件
-t 顯示壓縮文件的內(nèi)容
-z 支持gzip解壓文件
-j 支持bzip2解壓文件
-Z 支持compress解壓文件
-v 顯示操作過(guò)程
-l 文件系統(tǒng)邊界設(shè)置
-k 保留原有文件不覆蓋
-m 保留文件不被覆蓋
-W 確認(rèn)壓縮文件的正確性
可選參數(shù)如下:
-b 設(shè)置區(qū)塊數(shù)目
-C 切換到指定目錄
-f 指定壓縮文件
--help 顯示幫助信息
--version 顯示版本信息
4.常見(jiàn)解壓/壓縮命令
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.使用實(shí)例
實(shí)例1:將文件全部打包成tar包
命令:
tar -cvf log.tar log2012.log
tar -zcvf log.tar.gz log2012.log
tar -jcvf log.tar.bz2 log2012.log

6、下列哪個(gè)選項(xiàng)是Java調(diào)試器?如果編譯器返回程序代碼的錯(cuò)誤,可以用它對(duì)程序進(jìn)行調(diào)試。

正確答案: C

java.exe

javadoc.exe

jdb.exe

javaprof.exe

題解:
javac.exe是編譯.java文件
java.exe是執(zhí)行編譯好的.class文件
javadoc.exe是生成Java說(shuō)明文檔
jdb.exe是Java調(diào)試器
javaprof.exe是剖析工具

7、檢查程序,是否存在問(wèn)題,如果存在指出問(wèn)題所在,如果不存在,說(shuō)明輸出結(jié)果。

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++ 先賦值在計(jì)算結(jié)果;
++i 先計(jì)算結(jié)果再賦值。
int i = 0;
i = i ++; // 左邊這個(gè)i其實(shí)是障眼法,就是一個(gè)中間變量,可以和下行的i合并;
System.out.println(i); 這里等價(jià)于:
int i = 0;
System.out.println(i++); 這下再看,先賦值(先將i傳給println函數(shù)打印出來(lái),在計(jì)算表達(dá)式結(jié)果)
所以打印出來(lái)的是0,實(shí)際上整個(gè)表達(dá)式的結(jié)果已經(jīng)是1了,只是沒(méi)有打印出整個(gè)表達(dá)式的結(jié)果。
所以我們知道如下結(jié)論:
1、無(wú)論怎么變,i++和++i的整個(gè)表達(dá)式的結(jié)果都是1.
2、有時(shí)我們打印的是表達(dá)式的結(jié)果(System.out.println(++i)),
有時(shí)我們打印的只是一個(gè)中間變量(System.out.println(i++))。
Ps:
int i = 0;
i++;
System.out.println(i); //值為1 打印的是表達(dá)式的結(jié)果

int i = 0;
++i;
System.out.println(i); //值為1 打印的是表達(dá)式的結(jié)果

int i = 0;
i = i++;
System.out.println(i); //值為0 打印的是中間變量(JVM中間緩存變量機(jī)制)

int i = 0;
i = ++i;
System.out.println(i); //值為1 打印的是表達(dá)式的結(jié)果

8、在 myjsp.jsp 中,關(guān)于下面的代碼說(shuō)法錯(cuò)誤的是: ( )

<%@ page language=“java” import=“java.util.*” errorPage=“error.jsp” isErrorPage=“false” %>

正確答案: A

該頁(yè)面可以使用 exception 對(duì)象

該頁(yè)面發(fā)生異常會(huì)轉(zhuǎn)向 error.jsp

存在 errorPage 屬性時(shí),isErrorPage 是默認(rèn)為 false

error.jsp 頁(yè)面一定要有isErrorPage 屬性且值為 true

題解:
A項(xiàng):頁(yè)面有isErrorPage屬性且值為false,不可以使用 exception 對(duì)象
當(dāng)isErrorPage ="false"時(shí),用errorPage=“error.jsp”(isErrorPage默認(rèn)是false)
當(dāng)isErrorPage ="true"時(shí),頁(yè)面會(huì)直接使用exception

9、根據(jù)下面的代碼,

String s = null;

會(huì)拋出NullPointerException異常的有()。

正確答案: A C

if( (s!=null) & (s.length()>0) )
if( (s!=null) && (s.length()>0) )
if( (s==null) | (s.length()==0) )
if( (s==null) || (s.length()==0) )

題解:
邏輯運(yùn)算符:&&和|| 是按照“短路”方式求值的。如果第一個(gè)操作數(shù)已經(jīng)能夠確定表達(dá)式的值,第二個(gè)操作數(shù)就不必計(jì)算了。
位移運(yùn)算符:&和| 運(yùn)算符應(yīng)用于布爾值,得到的結(jié)果也是布爾值,不按“短路”方式計(jì)算。即在得到計(jì)算結(jié)果之前,一定要計(jì)算兩個(gè)操作數(shù)的值。
String s=null;沒(méi)有給s開(kāi)辟任何空間,當(dāng)執(zhí)行l(wèi)ength()方法時(shí)候,
因?yàn)闆](méi)有具體指向的內(nèi)存空間,所以報(bào)出NullPointerException沒(méi)有指向的錯(cuò)誤。
A項(xiàng): &是與,位運(yùn)算,兩個(gè)都得執(zhí)行,執(zhí)行到s.length()自然就報(bào)錯(cuò)了。
B項(xiàng): S!=null 結(jié)果為false 整體就為false ,&& 后面就不會(huì)執(zhí)行。下面的同理。

10、關(guān)于Java中的ClassLoader下面的哪些描述是錯(cuò)誤的:( )

正確答案: B D F

A:默認(rèn)情況下,Java應(yīng)用啟動(dòng)過(guò)程涉及三個(gè)ClassLoader: Boostrap, Extension, System

B:一般的情況不同ClassLoader裝載的類(lèi)是不相同的,但接口類(lèi)例外,對(duì)于同一接口所有類(lèi)裝載器裝載所獲得的類(lèi)是相同的

C:類(lèi)裝載器需要保證類(lèi)裝載過(guò)程的線(xiàn)程安全

D:ClassLoader的loadClass在裝載一個(gè)類(lèi)時(shí),如果該類(lèi)不存在它將返回null

E:ClassLoader的父子結(jié)構(gòu)中,默認(rèn)裝載采用了父優(yōu)先

F:所有ClassLoader裝載的類(lèi)都來(lái)自CLASSPATH環(huán)境指定的路徑

題解:
A、java中類(lèi)的加載有5個(gè)過(guò)程,加載、驗(yàn)證、準(zhǔn)備、解析、初始化;這便是類(lèi)加載的5個(gè)過(guò)程,而類(lèi)加載器的任務(wù)是根據(jù)一個(gè)類(lèi)的全限定名來(lái)讀取此類(lèi)的二進(jìn)制字節(jié)流到JVM中,然后轉(zhuǎn)換為一個(gè)與目標(biāo)類(lèi)對(duì)應(yīng)的java.lang.Class對(duì)象實(shí)例,在虛擬機(jī)提供了3種類(lèi)加載器,引導(dǎo)(Bootstrap)類(lèi)加載器、擴(kuò)展(Extension)類(lèi)加載器、系統(tǒng)(System)類(lèi)加載器(也稱(chēng)應(yīng)用類(lèi)加載器)。A正確
B、一個(gè)類(lèi),由不同的類(lèi)加載器實(shí)例加載的話(huà),會(huì)在方法區(qū)產(chǎn)生兩個(gè)不同的類(lèi),彼此不可見(jiàn),并且在堆中生成不同Class實(shí)例。所以B前面部分是正確的,后面接口的部分真的沒(méi)有嘗試過(guò),等一個(gè)大佬的講解吧;
C、類(lèi)加載器是肯定要保證線(xiàn)程安全的;C正確
D、裝載一個(gè)不存在的類(lèi)的時(shí)候,因?yàn)椴捎玫碾p親加載模式,所以強(qiáng)制加載會(huì)直接報(bào)錯(cuò),D錯(cuò)誤
java.lang.SecurityException: Prohibited package name: java.lang
E、雙親委派模式是在Java 1.2后引入的,其工作原理的是,如果一個(gè)類(lèi)加載器收到了類(lèi)加載請(qǐng)求,它并不會(huì)自己先去加載,而是把這個(gè)請(qǐng)求委托給父類(lèi)的加載器去執(zhí)行,如果父類(lèi)加載器還存在其父類(lèi)加載器,則進(jìn)一步向上委托,依次遞歸,請(qǐng)求最終將到達(dá)頂層的啟動(dòng)類(lèi)加載器,如果父類(lèi)加載器可以完成類(lèi)加載任務(wù),就成功返回,倘若父類(lèi)加載器無(wú)法完成此加載任務(wù),子加載器才會(huì)嘗試自己去加載,這就是雙親委派模式,即每個(gè)兒子都很懶,每次有活就丟給父親去干,直到父親說(shuō)這件事我也干不了時(shí),兒子自己想辦法去完成,所以默認(rèn)是父裝載,E正確
F、自定義類(lèi)加載器實(shí)現(xiàn) 繼承ClassLoader后重寫(xiě)了findClass方法加載指定路徑上的class,F(xiàn)錯(cuò)誤

答案匯總:

1、正確答案: A

2、正確答案: B

3、正確答案: B

4、正確答案: C

5、正確答案: B

6、正確答案: C

7、正確答案: A

8、正確答案: A

9、正確答案: A C

10、正確答案: B D F

總結(jié)

本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • java Arrays類(lèi)詳解及實(shí)例代碼

    java Arrays類(lèi)詳解及實(shí)例代碼

    這篇文章主要介紹了java Arrays類(lèi)詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • 基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線(xiàn)至服務(wù)器的方法

    基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線(xiàn)至服務(wù)器的方法

    ChatGPT是一款基于自然語(yǔ)言處理技術(shù)的聊天機(jī)器人,ChatGPT可以模擬真實(shí)的人類(lèi)對(duì)話(huà),并能夠更貼近用戶(hù)的需求,提供更有價(jià)值的服務(wù),這篇文章主要介紹了基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線(xiàn)至服務(wù)器,需要的朋友可以參考下
    2023-02-02
  • SpringBoot整合Spring?Security過(guò)濾器鏈加載執(zhí)行流程源碼分析(最新推薦)

    SpringBoot整合Spring?Security過(guò)濾器鏈加載執(zhí)行流程源碼分析(最新推薦)

    Spring?Boot?對(duì)于?Spring?Security?提供了自動(dòng)化配置方案,可以使用更少的配置來(lái)使用?Spring?Security,這篇文章主要介紹了SpringBoot整合Spring?Security過(guò)濾器鏈加載執(zhí)行流程源碼分析,需要的朋友可以參考下
    2023-02-02
  • Java中的權(quán)重算法(如Dubbo的負(fù)載均衡權(quán)重)詳解

    Java中的權(quán)重算法(如Dubbo的負(fù)載均衡權(quán)重)詳解

    這篇文章主要介紹了Java中的權(quán)重算法(如Dubbo的負(fù)載均衡權(quán)重)詳解,負(fù)載均衡,其含義就是指將負(fù)載進(jìn)行平衡、分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行運(yùn)行,例如FTP服務(wù)器、Web服務(wù)器、企業(yè)核心應(yīng)用服務(wù)器和其它主要任務(wù)服務(wù)器等,從而協(xié)同完成工作任務(wù),需要的朋友可以參考下
    2023-08-08
  • MyBatis源碼淺析(一)開(kāi)篇

    MyBatis源碼淺析(一)開(kāi)篇

    源碼的學(xué)習(xí)好處多多,Mybatis源碼量少、邏輯簡(jiǎn)單。下面將通過(guò)本文給大家詳解,低mybatis源碼淺析感興趣的朋友一起看看吧
    2016-11-11
  • java顯示聲音波形圖示例

    java顯示聲音波形圖示例

    這篇文章主要介紹了java顯示聲音波形圖示例,需要的朋友可以參考下
    2014-05-05
  • Java springboot接口迅速上手,帶你半小時(shí)極速入門(mén)

    Java springboot接口迅速上手,帶你半小時(shí)極速入門(mén)

    這篇文章主要給大家介紹了關(guān)于SpringBoot實(shí)現(xiàn)API接口的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • Maven之pom.xml文件中的Build配置解析

    Maven之pom.xml文件中的Build配置解析

    這篇文章主要介紹了Maven之pom.xml文件中的Build配置解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java  工廠(chǎng)方法詳解及實(shí)例代碼

    java 工廠(chǎng)方法詳解及實(shí)例代碼

    這篇文章主要介紹了java 工廠(chǎng)方法詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • SpringBoot如何自定義線(xiàn)程池配置類(lèi)

    SpringBoot如何自定義線(xiàn)程池配置類(lèi)

    有時(shí)候我們?cè)陧?xiàng)目中做一些長(zhǎng)鏈路的跑批任務(wù)時(shí),基于Springboot項(xiàng)目的定時(shí)任務(wù),我們可以指定一個(gè)自定義的線(xiàn)程配置類(lèi)進(jìn)行單獨(dú)提供給具體跑批任務(wù)使用,而不占用整個(gè)系統(tǒng)資源,這篇文章主要介紹了SpringBoot如何自定義線(xiàn)程池配置類(lèi),需要的朋友可以參考下
    2024-04-04

最新評(píng)論