數(shù)據(jù)是什么入偷?何為數(shù)據(jù)?

續(xù)上期《程序是什么械哟?何為程序疏之?》本文以Java為例分析一下數(shù)據(jù)是什么?何為數(shù)據(jù)暇咆?

數(shù)據(jù)

數(shù)據(jù)是什么锋爪?數(shù)據(jù)在計(jì)算機(jī)內(nèi)都是以二進(jìn)制的形式存在的,對(duì)于我們常人來(lái)說(shuō)爸业,操作起來(lái)十分困難其骄,當(dāng)然,大家都知道人類是有創(chuàng)造力的扯旷,為了方便操作數(shù)據(jù)拯爽,高級(jí)語(yǔ)言引進(jìn)了“數(shù)據(jù)類型”和“變量”的概念。

數(shù)據(jù)類型

數(shù)據(jù)類型用于對(duì)數(shù)據(jù)的歸類钧忽,方便理解和操作毯炮,Java語(yǔ)言提供了八種基本類型(六種數(shù)字類型(四個(gè)整數(shù)型,兩個(gè)浮點(diǎn)型)耸黑,一種字符類型桃煎,還有一種布爾型):

數(shù)據(jù)類型與初值圖

整數(shù)類型:

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"混淆缀去,不容易分辯。所以最好大寫甸祭。)

小數(shù)類型 :

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ù)不能用來(lái)表示精確的值校焦,如貨幣赊抖;
  • 例子: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弦追。

字符類型:

char:

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

真假類型:

boolean:

  • boolean數(shù)據(jù)類型表示一位的信息零远;
  • 只有兩個(gè)取值:true 和 false苗分;
  • 這種類型只作為一種標(biāo)志來(lái)記錄 true/false 情況;
  • 默認(rèn)值是 false遍烦;
  • 例子:boolean one = true。

實(shí)例

public class Test {
   static boolean bool;
   static byte by;
   static char ch;
   static double d;
   static float f;
   static int i;
   static long l;
   static short sh;
   static String str;

   public static void main(String[] args) {
       System.out.println("Bool :" + bool);
       System.out.println("Byte :" + by);
       System.out.println("Character:" + ch);
       System.out.println("Double :" + d);
       System.out.println("Float :" + f);
       System.out.println("Integer :" + i);
       System.out.println("Long :" + l);
       System.out.println("Short :" + sh);
       System.out.println("String :" + str);
   }
}

Bool :false
Byte :0
Character:
Double :0.0
Float :0.0
Integer :0
Long :0
Short :0
String :null

基本數(shù)據(jù)類型都有對(duì)應(yīng)的數(shù)組類型躺枕,數(shù)組表示固定長(zhǎng)度的同種數(shù)據(jù)類型的多條記錄服猪,這些數(shù)據(jù)在內(nèi)存中挨在一起存放。

比如說(shuō)拐云,一個(gè)自然數(shù)可以用一個(gè)整數(shù)類型數(shù)據(jù)表示罢猪,100個(gè)連續(xù)的自然數(shù)可以用一個(gè)長(zhǎng)度為100的整數(shù)數(shù)組表示。一個(gè)字符用一個(gè)char表示叉瘩,一段文字可以用一個(gè)char數(shù)組表示膳帕。

Java是一個(gè)面向?qū)ο蟮恼Z(yǔ)言,除了基本數(shù)據(jù)類型薇缅,其他都是對(duì)象類型 危彩,對(duì)象到底是什么呢?

簡(jiǎn)單的說(shuō)泳桦,對(duì)象是由基本數(shù)據(jù)類型汤徽、數(shù)組和其他對(duì)象組合而成的一個(gè)東西,以方便對(duì)其整體進(jìn)行操作灸撰。

比如說(shuō)谒府,一個(gè)學(xué)生對(duì)象,可以由如下信息組成:

  • 姓名:一個(gè)字符數(shù)組
  • 年齡:一個(gè)整數(shù)
  • 性別:一個(gè)字符
  • 入學(xué)分?jǐn)?shù):一個(gè)小數(shù)

對(duì)象是根據(jù)類創(chuàng)建的浮毯。在Java中完疫,使用關(guān)鍵字new來(lái)創(chuàng)建一個(gè)新的對(duì)象。創(chuàng)建對(duì)象需要以下三步:

  • 聲明:聲明一個(gè)對(duì)象债蓝,包括對(duì)象名稱和對(duì)象類型壳鹤。
  • 實(shí)例化:使用關(guān)鍵字new來(lái)創(chuàng)建一個(gè)對(duì)象。
  • 初始化:使用new創(chuàng)建對(duì)象時(shí)饰迹,會(huì)調(diào)用構(gòu)造方法初始化對(duì)象器虾。

例子

