为什么需要包装类(Wrapper Class)
java并不是纯面向对象的语言,java语言是一个面向对象的语言,但是java中的基本数据类型却不是面向对象的,但是我们在实际使用中经常将基本数据类型转换成对象,便于操作,比如,集合的操作中,这时,我们就需要将基本类型数据转化成对象!
包装类和基本数据类型的关系
基本数据类型 包装类
byte Byte
boolean Boolean
short Short
char Character
int Integer
long Long
float Float
double Double
包装类的继承关系
包装类的基本操作
详见jdk api
1 public class TestInteger { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 Integer i1=new Integer(123); 6 Integer i2 = new Integer("123"); 7 System.out.println("i1=i2:"+(i1==i2));//false 8 System.out.println("i1.equals(i2):"+i1.equals(i2)); 9 System.out.println(i2); 10 System.out.println(i2.toString());//说明重写了toString方法 11 Integer i3=new Integer(128); 12 System.out.println(i1.compareTo(i3));//-1 13 System.out.println(i1.compareTo(i2));//0 14 System.out.println(i3.compareTo(i2));//1 15 //(1)Integer-->int 包装对象.intValue() 16 int i=i1.intValue(); 17 System.out.println(Integer.max(10, 20));//返回最大值 18 //(2)String -->int 包装类类名.parseInt(String s) 19 int ii=Integer.parseInt("234"); 20 //(3)int -->Integer 21 Integer i4=Integer.valueOf(123); 22 //(4)int-->String 23 String str=ii+""; 24 String s=String .valueOf(ii); 25 //(5)String-->Integer; 26 Integer i5=new Integer("345"); 27 //(6)Integer-->String 28 String ss=i5.toString(); 29 System.out.println(ss); 30 } 31 32 }
4.StringBuilder_StringBuffer 用法_JDK 底层源码分析---->请见源码查看
4.1 可变的字符串
StringBuilder:效率高,安全性低
StringBuffer:效率低,安全性高
4.2StringBuilder 的常用方法的使用
- append()
- delete()
- insert()
- StringBuilder()构造函数
package com.bjsxt.stringbuilder; public class TestStringBuffer { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); // 字符串的追加 sb.append("hello"); sb.append(true); sb.append('你'); sb.append(100); System.out.println(sb.toString()); sb.delete(3, 5);// 含头不含尾 System.out.println(sb); sb.deleteCharAt(1);// 删除指定位置上的字符 System.out.println(sb); sb.insert(2, '好'); System.out.println(sb); System.out.println(sb.indexOf("t") + "\t" + sb.indexOf("k")); } }