java(常用类)

一 、包装类基本概念:

Java在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。位于java.lang包下。
包装类均位于java.lang包,八种包装类和基本数据类型的对应关系如下表:
在这里插入图片描述

//基本类型转换为Integer对象
Integer in1=new Integer(10);
Integer in2=Integer.valueOf(20);//官方推荐使用

//integer对象转换为int
int a=in1.intValue();
//一些常见int类型的相关的常量
System.out.println("int能表示的最大整数:"+Integer.MAX_VALUE);

二、自动装箱和拆箱

自动装箱:基本数据类型处于需要对象的环境中会自动装箱。自动装箱调用的是valueOf()方法,而不是new Integer()方法。
自动拆箱:当需要一个值时,对象就会自动拆箱为值。自动拆箱调用的intValue()方法。

Integer a =234;//自动装箱, Integer a= Integer.valueOf(234);
int b=a;		//自动拆箱。编译器会自动修改为:int b=a.intValue();
 Integer c=null;
 if(c!=null) {
	int d=c; 
 }
 Integer c=null;
 if(c!=null) {
	int d=c; // 此处其实就是:c.intValue(),因此抛空指针异常。
 }

三、包装类的缓存问题

整型、char类型所对应的包装类,在自动装箱时,对于-128~127之间的值会进行缓存处理,其目的是提高效率。

 /**
 * 缓存,[-128~127]之间的数字,实际上就是系统初始的时候,创建了[-128~127]之间的一个缓存数组。
  * 当我们调用valueOf()的时候,首先检查是否在[-128~127]之间,如果在这个范围内则直接从缓存
  * 数组拿出已经创建好的对象,如果不在这个范围,则创建新的对象。
  */
 Integer in1=Integer.valueOf(-128);
 Integer in2=-128;
 System.out.println(in1==in2);//true 因为-128在缓存范围内
 System.out.println(in1.equals(in2));//true
 System.out.println("………………………………");
 Integer in3=Integer.valueOf(1234);
 Integer in4=1234;
 System.out.println(in3==in4);//false 因为1234不在缓存范围内,比较地址
 System.out.println(in3.equals(in4));//true

四、string类

1、String 类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为“不可变对象”。

String s1="Hello";
String s2=s1.substring(2,3);//输出l 对字符串的截取操作
//打印:42628b2
System.out.println(Integer.toHexString(s1.hashCode()));
//打印:6c
System.out.println(Integer.toHexString(s2.hashCode()));

2、字符串常量拼接时的优化

//编译器做了优化,直接在编译的时候字符串进行了拼接
		String str1="hello"+" java";//相当于str1="hello java";
		String str2="hello java";
		System.out.println(str1==str2);//true
		String str3="hello";
		String str4=" java";
		
		//编译器不知道变量存储的是什么,所以没办法在编译的时候优化
		String str5=str3+str4;
		System.out.println(str2==str5);//false

3、String类常用的方法

  1. String类的下述方法能创建并返回一个新的String对象: concat()、 replace()、substring()、 toLowerCase()、 toUpperCase()、trim()。

  2. 提供查找功能的有关方法: endsWith()、 startsWith()、 indexOf()、lastIndexOf()。

  3. 提供比较功能的方法: equals()、equalsIgnoreCase()、compareTo()。

  4. 其它方法: charAt() 、length()。
    5、StringBuilderStringBuffer常用方法
    5、StringBuilderStringBuffer陷阱
    五、时间类
    六、时间类
    SimpleDateFormat
    七、日历类
    八、math类
    九、Random类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值