java基礎之環境變數及資料類型

來源:互聯網
上載者:User

 jdk安裝路徑C:\Program Files\Java\jdk1.6.0_21

java_homeC:\Program Files\Java\jdk1.6.0_21

classpath.;%JAVA_HOME%lib;%JAVA_HOME%lib\tools.jarPath%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin檢查是否安裝成功java -version

path環境變數。作用是指定命令搜尋路徑,在dos命令列下面執行命令如javac編譯器時,它會到path變數所指定的路徑中尋找看是否能找到相應的命令程式。我們需要把jdk安裝目錄下的bin目錄增加到現有的path變數中,bin目錄中包含經常要用到的可執行檔如javac/java/javadoc等待,設定好path變數後,就可以在任何目錄下執行javac/java等工具了
classpath環境變數。作用是指定類搜尋路徑,要使用已經編寫好的類,前提當然是能夠找到它們了,JVM就是通過classpath來尋找類的。我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設定到classpath中,當然,目前的目錄“.”也必須加入到該變數中。

 資料類型:

1) 未經處理資料類型,簡單類型,基本類型都是一個含義;

2)複合類型,擴充類型,複雜類型、參考型別都是一個含義;

3)浮點類型,實數、實型都是一個含義;

4)邏輯型、布爾型都是一個含義;

5)類型分類:

定點:定點的意思是把小數點定在末尾,小數點後沒有數位資料,Java中通常把它們稱為整數;

常量:就是直接的值;

變數:放置常量的容器,除了放置常量之外,也可以給變數一個運算式,變數中的值是可變的;

  資料類型在電腦語言裡面,是對記憶體位置的一個抽象表達方式,可以理解為針對記憶體的一種抽象的表達方式。接觸每種語言的時候,都會存在資料類型的認識,有複雜的、簡單的,各種資料類型都需要在學習初期去瞭解,Java是強型別語言,所以Java對於資料類型的規範會相對嚴格。資料類型是語言的抽象原子概念,可以說是語言中最基本的單元定義,在Java裡面,本質上講將資料類型分為兩種:基本類型和引用資料類型。

  基本類型:單一資料型別是不能簡化的、內建的資料類型、由程式設計語言本身定義,它表示了真實的數字、字元和整數。

  引用資料類型:Java語言本身不支援C++中的結構(struct)或聯合(union)資料類型,它的複合資料型別一般都是通過類或介面進行構造,類提供了捆綁資料和方法的方式,同時可以針對程式外部進行資訊隱藏。

 

在Java中,每個存放資料的變數都是有類型的,如:

char ch;  float x;  int a,b,c; 

ch是字元型的,就會分配到2個位元組記憶體。不同類型的變數在記憶體中分配的位元組數不同,同時儲存方式也是不同的。

所以給變數賦值前需要先確定變數的類型,確定了變數的類型,即確定了資料需分配記憶體空間的大小,資料在記憶體的儲存方式。

Java資料類型在記憶體中的儲存:

1)基礎資料型別 (Elementary Data Type)的儲存原理:所有的單一資料型別不存在“引用”的概念,基礎資料型別 (Elementary Data Type)都是直接儲存在記憶體中的記憶體棧上的,資料本身的值就是儲存在棧空間裡面,而Java語言裡面八種資料類型是這種儲存模型;

2)參考型別的儲存原理:參考型別繼承於Object類(也是參考型別)都是按照Java裡面儲存物件的記憶體模型來進行資料存放區的,使用Java記憶體堆和記憶體棧來進行這種類型的資料存放區,簡單地講,“引用”是儲存在有序的記憶體棧上的,而對象本身的值儲存在記憶體堆上的;

區別:基礎資料型別 (Elementary Data Type)和參考型別的區別主要在於基礎資料型別 (Elementary Data Type)是分配在棧上的,而參考型別是分配在堆上的(需要java中的棧、堆概念),

基本類型和參考型別的記憶體模型本質上是不一樣的。

 

複習到這裡的時候突然想起一個問題, 就是java中的 bjava中的 boolean 在記憶體中佔多少位元組,為此到sun的官方網站查了一下,找到如下解釋:

sun's Data Types introduction:
byte: The byte data type is an 8-bit signed two's complement integer
short: The short data type is a 16-bit signed two's complement integer
int: The int data type is a 32-bit signed two's complement integer
long: The long data type is a 64-bit signed two's complement integer
float: The float data type is a single-precision 32-bit IEEE 754 floating point
double: The double data type is a double-precision 64-bit IEEE 754 floating point.
char: The char data type is a single 16-bit Unicode character
boolean: The boolean data type has only two possible values: true and false. 
Use this data type for simple flags that track true/false conditions. This data type represents one bit of information,
 but its "size" isn't something that's precisely defined.

大概意思為boolean就2個字面值true/false ,這個資料類型表現為1bit的資訊,但是他的大小不是明確指定的.
我認為也可以理解為1bit 就可以表示,不過最小的記憶體定址單元式 byte,所以佔用一個byte
同時呢,編譯器對boolean變數進行了最佳化,在一個boolean變數情況下,編譯器會給此變數安排一個位元組的
記憶體,但在多個boolean的情況下時,編譯器會將多個變數安排在一個位元組裡.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.