首页 > 编程语言 > 详细

Java零基础学习(StringBuffer StringBuilder Arrays 基本数据类型包装类)

时间:2021-05-26 21:28:42      阅读:16      评论:0      收藏:0      [点我收藏+]

Java零基础学习(StringBuffer StringBuilder Arrays 基本数据类型包装类)

  • StringBuffer类的概述

    1.StringBUffer类概述
    	我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时又浪费空间,而StringBuffer就可以解决这个问题
    	线程安全的可变字符序列
    
    • StringBuffer类的构造方法
    1.构造方法
    	public StringBuffer() 无参构造方法
    	public StringBuffer(int capacity) 指定容量的字符缓冲区对象
    	public StringBuffer(String str) 指定字符串内容的字符缓冲区对象
    2.StringBuffer的方法:
    	public int capacity() 返回当前容量 理论值
    	public int length() 返回长度 实际值
    	public String toString() 返回容器里的字符串
    
    • StringBuffer的添加功能
    public StringBuffer append(String str)
    	可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
    public StringBuffer insert(int offest,String str)
    	在指定位置把任意类型的数据插入到字符缓冲区里面,并返回字符缓冲区本身
    
    • StringBuffer的删除功能
    public StringBuffer deleteCharAt(int index)
    	删除指定位置的字符,并返回本身
    public StringBuffer delete(int start,int end)
    	删除从指定位置开始,指定位置结束的内容,含头不含尾并返回本身
    
    • StringBuffer的替换和反转功能
    1.替换功能
    	public StringBuffer replace(int start,int end,String str)
    	从start开始到end用str替换
    2.反转功能
    	public StringBuffer reverse()
    	字符串反转
    
    • StringBuffer的查找功能
    int indexOf(String str)
    	从头查找该字符串,在容器中出现的索引,如果没有就返回-1
    int indexOf(String str,int fromIndex)
    	从指定位置开始查找该字符串在容器中的索引,如果找不到就返回-1
    
    从后往前找
    int lastIndexOf(String str)
    int lastIndexOf(String str,int fromIndex)
    
    • StringBuffer的截取功能
    1.截取功能
    	public String substring(int start)
    	从指定位置起截取到末尾
    	public String substring(int start,int end)
    	从指定位置起截取到指定位置结束,含头不含尾
    2.注意事项
    	返回值类型不再是StringBuffer本身
    
    • StringBuffer和String的相互转换
    1.String---StringBuffer
    	a.通过构造方法
    	b.通过append()方法
    2.StringBuffer---String
    	a.使用substring方法
    	b.通过构造方法
    	c.通过toString()方法
    
    • 把数组转换成字符串
    案例演示
    	需求:把数组中的数据按照指定个格式拼接成一个字符串
    		举例:
    			int[] arr = {1,2,3};	
    		输出结果:
    			"[1, 2, 3]"
    	用StringBuffer的功能实现
    public class Sb2 {
        public static void main(String[] args) {
            int[] arr ={1,2,3};
            StringBuffer sb = new StringBuffer();
            sb.append("[");
            for (int i=0;i<arr.length;i++){
                if (i==arr.length-1){
                    sb.append(arr[i]);
                    break;
                }
                sb.append(arr[i]+",");
            }
            sb.append("]");
            System.out.println(sb);
        }
    }
    
    • 字符串反转
    案例演示
    	需求:把字符串反转
    		举例:键盘录入"abc"		
    		输出结果:"cba"
    	用StringBuffer的功能实现	
    import java.util.Scanner;
    public class Sb2 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String str=sc.nextLine();
            StringBuffer sb = new StringBuffer(str);
            sb.reverse();
            System.out.println(sb);
        }
    }
    
    • StringBuffer和StringBuilder的区别
    StringBuffer在多线程安全单速度慢
    StringBilder在多线程不安全但速度快
    StringBilder在单线程也是安全的
    
    • String和StringBuffer分别作为参数传递
    形式参数问题
    	String作为参数传递,String虽然是引用类型,但是它是一个常量,所以在传递的时候,完全将其看成基本数据类型传递,String类型传递输入值传递
    	StringBuffer作为参数传递,传递的是地址值
    public class Sb2 {
        public static void main(String[] args) {
            StringBuffer sb = new StringBuffer("abc");
            String str="abc";
            string(str);
            stringBuffer(sb);
            System.out.println(str);
            System.out.println(sb);
        }
        public static void string(String str){
            str="cba";
        }
        public static void stringBuffer(StringBuffer stringBuffer){
            stringBuffer.reverse();
        }
    }
    
    输出
    	abc
    	cba
    
  • Arrays类的概述和方法使用

    1.概述
    	针对数组进行操作的工具类
    	提供了排序,查找等功能
    2.方法
    	public static String toString(int[] a)
    	返回数组的字符串表示形式
    	public static void sort(int[] a)
    	对指定的int类型数组排序
    	public static int binarySearch(int[] a,int key)
    	使用二分查找法查找数组元素的位置
    	public static boolean equals(int[] a1,int[] a2)
    	比较两个数组中的元素是否一样
    	public int[] coopyOf(int[] original,int newLength)
    	复制旧数组中的元素到一个新的数组中,新数组的长度是newLength,从0开始复制旧数组
    	public int[] copyOfRange(int[] original,int from,int to)
    	复制旧数组中的指定范围间的几个元素带新的数组中 from起始索引 to 终止索引
    
  • 常见类型基本包装类的概述

    1.需求:
    	a:将100转换成二进制 , 八进制 , 十六进制
    	b:判断一个数是否在int的范围内
    2.为什么会有基本类型包装类
    	为了对基本数据类型进行更多的操作,更方便的操作,java就针对每一种基本数据类型提供了对应的类类型.
    3.常用操作:	常用的操作之一:用于基本数据类型与字符串之间的转换。
    4.基本类型和包装类的对应
    	byte		Byte
    	short		Short
    	int			Integer
    	long		Long
    	float		Float
    	double		Double
    	char		Character
    	boolean		Boolean
    
    • Integer类的概述和构造方法
    1.概述
    	Integer类在对象中包装了一个基本数据类型int的值
    	该类还提供了多个方法,能在int类型和String类型之间相互转化
    	还提供了处理int类型是非常有用的其他的常量和方法
    2.构造方法
    	public Integer(int value)
    	创建一个Integer对象,他表示的是int的值
    	public Integer(String s)
    	创建一个Integer对象,他表示String参数所指示的int值,s的字必须是数字字符串,不然就会报错
    
    • String和int类型的相互转换
    int---String
    	a.和""进行拼接
    	b.public static String valueOf(int i)
    	c.int---Integer---String
    	d.public static String toString(int i)
    String---int 
    	a.String---Integer---intValue()
    	b.public static int parseInt(String s)
    
    • JDK5的新特性自动拆装箱
    1.JDK5的新特性
    	自动装箱:把基本类型转换为包装类类型
    	自动拆箱:把包装类类型转换为基本类型
    2.案例演示
    	JDK5的新特性自动装箱和拆箱
    	Integer ii = 100;//自动装箱功能,把int类型的数据变成Integer类型
    	ii += 200;//自动拆箱功能,把Integer类型变成int类型
    3.注意事项
    	在使用时,Integer  x = null;代码就会出现NullPointerException。
    	建议先判断是否为null,然后再使用。
    
    • Integer面试题
    看程序写结果
    	
    	Integer i1 = new Integer(127);
    	Integer i2 = new Integer(127);
    	System.out.println(i1 == i2);
    	System.out.println(i1.equals(i2));
    	System.out.println("-----------");
    
    	Integer i3 = new Integer(128);
    	Integer i4 = new Integer(128);
    	System.out.println(i3 == i4);
    	System.out.println(i3.equals(i4));
    	System.out.println("-----------");
    
    	Integer i5 = 128;
    	Integer i6 = 128;
    	System.out.println(i5 == i6);
    	System.out.println(i5.equals(i6));
    	System.out.println("-----------");
    
    	Integer i7 = 127;
    	Integer i8 = 127;
    	System.out.println(i7 == i8);
    	System.out.println(i7.equals(i8));
    	
    false
    true
    ---------------
    false
    true
    ---------------
    false
    true
    ---------------
    true
    true
    java为了提高效率,所以缓存了-128--127之间的数据,如果自动拆装箱的数据在这个范围之内,就可已通过==号比较是否相等,但是这个数据之外还是得用equals
    

Java零基础学习(StringBuffer StringBuilder Arrays 基本数据类型包装类)

原文:https://www.cnblogs.com/N-jack/p/14814481.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!