1.以下代碼的運(yùn)行結(jié)果是
public static void main(String[] args) {
ArrayList<Integer> integers = new ArrayList<Integer>() ;
integers.add(2);
integers.add(4);
integers.add(1);
integers.add(3);
integers.add(5);
for (int i = 0; i <integers.size() ; i++) {
if (integers.get(i)%2==0){
integers.remove(integers.get(i));
}
}
System.out.println(integers);
}
不是1密似,3李请,5 是4损离,1,3,5(當(dāng)?shù)谝粋€(gè)2被移除后剪返,4會(huì)第一個(gè),不會(huì)被比較移除邓梅。驚喜意外...)
2.求運(yùn)行結(jié)果
public class Demo {
class Super {
int flag=1;
Super(){
test();//2步,此處調(diào)用了一個(gè)test(),雖然子類和父類中都有test()但是會(huì)優(yōu)先調(diào)用子類
}
void test(){
System.out.println("Super.test() flag="+flag);
}
}
class Sub extends Super{
Sub(int i){//4步脱盲,3執(zhí)行完后調(diào)用子類構(gòu)造器
flag=i;
System.out.println("Sub.sub() flag="+flag);
}
void test() {//3步
System.out.println("Sub.test() flag="+flag);
}
}
public static void main(String[] args) {
new Demo().new Sub(5);//1步,new的子類,但是子類繼承了父類日缨,
//會(huì)先訪問父類的無參構(gòu)造方法
}
}
Sub.test() flag=1
Sub.sub() flag=5
3.java體系結(jié)構(gòu)包括四個(gè)方面:
java程序設(shè)計(jì)語言
java class文件格式
java API
java 虛擬機(jī)
4.下列哪些語法結(jié)構(gòu)是正確的
public class Demo extends B implements A
public class Demo implements A,B
5.下面哪些情況可以引發(fā)異常
A.數(shù)組越界
B.指定url不存在
C.使用throw語句拋出
D.使用throw語句
ABC
6.面向?qū)ο髢?yōu)點(diǎn)
1钱反、易維護(hù)
采用[面向?qū)ο笏枷隴(https://www.baidu.com/s?wd=%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E6%80%9D%E6%83%B3&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)設(shè)計(jì)的結(jié)構(gòu),可讀性高匣距,由于繼承的存在面哥,即使改變需求,那么維護(hù)也只是在局部模塊毅待,所以維護(hù)起來是非常方便和較低成本的尚卫。
2、質(zhì)量高
在設(shè)計(jì)時(shí)尸红,可重用現(xiàn)有的吱涉,在以前的項(xiàng)目的領(lǐng)域中已被測試過的類使系統(tǒng)滿足業(yè)務(wù)需求并具有較高的質(zhì)量刹泄。
3、效率高
在軟件開發(fā)時(shí)怎爵,根據(jù)設(shè)計(jì)的需要對現(xiàn)實(shí)世界的事物進(jìn)行抽象特石,產(chǎn)生類。使用這樣的方法解決問題鳖链,接近于日常生活和自然的思考方式姆蘸,勢必提高軟件開發(fā)的效率和質(zhì)量。
4撒轮、易擴(kuò)展
由于繼承乞旦、封裝、多態(tài)的特性题山,自然設(shè)計(jì)出高內(nèi)聚兰粉、低耦合的系統(tǒng)結(jié)構(gòu),使得系統(tǒng)更靈活顶瞳、更容易擴(kuò)展玖姑,而且成本較低。
7.下列哪些方法可以獲取cookis
A.request.getAttribute
B.request.getHeader
C.request.getParameter
D.request.getCookies
A. request.getAttribute:getAttribute是在服務(wù)器端的操作慨菱。
比如說 request.setAttribute(k,v),其行為動(dòng)作在服務(wù)器端焰络。
而在服務(wù)端放入cookies是通過response.addCookie(cookie)。因此符喝,A錯(cuò)了
B. Accept 瀏覽器可接受的MIME類型
Accept-Charset 瀏覽器支持的字符編碼
Accept-Encoding 瀏覽器知道如何解碼的數(shù)據(jù)編碼類型(如 gzip)闪彼。Servlets 可以預(yù)先檢查瀏覽器是否支持gzip并可以對支持gzip的瀏覽器返回gzipped的HTML頁面,并設(shè)置Content-Encoding回應(yīng)頭(response header)來指出發(fā)送的內(nèi)容是已經(jīng)gzipped的协饲。在大多數(shù)情況下畏腕,這樣做可以加快網(wǎng)頁下載的速度。
Accept-Language 瀏覽器指定的語言茉稠,當(dāng)Server支持多語種時(shí)起作用描馅。
Authorization 認(rèn)證信息,一般是對服務(wù)器發(fā)出的WWW-Authenticate頭的回應(yīng)而线。
Connection 是否使用持續(xù)連接铭污。如果servlet發(fā)現(xiàn)這個(gè)字段的值是Keep-Alive,或者由發(fā)出請求的命令行發(fā)現(xiàn)瀏覽器支持 HTTP 1.1 (持續(xù)連接是它的默認(rèn)選項(xiàng))膀篮,使用持續(xù)連接可以使保護(hù)很多小文件的頁面的下載時(shí)間減少嘹狞。
Content-Length (使用POST方法提交時(shí),傳遞數(shù)據(jù)的字節(jié)數(shù))
Cookie (很重要的一個(gè)Header誓竿,用來進(jìn)行和Cookie有關(guān)的操作磅网,詳細(xì)的信息將在后面的教程中介紹)
Host (主機(jī)和端口)
If-Modified-Since (只返回比指定日期新的文檔,如果沒有烤黍,將會(huì)反回304 "Not Modified")
Referer (URL)
User-Agent (客戶端的類型知市,一般用來區(qū)分不同的瀏覽器)
C.request.getParameter()方法獲取從客戶端中通過get 或者post方式傳送到服務(wù)器端的參數(shù)傻盟。行為操作在服務(wù)器端。所以cookies明顯不是通過url或者form表單提交過來的嫂丙。C錯(cuò)
D.看方法名字就行了娘赴。
BD
8.下列錯(cuò)誤的是
A.一個(gè)類可以有多個(gè)基類和多個(gè)基接口
B.抽象類自身可以定義成員而接口不可以
C.抽象類和接口都不能被實(shí)例化
D.類不可以多重繼承而接口可以
C抽象類是可以實(shí)例化的,接口不可以
9.有關(guān)線程說法正確的是( )
A線程是程序的多個(gè)順序的流動(dòng)態(tài)執(zhí)行
B 線程有自己獨(dú)立的地址空間
C 線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中跟啤,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制
D 線程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位
進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng)诽表,是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位;
線程是進(jìn)程的一個(gè)實(shí)體隅肥,一個(gè)進(jìn)程中包含多個(gè)線程竿奏。是CPU調(diào)度和分派的基本單位,是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位
B進(jìn)程有獨(dú)立的地址空間腥放,線程沒有泛啸。線程是共享進(jìn)程的地址空間,因此B錯(cuò)誤
D進(jìn)程是 操作系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位秃症,而線程只是CPU調(diào)度和分派的基本單位候址,因此D錯(cuò)誤
AC
10.下面關(guān)于數(shù)據(jù)庫唯一索引正確的是( )?
A.表可以包含多個(gè)唯一約束种柑,但只能有一個(gè)主鍵
B.唯一約束列可以包含null值
C.唯一約束列可修改和更新
D.唯一約束不能用來定義外鍵
正確答案:A B C
11.Redis支持五種數(shù)據(jù)類型:
string(字符串)岗仑,hash(哈希),list(列表)聚请,set(集合)及zset(sorted set:有序集合)荠雕。
12關(guān)于OutOfMemoryError,下面說法正確的是()驶赏?
A.java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize這個(gè)參數(shù)的值的話炸卑,這個(gè)問題通常會(huì)得到解決。
B.java.lang.OutOfMemoryError: Requested array size exceeds VM limit當(dāng)你正準(zhǔn)備創(chuàng)建一個(gè)超過虛擬機(jī)允許的大小的數(shù)組時(shí)母市,這條錯(cuò)誤將會(huì)出現(xiàn)
C.java.lang.OutOfMemoryError: Java heap space 一般情況下解決這個(gè)問題最快的方法就是通過-Xmx參數(shù)來增加堆的大小
D.java.lang.OutOfMemoryError: nativeGetNewTLA這個(gè)異常只有在jRockit虛擬機(jī)時(shí)才會(huì)碰到
ABC
13.寫兩個(gè)線程矾兜,一個(gè)線程打印1 ~ 52损趋,另一個(gè)線程打印A ~ Z患久,打印順序是
12A34B....5152Z
package www.java.test;
class Print{
int flag = 1;
int count = 1;
public synchronized void printNum(){
while(flag != 1){
//此時(shí)應(yīng)該打印字母,讓打印數(shù)字線程等待
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//打印數(shù)字
System.out.print(2*count - 1);
System.out.print(2*count);
flag = 2;
notify();
}
public synchronized void printChar(){
while(flag != 2){
//此時(shí)應(yīng)該打印數(shù)字,字母打印線程等待
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.print((char)(count-1 + 'A'));
//繼續(xù)前行
count++;
flag = 1;
notify();
}
}
public class Test{
public static void main(String[] args) {
Print print = new Print();
new Thread(()->{
for(int i = 0; i < 26; i++){
print.printNum();
}
}).start();
new Thread(()->{
for(int i = 0; i < 26; i++){
print.printChar();
}
}).start();
}
}