public class Puppy{
  public Puppy(String name){
     //這個(gè)構(gòu)造器僅有一個(gè)參數(shù):name
     System.out.println("小明的名字是 : " + name ); 
  }
  public static void main(String[] args){
     // 下面的語(yǔ)句將創(chuàng)建一個(gè)Puppy對(duì)象
     Puppy myPuppy = new Puppy( "tommy" );
  }
}

小明的名字是 : tommy

日期在Java中也是一個(gè)對(duì)象,內(nèi)部表示為整形long蹦锋。

就像世界萬(wàn)物的組成兆沙,都是由元素周期表中的108個(gè)基本元素組成的,基本數(shù)據(jù)類型就相當(dāng)于化學(xué)中的基本元素莉掂,而對(duì)象就相當(dāng)于世界萬(wàn)物葛圃。

變量

Java語(yǔ)言支持的變量類型有:

1.類變量:獨(dú)立于方法之外的變量,用 static 修飾。

  • 類變量也稱為靜態(tài)變量库正,在類中以 static 關(guān)鍵字聲明曲楚,但必須在方法之外。
  • 無(wú)論一個(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)變量在第一次被訪問(wèn)時(shí)創(chuàng)建曲伊,在程序結(jié)束時(shí)銷毀叽讳。
  • 與實(shí)例變量具有相似的可見(jiàn)性。但為了對(duì)類的使用者可見(jiàn)坟募,大多數(shù)靜態(tài)變量聲明為public類型岛蚤。
  • 默認(rèn)值和實(shí)例變量相似。數(shù)值型變量默認(rèn)值是0懈糯,布爾型默認(rèn)值是false灭美,引用類型默認(rèn)值是null。變量的值可以在聲明的時(shí)候指定昂利,也可以在構(gòu)造方法中指定届腐。此外,靜態(tài)變量還可以在靜態(tài)語(yǔ)句塊中初始化蜂奸。
  • 靜態(tài)變量可以通過(guò):ClassName.VariableName的方式訪問(wèn)犁苏。
  • 類變量被聲明為public static final類型時(shí),類變量名稱一般建議使用大寫字母扩所。如果靜態(tài)變量不是public和final類型围详,其命名方式與實(shí)例變量以及局部變量的命名方式一致。
  1. 實(shí)例變量:獨(dú)立于方法之外的變量祖屏,不過(guò)沒(méi)有 static 修飾助赞。
  • 實(shí)例變量聲明在一個(gè)類中,但在方法袁勺、構(gòu)造方法和語(yǔ)句塊之外雹食;
  • 當(dāng)一個(gè)對(duì)象被實(shí)例化之后,每個(gè)實(shí)例變量的值就跟著確定期丰;
  • 實(shí)例變量在對(duì)象創(chuàng)建的時(shí)候創(chuàng)建群叶,在對(duì)象被銷毀的時(shí)候銷毀吃挑;
  • 實(shí)例變量的值應(yīng)該至少被一個(gè)方法、構(gòu)造方法或者語(yǔ)句塊引用街立,使得外部能夠通過(guò)這些方式獲取實(shí)例變量信息舶衬;
  • 實(shí)例變量可以聲明在使用前或者使用后;
  • 訪問(wèn)修飾符可以修飾實(shí)例變量赎离;
  • 實(shí)例變量對(duì)于類中的方法逛犹、構(gòu)造方法或者語(yǔ)句塊是可見(jiàn)的。一般情況下應(yīng)該把實(shí)例變量設(shè)為私有梁剔。通過(guò)使用訪問(wèn)修飾符可以使實(shí)例變量對(duì)子類可見(jiàn)虽画;
  • 實(shí)例變量具有默認(rèn)值。數(shù)值型變量的默認(rèn)值是0憾朴,布爾型變量的默認(rèn)值是false狸捕,引用類型變量的默認(rèn)值是null喷鸽。變量的值可以在聲明時(shí)指定众雷,也可以在構(gòu)造方法中指定;
  • 實(shí)例變量可以直接通過(guò)變量名訪問(wèn)做祝。但在靜態(tài)方法以及其他類中砾省,就應(yīng)該使用完全限定名:ObejectReference.VariableName。
  1. 局部變量:類的方法中的變量混槐。
  • 局部變量聲明在方法编兄、構(gòu)造方法或者語(yǔ)句塊中;
  • 局部變量在方法声登、構(gòu)造方法狠鸳、或者語(yǔ)句塊被執(zhí)行的時(shí)候創(chuàng)建,當(dāng)它們執(zhí)行完成后悯嗓,變量將會(huì)被銷毀件舵;
  • 訪問(wèn)修飾符不能用于局部變量;
  • 局部變量只在聲明它的方法脯厨、構(gòu)造方法或者語(yǔ)句塊中可見(jiàn)铅祸;
  • 局部變量是在棧上分配的。
  • 局部變量沒(méi)有默認(rèn)值合武,所以局部變量被聲明后临梗,必須經(jīng)過(guò)初始化,才可以使用稼跳。
    例子
