資料型別轉換,常量池,及final關鍵字

2021-07-13 20:04:20 字數 2440 閱讀 1344

(一)基本資料型別包裝類

回顧:基本資料型別並沒有繼承object類。所以提供了基本資料型別包裝類

其中構造方法中可以以字串的形式傳入。

1.基本資料型別包裝類物件和基本資料型別之間的轉換:

例如:

float f = new float("3.14f");

boolean b = new boolean("true");

float ff = f.floatvalue();

boolean bb = b.booleanfloat();

2.字串和基本資料型別之間的轉換:

字串轉化資料型別:

eg:基本資料型別引用 基本資料型別 =包裝類.pra***xx("");

float f = float.parsefloat("");

基本資料型別轉成字串:

string s = string.valueof(基本資料型別);

//通過上述方法實現裝箱和拆箱。

3.jdk1.5後提供自動裝箱拆箱

float f = 3.14;

float ff = f

注意:integer資料型別在-127-127之間的值是儲存在常量池中的。 超過值才會分配棧記憶體。

(二)string字串的快取機制

判斷相等有兩種方式

1(==):

用於判斷兩個基本資料型別是否相等,如果判斷物件的話則是判斷物件引用的位址是否相同,即是否是同乙個物件

2(equse):

object類中的方法。可以進行重寫。

用於判斷兩個物件是否相同,兩個字串則是判斷兩個字串內字串的字元排列順序是否相同。

這裡要注意:當字串的值是編譯時確定的時候,字串的值是快取在常量池中的,而字串物件是儲存在堆記憶體中的.

eg:

string s1="我是字串"//快取在常量池中

string s2=new string(我是字串);//儲存在堆記憶體中

所以以上兩個引用指向的是不同的物件,因此==的結果是false

常量池中只會存在乙個原本,不會存在多個常量副本。因此當編譯時相同的常量值,指向的是同乙個位址。

string s1="我是字串";

string s2= "我是"+"字串";

上面這兩個s1==s2 輸出的是true

因為在常量池中

他們指向的是乙個物件

而:

string s3 = "我是";

string s4 = "字串";

string s5 = s3+s4;

s1 == s5輸出的則是false 因為s5是編譯時不確定的量無法指向常量池.

(三)final關鍵字的用法

final修飾類:

無法被繼承,final修飾方法不能被重寫,但是可以被過載,

final修飾變數分為兩種:

final修飾的變數只能被賦值一次;由於賦值方式機制的不同因此分為兩種情況:

成員變數:由於分配記憶體後系統自動賦初值,這樣使得此變數失去意義,因此在定義成員變數時需要賦值,或者在**塊,構造器中對其賦值

區域性變數:沒有賦值,系統並不為它分配,棧記憶體,所以可以定義時可以賦值也可以不賦值,但是,形參作為區域性變數,系統當將形參傳遞時已經賦值了所以,形參不能再次改變.

巨集變數:乙個變數被final修飾且是編譯時確定的。那麼這個變數可稱為巨集變數。巨集變數可以將 引用指向常量池。

注意:final修飾的引用型變數,

只是引用的物件位址是不可變的

,即一直

引用的是乙個物件

,但物件是可變的

eg:

final list marraylist=new arraylist();

marraylist.add(""); //物件是可以改變的

//marraylist=null //物件位址不能變,這樣的操作是非法的!

PHP 資料型別及常量

沒想到又回到了php,不說了,先熟悉熟悉以前的知識 created on 2013 7 18 php資料型別以及資料型別之間的轉換 php資料型別的轉換有兩種 1 自動轉換 在大多數情況下,php會根據實際的變數型別自動完成轉換 2 強制型別轉換 用的不多,但是也可以強制型別轉換 settype 變...

php常量及資料型別

1 php中的字串可以使用的三種定義方法及其區別 定義方式 單引號,雙引號,heredoc和newdoc 區別 1 單引號不能解析變數 2 單引號不能解析轉義字元,只能解析單引號和反斜線本身 3 單引號效率更高 4 變數和變數,變數和字串,字串和字串之間可以用.連線 5 雙引號可以使用特殊字元和 包...

資料型別String常量池的特性

package com.test.thread.stringandsyn synchronized string 同步塊與string聯合使用 author admin 2017年4月20日 public class service public static void main string ar...