包装类、String类

1. 包装类(位于java.lang中)
① 概念:对8种基本数据类型分别定义了对象类型,这些类称为基本数据类型包装类。
    ② 基本数据-包装类:【重点】
            基本数据类型          包装类
                byte               Byte
short              Short
int                Integer
long               Long
float              Float
double             Double
char               Character
boolean            Boolean
             
③ 数据类型之间的转换
//int ---- Integer
//int---->Integer
int a=12;
Integer i1 = new Integer(a);
System.out.println(i1);
Integer i2=Integer.valueOf(a);//静态方法
System.out.println(i2);
//Integer---->int
int a2 = i2.intValue();
System.out.println(a2);

//String --- Integer
//String--->Integer
String str="123";
Integer i3 = new Integer(str);
System.out.println(i3);
Integer i4 = Integer.valueOf(str);
System.out.println(i4);
System.out.println(i4);
//Integer--->String
String s1=i4.toString();
System.out.println(s1);
String s2=i4+"";
System.out.println(s2);

//int  ----  String
//int--->String
int a3=123;
String s3=a3+"";
System.out.println(s3);
//String--->int【开发重点】
String s4="1234";
int a4=Integer.parseInt(s4);
System.out.println(a4);

注意:String转换成int/Integer时,要求String中内容必须是纯数字,
      例如"123"/"2341",否则运行报错,错误信息如下:
  java.lang.NumberFormatException(数字格式转换异常)

④ JDK5.0之后,提供了自动的装箱和拆箱功能,即包装类和基本数据类型之间
        可以自动转换。【重点】
        将基本数据类型自动转换成包装类型称为装箱。
  int a=12;
  Integer i=a;
  或是:Integer i2=12; 
        将包装类型自动转换成基本数据类型称为拆箱。
  Integer i=new Integer(10);
  int a=i;//10
     
    注意:自动装箱时,Integer i=12;默认调用Integer类中的valueOf方法。
      Integer包装类对-128~127之间的数据做了预先的包装,存放在常
  量池中,提高效率。【面试的难点】
              
              例如:
Integer i1=new Integer(12);
Integer i2 = new Integer(12);
System.out.println(i1==i2);//false

Integer i3=12;//自动装箱:int--->Integer(默认调用valueOf方法)
Integer i4=12;
System.out.println(i3==i4);//true  
    ⑤ 包装类在开发中的应用:【重点】
用于区分有效数据和无效数据,例如:0和null

2. String类 (位于java.lang中)
    ① 创建字符串的常用方式:【面试重点】
        a. String str1="hello";//只会在串池产生一个对象
b. String str2=new String("world");
   //会在内存中产生两个对象,一个在堆空间,另一个在串池中

② 常用的方法:
   a.获取字符串的长度:length()   
         String str="hello";  
str.length();
获取数组的长度:length:
             int[] a={1,4,5};
             a.length  
   b. String trim():去除字符串前后的空格。
           开发应用:
    String str4="123 ";
int a=Integer.parseInt(str4.trim());
System.out.println(a);

    ③  String对象是字面值常量,一旦创建内容不能更改,所有在串池中用于共享。
     
面试题目:
String s4="A"+"B"+"C";//编译器可知:"ABC",之后生成一个对象,是在串池中。
    
3. 可变长的字符串:(位于java.lang中)
StringBuffer:JDK1.0,线程安全,运行效率慢。
StringBuilder: JDK5.0,线程不安全,运行效率快。
常用方法:
append(参数);//字符串的拼接,相当于String的concat或是+
    常用的构造方法:
        StringBuilder()
StringBuilder(String str)

面试题目:StringBuffer和StringBuilder的区别??

          StringBuilder和 String 的区别?

eg:

package test_string;
/*
*String中的常用方法
*/


public class TestStringMethod {
public static void main(String[] args) {
String str="hello";
char c=str.charAt(3);
System.out.println(c);
/*Scanner sc = new Scanner(System.in);
System.out.println("输入一个字符:");
char c2=sc.next().charAt(6);
System.out.println(c2);*/

System.out.println(str.contains("lle"));//包含

char[] cs=str.toCharArray();  //将字符串转换成字符数组
for(int i=0;iSystem.out.println(cs[i]+"  "+i);
}

String s1=new String("world");
String s2=new String("world");

System.out.println(s1==s2);//false
System.out.println(s1.equals(s2));//比较内容,true


String str2="hellohello";
System.out.println(str2.indexOf("ll"));//获取字符串在当前字符串中出现的第一次的首字符的下标,如果不存在则返回-1.

System.out.println(str2.indexOf("ll", 4));//从下标4开始查找字符串

System.out.println(str2.lastIndexOf("ll"));//查找字符串在当前字符串中最后一次出现的下标

System.out.println("获取字符串的长度:"+str2.length());

String str3=" he llo ";
System.out.println(str3);
System.out.println(str3.trim());//去除字符串的前后空格

String str4="123 ";
int a=Integer.parseInt(str4.trim());
System.out.println(a);

String str5="hello-world-hello";

String[] sp=str5.split("-");

System.out.println(sp.length);
for(int i=0;iSystem.out.println(sp[i]);
}
String str6="ww/38/100.0";  //IO
String[] sp2 = str6.split("/");

String ss1="hello";
String ss2="wrold";

String ss3=ss1.concat(ss2);//字符串拼接,等价于 "+"
System.out.println(ss3);


//  "TestHello.java"是否以".java"结尾
String ss4="TestHello.java";
System.out.println(ss4.endsWith(".java"));

System.out.println(ss4.toUpperCase());//小写---》大写
System.out.println(ss4.toLowerCase());//大写---》小写
}
}


4. BigDecimal类
① 位置:java.math中
② 作用:精确表示、计算浮点数
③ 常用的构造方法:BigDecimal(String str)
④ 常用的功能方法:
a. BigDecimal add(BigDecimal bd):加法
   例如:BigDecimal r1=bd1.add(bd2);//加法:bd1+bd2
b. BigDecimal subtract(BigDecimal bd):减法
   例如:BigDecimal r2 = bd1.subtract(bd2);//减法:bd1-bd2
c. BigDecimal multiply(BigDecimal bd):乘法
   例如:BigDecimal r3 = bd1.multiply(bd2);//乘法:bd1*bd2
d. BigDecimal divide(BigDecimal bd1,int scal,RoundingMode mode):除法
   参数说明:BigDecimal bd1是分母的数据
                         int scal:精确到小数点后的位数
RoundingMode mode:取舍方式,常用的是四舍五入的方式:
                              BigDecimal.ROUND_HALF_UP

你可能感兴趣的:(包装类、String类)