为什么字符型的前面加上+就变成了int型的
答案:4 悬赏:70
解决时间 2021-02-12 17:38
- 提问者网友:紫柔同归
- 2021-02-11 22:25
为什么字符型的前面加上+就变成了int型的
最佳答案
- 二级知识专家网友:废途浑身病态
- 2021-02-11 22:32
java的基本型态中, 除了boolean外, 全都是数值型态, char也是数值型态的一种。而'+'用於单一数值型态的运算元时, 会将位元宽度小於int的数值, 自动转型为int, 例如byte, char, short等。
因此, java compiler会将+'i'转型为int型态, 并与System.out的println(int v)的方法系结(static binding)。利用像Eclipse的IDE工具进行执行追踨, 将可以验证此结果。或是执行下列程式也可以
public class CharConverteTest {
public static void main(String[] agrs) {
m(+'i');
}
private static void m(String string) {
System.out.println("引数是String型态");
}
private static void m(int i) {
System.out.println("引数是int型态");
}
private static void m(char c) {
System.out.println("引数是char型态");
}
}
因此, java compiler会将+'i'转型为int型态, 并与System.out的println(int v)的方法系结(static binding)。利用像Eclipse的IDE工具进行执行追踨, 将可以验证此结果。或是执行下列程式也可以
public class CharConverteTest {
public static void main(String[] agrs) {
m(+'i');
}
private static void m(String string) {
System.out.println("引数是String型态");
}
private static void m(int i) {
System.out.println("引数是int型态");
}
private static void m(char c) {
System.out.println("引数是char型态");
}
}
全部回答
- 1楼网友:桃花别处起长歌
- 2021-02-12 00:11
322%128=66。66刚好是b的ascii码,但不是b。ascii的范围是0~127,用字符输出时,大于127的数将会被取模。
- 2楼网友:狙击你的心
- 2021-02-11 23:12
输出的是“i”的ASCII码值,调用toString()方法。看看System.out.println();的源代码就知道了。jdk里有源代码。
- 3楼网友:统治我的世界
- 2021-02-11 22:59
在JAVA里
System.out.println('i');和System.out.println("i");是等效的;
System.out.println(+'i');
有加号,包装类中它会自动把'i'转成ASCII码中的105。如果前面加了字符,它则把i当字符看,例如:
public class Test {
public static void main(String[]agrs){
String s="abc";
System.out.println('i');
System.out.println(+'i');
System.out.println("i");
System.out.println(s+'i');
}
}
运行结果如下:
i
105
i
abci
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