char c= c ;
int i=10;
double d =50;
long l=30;
String s="Goodbye";
这些说法是否有效?
s+=i;
i+=s;
c+=s;
c=c+i;
能够解释数据类型转换逻辑
char c= c ;
int i=10;
double d =50;
long l=30;
String s="Goodbye";
这些说法是否有效?
s+=i;
i+=s;
c+=s;
c=c+i;
能够解释数据类型转换逻辑
s += i) 压缩“10”,等于+=(Integer)i。
i += 不要认为这样做会奏效,不兼容的类型
c +=s also ben t edited, same, incompatiple categories。
c = c + i应当增加c的10倍,c)在c =>之后将成为第10 letter;m
EDIT。 因此,在最后一种情况下,你必须 i,以便汇编。
为什么不要让你尝试:
bash-3.2$ cat ConveraionTest.java
public class ConvertsonTest {
public static void main( String [] args ) {
char c= c ;
int i=10;
double d =50;
long l=30;
String s="Goodbye";
//Are these statement valid?
s+=i;
i+=s;
c+=s;
c=c+i;
}
}
bash-3.2$ javac ConversionTest.java
ConversionTest.java:12: incompatible types
found : int
required: java.lang.String
i+=s;
^
ConversionTest.java:13: incompatible types
found : char
required: java.lang.String
c+=s;
^
ConversionTest.java:14: possible loss of precision
found : int
required: char
c=c+i;
^
3 errors
http://www.ohchr.org。
长期历史
基本上,如果你要把 j瓦的所有类型称作“沙皮”的话,那就是一个“沙皮”。
对于<>原始>数据类型(豆、 by、 short、 in、浮、长、两倍)来说,“沙皮”是指其使用的 by体大小(或比照,此处为1英特 = 8比特):
boolean = true or false byte = 8 bits short = 16 bits char = 16 bits int = 32 bits float = 32 bits long = 64 bits double = 64 bits
<>objects的“shape”根据其类别而有所不同。
因此,基本上,只要符合“沙皮”的规定,你就可以把任何东西划给任何东西。
因此,你可以将<条码>int至long
(你可以把32条轨道与64条轨道相容)的简短(16)划入(32)等。
你们可以做的是分配一些与形状相适应的东西。
So
ConversionTest.java:12: incompatible types
found : int
required: java.lang.String
i+=s;
^
页: 1 你们会怎样? 内容如何? 他们不是同一个“沙皮”,甚至连一个兼容的。
缩略语
ConversionTest.java:13: incompatible types
found : char
required: java.lang.String
c+=s;
^
现在,你可以将一只(32个轨道)分配给一个果园(16个轨道)或一个短(16个轨道)。 问题在于,如果价值保持和大于16倍(例如131 071美元)。
你们会失去16个轨道不合适的轨道。 因此,你得出了这一错误:
ConversionTest.java:14: possible loss of precision
found : int
required: char
c=c+i;
但是,如果您确信其适合(例如:int i = 65;
,其中肯定适合16个轨道)的话,你可以cast/strong>,如:
int i = 65;
char c = ( char ) i;
• 给编辑说明:
www.un.org/Depts/DGACM/index_russian.htm
是的,没有,没有,也没有(除非你明确做一个播种)。 如果您拟写一个简单的<代码>main方法,并加以汇编和执行,你本可以看到这一点——这些问题应由汇编者确定。
http://docstore.mik.ua/orelly/java-ent/jnut/ch02_04.htm rel=“nofollow noreferer”>page on Java primitive data ,对此作了解释。
char c= c ;
int i=10;
double d =50;
long l=30;
String s="Goodbye";
s+=i; // legal :)
i+=s; // not legal :( The operator += is undefined for the argument types int, String
c+=s; // not legal :( The operator += is undefined for the argument types char, String
c=c+i; // not legal :( Type Mismatch: cannot convert from int to char
两种转换方式:扩大转换和缩小转换。 允许扩大转换,Java将为你处理,但不允许缩小转换。 扩大转换意味着你将“较小”价值,如“t”(32比值)改为“larger”价值,如长(62比值)。 还必须明确改变方向。
s+=i;
要求必须转换成允许的强食。
i+=s;
要求将“努力”转化为不允许的发明。 +=操作员将翻译成
i = i + s;
i+s将返回无法被分配到暗中的位置。
c+=s;
不能允许这样做,因为同样的原因,即c + 返回你试图派任的 Str。
c=c+i;
还将产生错误,因为c+i会导致星体(32个轨道)并将之分配给焦炭(16个轨道)可能造成精确性损失。
你所尝试的每一项行动实际上都是可能的,但你必须明确告诉 Java,你想要这样做,并接受后果。 说这种混合型业务在完全不完善的方案拟订领域被占用,因为有可能会引起问题的边缘案例。