Java刷題日記,20201208
雖然我什么都不會(huì)趣惠,但不妨礙我在比賽中抱著大佬的大腿躺~
開篇語
因?yàn)樵囶}量[1]過大狸棍,因此只記錄自己做錯(cuò)的試題,所以有一些會(huì)試題量特別大有些試題量特別小味悄,但每一道都盡量帶有解析草戈。
在每一次的刷題日記結(jié)束后,還會(huì)做一次今日的刷題總結(jié)侍瑟,反饋一次今天的題目整體難度感知以及感覺自己對知識點(diǎn)的掌握程度唐片。
在多天刷題日記后,會(huì)有一天不做新題涨颜,回顧舊題费韭,但每天都會(huì)有一次更新。
PS.但可能會(huì)有一天各種原因沒有做或者就是我偷懶了庭瑰,會(huì)在第二天的刷題總結(jié)中進(jìn)行反思星持。
題目
1.第一題
- 閱讀下列利用遞歸來求n!的程序
為保證程序正確運(yùn)行,在下劃線處應(yīng)該填入的參數(shù)是______见擦。class FactorialTest{ static long Factorial(int n){//定義Factorial( )方法 if (n==1) return 1; else return n* Factorial(______); } public static void main(String a[]){//main( )方法 int n=8; System.out.println(n+ "!="+Factorial(n)); } }
A钉汗、n-1
B、n-2
C鲤屡、n
D损痰、n+1 - 所謂遞歸就是用自身的結(jié)構(gòu)來描述自身。一個(gè)使用遞歸技術(shù)的方法將直接或間接地調(diào)用自身的方法酒来。
根據(jù)階乘的概念卢未,可以寫出其遞歸定義:
Factorial(n=1) n=1
n*Factorial(n-1) n>1
遞歸結(jié)構(gòu)主要包括兩部分:定義遞歸頭和定義當(dāng)前問題的同一性質(zhì)的簡化。例如n!這個(gè)問題被劃分為求(n-1)!與n相乘兩個(gè)步驟堰汉;同理辽社,求(n-1)!的問題被簡化為求(n-2)!與(n-1)相乘兩個(gè)步驟的問題,依此類推翘鸭,直到求Fac(1)滴铅,再逐級返回,依次求得Fac(1)就乓、Fac(2)…Fac(n)汉匙。
2.第二題
- 下列能表示字符串sl長度的是______拱烁。
A、sl.length()
B噩翠、sl.length
C戏自、sl.size
D、sl.size() - String類包括的方法有:length()伤锚、charAt()擅笔、indexOf()、lastIndexOf()屯援、getChars()猛们、getBytes()、toCharArray()等玄呛,其中阅懦,提取字符串長度的方法是"length()",調(diào)用方法如下:
String greeting="Hello";
int n=greeting.length(); //返回字符串的字符個(gè)數(shù)n=5
3.第三題
- 下列方法中與Applet顯示無關(guān)的是______徘铝。
A耳胎、update()
B、draw()
C惕它、repaint()
D怕午、paint() - Applet顯示相關(guān)的3個(gè)方法:
1、paint()方法:Applet的paint()方法具體執(zhí)行Applet的繪制淹魄,該方法定義如下:
public void paint(Graphics g)
paint()方法有一個(gè)參數(shù)g是Graphics類的實(shí)例郁惜,該實(shí)例對象由瀏覽器生成,它包含了Applet的圖形上下文信息甲锡,通過它向Applet中顯示信息兆蕉,該對象相當(dāng)于Applet的畫筆。在調(diào)用paint()方法時(shí)缤沦,由瀏覽器將該對象傳遞給paint()方法虎韵。
2、update()方法:
public void update(Graphics g)
用于更新Applet的顯示缸废。該方法將首先清除背景包蓝,再調(diào)用paint()方法完成Applet的具體繪制。
3企量、repaint()方法:
public void repaint()
repaint()方法主要用于Applet的重新顯示测萎,它調(diào)用update()方法實(shí)現(xiàn)對Applet的更新。
4.第四題
- 閱讀下列一個(gè)支持多線程并發(fā)操作的堆棧類代碼段
public class MyStack{
private int idx=0;
private int[] data=new int[8];
public ______ void push(int i){
data[idx]=i;
idx++;
}
……
}
在下劃線處應(yīng)填入的是______届巩。
A硅瞧、synchronized
B、wait
C恕汇、blocked
D零酪、interrupt
- Java中對共享數(shù)據(jù)操作的并發(fā)控制是采用傳統(tǒng)的封鎖技術(shù)冒嫡。一個(gè)程序中單獨(dú)的、并發(fā)的線程對同一個(gè)對象進(jìn)行訪問的代碼段四苇,稱為臨界區(qū)(Critical Sections)。在Java語言中方咆,臨界區(qū)可以是一個(gè)語句塊或是一個(gè)方法月腋,并且用"synchronized"關(guān)鍵字標(biāo)識。Java平臺(tái)將每個(gè)由synchronized(Object)語句指定的對象設(shè)置一個(gè)鎖瓣赂,成為對象鎖(monitor)榆骚,其是一種獨(dú)占的排他鎖(exclusive locks),這種鎖的含義是煌集,當(dāng)一個(gè)線程獲得了對象鎖后妓肢,便擁有該對象的操作權(quán),其他任何線程不能對該對象進(jìn)行任何操作苫纤。
5.第五題
- 下列方法能夠用來實(shí)現(xiàn)線程之間通信的是______碉钠。
A、notify()
B卷拘、run()
C喊废、sleep()
D、join() - Java引入的wait()和notify()栗弟,是Java.lang.object類的方法污筷,是實(shí)現(xiàn)線程通信的兩個(gè)方法。
6.第六題
Java虛擬機(jī)(JVM)運(yùn)行Java代碼時(shí)乍赫,不會(huì)進(jìn)行的操作是______瓣蛀。
A、加載代碼
B雷厂、校驗(yàn)代碼
C惋增、編譯代碼
D、執(zhí)行代碼Java語言的執(zhí)行模式是半編譯和半解釋型罗侯。Java編寫好的程序首先由編譯器轉(zhuǎn)換為標(biāo)準(zhǔn)字節(jié)代碼器腋,然后由Java虛擬機(jī)去解釋執(zhí)行。
Java虛擬機(jī)(JVM)是可運(yùn)行Java代碼的假想計(jì)算機(jī)钩杰。只要根據(jù)JVM規(guī)格描述將解釋器移植到特定的計(jì)算機(jī)上纫塌,就能保證經(jīng)過編譯的任何Java代碼能夠在該系統(tǒng)上運(yùn)行。
字節(jié)代碼也是一種二進(jìn)制文件讲弄,但不能直接在操作系統(tǒng)上運(yùn)行措左,它可看作虛擬機(jī)的機(jī)器碼。運(yùn)行JVM字節(jié)碼的工作是由解釋器來完成的避除。解釋執(zhí)行過程分三步進(jìn)行:代碼的裝入怎披、代碼的校驗(yàn)和代碼的執(zhí)行胸嘁。
7.第七題
- 當(dāng)瀏覽器重新返回到包含Applet的頁面時(shí)調(diào)用的方法是______。
A凉逛、start()
B性宏、init()
C、stop()
D状飞、destroy() - 當(dāng)瀏覽器重新返回Applet所在頁面時(shí)毫胜,Applet類的start()方法將被調(diào)用
題目總覽 | ||
---|---|---|
總題目數(shù)量 | 錯(cuò)誤數(shù)量 | 錯(cuò)誤率 |
30 | 07 | 23.33% |
錯(cuò)題分析 | |
---|---|
錯(cuò)誤題目涵蓋知識點(diǎn) | 數(shù)量 |
Applet | 2 |
JVM | 1 |
多線程 | 2 |
String | 1 |
算法 | 1 |
今日小結(jié)/刷題總結(jié)
今天總共錯(cuò)了七道題,目前來看是比昨天要好了的诬辈,但實(shí)際刷題過程中感受到了是自己會(huì)的題目占比數(shù)量較多酵使,因此錯(cuò)誤題目數(shù)量有所減少
同時(shí),一直常錯(cuò)的知識點(diǎn)也仍然是有的焙糟,例如上表(錯(cuò)題分析)中展示出來的內(nèi)容口渔,多線程,Applet穿撮,一直都是在錯(cuò)的缺脉。
所以說,不能光刷混巧,看完一遍就不看了枪向,還是很需要重溫的。
-
試題量--主要為Java語言特點(diǎn)和實(shí)現(xiàn)機(jī)制 ?