1: String拼接中会产生多少个对象 String s1="sdasd"; 一个:堆
String s2=new String("dsdsa"); 二个:堆、尺
2: StringBuffer 线程安全、效率低 可以避免产生多余的堆对象 str="a"+"b";
StringBuilder 线程不安全、
3:
4:字符串转换成基本数据类型 int a = Integer.parseInt("12");
boolean b = Boolean.parseBoolean("true");
5:精度问题:float a = 1.0-0.1 (相当于在一个1/10可以表示0.1 而1/3没有具体的值)
a=0.099999998; 遇到类似的问题直接用大实数类解决(BigDecimal d = new BigDecimal("49329479324723"))、同时也可以解决数据过大超过 long
6:补足上面的其实得到 字符串转换为int 类型可以有两种在上面的基础上补足一种
Integer.valueOf(); 其实这种方法可以可以转换为Integer类 也可以转换为int 因为JDK1.5以后自动装箱、拆箱
装箱:int a =3; Integer intOb = new Integer(a);
拆箱:int a = inOb.intValue();
7:int类型转换陈String型有三种方法:
int a=5;int b=6;
1:String stuNum = a+b+""; 结果为:11;
2:String stuNum = ""+a+b; 结果为:56;
3:String stuNum = String.valueOf(a); 结果为:5;
8: number是所有数值类型的包装类的父类
9:==(equals)等号包含equals:只是字符串之间的相等
10: 堆:放对象(大小不明确)
栈:放基本数据类型(大小明确)
11:String s1 =" "; 字符串完整,没内容,长度为0;
String s2 = null; 空引用,能用,不能点(.),会出现空指针异常
String s3; 不能用,仅仅是一个声明,相当于连类型都没有绑定
12:可以不初始化的两种情况(成员变量、数组中)
13:if(s1!=null && s1.indexOf("世界")=-1) 1:避免空指针异常 2:判断是否包含世界返回值为boolean类型(等同于contains)
14:字符串截取 替换的结果只是一个副本(要想取得截取值,就应该赋值) me.substring(4); me=me.substring(3,6);