English 中文(简体)
数据转换
原标题:Data conversion java
  • 时间:2009-10-21 18:15:34
  •  标签:
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 ,对此作了解释。

两种转换方式:扩大转换和缩小转换。 允许扩大转换,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,你想要这样做,并接受后果。 说这种混合型业务在完全不完善的方案拟订领域被占用,因为有可能会引起问题的边缘案例。





相关问题