JAVA基礎(chǔ)(一)

面試兩天后發(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");
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一...
    阿里高級軟件架構(gòu)師閱讀 3,388評論 0 19
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,697評論 18 399
  • 1 順序語句 語句:使用分號分隔的代碼稱作為一個語句。 注意:沒有寫任何代碼只是一個分號的時候,也是一條語句,...
    哈哈哎呦喂閱讀 477評論 0 0
  • 一.剛才小伙伴收到 的“課程自動激活”短信請先無視。請放心,大家的課程【沒有馬上激活】。這是程序猿編碼測試短信發(fā)送...
    Menesee閱讀 202評論 0 0
  • 目前的VR=環(huán)繞型視頻,還做不到全息視頻。即看VR視頻只能定點環(huán)顧四周物體,而無法走近前方物體繞到物體背面等。全息...
    木點先生閱讀 157評論 0 0

友情鏈接更多精彩內(nèi)容