AJPFX總結string類和簡單問題

String表示字符串,所謂字符串,就是一連串的字符;
String是不可變類,一旦String對象被建立,包含在對象中的字符序列(內容)是不可變的,直到對象被銷燬;
//一個String對象的內容不能變,一旦內容改變對象在常量池中新建類一個STRING對象
常量池:JVM中一塊獨立的區域存放字符串常量和基本類型常量(public static final)。java

棧=====存放變量名ide

堆=====存放new的地址值code

常量池====存放的字符串是由單個字符組成的,兩個變量名的值若是是同樣的好比都是"AAA"那麼兩個變量都是指向同一個地址對象

在JAVA中 等號(「=」)的做用是地址的比較。。。若是是值的比較那麼 應該要用子變量(equals)作比較。。
好比 S1.equals(s2);//s1的值是否和s2的值相等。。
s1==s2//s1的地址和s2的地址相等ci

String S1=NEW String(「AAA」);//建立1個或者2個對象。。。。。String建立對象是先去常量池尋找有沒有「AAA」,若是沒有則在堆建立一個 而後在常量池建立一個「AAA」。。。。。堆指向常量池。。。。String s3="bbb" 建立1個或者0個。。。

//以加號(「+」)鏈接的字符/字符串,編譯器在編譯的時候會將「A」+「B」+「C」   編譯成「ABC」
.println((200 - 110) + "cents");

/*
對於找零,這種要求小數點後的位數儘量的少的時候,改變換算單位好比找0.01元則寫成找零1分。。。字符串

*/
解決該問題的另外一種方式是使用執行精確小數運算的 BigDecimal。它還能夠通
過 JDBC 與 SQL DECIMAL 類型進行互操做。這裏要告誡你一點: 必定要用
BigDecimal(String)構造器,而千萬不要用 BigDecimal(double)。後一個構造
器將用它的參數的「精確」值來建立一個實例:new BigDecimal(.1)將返回一個
表示 0.100000000000000055511151231257827021181583404541015625 的
BigDecimal。經過正確使用 BigDecimal,程序就能夠打印出咱們所指望的結果
0.90:
import java.math.BigDecimal;
public class Change1{
public static void main(String args[]){
System.out.println(new BigDecimal("2.00").
subtract(new BigDecimal("1.10")));
}
}
這個版本並非十分地完美,由於 Java 編譯器

不要使用小寫的「l」做爲變量而要使用大寫「L」,由於容易和數字1搞混it

相關文章
相關標籤/搜索