java程序String类型作为参数的问题

一般来说,java里面A类调用B类的方法,并传递参数X()类型,因为通常实参是一个对象的引用,所以在B类的方法中修改传来的参数,在A类的原型也会发生变化。但我试过当实参为String类型时,在B类修改传入参数不会对A类的原型产生影响。为什么?除了String类型还有其他类型是这样的吗?
第一行X()类型应该是X(类型),开始写错了

推荐于2017-11-24
很高兴看到你的问题,我刚学Java那会也一直有这个疑问,前段时间我写了篇关于String的文章,其中有一段是解释这个问题的,希望你能明白。内容如下:
记得刚学习参数方法的时候有一个问题一直困扰着我:就是引用类
型的参数,经过方法修改后可以保留修改,也许我描述的不是很明确,看看代码:
public static void main(String[] args) {
String str = “abc”;
appendStr(str);
System.out.println(str);
}
private static void appendStr(String str){
str += “def”;
}
运行结果是“abc”而不是我想要的“abcdef”,不是说String是引用类型吗,怎么会这样?我想是不是String str = “abc”; 的问题,我就换成了这样:String str = new String(“abc”); 可还是一样。
解惑:
首先String是一个不可变类型,也就是说从声明那一刻起内存大小是固定的不可改变的,那么str += “def”; 这行代码背后又有什么不可告人的秘密呢?既然说了String是不可变的,你还愣是给加一个“def”,没办法JVM只能再开辟一块新的内存,把“abcdef”放进去,然后把新的地址给了str(appendStr方法中的),如果你在appendStr方法中输出str的值肯定是“abcdef”,也就是说appendStr方法中根本就没有改变初始存放“abc”那块内存的值(当然它想改也改了),当这个方法返回时main方法中的str依然是那个没修改前的引用,当然还是输出“abc”了。

### 回答1: 要将一个 String 类型的变量转换为 int 类型,可以使用 Integer 类的 parseInt 方法。例如: ``` String str = "123"; int num = Integer.parseInt(str); ``` 在上面的代码中,将字符串 "123" 转换为整型数值并赋值给变量 num。注意,如果字符串不能被解析为整数,会抛出 NumberFormatException 异常,因此在实际应用中需要进行异常处理。 ### 回答2: 在Java中,可以使用Integer类的parseInt方法将String类型变量转换为int类型。 示例代码如下: ```java String str = "1234"; int num = Integer.parseInt(str); System.out.println(num); // 输出:1234 ``` 在这个例子中,将字符串变量`str`的值"1234"转换为整数类型`num`。使用`Integer.parseInt`方法可以将字符串解析为一个整数,并将其赋值给指定的变量。如果字符串无法被解析为一个有效的整数,会抛出`NumberFormatException`异常。 需要注意的是,如果字符串中包含非数字字符,则无法成功转换为整数。例如,将字符串"abc"转换为整数会抛出`NumberFormatException`异常。 另外,还可以使用`Integer.valueOf`方法将String类型变量转换为Integer对象。然后,可以调用Integer对象的`intValue`方法获取对应的int值。 示例代码如下: ```java String str = "5678"; Integer intValue = Integer.valueOf(str); int num = intValue.intValue(); System.out.println(num); // 输出:5678 ``` 这里,将字符串变量`str`的值"5678"转换为Integer对象`intValue`,然后通过调用`intValue`方法获取对应的int值并赋值给`num`变量。 ### 回答3: 要将string类型变量转换为int类型,可以使用Integer类的静态方法parseInt()。这个方法接受一个字符串作为参数,并返回对应的整数值。 具体步骤如下: 1. 首先,将要转换的字符串定义为一个变量,例如String str = "123"。 2. 然后,使用Integer类的静态方法parseInt()将字符串转换为整数值,例如int num = Integer.parseInt(str)。 3. 转换完成后,整数值num就可以在后续的代码中使用了。 需要注意的是,如果要转换的字符串不是一个有效的整数,会抛出NumberFormatException异常。因此,在进行转换之前,最好进行异常处理,以避免程序崩溃。可以使用try-catch语句捕获异常,如下所示: try { int num = Integer.parseInt(str); // 在这里处理转换后的整数值 } catch(NumberFormatException e) { // 处理转换失败的情况 System.out.println("字符串不是一个有效的整数"); } 需要注意的是,parseInt()方法只能将字符串转换为int类型的整数值。如果要将字符串转换为其他类型的整数,例如long、float、double等,可以使用相应类型的静态方法,例如Long.parseLong()、Float.parseFloat()、Double.parseDouble()等。 总结一下,要将string类型变量转换为int类型,使用Integer类的parseInt()方法即可。为了防止转换失败,最好进行异常处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值