Java规范有这样的规则 [ 1.高位转低位需要强制转换 2.低位转高位自动转. ] short s1 = 1; s1 = s1 + 1;有什么错? 答: i 是int 型   s1 short型 通过 + 运算后s1 自动转为int 型   所以错! short s1 = 1; s1 += 1;有什么错? 答: 如果你认为表达式(x += i)只是表达式(x = x + i)的简写方式,这并不准确. 这两个表达式都被称为赋值表达式.(x = x + i)表达式使用的是简单赋值操作符(=),而(…
为什么写这篇文章是因为搜到的答案里并没有阐明s1 = s1 + 1为什么就要转换为int类型. 由一下实验可知: public class test { public static void main(String[] args) { short s1 = 1; s1+=1; // 获取1的数据类型并打印 class java.lang.Integer System.out.println(getType(1)); // 获取s1的数据类型并打印 class java.lang.Short Sy…
对于 short s1 = 1; s1 = s1 + 1;由于 s1+1运算时会自动提升表达式的类型,所以结果是 int型,再赋值给 short 类型 s1时, 编译器将报告需要强制转换类型的错误.对于 short s1 = 1; s1 += 1;由于 +=是 java 语言规定的运算符, java 编译器会对它进行特殊处理,因此可以正确编译…
有一行Java代码如下: String code1 = (String)qTable1.getValueAt(i, 0); 这是一个Java的图形界面获取表格中值的代码,其中qTable1.getValue(i, 0)是获取表格中i行0列的一个数据值,获取到的值是Short类型,但是我想让它变成我所需要的String类型,如果按照如上(String)强转的话,编译时不会报错,但是会造成运行时异常:java.lang.Short cannot be cast to java.lang.String…
Lshort started as a trans­la­tion and ra­tio­nal­i­sa­tion of a ground-break­ing Ger­man-lan­guage in­tro­duc­tion to LATEX. It has since taken on a mo­men­tum of its own, and has it­self been trans­lated into a num­ber of lan­guages. Thus we have in…
short s1=1;s1 = s1 +1会报错吗?    package common; public class ShortTypeTest { /* * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub short s1 = 1; s1 = (short) (s1 + 1);//简单类型 short s2=1; s2 +=1;//复合类型,复合赋值操作符+=,…
package common; public class ShortTypeTest { /* * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub short s1 = 1; s1 = (short) (s1 + 1);//简单类型 short s2=1; s2 +=1;//复合类型,复合赋值操作符+=, System.out.println(s1+";"…
昨天去面试,虽然体验不是很好, 但是看到了这个面试题,当时感觉无从下手,所以在这里记录一下. 解决这道题之前,先复习一下Java的基本数据类型转换规则,以便后面对面试题的理解. java的基本数据类型转换 自动类型转换:小–>大 byte-->short-->int-->long-->float-->double 强制类型转换:大–>小 小类型 变量名 = (大类型) 值 注意:自增/自减运算符.复合赋值运算符底层做了优化,内部自动强制类型转换: 如:++, --…
刚看到一面试题,题目是这样的:short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错? 初看之下就是s1=s1+1和s1+=1的区别.在开发中我们基本上是使用后一种方式,也不太去追究具体的区别,因为效果出来都是一样的,所以就会很自然的认为没什么区别.我一开始也就是这么认为,但是作为一道面试题总是有点用意的,如果没区别就不会拿出来了,于是我就有这种疑惑.有疑惑就解决嘛,细看一下,有个short,而1是int类型,那么应该是跟类型转换有关的了.那么具体是怎么转的呢…
问题:给定两个字符串s1和s2,要求判断s2是否能够被通过s1做循环移位(rotate)得到的字符串包含.例如,S1=AABCD和s2=CDAA,返回true:给定s1=ABCD和s2=ACBD,返回false. 看到 这里的一个思路 字符串移位包含的问题(编程之美) 引用原文 “   解法二:我们也可以对循环移位之后的结果进行分析. 以S1 = ABCD为例,先分析对S1进行循环移位之后的结果,如下所示: ABCD--->BCDA---->CDAB---->DABC---->AB…