【計(jì)算機(jī)本科補(bǔ)全計(jì)劃】Java學(xué)習(xí)筆記(三) 數(shù)據(jù)類型

正文之前

Java的面向?qū)ο筇匦蕴黠@了骑疆。先開篇告訴你我們的對(duì)象是啥意思鲫凶,然后直截了當(dāng)?shù)母嬖V你寸爆,每個(gè)文件都是一個(gè)類礁鲁。也就是說每個(gè)文件都可以給你傳出來一種對(duì)象盐欺,然后你就面對(duì)這群文件,也就是面向?qū)ο缶幊叹秃昧私龃迹√幜耍冗美。∥蚁矚gN龆粉洼!

(鄭重聲明:本文非原創(chuàng),只是筆記叶摄,取自菜鳥編程属韧!好東西,繼續(xù)打CALL)

正文

1蛤吓、Java 的兩大數(shù)據(jù)類型:

  • 內(nèi)置數(shù)據(jù)類型(內(nèi)置的宵喂,不需要任何聲明,直接拿來用的)
  • 引用數(shù)據(jù)類型(maybe就是聲明一個(gè)類咯~然后拿來當(dāng)類型用咯)

2会傲、內(nèi)置數(shù)據(jù)類型

Java語言提供了八種基本類型锅棕。六種數(shù)字類型(四個(gè)整數(shù)型,兩個(gè)浮點(diǎn)型)唆铐,一種字符類型哲戚,還有一種布爾型。

* byte:

byte 數(shù)據(jù)類型是8位艾岂、有符號(hào)的顺少,以二進(jìn)制補(bǔ)碼表示的整數(shù);
最小值是 -128(-2^7)王浴;
最大值是 127(2^7-1)脆炎;
默認(rèn)值是 0;
byte 類型用在大型數(shù)組中節(jié)約空間氓辣,主要代替整數(shù)秒裕,因?yàn)?byte 變量占用的空間只有 int 類型的四分之一;
例子:byte a = 100钞啸,byte b = -50几蜻。

* short:

short 數(shù)據(jù)類型是 16 位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)
最小值是 -32768(-2^15)体斩;
最大值是 32767(2^15 - 1)梭稚;
Short 數(shù)據(jù)類型也可以像 byte 那樣節(jié)省空間。一個(gè)short變量是int型變量所占空間的二分之一絮吵;
默認(rèn)值是 0弧烤;
例子:short s = 1000,short r = -20000蹬敲。

* int:

int 數(shù)據(jù)類型是32位暇昂、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)莺戒;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1)急波;
一般地整型變量默認(rèn)為 int 類型从铲;
默認(rèn)值是 0 ;
例子:int a = 100000, int b = -200000幔崖。

* long:

long 數(shù)據(jù)類型是 64 位食店、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)渣淤;
最小值是 -9,223,372,036,854,775,808(-2^63)赏寇;
最大值是 9,223,372,036,854,775,807(2^63 -1);
這種類型主要使用在需要比較大整數(shù)的系統(tǒng)上价认;
默認(rèn)值是 0L嗅定;
例子: long a = 100000L,Long b = -200000L用踩。
"L"理論上不分大小寫渠退,但是若寫成"l"容易與數(shù)字"1"混淆,不容易分辯脐彩。所以最好大寫碎乃。

* float:

float 數(shù)據(jù)類型是單精度、32位惠奸、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)梅誓;
float 在儲(chǔ)存大型浮點(diǎn)數(shù)組的時(shí)候可節(jié)省內(nèi)存空間;
默認(rèn)值是 0.0f佛南;
浮點(diǎn)數(shù)不能用來表示精確的值梗掰,如貨幣;
例子:float f1 = 234.5f嗅回。

* double:

double 數(shù)據(jù)類型是雙精度及穗、64 位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)绵载;
浮點(diǎn)數(shù)的默認(rèn)類型為double類型埂陆;
double類型同樣不能表示精確的值,如貨幣娃豹;
默認(rèn)值是 0.0d焚虱;
例子:double d1 = 123.4。

* boolean:

boolean數(shù)據(jù)類型表示一位的信息培愁;
只有兩個(gè)取值:true 和 false著摔;
這種類型只作為一種標(biāo)志來記錄 true/false 情況;
默認(rèn)值是 false定续;
例子:boolean one = true谍咆。

* char:

char類型是一個(gè)單一的 16 位 Unicode 字符禾锤;
最小值是 \u0000(即為0);
最大值是 \uffff(即為65,535)摹察;
char 數(shù)據(jù)類型可以儲(chǔ)存任何字符恩掷;
例子:char letter = 'A';。

