国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

[Java入門筆記]Java語言基礎(chǔ)(二):常量、變量與數(shù)據(jù)類型

2019-11-14 14:57:59
字體:
供稿:網(wǎng)友

常量與變量

什么是常量和變量

常量與變量都是程序在運(yùn)行時(shí)用來存儲(chǔ)數(shù)據(jù)一塊內(nèi)存空間

常量:

常量的值在程序運(yùn)行時(shí)不能被改變,java中聲明常量必須使用final關(guān)鍵字。常量還可以分為兩種意思:

第1種意思,就是一個(gè)值,這個(gè)值本身,我們可以叫它常量,舉幾個(gè)例子:

整型常量: 123

實(shí)型常量:3.14

字符常量: 'a'

邏輯常量:true、false

字符串常量:"helloworld"

這只是說法的問題,比如7這個(gè)數(shù),我們就可以說“一個(gè)int類型的常量7 ”

第2種意思,表示不可變的變量,這種也叫常量,從語法上來講也就是,加上final,使用final關(guān)鍵字來修飾某個(gè)變量,然后只要賦值之后,就不能改變了,就不能再次被賦值了

//聲明一個(gè)int類型的常量ifinal int i = 1;//聲明一個(gè)String對(duì)象類型的常量s,"Hello"字符串也是一個(gè)常量final String s = "Hello";

需要注意的是:常量在聲明時(shí)必須要給這個(gè)常量賦一個(gè)值。

變量:

是程序運(yùn)行時(shí)用來存儲(chǔ)數(shù)據(jù)的一塊內(nèi)存空間,是程序中最基本的存儲(chǔ)單元,我們可以使用變量名訪問變量。

Java變量的分類:

按聲明位置分:

  局部變量

  成員變量

方法的參數(shù)是局部變量。

public class Test{  int i1 = 1;  //成員變量    public class static main(String[] args){  //args是方法的參數(shù),所以也是局部變量    int i2 = 2;  //局部變量  }}

按數(shù)據(jù)類型分:

  基本數(shù)據(jù)類型變量

  引用數(shù)據(jù)類型變量

public class Test{  int i = 1;  //基本數(shù)據(jù)類型變量  String s = new String();  //引用數(shù)據(jù)類型}

 

使用變量的步驟:

第一步:聲明一個(gè)變量——根據(jù)類型在內(nèi)存中開辟空間
第二步:賦值——將數(shù)據(jù)存入空間        
第三步:使用變量——得到內(nèi)存中的數(shù)據(jù)使用

我們使用變量前必須要先聲明和賦值,聲明和賦值可以分開,也可以結(jié)合為一步;

成員變量在聲明時(shí)如果沒有為其顯式賦值,則會(huì)為其分配一個(gè)默認(rèn)值。

public class Test{  int i3;  //如果是成員變量,系統(tǒng)會(huì)為其默認(rèn)分配一個(gè)值0
  public static void main(String[] args){    int i1; //聲明    i1 = 1; //賦值    int i2 = 2; //聲明的同時(shí)為其賦值,2這個(gè)值也叫“直接量”    System.out.PRintln(i1); //使用,將變量的值輸出到Java控制臺(tái)  }}

 

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

Java是一種強(qiáng)類型語言,所謂強(qiáng)類型,就是每個(gè)變量表達(dá)式在編譯時(shí)就必須要有一個(gè)確定的數(shù)據(jù)類型。Java數(shù)據(jù)類型分為兩大類:基本類型和引用類型。

引用數(shù)據(jù)類型為:類、接口、數(shù)組。

Java中的基本數(shù)據(jù)類型分為四類八種,分別為:

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

數(shù)值型

字符類型char

 

占用空間:2字節(jié)

布爾類型boolean

 

占用空間:1位

整數(shù)類型

浮點(diǎn)類型

字節(jié)byte

短整型short

整型int

長(zhǎng)整型long

單精度型long

雙精度型double

1字節(jié)

2字節(jié)

4字節(jié)

8字節(jié)

4字節(jié)

8字節(jié)

-128127

-32768~32767

-2147483648

~2147483647

-9223372036854774808

~9223372036854774807

-3.403E38

3.403E38

-1.798E308

1.798E308

整數(shù)類型

  • Java整形常量默認(rèn)為int類型,聲明long類型常量需要在后面加上L
  • Java語言整形常量的3種表現(xiàn)形式
    • 十進(jìn)制整數(shù):如12-15,0
    • 八進(jìn)制整數(shù):要求以0開頭,如012
    • 十六進(jìn)制數(shù):要求以0x0X開頭,如0x12
    • 注:因?yàn)镴ava中可以使用十六進(jìn)制方式賦值,因此類似于十進(jìn)制10與十六進(jìn)制A在內(nèi)存中沒有區(qū)別。
    • Java7之后Java中也可以使用二進(jìn)制的方式為整形賦值。

     

byte b1 = 127;  //正確byte b2 = 128; //錯(cuò)誤,超出范圍short = b1;  //正確,將另外一個(gè)變量的值賦給該變量,并且沒有超出范圍int i1 = 12;//正確int i2 = 012;  //正確int i3 = 0x12;  //正確System.out.println(i2);  //輸出10,因?yàn)閕2是以8進(jìn)制方式賦值的System.out.println(i3);  //輸出18,因?yàn)閕3是以16進(jìn)制方式賦值的long lo = 2147483648L;  //long類型聲明需要加上L

 

 

浮點(diǎn)類型

