日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

[Java入门笔记] Java语言基础(二):常量、变量与数据类型

發(fā)布時(shí)間:2025/3/20 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Java入门笔记] Java语言基础(二):常量、变量与数据类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

常量與變量

什么是常量和變量

常量與變量都是程序在運(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種意思,表示不可變的變量,這種也叫常量,從語(yǔ)法上來講也就是,加上final,使用final關(guān)鍵字來修飾某個(gè)變量,然后只要賦值之后,就不能改變了,就不能再次被賦值了

//聲明一個(gè)int類型的常量i final 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)類型語(yǔ)言,所謂強(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é)

-128~127

-32768~32767

-2147483648

~2147483647

-9223372036854774808

~9223372036854774807

-3.403E38

~3.403E38

-1.798E308

~1.798E308

整數(shù)類型

  • Java整形常量默認(rèn)為int類型,聲明long類型常量需要在后面加上L
  • Java語(yǔ)言整形常量的3種表現(xiàn)形式
    • 十進(jìn)制整數(shù):如12,-15,0
    • 八進(jìn)制整數(shù):要求以0開頭,如012
    • 十六進(jìn)制數(shù):要求以0x或0X開頭,如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)換為short b = (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ū)別

      ?

轉(zhuǎn)載于:https://my.oschina.net/u/2263361/blog/681305

總結(jié)

以上是生活随笔為你收集整理的[Java入门笔记] Java语言基础(二):常量、变量与数据类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。