3供嚎、引用類型

在Java中黄娘,引用類型的變量非常類似于C/C++的指針。引用類型指向一個(gè)對(duì)象克滴,指向?qū)ο蟮淖兞渴且米兞勘普_@些變量在聲明時(shí)被指定為一個(gè)特定的類型,比如 Employee劝赔、Puppy 等誓焦。變量一旦聲明后,類型就不能被改變了着帽。
對(duì)象杂伟、數(shù)組都是引用數(shù)據(jù)類型。
所有引用類型的默認(rèn)值都是null仍翰。
一個(gè)引用變量可以用來引用任何與之兼容的類型赫粥。
例子:Site site = new Site("Runoob")。

4予借、Java 常量

常量在程序運(yùn)行時(shí)是不能被修改的越平。
在 Java 中使用 final 關(guān)鍵字來修飾常量,聲明方式和變量類似:

final double PI = 3.1415927;

雖然常量名也可以用小寫蕾羊,但為了便于識(shí)別喧笔,通常使用大寫字母表示常量。
字面量可以賦給任何內(nèi)置類型的變量龟再。例如:

byte a = 68;
char a = 'A'

byte书闸、int、long利凑、和short都可以用十進(jìn)制浆劲、16進(jìn)制以及8進(jìn)制的方式來表示。
當(dāng)使用常量的時(shí)候哀澈,前綴 0 表示 8 進(jìn)制牌借,而前綴 0x 代表 16 進(jìn)制, 例如:

int decimal = 100;
int octal = 0144;
int hexa =  0x64;

和其他語言一樣,Java的字符串常量也是包含在兩個(gè)引號(hào)之間的字符序列割按。下面是字符串型字面量的例子:

"Hello World"
"two\nlines"
"\"This is in quotes\""

字符串常量和字符常量都可以包含任何Unicode字符膨报。例如:

char a = '\u0001';
String a = "\u0001";

5、自動(dòng)類型轉(zhuǎn)換

整型、實(shí)型(常量)现柠、字符型數(shù)據(jù)可以混合運(yùn)算院领。運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型够吩,然后進(jìn)行運(yùn)算比然。轉(zhuǎn)換從低級(jí)到高級(jí)。

===========================

低 -------------------------------------------> 高
byte,short,char—> int —> long—> float —> double

===========================

數(shù)據(jù)類型轉(zhuǎn)換必須滿足如下規(guī)則:

    1. 不能對(duì)boolean類型進(jìn)行類型轉(zhuǎn)換周循。
    1. 不能把對(duì)象類型轉(zhuǎn)換成不相關(guān)類的對(duì)象强法。
    1. 在把容量大的類型轉(zhuǎn)換為容量小的類型時(shí)必須使用強(qiáng)制類型轉(zhuǎn)換。
    1. 轉(zhuǎn)換過程中可能導(dǎo)致溢出或損失精度湾笛,例如:
int i =128;   
byte b = (byte)i;

因?yàn)?byte 類型是 8 位饮怯,最大值為127,所以當(dāng)強(qiáng)制轉(zhuǎn)換為 int 類型值 128 時(shí)候就會(huì)導(dǎo)致溢出迄本。

    1. 浮點(diǎn)數(shù)到整數(shù)的轉(zhuǎn)換是通過舍棄小數(shù)得到硕淑,而不是四舍五入课竣,例如:
      (int)23.7 == 23;
      (int)-45.89f == -45

自動(dòng)類型轉(zhuǎn)換必須滿足轉(zhuǎn)換前的數(shù)據(jù)類型的位數(shù)要低于轉(zhuǎn)換后的數(shù)據(jù)類型嘉赎,例如: short數(shù)據(jù)類型的位數(shù)為16位,就可以自動(dòng)轉(zhuǎn)換位數(shù)為32的int類型于樟,同樣float數(shù)據(jù)類型的位數(shù)為32阱佛,可以自動(dòng)轉(zhuǎn)換為64位的double類型位喂。

6、強(qiáng)制類型轉(zhuǎn)換

  1. 條件是轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的。

  2. 格式:(type)value type是要強(qiáng)制類型轉(zhuǎn)換后的數(shù)據(jù)類型 實(shí)例:
    實(shí)例

public class QiangZhiZhuanHuan{
    public static void main(String[] args){
        int i1 = 123;
        byte b = (byte)i1;//強(qiáng)制類型轉(zhuǎn)換為byte
        System.out.println("int強(qiáng)制類型轉(zhuǎn)換為byte后的值等于"+b);
    }
}

