core java 複習題加練習題第二天

1.關鍵字

概述:被java語言賦予特殊含義的單詞

組成規則:全部小寫

注意事項:

goto和const作為保留字存在,在JDK以後的版本升級過程中可能提升為關鍵字

類似於notepad++,eclipse這樣的高級開發工具關鍵字都會變色

今天見過了哪些關鍵字:class,public,static,void,int,byte,short,long,char,float,boolean,double,true,false,null

2.標識符

概述:就是給類,接口,方法,變量等起名字的字符序列

組成規則:

英文大小寫字母

數字字符

$和_

注意事項:

不能以數字開頭

不能使用關鍵字

區分大小寫

起名字要見名之意

四大命名規則:

包:其實就是文件夾,一般是以公司的域名反轉之後的前兩位

一個單詞:全部小寫test

多個單詞:全部小寫,多個單詞之間用.隔開cn.edu360 www.baidu

類和接口:

一個單詞:首字母大寫File

多個單詞:每個單詞首字母都大寫FileInputStream

變量和方法:

一個單詞:全部小寫read

多個單詞:從第二個單詞開始首字母大寫readLine

常量:

一個單詞:全部大寫KEY

多個單詞:全部大寫,多個單詞之間用下劃線隔開ROUND_HALFUP

3.常量

概述:在程序執行的過程中,其值不能發生改變的量 Spring Cloud雲析 679819153

字面值常量:

字符串常量:就是用雙引號括起來的內容"字符串"

字符常量:就是用單引號括起來的內容'符'

整數常量:包括所有的整數10 -10

小數常量:包括所有的小數12.12 -11.1

布爾常量:要麼false,要麼true

空常量:值就是null,數組的時候講解

自定義常量:後面的時候講

4.進制

二進制:0b開頭,0-1組成

八進制:0開頭,0-7組成

十進制:默認就是十進制,0-9組成

十六進制:0x開頭,由0-f組成

x進制如何轉換成y進制?

x進制轉換成十進制:

位值:每一位上面對應的數值

進制數:x進制的進制數就是x

次方:從右向左,從0開始編號,對應位上面的編號就是當前位上面的次方

將每一位上面的位值乘以進制數的次方相加在一起就是十進制

十進制轉換成y進制:除以y直至商為零,餘數反轉

5.有符號表示法

在計算機中整數都是以補碼的方式進行存儲和運算的。

原碼:將一個整數轉換成二進制。最高位作為符號位,0表示正數,1表示負數,其餘位表示數值位

反碼:正數的反碼和原碼相同。負數的反碼除了最高位,其餘位全部取反

補碼:正數的補碼和原碼相同。負數的補碼是在反碼的基礎上末尾+1

6.變量

概述:在程序執行的過程中,其值可以在一定範圍內發生改變的量

定義格式:

數據類型 變量名 = 初始化值。

注意事項:

作用域:當前的變量在哪一個大括號中定義的,那麼當前的大括號就是該變量的作用域

在同一作用域中不能定義同名的變量

在一行一個語句中可以同時定義多個同一種數據類型的變量

在同一行上面不建議寫多個語句,一個語句的結束標記是";"

7.數據類型

基本數據類型:全是小寫,都是關鍵字,都會變色

字節位數默認值

byte180

short2160

int4320

long8640

float4320.0

double8640.0

char216空''

boolean18false

引用數據類型:除了基本數據類型之外的類型

數據類型運算規則:

boolean類型是不參與和其他數據類型之間的運算

byte,short,char之間不直接相互運行,而且提升精度為int類型之後再相互運算

精度的優先級:byte,short,char->int->long->float->double

數據類型強制轉換格式:

目標數據類型 變量名 = (目標數據類型)(要轉換的值);

8.算術運算符

/:如果想要結果得到小數的話,那麼必須讓除數或者被除數變成小數 Spring Cloud雲析 679819153

%:a%b的取值範圍是0-(b-1)

5.數據類型轉換:

第一題:

short b1=3;

byte b2=8,b;

b=b1+b2;

b=8+3;

哪句是編譯失敗的呢?為什麼呢?

有問題,由int數據類型轉換到byte數據類型會丟失精度,需要強轉

解決方案:將 b=b1+b2;改為 b=(byte)b1+b2;

第二題:

byte result = 313;有沒有問題?有問題如何解決?結果是多少呢?將結果分析的步驟寫出來

有問題,313是int類型的數據,將其轉化為byte 類型的數據會丟失精度,所以需要強轉,

將byte result = 313;改為 byte result = (byte) result;即可

313的補碼:

00000000 00000000 00000001 00111001

因為byte 是8位,所以從低到高取八位

00111001 轉換為十進制為 57

所以結果為 57.

6.按要求填寫缺少的代碼

class Demo{

public static void main(String[] args){

int result = (a++)+(b++)+(c+++a--);

//要求最終輸出的result的值等於50,要求定義最初a,b,c的值

//System.out.println(result);

}

}

缺少的代碼

int a= 1,b=17,c=30;

過程:

第一個括號: a

第二個括號: b

第三個括號: c+a+1

所以

所有滿足

a+b+c+a+1=50

的a,b,c

的值的集合都滿足要求。

7.基本小題目

int a = 10;

int b = 10;

int c = 10;

a = b++;

c = --a;

b = ++a;

a = c--;

請分別計算出a,b,c的值

變化過程

a 10 9

b 11

c 9

所以

a的值為10;

b的值為11;

c的值為9;

8.比較複雜的題目

int a = 4;

int b = (a++)+(++a)+(a*10);

引出運算符的優先級

運算過程

先算括號內的

a++ = 4;//計算完這步之後a=5;

++a = 6;//計算完這步之後a=6;

a*10 = 60;

所以b的值為4+6+60=70;


分享到:


相關文章: