Java常用API之String,包装类等

本章将会对String类与Integer,System,Date,Random,BigInteger,Math进行简单介绍

1.String

String类是不可变的,这里说的不可变是指值(堆内存中存储的),而不是引用地址。

String类型变量声明时,会现在字符串常量池中寻找,是否有值,如果有直接赋值给变量,如果没有找到这个值,将会在堆内存中创建一个对象,再进行赋值。

两个字面量字符串拼接,会在编译时就直接拼接成功

1.1 常用方法

如下图为常用方法

		String string=" 23 4 ";
		string.charAt(0);//charAt方法会返回指定索引处的字符
		
		string.trim();//trim方法会去掉字符串首尾的空格
		
		string.toUpperCase();//将字符串字母全部大写,string.toLowerCase();相反,小写
		string.toLowerCase();
		
		string.startsWith("2");//字符串以指定字符串开头
		string.endsWith("4");//字符串以指定字符串结尾
		
		string.split(" ");//将字符串以某个字符分割,返回一个String数组
		
		string.substring(2);//将字符串截取,用开始索引(包含)开始截取,[用第二个参数索引结束截取()不包含]
		
		string.toCharArray();//将字符串转换成字符数组
		string.getBytes();//将字符串转换成字节数组
		
		string.replace("1", "3");//替换字符串,将第一个参数替换成第二个参数
		string.replaceAll("1", "3");//与replace功能一样,除此之外其还支持正则表达式
		
		string.indexOf("3");//返回字符串中指定字符串的起始索引
		string.lastIndexOf("s");//返回最后一个指定字符串的索引
		
		string.equals(" ");//比较两个字符串是否相等
		string.equalsIgnoreCase(" ");//忽略大小,比较两个字符串是否相等
		
		string.length();//返回字符串的长度

StringBuilder与StringBuffer都是可变的,频繁拼接字符串时可以根据情况使用其中一个

StringBuilder,线程不安全,可用于单线程

StringBuffer,线程安全,可用于多线程

		StringBuilder sb = new StringBuilder("sodifjh");
		//字符串拼接
		sb.append("");
		//字符串反转
		sb.reverse();
//		转换为字符串
		sb.toString();
		//容量
		sb.capacity();
		//元素个数
		sb.length();

2.八种包装类

八种基本类型对应八个包装类

int-->Integer        byte-->Byte        short-->Short        long-->Long         float-->Float

char-->Character        double-->Double        boolean-->Boolean

基本类型与包装类之间会发生自动装箱与自动拆箱

//自动拆箱,在编译时编译器会自动加上intValue(),i1=ir.intValue()
		int i1=ir;
//自动装箱,编译器会自动将代码变成Integer ir=Integer.valueOf(i);
		Integer ir=40;

Integer包装类有常量池的定义,整形常量池 -- 在Integer类加载时会创建一个整型常量池,里面存储了256个对象(值为-128~127)当值在这个范围中时,会直接使用常量池里的地址值,如果超出这个范围,Integer类将会在堆内存中创建相应对象

		Integer in=300;
		Integer in1=300;
		System.out.println(in==in1);

形参为Object类型的,实参为int基本类型也能传入,是因为int自动装箱变成Integer类型,然后向上转型成Object类型

//形参为Object类型的,实参为int基本类型也能传入,
是因为int自动装箱变成Integer类型,然后向上转型成Object类型
		m1(i);
	public static void m1(Object o) {
		System.out.println(o);
	}

       //也可以把纯数字字符串转换成Integer类型,使用下列方法
        Integer num=Integer.valueOf("234");
        Integer num1=Integer.parseInt("45");

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值