  • Java浮點(diǎn)類型常量有兩種表現(xiàn)形式:
    • 十進(jìn)制數(shù)形式:例如3.14   314.0   .314
    • 科學(xué)計(jì)數(shù)法形式:如3.14e2   3.14E2   3.14E-2
  • Java浮點(diǎn)類型常量默認(rèn)double,如果要聲明一個(gè)常量為float則需要在后面加F
  • 因?yàn)榫葐栴},因此不要用浮點(diǎn)類型做等于比較
float f1 = 123;float f2 = 123.4F;double d1 = 1234.5;double d = 3.141_592_65_36  //正確,java7后為了使比較長(zhǎng)的數(shù)據(jù)較有可讀性,可以在數(shù)字之間使用下劃線

 

 

 字符類型

  • 字符類型是單引號(hào)括起來的單個(gè)字符
  • Java字符采用Unicode編碼,每個(gè)字符占兩個(gè)字節(jié),因而可以用十六進(jìn)制編碼形式表示,如 char c = '/u0061';
  • 允許使用轉(zhuǎn)義字符'/'將其后字符轉(zhuǎn)為其他含義,如 char c = '/n';換行
  • Java 中常用的轉(zhuǎn)義字符
char c1 = '你';  //正確char c2 = '你好';  //錯(cuò)誤char c3 = '/u9999';  //正確System.out.println(c3);  //輸出'香'

 

 布爾類型

用來存儲(chǔ)"真","假"的類型,只有true和false兩種值。

boolean b = true;

 

 數(shù)據(jù)類型的轉(zhuǎn)換

  •  精度排序:(由低到高)  
    • Byte < short < int < long < float < double
  • 由低到高轉(zhuǎn)換時(shí)系統(tǒng)會(huì)自動(dòng)轉(zhuǎn)換;高精度轉(zhuǎn)換為低精度時(shí),會(huì)有精度損失,須強(qiáng)制轉(zhuǎn)換;運(yùn)算時(shí),不同類型會(huì)自動(dòng)轉(zhuǎn)換為高精度類型。
    • byte b = 127;short s = b;  //會(huì)自動(dòng)轉(zhuǎn)換為shortb = (byte)s;  //不會(huì)自動(dòng)轉(zhuǎn)換,需要強(qiáng)制轉(zhuǎn)換
  • double常量轉(zhuǎn)換為float常量產(chǎn)生溢出時(shí)不能轉(zhuǎn)換
    • public class Test {        public static void main(String[] args) throws Exception {        double d = 12222222222222222222222222222222222222222222222222222.3;        float f = (float) d;  //d的值已經(jīng)超出了float的范圍,所以轉(zhuǎn)換會(huì)“溢出”,但是編譯不會(huì)報(bào)錯(cuò)        System.out.println(f);  //因?yàn)楫a(chǎn)生了溢出,所以輸出“Infinity”    }}
  • 系統(tǒng)在運(yùn)算時(shí)會(huì)將數(shù)值自動(dòng)轉(zhuǎn)換為int型,將運(yùn)算結(jié)果賦給原來的類型時(shí)需要進(jìn)行強(qiáng)制轉(zhuǎn)換。
    • byte b1 = 1;byte b2 = (byte) (b1 + 2);  //數(shù)值運(yùn)算時(shí)會(huì)自動(dòng)轉(zhuǎn)換為int,所以計(jì)算出結(jié)果后將值再賦給byte類型變量b2時(shí)需要強(qiáng)制轉(zhuǎn)換
  • 如果常量值超出了默認(rèn)類型時(shí),必須在后面加大于該默認(rèn)類型的數(shù)值類型開頭字母,如 long num=30000000000L; 因?yàn)檎皖愋湍J(rèn)為int,但30000000000在int中放不下,所以要在后面加小寫l或大寫L,轉(zhuǎn)換為long型。
  • (數(shù)據(jù)類型名)要轉(zhuǎn)換的變量或值  與  要轉(zhuǎn)換的變量或值+轉(zhuǎn)換符  這兩種轉(zhuǎn)換方式有本質(zhì)上的區(qū)別,前一種表示它在計(jì)算機(jī)中是他原來的類型,再把它強(qiáng)制轉(zhuǎn)換成現(xiàn)在的類型,后一種表示它一開始在計(jì)算機(jī)里就已經(jīng)是轉(zhuǎn)換完成了的這種類型。
    • long lo = (long)2;long lo2 = 2L;     //這兩種聲明或轉(zhuǎn)換有本質(zhì)區(qū)別

       


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宾川县| 鸡西市| 文昌市| 封丘县| 夹江县| 庆云县| 宣威市| 盖州市| 蓬安县| 满城县| 焦作市| 景泰县| 望城县| 涪陵区| 麻江县| 庆阳市| 乐业县| 茂名市| 桐柏县| 靖安县| 中山市| 山阴县| 尼玛县| 襄城县| 德令哈市| 德庆县| 昂仁县| 临汾市| 松江区| 孝昌县| 崇左市| 丘北县| 景谷| 大石桥市| 福安市| 巴彦县| 岳池县| 建昌县| 沙坪坝区| 蚌埠市| 南涧|