7阶淘、Java 變量類型

在Java語言中,所有的變量在使用前必須聲明箩退。聲明變量的基本格式如下:

type identifier [ = value][, identifier [= value] ...] ;

格式說明:type為Java數(shù)據(jù)類型丑罪。identifier是變量名〗苌ǎ可以使用逗號(hào)隔開來聲明多個(gè)同類型變量队寇。

Java語言支持的變量類型有:

  • 類變量:獨(dú)立于方法之外的變量,用 static 修飾章姓。
  • 實(shí)例變量:獨(dú)立于方法之外的變量佳遣,不過沒有 static 修飾。
  • 局部變量:類的方法中的變量凡伊。
public class Variable{
    static int allClicks=0;    // 類變量
 
    String str="hello world";  // 實(shí)例變量
 
    public void method(){
 
        int i =0;  // 局部變量
 
    }
}

8零渐、Java 局部變量

  • 局部變量聲明在方法、構(gòu)造方法或者語句塊中系忙;

  • 局部變量在方法诵盼、構(gòu)造方法、或者語句塊被執(zhí)行的時(shí)候創(chuàng)建,當(dāng)它們執(zhí)行完成后风宁,變量將會(huì)被銷毀耕腾;

  • 訪問修飾符不能用于局部變量;

  • 局部變量只在聲明它的方法杀糯、構(gòu)造方法或者語句塊中可見扫俺;

  • 局部變量是在棧上分配的。

  • 局部變量沒有默認(rèn)值固翰,所以局部變量被聲明后狼纬,必須經(jīng)過初始化,才可以使用骂际。

9疗琉、實(shí)例變量

  • 實(shí)例變量聲明在一個(gè)類中,但在方法歉铝、構(gòu)造方法和語句塊之外盈简;

  • 當(dāng)一個(gè)對(duì)象被實(shí)例化之后,每個(gè)實(shí)例變量的值就跟著確定太示;

  • 實(shí)例變量在對(duì)象創(chuàng)建的時(shí)候創(chuàng)建柠贤,在對(duì)象被銷毀的時(shí)候銷毀;

  • 實(shí)例變量的值應(yīng)該至少被一個(gè)方法类缤、構(gòu)造方法或者語句塊引用臼勉,使得外部能夠通過這些方式獲取實(shí)例變量信息;

  • 實(shí)例變量可以聲明在使用前或者使用后餐弱;

  • 訪問修飾符可以修飾實(shí)例變量宴霸;

  • 實(shí)例變量對(duì)于類中的方法、構(gòu)造方法或者語句塊是可見的膏蚓。一般情況下應(yīng)該把實(shí)例變量設(shè)為私有瓢谢。通過使用訪問修飾符可以使實(shí)例變量對(duì)子類可見;

  • 實(shí)例變量具有默認(rèn)值驮瞧。數(shù)值型變量的默認(rèn)值是0氓扛,布爾型變量的默認(rèn)值是false,引用類型變量的默認(rèn)值是null剧董。變量的值可以在聲明時(shí)指定幢尚,也可以在構(gòu)造方法中指定;

  • 實(shí)例變量可以直接通過變量名訪問翅楼。但在靜態(tài)方法以及其他類中尉剩,就應(yīng)該使用完全限定名:ObejectReference.VariableName。

import java.io.*;
public class Employee{
   // 這個(gè)實(shí)例變量對(duì)子類可見
   public String name;
   // 私有變量毅臊,僅在該類可見
   private double salary;
   //在構(gòu)造器中對(duì)name賦值
   public Employee (String empName){
      name = empName;
   }
   //設(shè)定salary的值
   public void setSalary(double empSal){
      salary = empSal;
   }  
   // 打印信息
   public void printEmp(){
      System.out.println("名字 : " + name );
      System.out.println("薪水 : " + salary);
   }
 
   public static void main(String args[]){
      Employee empOne = new Employee("RUNOOB");
      empOne.setSalary(1000);
      empOne.printEmp();
   }
}

