編碼
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)欒川免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過(guò)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
ASCII--0~127 65-A 97-a
西歐碼表---ISO-8859-1---0-255---1個(gè)字節(jié)
gb2312----0-65535---gbk---2個(gè)字節(jié)
Unicode編碼體系---utf-8---3個(gè)字節(jié)
中 f
bit位 Byte字節(jié) 1Byte = 8bit 1KB=1024B MB GB TB PB---計(jì)算機(jī)中存儲(chǔ)單位
常量
整數(shù)常量---所有的整數(shù) 3,99,107
小數(shù)常量---所有的小數(shù) 3.5 100.9
字符常量---用單引號(hào)將一個(gè)字母、數(shù)字、符號(hào)標(biāo)識(shí)起來(lái) ‘a(chǎn)' ‘=' ‘ '
字符串常量---用雙引號(hào)將一個(gè)或者多個(gè)字符標(biāo)識(shí)起來(lái) “abc” “234” “q2” “”
布爾常量---用于表示邏輯值---true/false
空常量---null
5-整數(shù), 5.0-小數(shù) ‘5'-字符 “5”-字符串 ‘5.0'-寫法錯(cuò)誤 “5.0”-字符串
進(jìn)制
二進(jìn)制:滿二進(jìn)一,0~1 1+1=10 0b10011 0b0011,從JDK1.7開始,允許以0b作為開頭來(lái)標(biāo)識(shí)一個(gè)數(shù)字是一個(gè)二進(jìn)制數(shù)字
八進(jìn)制:滿八進(jìn)一,0~7, 7+1=10 要求必須以0作為開頭 06 015
十進(jìn)制:滿十進(jìn)一,0~9
十六進(jìn)制:滿十六進(jìn)一,0~9,,A~F,9+1=A f+1=10 要求以0x作為開頭 0x5 0xad
進(jìn)制的轉(zhuǎn)換
十進(jìn)制轉(zhuǎn)換成二進(jìn)制:不斷除以2取余,然后將余數(shù)倒排
二進(jìn)制轉(zhuǎn)換成十進(jìn)制:從低位次起,按位次乘以2的位次次冪,然后求和
二進(jìn)制轉(zhuǎn)換成八進(jìn)制:從低位次起,每三位劃分為一組,不足三位補(bǔ)0,產(chǎn)生一位八進(jìn)制數(shù)字,將這些數(shù)字按序排列即可
八進(jìn)制轉(zhuǎn)換成二進(jìn)制:一變?nèi)?--一位八進(jìn)制數(shù)字產(chǎn)生三位二進(jìn)制數(shù)字
二進(jìn)制轉(zhuǎn)換成十六進(jìn)制:四變一的過(guò)程
變量
System.out.println(i);
int i = 5;---不行---變量必須先聲明在使用
int i;
System.out.println(i);---不行----變量在使用之前必須先初始化
數(shù)據(jù)類型
基本數(shù)據(jù)類型
數(shù)值型
整數(shù)型
byte---字節(jié)型---1個(gè)字節(jié)--- -2^7~2^7-1 --- -128~127
byte b = 5; byte b2 = -128;
short---短整型---2個(gè)字節(jié)--- -2^15~2^15-1 --- -32768~32767
short s = 54; short s = -900;
int---整型---4個(gè)字節(jié)--- -2^31~2^31-1
int i = 100000;
int j = 100_000_000;--從JDK1.7開始是允許的。在編譯的時(shí)候會(huì)自動(dòng)忽略這些_ -> int j = 100000000;
int i = 00001111;---八進(jìn)制
Java中整數(shù)默認(rèn)類型就是int
long---長(zhǎng)整型---8個(gè)字節(jié)--- -2^63~2^63-1---以L作為結(jié)尾標(biāo)識(shí)這個(gè)數(shù)字是一個(gè)long類型的數(shù)字
long l = 3L;
浮點(diǎn)型
float---單精度---4個(gè)字節(jié)---必須以f作為結(jié)尾
float f = 3.2f;
double---雙精度---8個(gè)字節(jié)
Java中小數(shù)默認(rèn)是double類型
double d = 3.5;
double d = 4.6D;---可以
double d = 3.9e4; //是十進(jìn)制的科學(xué)計(jì)數(shù)法
double d = 0x3p2; //是十六進(jìn)制的科學(xué)計(jì)數(shù)法 -> 12
字符型
char---2個(gè)字節(jié)--- 0 ~65535
char c = ‘a(chǎn)';
char c = ‘中';
布爾型
boolean---true/false
boolean b = false;
引用數(shù)據(jù)類型
類---class 接口---interface 數(shù)組---[]
數(shù)據(jù)類型的轉(zhuǎn)換
隱式轉(zhuǎn)換/自動(dòng)類型轉(zhuǎn)換
byte b = 100;
int i = b;
long l = 63;---可以---當(dāng)整數(shù)的值在int類型的范圍內(nèi)的時(shí)候,可以不用添加L這個(gè)結(jié)尾
規(guī)律一:小的類型可以轉(zhuǎn)化為大的類型---byte->short->int->long float->double
int i = 5;
float f = i;
long l = 6;
float f = l;
規(guī)律二:整數(shù)可以轉(zhuǎn)化為小數(shù),但是可能產(chǎn)生精度損失
char c = ‘a(chǎn)';
int i = c;
規(guī)律三:字符型可以轉(zhuǎn)化為整型
short s = ‘a(chǎn)';---可以
char c = 100;---可以
char c = ‘a(chǎn)';
short s = c;---不可以
定義了char類型的變量c,存儲(chǔ)的數(shù)據(jù)是一個(gè)字符,不需要檢查具體的字符編碼,當(dāng)賦值給short類型的時(shí)候,short需要檢查這個(gè)字符對(duì)應(yīng)的編碼是否在short類型的取值范圍內(nèi),這個(gè)時(shí)候無(wú)法確定這個(gè)字符對(duì)應(yīng)的具體編碼,由于short類型的取值范圍和char類型沒(méi)有完全重合,為了防止出現(xiàn)超過(guò)范圍的情況,不允許賦值。
short s = 97;
char c = s;--不可以
顯式轉(zhuǎn)換/強(qiáng)制類型轉(zhuǎn)換
long l = 54;
int i = (int)l;
double d = 3.5;
int i = (int)d;---小數(shù)強(qiáng)轉(zhuǎn)成整數(shù)的時(shí)候,小數(shù)部分直接舍棄
double類型不能精確存儲(chǔ)小數(shù)
Hexadecimal--十六進(jìn)制
Decimal--十進(jìn)制
Octal---八進(jìn)制
Binary--二進(jìn)制
運(yùn)算符
算術(shù)運(yùn)算符
+加 -減 *乘 /除 %取模 ++自增 --自減 +字符串拼接
int i = 5210 / 1000 * 1000;--->i = 5000;
注意:
1. 整數(shù)運(yùn)算完成之后結(jié)果一定是整數(shù)
2. 整數(shù)除以0的時(shí)候,編譯通過(guò),運(yùn)行報(bào)錯(cuò)---ArimeticException---算術(shù)異常
3. 小數(shù)除以0的結(jié)果是Infinity
4. 0/0.0的結(jié)果是NaN---Not a Number---非數(shù)字
5. byte/short類型在運(yùn)算的時(shí)候會(huì)自動(dòng)提升為int類型
%取余運(yùn)算
-5%3=-2 -4%3=-1 -3%7=-3
5%-3=2 7%-2=1 2%-8=2
-5%-3=-2 -9%-3=0
對(duì)于負(fù)數(shù)的取余,先按照正數(shù)的取余運(yùn)算,看取余符號(hào)左邊的數(shù)字的符號(hào),如果左邊是負(fù)數(shù),那么結(jié)果就是負(fù)數(shù)
5%1.2=0.2 6%1.3=0.8
4.3%1.4=0.1
++/--
對(duì)于++在原來(lái)的基礎(chǔ)上自增1
int i = 5;
int j = ++i;---> i自增1,然后將i的值賦值給j---先自增,再運(yùn)算
int j = i++;--->先獲取i的值5,i自增變成6,然后將獲取的值5賦值給j---先運(yùn)算,再自增
int i = 3;
int j = ++i * 2;-> j = 8;
int j = i++ * 2;->j = 6
int i = 6;
int j = i++ + ++i;->i = 8; j = 14;
int j = ++i + i++;->i = 8; j = 14
byte b = 5;
b++;---JVM在底層會(huì)對(duì)結(jié)果進(jìn)行強(qiáng)制類型轉(zhuǎn)換,將結(jié)果再轉(zhuǎn)換為byte類型
char c = ‘a(chǎn)';
System.out.println(c + 4);--可以
char c2 = ‘d';
System.out.println(c + c2);---提升為int類型之后再進(jìn)行運(yùn)算
+ 字符串拼接運(yùn)算
“a” + “b”---> “ab”
“a” + 3---> “a3”
“a” + true-> “atrue”
2 + 4 + “f”-> “6f”
“f” + 2 + 4-> “f24”
賦值運(yùn)算符
= += -= *= /= %= &= |= ^= <<= >>= >>>= ~=
int i= 5;
i += 3; -> i = i + 3; -> i = 8;
i -= 2;-> i = i - 2;-> i = 3;
int j;
j += 4;---不行
int i = 5;
i += i -= i *= 5;--> i = -15;
i = 5 + ( 5 - (5 * 5)) ;
i += i -= i *= ++i;--->i = -20;
i += i*= i-= (i++ + --i);---> i = -20;
i = 5 + ( 5 * (5 - (5 + 5)));
byte b = 5;
b += 3;---可以
byte b = 125;
b += 3;---可以--- -128
比較/關(guān)系運(yùn)算符
==相等 !=不等 > < >= <= instanceof
3 == 4;-> false
instanceof---判斷對(duì)象與類的關(guān)系的--只能用于引用數(shù)據(jù)類型
String s = “abd”;
System.out.println(s instanceof String);---true
System.out.println(“def” instanceof String);---true
邏輯運(yùn)算符
用于運(yùn)算邏輯值
&與 |或 !非 ^異或 &&短路與 ||短路或
true&true=true true&false=false false&true=false false&false=false
true|true=true true|false=true false|true=true false|false=false
!true=false !false=true
true^true=false true^false=true false^true=true false^false=false
對(duì)于&&,如果前一個(gè)表達(dá)式的值為false,那么就能確定整個(gè)表達(dá)式的值為false,&&后邊的運(yùn)算就不再進(jìn)行了
三元/三目/條件運(yùn)算符
邏輯值?表達(dá)式1:表達(dá)式2
如果邏輯值為true,執(zhí)行表達(dá)式1;反之執(zhí)行表達(dá)式2
int i = 5, j = 7;
i > j ? System.out.println(i): System.out.println(j);---不行!三元運(yùn)算符運(yùn)算完成之后必須有結(jié)果!
double d = i > j ? i * 2.5 : j;---兩個(gè)表達(dá)式的返回值類型要么一致,要么相容
從控制臺(tái)獲取數(shù)據(jù)
import java.util.Scanner; //寫在package之下,class 之上
Scanner s = new Scanner(System.in);
int i = s.nextInt();
double d = s.nextDouble();
String str = s.nextLine();
String str2 = s.next();
以上這篇Java的基本數(shù)據(jù)類型和運(yùn)算方法(必看篇)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持創(chuàng)新互聯(lián)。