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

相关文章
相关标签/搜索