10理茎、類變量(靜態(tài)變量)

  • 類變量也稱為靜態(tài)變量,在類中以static關(guān)鍵字聲明,但必須在方法構(gòu)造方法和語句塊之外皂林。

  • 無論一個(gè)類創(chuàng)建了多少個(gè)對(duì)象朗鸠,類只擁有類變量的一份拷貝。

  • 靜態(tài)變量除了被聲明為常量外很少使用础倍。常量是指聲明為public/private烛占,final和static類型的變量。常量初始化后不可改變沟启。

  • 靜態(tài)變量?jī)?chǔ)存在靜態(tài)存儲(chǔ)區(qū)忆家。經(jīng)常被聲明為常量,很少單獨(dú)使用static聲明變量德迹。

  • 靜態(tài)變量在程序開始時(shí)創(chuàng)建芽卿,在程序結(jié)束時(shí)銷毀。

  • 與實(shí)例變量具有相似的可見性胳搞。但為了對(duì)類的使用者可見卸例,大多數(shù)靜態(tài)變量聲明為public類型。

  • 默認(rèn)值和實(shí)例變量相似肌毅。數(shù)值型變量默認(rèn)值是0筷转,布爾型默認(rèn)值是false,引用類型默認(rèn)值是null芽腾。變量的值可以在聲明的時(shí)候指定旦装,也可以在構(gòu)造方法中指定。此外摊滔,靜態(tài)變量還可以在靜態(tài)語句塊中初始化。

  • 靜態(tài)變量可以通過:ClassName.VariableName的方式訪問店乐。

  • 類變量被聲明為public static final類型時(shí)艰躺,類變量名稱一般建議使用大寫字母。如果靜態(tài)變量不是public和final類型眨八,其命名方式與實(shí)例變量以及局部變量的命名方式一致腺兴。

正文之后

我的么么噠??今天很慌,明天四門考試廉侧,今天三門都沒復(fù)習(xí)完页响,還有一門根本沒看,想想都是很恐懼的段誊。不過以我現(xiàn)在的心境而言闰蚕,無所畏懼了。所以不是特別能感受我妹子的心情连舍。不過也是她自己作没陡,前面那么多時(shí)間根本沒考慮要考試,一周時(shí)間復(fù)習(xí)四門也是吊兒郎當(dāng)一點(diǎn)都沒危機(jī)感,要是別人我就說活該了盼玄。該的贴彼,心里沒點(diǎn)B數(shù)念個(gè)什么書?但是換我妹子埃儿,那就只能祈求上天器仗,把我的腦袋借我妹子用一天,然后旗開得勝吧童番!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末青灼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子妓盲,更是在濱河造成了極大的恐慌杂拨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悯衬,死亡現(xiàn)場(chǎng)離奇詭異弹沽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)筋粗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門策橘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人娜亿,你說我怎么就攤上這事丽已。” “怎么了买决?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵沛婴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我督赤,道長(zhǎng)嘁灯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任躲舌,我火速辦了婚禮丑婿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘没卸。我一直安慰自己羹奉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布约计。 她就那樣靜靜地躺著诀拭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪病蛉。 梳的紋絲不亂的頭發(fā)上炫加,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天瑰煎,我揣著相機(jī)與錄音,去河邊找鬼俗孝。 笑死酒甸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赋铝。 我是一名探鬼主播插勤,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼革骨!你這毒婦竟也來了农尖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤良哲,失蹤者是張志新(化名)和其女友劉穎盛卡,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筑凫,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滑沧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了巍实。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滓技。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖棚潦,靈堂內(nèi)的尸體忽然破棺而出令漂,到底是詐尸還是另有隱情,我是刑警寧澤丸边,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布叠必,位于F島的核電站,受9級(jí)特大地震影響原环,放射性物質(zhì)發(fā)生泄漏挠唆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一嘱吗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滔驾,春花似錦谒麦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至摊阀,卻和暖如春耻蛇,著一層夾襖步出監(jiān)牢的瞬間踪蹬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工臣咖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留跃捣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓夺蛇,卻偏偏與公主長(zhǎng)得像疚漆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刁赦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法娶聘,類相關(guān)的語法,內(nèi)部類的語法甚脉,繼承相關(guān)的語法丸升,異常的語法,線程的語...
    子非魚_t_閱讀 31,598評(píng)論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理牺氨,服務(wù)發(fā)現(xiàn)狡耻,斷路器,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 第一類:邏輯型boolean 第二類:文本型char 第三類:整數(shù)型(byte波闹、short酝豪、int、long) c...
    Jasonme閱讀 1,068評(píng)論 0 4
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,783評(píng)論 1 10
  • 給求索者 不能停止精堕, 探索的腳步孵淘; 不要關(guān)閉, 求知的窗口歹篓。 餓了瘫证,拿坎坷充饑; 渴了庄撮,掬汗水潤(rùn)喉背捌。 用真誠(chéng)創(chuàng)造真...
    不為浮云遮望眼閱讀 282評(píng)論 2 2