面試兩天后發(fā)現(xiàn)自己基礎(chǔ)基本忘記的差不多了。 因為面試的需要,所以從頭開始學(xué)。
獨立編寫Hello World程序。
System.out.println("Hello Wolrd");
class的作用
Class類可以幫助我們在程序運行時分析類,說白了就是獲取類中的值??赡芩查g就想到了反射,沒錯!Class一般就是和反射配套使用的,因為我們向Class提供一個類或一個類的類名,Class就可以提供我們很多信息,比如屬性/方法/修飾符/構(gòu)造器/類名等等。然后我們就可以進(jìn)一步進(jìn)行反射。
main函數(shù)的作用
public static void main(String [] args)為Java程序的入口方法,JVM在運行的時候會首先查找main方法.其中,public是權(quán)限修飾符,表明任何類和對象都可以訪問這個方法,static表明main方法是一個靜態(tài)方法,即方法中的代碼都是存儲子靜態(tài)存儲區(qū)的,只要類被加載后,就可以使用該方法而不需要通過實例化對象來訪問,可以直接通過類名來直接訪問.JVM啟動的時候就是按照上述的方法來獲取程序的入口的.其中的參數(shù)String [] args是在命令行狀態(tài)下與程序交互的方式.
輸出語句的作用
給輸出項目提供輸出格式說明
:幾個小問題?
JDK,JRE,JVM分別是什么?
JDK,java開發(fā)工具;JRE,java開發(fā)環(huán)境;JVM,JAVA虛擬機;Java語言是跨平臺的嗎?JVM是跨平臺的嗎?
Java語言跨平臺,JVM不是跨平臺的;環(huán)境變量path和classpath的區(qū)別?
PATH環(huán)境變量。作用是指定命令搜索路徑;
CLASSPATH環(huán)境變量。作用是指定類搜索路徑,要使用已經(jīng)編寫好的類,前提當(dāng)然是能夠找到它們了,JVM就是通過CLASSPTH來尋找類的。
什么是注釋?注釋分為幾種?注釋有什么作用?
注釋就是對代碼的解釋和說明,其目的是讓人們能夠更加輕松地了解代碼。注釋是編寫程序時,寫程序的人給一個語句、程序段、函數(shù)等的解釋或提示,能提高程序代碼的可讀性。
單行注釋、塊注釋、javadoc注釋
什么是關(guān)鍵字?有什么特點?
關(guān)鍵字:被Java語言賦予特定含義的單詞
組成關(guān)鍵字的字母全部小寫
什么是標(biāo)識符?由哪些部分組成?常見的命名規(guī)則有哪些?
標(biāo)識符:給類,接口,方法,變量等起名字時使用的字符序列
英文大小寫字母、數(shù)字字符、$和_
什么是常量?常量的分類?字面值常量表現(xiàn)形式有哪些?
在程序執(zhí)行的過程中其值不可以發(fā)生改變
常量分別:字面值常量和自定義常量
計算出十進(jìn)制46對應(yīng)的二進(jìn)制,八進(jìn)制,十六進(jìn)制的值。
至于進(jìn)制的內(nèi)容今天在練習(xí)一次,以后就可以不用練習(xí)了。
后面能聽懂就OK了。不用浪費太多時間。
(可用計算器驗證你算的是否正確)
二進(jìn)制:00101110
什么是變量?變量的定義格式?要使用變量需要注意什么?
在程序執(zhí)行的過程中,在某個范圍內(nèi)其值可以發(fā)生改變的量
需要注意格式是固定的;
Java中的數(shù)據(jù)類型分幾類?基本數(shù)據(jù)類型有哪些?
JAVA中數(shù)據(jù)類型分為兩類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型;
| 基本數(shù)據(jù)類型 | 引用數(shù)據(jù)類型 |
|---|---|
| 數(shù)值型 | 類 |
| 字符型 | 接口 |
| 布爾型 | 數(shù)組 |
數(shù)據(jù)類型轉(zhuǎn)換:
隱式轉(zhuǎn)換:隱式就是兩個變量之間可以直接相互賦值的
強制轉(zhuǎn)換:String.vluesOf
面試題:
第一題:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是編譯失敗的呢?為什么呢?
b=b1+b2錯誤、越界
第二題:
byte by = 130;有沒有問題?有問題如何解決?結(jié)果是多少呢?
錯誤、將130寫為byte類型;結(jié)果System.out.println(by)打印出-126;
常見的算術(shù)運算符有哪些?
+運算符的作用有哪些?
做加法運算,正數(shù),字符串相加
除法和取余的區(qū)別?
除法使用符號/,整數(shù)相除只能得到整數(shù);要想得到小數(shù)??梢?1.0;
求余使用符號%;
++和--的使用規(guī)則?
單獨使用效果相同;
參與運算使用,在操作數(shù)的前后效果不同;
常見的賦值運算符有哪些?
+=運算的作用是什么?
把左邊和右邊的結(jié)果賦值給左邊;注意左邊不能是常量
擴展的賦值運算符有什么特點?
short s = 1; s = s + 1;有沒有問題?如果有怎么解決?
有問題 s=s+(int)1;數(shù)據(jù)類型不同不能相加;
s=(short)(s+1);即可
short s = 1; s += 1;有沒有問題?如果有怎么解決?
沒有問題 s+=1相當(dāng)與 s=(short)(s+1);
常見的關(guān)系運算符有哪些?
== 相等于;!=不等于;<小于;>大于;<= >= ;instanceof檢查是否為類的對象;
關(guān)系運算符的結(jié)果有什么特點?
結(jié)果是布爾型;
常見的邏輯運算符有哪些?
&和&&的區(qū)別是什么?(與運算)
& 左邊無論真假,右邊都進(jìn)行運算;
&& 如果左邊為真,右邊參與運算
|和||的區(qū)別是什么?(或運算)
| 左邊無論真假,右邊都進(jìn)行運算;
|| 左邊為真,右邊不參與運算
## 位運算符^的特點是什么?
true^false;結(jié)果為true;
異或XOR運算符^與或運算符|不同之處是:當(dāng)左右都為true時,結(jié)果為false;
如何實現(xiàn)對兩個整數(shù)變量的值進(jìn)行互換。
int m=22,n=44;
m=m^n;
n=n^m;
m=m^n;
System.out.println("m:"+m+",n:"+n);
三元運算符的格式是什么?
(關(guān)系表達(dá)式)?表達(dá)式1:表達(dá)式2;
執(zhí)行流程是什么?
如果條件為true,運算后的結(jié)果是表達(dá)式1;
如果條件為flase,運算后的結(jié)果是表達(dá)式2;
使用三元運算符完成如下練習(xí)
比較兩個數(shù)是否相等
int m=22,n=44;
int w=(m==n)?m:n;
System.out.println(w);
獲取兩個數(shù)中最大值
int m=22,n=44;
int w=(m>n)?m:n;
System.out.println(w);
獲取三個數(shù)中最大值
int m=22,n=44,l=85;
int w=(m>n)?m:n;
int h=(w>l)?n:l;
System.out.println(h)
流程控制語句有幾種?
三類;
- 順序結(jié)構(gòu): 寫在前面的先執(zhí)行,寫在后面的后執(zhí)行;
- 選擇結(jié)構(gòu):if語句,switch語句;
- 循環(huán)結(jié)構(gòu):for循環(huán)語句,while循環(huán)語句;
if語句的格式有幾種?注意事項是什么?分別在什么時候使用?
有三種;
- 第一種:
if(條件表達(dá)式)
{
執(zhí)行語句:
} - 第二種:
if(條件表達(dá)式)
{
執(zhí)行語句1;
}
else //else 否則的意思。
{
執(zhí)行語句2;
} - 第三種:
if(條件表達(dá)式)
{
執(zhí)行語句1;
}
else if (條件表達(dá)式)
{
執(zhí)行語句2;
}
……
else
{
執(zhí)行語句n;
}
看程序?qū)懡Y(jié)果:請自己獨立分析,先不要編譯運行。
第一題
int x = 1,y = 1;
if(x++==2 & ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
答:x=2;y=2;因為(x++==2)先執(zhí)行x==2,此時x為1!=2;所以判斷flase,然后x++,則x=2;y同理;&左邊無論真假,右邊都進(jìn)行運算;
第二題
int x = 1,y = 1;
if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
x=2,y=1;&&如果左邊為假,那么右邊不參與運算。
第三題
int x = 1,y = 1;
if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
true|true為真true,所以x=7,y=2;
第四題
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
答:x=7,y=1;因為x++==1為true;(x++==1 || ++y==1)雙或,當(dāng)前面為真,后面的不執(zhí)行;
第五題
boolean b = true;
if(b==false)
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");
答:b
編寫代碼實現(xiàn)如下內(nèi)容:if語句實現(xiàn)
考試成績分等級。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下 E等。
請根據(jù)給定成績,輸出對應(yīng)的等級。
int grader=89;
if(grader>89) {
System.out.println("A");
}
else if(grader>79) {
System.out.println("B");
}
else if(grader>69){
System.out.println("C");
}
else if(grader>59) {
System.out.println("D");
}else {
System.out.println("E");
}