01进制之间的转换
1.Java語言基礎(常量的概述和使用)
?A: 常量定義 ?程序運行期間值不能改變的量?
?B:Java中常量的分類 ?
? ? 字面值常量 ? 自定義常量(面向對象中)
C:字面常量的分類?
? 字符串常量 ?雙引號擴起來的 ??
? 整數常量 ? ?所有的整數?
? 小數常量 ? 所有的小數 ?
? 字符常量 ? 單引號擴起來的 中間的值只能是單個的
? 布爾常量 ? ?只有true和false
2.Java語言基礎(進制之間的轉換)
A:任意進制到十進制的轉換原理
* 系數:就是每一位上的數據。
* 基數:X進制,基數就是X。
* 權:在右邊,從0開始編號,對應位上的編號即為該位的權。
* 結果:把系數*基數的權次冪相加即可。
3.Java基礎(原碼反碼補碼)
? 強制類型轉換使用到了原反補的知識 ?
?原碼: ?二進制的表示方式 最高位為符號位,"0"為正 "1"位負其余表示數值
?反碼:正數的反碼與原碼相同,負數的反碼對原碼取反,符號位不變
?補碼:正數的補碼和原碼相同, 負數的補碼在其反碼上末位上加1
4Java的數據類型和分類
? A:Java是強類型語言,對于每一種數據類型都定義了明確的具體的數據類型,根據其大小在內存中分配了不同大小的空間
?B:數據類型的分類?
? ? 基本數類型 ?引用數據類型 ?
C:基本數據類型 (4類8種)
* 整數型
* byte 占一個字節 -128到127
* short 占兩個字 -2^15~2^15-1
* int 占四個字節 -2^31~2^31-1
* long 占八個字節 -2^63~2^63-1
* 浮點型
* float 占四個字節 -3.403E38~3.403E38 單精度
* double 占八個字節-1.798E308~1.798E308 雙精度
* 字符型
* char 占兩個字節 0~65535
* 布爾型
* boolean?
* boolean理論上是占八分之一個字節,
因為一個開關就可以決定是true和false了,
但是java中boolean類型沒有明確指定他的大小
?5:數據類型(隱士轉換)
* A:案例演示
* a:int + int
* b:byte + int
* B:Java中的默認轉換規則
* 取值范圍小的數據類型與取值范圍大的數據類型進行運算,會先將小的數據類型提升為大的,再運算
* C:畫圖解釋byte+int類型的問題
6:數據類型轉換(強制轉換)
* A:強制轉換問題
* int a = 10;
* byte b = 20;
* b = a + b;
* B:強制轉換的格式
* b = (byte)(a + b);
* C:強制轉換的注意事項
* 如果超出了被賦值的數據類型的取值范圍得到的結果會與你期望的結果不同
7:面試題(變量相加和常量相加的區別)
* A:案例演示
* 面試題:看下面的程序是否有問題,如果有問題,請指出并說明理由。
* byte b1 = 3;
* byte b2 = 4;
* byte b3 = b1 + b2;
* 從兩方面去回答這個題
* b1和b2是兩個變量,變量里面存儲的值都是變化的,所以在程序運行中JVM是無法判斷里面具體的值
* byte類型的變量在進行運算的時候,會自動類型提升為int類型
* byte b4 = 3 + 4;
* 3和4都是常量,java有常量優化機制,就是在編譯的的時候直接把3和4的結果賦值給b4了
進行混合運算的時候,byte,short,char不會相互轉換,都會自動類型提升為int類型,其他類型進行混合運算的是小的數據類型提升為大的
8:Java語言基礎(字符和字符串參與運算)
* A:案例演示
* System.out.println('a');
* System.out.println('a'+1);
* 通過看結果知道'a'的值是多少,由此引出ASCII碼表
* B:ASCII碼表的概述
* 記住三個值:
* '0' 48
* 'A' 65
* 'a' 97
* C:案例演示
* System.out.println("hello"+'a'+1);
* System.out.println('a'+1+"hello");
* D:+在有字符串參與中被稱為字符串連接符
* System.out.println("5+5="+5+5);
* System.out.println(5+5+"=5+5");
9:Java語言基礎(char數據類型)
* A:char c = 97; 0到65535
* B:Java語言中的字符char可以存儲一個中文漢字嗎?為什么呢?
* 可以。因為Java語言采用的是Unicode編碼。Unicode編碼中的每個字符占用兩個字節。中文也是占的兩個字節
* 所以,Java中的字符可以存儲一個中文漢字
10:(算術運算符的基本用法)
* A:什么是運算符
* 就是對常量和變量進行操作的符號。
* B:運算符的分類
* 算術運算符,賦值運算符,比較(關系或條件)運算符,邏輯運算符,位運算符,三目(元)運算符
* C:算數運算符有哪些
* +,-,*,/,%,++,--
* D:注意事項:
* a:+號在java中有三種作用,代表正號,做加法運算,字符串的連接符
* b:整數相除只能得到整數。如果想得到小數,必須把數據變化為浮點數類型
* c:/獲取的是除法操作的商,%獲取的是除法操作的余數
* %運算符
* 當左邊的絕對值小于右邊絕對值時,結果是左邊
* 當左邊的絕對值等于右邊或是右邊的倍數時,結果是0
* 當左邊的絕對值大于右邊絕對值時,結果是余數
* %運算符結果的符號只和左邊有關系,與右邊無關
* 任何一個正整數%2結果不是0就是1可以用來當作切換條件
11:Java語言基礎(算術運算符++和--的用法)
??
* A:++,--運算符的作用
* 自加(++)自減(--)運算
* ++:自加。對原有的數據進行+1
* --:自減。對原有的數據進行-1
* B:案例演示
* a:單獨使用:
* 放在操作數的前面和后面效果一樣。(這種用法是我們比較常見的)
* b:參與運算使用:
* 放在操作數的前面,先自增或者自減,然后再參與運算。
* 放在操作數的后面,先參與運算,再自增或者自減。
B:案例演示
* 請分別計算出x,y的值?
int x = 4;
int y = (x++)+(++x)+(x*10);
C:面試題
* byte b = 10;
* b++;
* b = b + 1;
* 問哪句會報錯,為什么
byte b = 10;
//b++; //b = (byte)(b + 1)
b = b + 1; //當byte與int進行混合運算的時候,會提升為int類型,兩個int相加的結果還是int,賦值給byte會損失精度
System.out.println("b = " + b);
?
?
A:賦值運算符有哪些
* a:基本的賦值運算符:=
* 把=右邊的數據賦值給左邊。
* b:擴展的賦值運算符:+=,-=,*=,/=,%=
* += 把左邊和右邊做加法,然后賦值給左邊。
?
A:案例演示
* 面試題:看下面的程序是否有問題,如果有問題,請指出并說明理由。
* short s=1;s = s+1;
* short s=1;s+=1;
面試題:看下面的程序是否有問題,如果有問題,請指出并說明理由。
//short s=1;s = s+1; //當short與int進行運算的時候,會提升為int類型,兩個int類型相加的結果也是int類型
short s=1;s+=1; //s = (short)(s + 1);
* A:關系運算符有哪些(比較運算符,條件運算符)
* ==,!=,>,>=,<,<=
* 注意事項:
* 無論你的操作是簡單還是復雜,結果是boolean類型。
* "=="不能寫成"="。
?
轉載于:https://www.cnblogs.com/ning18/p/8440076.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: 大数据统计分析平台之一、Kafka单机搭
- 下一篇: UNP学习第五章