程序设计的一些原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序设计的一些原理相关的知识,希望对你有一定的参考价值。
一: 自曾自减原理
class VarDemo { public static void main(String[] args) { int x = 30; x = x++; System.out.println(x); } }
结果: 30
内存中计算实现的过程
temp = x => temp =30
x = x + 1 => x = 31
x = temp => x =30
注: 第一步编译器发现是 x++;所以会把x先转到temp临时内存中,然后x++实现了x=31, 然后将x++赋值给x, x=temp
换成
x = ++x
内存中实现过程是:
x= x + 1 x => 31
x = x x => 31
二: 自动转换数据类型和强制转换类型
byte x = 30;
x = x +4;
以上会报错,解释:
第一步:
byte x =30;实现的过程是,将int型的30赋值给byte类型的时候,java编译器底层会做,强制转换,(如果int型的整数能放入byte类型的话)将30转换成为byte类型(否则报错),在赋值给byte类型的变量x。
第二步:
x是byte类型 + int类型的4,因为x是变量,底层无法判断x+4是否能正确的转换到byte类型,所以报错
E:\java3200\day002>javac VarDemo2.java
VarDemo2.java:4: 错误: 可能损失精度
x = x +4;
^
需要: byte
找到: int
1 个错误
但可以强制进行转换:
x = (byte)(x +4);
三:x+=5; 是否等于 x = x+5
解答:
byte x = 30;
x+=5;
以上不会报错,以上只有赋值一个步骤。
byte x = 30;
x = x +5;
这个会报错,报错的原因就是第二种情况,类型自动转换不了!以上有先计算x+5 在赋值的两个步骤
四: 双与和单与的区别(java中)
&&
&
两种的区别是,逻辑运算的结果一样,但是过程不一样
&& 当左边的执行结果为false的时候,右边不参加运算
& 无论左边为何结果,右边都会运算
综合以上,&&的效率更高,但是有时候要得到与结果,接右边一定要参加运算的情况,要使用单与
单与还有一个作用在位运算(6&3)结果 2
0000-0000 0000-0000 0000-0000 0000-0010
本文出自 “崔德华运维打工从业路” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1790660
以上是关于程序设计的一些原理的主要内容,如果未能解决你的问题,请参考以下文章