public class Variable{
   static int allClicks=0;    // 類變量 
   String str="hello world";  // 實(shí)例變量 
   public void method(){ 
       int i =0;  // 局部變量 
   }
}

為了操作數(shù)據(jù)盟庞,需要把數(shù)據(jù)存放到內(nèi)存中,所謂內(nèi)存在程序看來(lái)就是一塊有地址編號(hào)的連續(xù)的空間汤善,放到內(nèi)存中的某個(gè)位置后茫经,為了方便地找到和操作這個(gè)數(shù)據(jù)巷波,需要給這個(gè)位置起一個(gè)名字。編程語(yǔ)言通過(guò)變量這個(gè)概念來(lái)表示這個(gè)過(guò)程卸伞。

聲明一個(gè)變量抹镊,比如 int a其實(shí)就是在內(nèi)存中分配了一個(gè)空間,這個(gè)空間存放int數(shù)據(jù)類型荤傲,a指向這個(gè)內(nèi)存空間所在的位置垮耳,通過(guò)對(duì)a操作即可操作a指向的內(nèi)存空間,比如a=5這個(gè)操作即可將a指向的內(nèi)存空間的值改為5遂黍。

之所以叫變量终佛,是因?yàn)樗硎镜氖莾?nèi)存中的位置,這個(gè)位置存放的值是可以變化的雾家。

雖然變量的值是可以變化的铃彰,但名字是不變的,這個(gè)名字應(yīng)該代表程序員心目中這塊內(nèi)存位置的意義芯咧,這個(gè)意義應(yīng)該是不變的牙捉,比如說(shuō)這個(gè)變量int second表示時(shí)鐘秒數(shù),在不同時(shí)間可以被賦予不同的值敬飒,但它表示的就是時(shí)鐘秒數(shù)邪铲。之所以說(shuō)應(yīng)該是因?yàn)檫@不是必須的,如果你非要起一個(gè)變量名叫age但賦予它身高的值无拗,計(jì)算機(jī)也拿你沒(méi)辦法带到。

重要的話再說(shuō)一遍!變量就是給數(shù)據(jù)起名字英染,方便找不同的數(shù)據(jù)揽惹,它的值可以變,但含義不應(yīng)變四康。再比如說(shuō)一個(gè)合同搪搏,可以有四個(gè)變量:

  • first_party: 含義是甲方
  • second_party: 含義是乙方
  • contract_body: 含義是合同內(nèi)容
  • contract_sign_date: 含義是合同簽署日期

這些變量表示的含義是確定的,但對(duì)不同的合同箭养,他們的值是不同的慕嚷。

經(jīng)常會(huì)有小伙伴會(huì)使用像a,b,c,hehe,haha這種無(wú)意義的名字,給變量起一個(gè)有意義的名字吧毕泌!

通過(guò)聲明變量喝检,每個(gè)變量賦予一個(gè)數(shù)據(jù)類型和一個(gè)有意義的名字,我們就告訴了計(jì)算機(jī)我們要操作的數(shù)據(jù)撼泛。

給變量起一個(gè)有意義的名字可參考:http://www.reibang.com/p/97e9880aaf4b


有了數(shù)據(jù)之后挠说,該怎么操作數(shù)據(jù)呢?繼續(xù)更新愿题,敬請(qǐng)期待如何操作數(shù)據(jù)损俭?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛙奖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子杆兵,更是在濱河造成了極大的恐慌雁仲,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件琐脏,死亡現(xiàn)場(chǎng)離奇詭異攒砖,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)日裙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門吹艇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人昂拂,你說(shuō)我怎么就攤上這事受神。” “怎么了格侯?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵鼻听,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我养交,道長(zhǎng)精算,這世上最難降的妖魔是什么瓢宦? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任碎连,我火速辦了婚禮,結(jié)果婚禮上驮履,老公的妹妹穿的比我還像新娘鱼辙。我一直安慰自己,他們只是感情好玫镐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布倒戏。 她就那樣靜靜地躺著,像睡著了一般恐似。 火紅的嫁衣襯著肌膚如雪杜跷。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天矫夷,我揣著相機(jī)與錄音葛闷,去河邊找鬼。 笑死双藕,一個(gè)胖子當(dāng)著我的面吹牛淑趾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播忧陪,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼扣泊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼近范!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起延蟹,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤评矩,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后阱飘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體稚照,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年俯萌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了果录。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咐熙,死狀恐怖弱恒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棋恼,我是刑警寧澤返弹,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站爪飘,受9級(jí)特大地震影響义起,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜师崎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一默终、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧犁罩,春花似錦齐蔽、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至丐巫,卻和暖如春谈况,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背递胧。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工碑韵, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谓着。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓泼诱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親赊锚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子治筒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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