java常用类

常用类

基本类型的包装类

八大基本类型:intshortlongbytedoublefloatcharboolean

基本类型的包装类:

基本数据类型与包装类之间的转换:

装箱:把基本数据类型转换成包装类型

拆箱:把包装类型转换成基本数据类型

//自动装箱
int a = 20;
Integer i = a;
//自动拆箱
int c = i;

常遇问题:吧String类型转换为其他数值类型

public class Demo {
    public static void main(String[] args) {
        String s = "1235468";
        Integer i = Integer.parseInt(s);//String类型转换为int类型
        Double d = Double.parseDouble(s);//String类型转换为double类型
        //其他数值类型同理  包装类型 类型名 = 包装类型.parse对应数据类型(String类型名)
        System.out.println(i);
        System.out.println(d);
    }
}

 

字符串

字符串的使用场景:后期对数据库的一系列操作与字符串密切相关

字符串一共有三种类:

  1. String

  2. StringBuffer

  3. StringBuilder

String类

String类成为不可变字符串

原因:在jdk源码中,String存储的字符串存储在char数组 value[]中, 这个数组使用final修饰, value的数组无法改变,String也就是一个不可变的字符串

例子:

String str = "abc";
​
str = "abc"+ "d";  

 

由上图,当我们创建一个String对象时,会在常量池中生成一个空间,里边存储了abc这个值,他是不可改变的,而str只是对abc字符串进行引用,当执行str = "abc"+ "d"; 时,常量池会产生三个空间分别存放字符串abcdabcdstr指向的地址由原来的abc空间的地址ox001变成了abcd空间的地址ox585。所以并没有对字符串abc的值进行了改变,知识改变的str的指向。

创建字符串

  1. 使用new关键字,构造方法

  1. 直接赋值

Stirng  变量 = 字符串常量对象;
列如:
public class Demo {
public static void main(String[] args) {
   String s = "1235468";
   System.out.println(s);
   
        }
}

 

字符串常量池String pool

创建的字符串都存在字符串常量池中

存放字符串的步骤:

  1. 在字符串常量池中查找是否已存在将要存放的字符串的空间

  2. 如果有,返回相应的字符串对象

  3. 如果没有,创建新的对象

字符串之间的比较

1)字符串1 == 字符串2:这种形式比较的是比较的是字符串的地址码

public static void main(String[] args) {
        String Str1 = new String("123");
        String Str2 = new String("123");
        System.out.println(Str1 == Str2);
    }

 

2)字符串1.equals(字符串2):这种形式比较的是字符串的内容

public static void main(String[] args) {
        String Str1 = new String("123");
        String Str2 = new String("123");
        System.out.println(Str1.equals(Str2));
    }

 

StringBuffer/StringBuilder

字符串类

String: 不可变的字符串, 频繁进行+操作, 在堆中创建String对象, 效率比较低, 频繁修改这个字符串, 第一个String不提供相关的方法, 原因: String是一个不可变的字符串, 效率低

对字符串进行频繁修改操作, jdk提供了StringBuilder/StringBuffer: 可变的字符串

StringBuffer与StringBuilder的区别:

StringBuffer是一个线程安全的, 所有的方法添加了synchronized关键字, 同步方法, 效率低

StringBuilder是一个线程不安全的, 所有方法都是非同步方法, 效率高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值