StringBuffer And StringBuilder线程安全与不安全And八大基本封装类型

1.StringBuffer和StringBuilder

(1)类,而且与String一样,都是可以用来定义字符串的。
            (2)区别:String定义的字符串是固定的,而这2个类是可变字符串
           (3)StringBuffer和StringBuilder定义时只能通过构造函数定义不能直接定义
           (4)StringBuffer和StringBuilder的区别
                   StringBuffer:线程安全
                  StringBuilder:线程不安全
         (5)三者之间都会存在共有的方法

1.String 与StringBuffer 互转

StringBuffer和StringBuilder的定义方式!!

StringBuffer sb = new StringBuffer("我是谁");
	System.out.println(sb);

StringBuffer sb = new StringBuffer("我是谁");

sb的类型:StringBuffer类型

需求:StringBuffer类型转换为String类型

String str = sb.toString();//永远不要记等于符号左边的代码 ctrl+1
	System.out.println(str);

需求:String类型--->StringBuffer类型

String name = "dengyankang";
		//通过构造函数直接可以转换
	StringBuffer sb2 = new StringBuffer(name);

2.与String不同的方法有下这几个

1.append末尾追加类容!!

StringBuffer sb = new StringBuffer("dengyankang");
		sb.append("liuxiangyang");追加的类容
		System.out.println(sb);

2.insert在指定的索引位置处添加指定类容!

StringBuffer sb = new StringBuffer("dengyankang");
sb.insert(2, "dfffd");在指定的下标2位置开始加入后面的值 dfffd
		System.out.println(sb);

3.delete 删除指定位置到指定位置的数据

StringBuffer sb = new StringBuffer("dengyankang");
sb.delete(2, 5);指定从下标2开始删除到下标5

		System.out.println(sb);

4.区间替换 replace

StringBuffer sb = new StringBuffer("dengyankang");
sb.replace(0, 4, "tang");0-4替换成tang  输出结果 tangyankang
		System.out.println(sb);

5.反转 倒过来输出 reverse

StringBuffer sb = new StringBuffer("dengyankang");
sb.reverse();

		System.out.println(sb);

StringBuilder用法一模一样 区别就一个线程安全一个线程不安全!!

!定义方法

	StringBuilder sb2 = new StringBuilder();

2.基本类型的封装类 !

    8大基本数据类型作用:仅仅只用来定义变量规则类型,
         *             每一个基本类型在Java中提供了一个管理类来管理这些类型的使用。
         *         基本类型                封装类
         *         byte                        Byte
         *         short                       Short
         *         int                            Integer --------
         *         long                         Long
         *         float                         Float
         *         double                      Double
         *         char                          Character--------
         *         boolean                     Boolean

描述连个 integer 与 character

1.封装类的优质 

1.可以直接查看 存储的最大范围与最小范围还

System.out.println(Byte.MIN_VALUE);最小存储

	System.out.println(Byte.MAX_VALUE);最大存储

1.2直接求最大最小值

System.out.println(Integer.min(12, 1));最小值
System.out.println(Integer.min(12,1);最大值

1.3封装类也可以用来定义变量

Integer i = 10;
		int a = 10;
		System.out.println(i == a);//true

		Integer b = new Integer(10);

	System.out.println(i == b);//false因为b integer是新建出来的比的是内存位置所以不相等

		Integer c = new Integer(10);

		System.out.println(b == c);//false
		Integer d = 10;

		System.out.println(i == d);//true

2.Integer封装类的常用方法

参数:int    将int--->Integer

Integer valueOf = Integer.valueOf(10); 10 int类型

参数:String   将String--->Integer   数字型的字符串变量

Integer valueOf2 = Integer.valueOf("123");注意不能有中文与英文 

通过进制的方法来实现将字符串(数字型)转成int

int parseInt = Integer.parseInt("123"); String --int

2.1玩一下进制
       进制:二进制   八进制   十进制   十六进制(10以上的数字使用a描述依次类推abcdef)
       二进制:电脑
       十进制:生活中的一切数据

        10的二进制
		String binaryString = Integer.toBinaryString(10);
		System.out.println(binaryString);
		10的八进制
		String octalString = Integer.toOctalString(10);
		System.out.println(octalString);
		10的十六进制
		System.out.println(Integer.toHexString(10));
		
		1010
		int parseInt = Integer.parseInt("1010", 2);十二进制
		System.out.println(parseInt);
		
		System.out.println(Integer.parseInt("12", 8));12的8进制
		
		System.out.println(Integer.parseInt("a",16));a的16进制


          System.out.println(Integer.parseInt("12"));//12
		注意事项:如果parseInt第二个参数没有,默认将参数1当做成10进制数据自动转换

3.Character:代表的是char的封装类

判断的方法

        System.out.println(Character.isUpperCase('A'));//判断大写
		System.out.println(Character.isLowerCase('a'));//判断小写
		System.out.println(Character.isDigit('9'));//判断是否数字
		System.out.println(Character.isTitleCase("mynameiszz".charAt(0)));
		System.out.println(Character.isLetter('7'));//判断是否是字母

要求:统计一个字符串中包含多少数字,多少符号,多少大写字母,多少小写字母(提示:包装类)

public static void work5() {
		System.out.println("请你输入一个字符串:");
		String ii=sc.next().trim();
		int ch=0;//数字
		int dx=0;//大写
		int xx=0;//小写
		int zf=0;//符号
		System.out.println(ii);
		for (int i = 0; i < ii.trim().length(); i++) {
			char uu=ii.charAt(i);
			if(Character.isDigit(uu)) {
				
				ch++;
			}
			if(Character.isUpperCase(uu)) {
				
				dx++;
			}
			if(Character.isLowerCase(uu)) {
				
				xx++;
			}
			if(!Character.isDigit(uu)) {
			if(!Character.isLetter(uu)) {
				zf++;
			}
			
			}
//			if(Character.isSpace(uu)) {
//				zf++;
//			}
		}
		System.out.println("数字有:"+ch+"个\n"+"大写有:"+dx+"个\n"+"小写有:"+xx+"个\n"+"符号有"+zf);
		
		
		
		
		
		
		
		
	}

数字类使用Math

System.out.println(Math.PI);  圆周率3.141592653589793
		System.out.println(Math.abs(-12));  绝对值
		System.out.println(Math.round(12.89));  四舍五入
		System.out.println(Math.random());  随机数,随机数生成的数字智能介于0-1之间

		//0-9
	double sj = Math.random() * 10;
	System.out.println(Math.floor(sj));  向下取整

系统 功能打开计算机某应用    Runtime类 运行时   构造函数私有化了

实例化对象

Runtime rt = Runtime.getRuntime();

使用方法

try {
			rt.exec("calc");打开计算机 
		rt.exec("D:\\software\\application\\CloudMusic\\CloudMusic\\cloudmusic.exe");打开网易云 地址 根据自己电脑来
			rt.exec("shutdown -s -t 100000");关机 后面是秒数
           rt.exec("shutdown -a");取消关机
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值