java 字符串 1_Java 字符串_1

本文详细探讨了数字与字符串之间的转换,包括valueOf()与toString()方法的使用,以及parseInt()和parseInt的区别。此外,还揭示了字符串常量池和对象引用的内存管理,以及处理字符串相等性和常见问题的策略。
摘要由CSDN通过智能技术生成

数字与字符串相转换

平时开发的时候经常会遇到需要将字符串转成数字或者数字转换成字符串的情况,这个知识点比较简单,所以大概的记录一下。

数字转字符串

数字转字符串主要有两个方法,直接调用valueof以及包装后调用toString的方法。

//调用valueOf这个方法,接收一个数字类型作为参数

//返回一个str。

int i = 5;

String str = String.valueOf(i);

System.out.println(str);

//这种方式先进行了装箱,再调用toString的方法

//返回一个str对象。

Integer it = i;

String str2 = it.toString();

System.out.println(str2);

字符串转数字

字符串转数字使用的是基本类类型的parseInt方法,查看源码可以,这个方法接收一个String对象,返回对象所表示的数字。

//调用类类型的parseInt方法转换成数字

String str3 = "123";

int ans = Integer.parseInt(str3);

System.out.println(ans);

valueOf和parseInt的区别

在字符串转数字中,valueOf与parseInt都是接收一个String对象,转成相应的数字,那这两个方法有什么区别呢?

查看源码:

public static Integer valueOf(String s) throws NumberFormatException {

return Integer.valueOf(parseInt(s, 10));

}

public static int parseInt(String s) throws NumberFormatException {

return parseInt(s,10);

}

从源码角度比较分析,可以发现这两个方法虽然都会得到int数据,但是过程是不一样的,valueOf返回的是一个Integer对象,在最后的赋值中会发生自动拆箱的操作。而parseInt则直接返回int数值,无需拆箱。所以一般在字符串转数字中,尽量使用parseInt。

字符串的一些问题

字符串是最频繁的交互方式,对于它的一些问题也需要搞清楚。

字符串是否相同?

字符串相同有两种理解,第一个是字符串字面值相同,第二是为同一个对象。

String str4 = "hello";

String str5 = new String("hello");

String str6 = "hello";

对于上面三个字符串而言,使用字面值方式定义的字符串,被放在字符串常量池中,后续的任何创建,都会先在池中检索是否已经存在该字面值对象,如果存在,则直接返回已有的字面值引用。所以str4和str6是相等的。

而str5使用了创建对象的方式,这种方式会首先在常量池中查找是否有这个字符串,存在,则直接返回字符串的引用。之后又有new,则会在堆上创建对象,并赋给str6引用。因此,会出现一行代码创建了两个对象。

常量池里是对象还是对象的引用?答案是对象的引用。记住,Java的对象都创建在堆上。

String、StringBuilder、StringBuffer

内容较多,这一部分放在了这个博客中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值