首先这段代码没有发全
创新互联建站是一家集网站建设,东至企业网站建设,东至品牌网站建设,网站定制,东至网站建设报价,网络营销,网络优化,东至网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
片段代码总体意思是模拟了两个数相加,输出结果
private void calculation(String a, String b){ //定义一个私有方法calculation有两个参数 a和b 两个参数的类型为String字符串类型
double v1 = Double.parseDouble(a); //定义一个double类型变量v1,将a变量转换成double类型(double双精度数字类型)赋值给v1
double v2 = Double.parseDouble(b); //定义一个double类型变量v2,将b变量转换成double类型(double双精度数字类型)赋值给v2
double v=0; //定义一个double类型变量v,初始值为0(这里java在编译后应该是double v=0.00D)
switch(op){ //JAVA中的switch函数(方法)参数是op【这里应该是有输入才对,该变量在代码中是有误】
case '+': //当传入的参数op为‘+’执行以下代码即两数相加,并将参数a,b置空
v = v1 + v2;
exit = '0';
a = b = null;
op = 'n';
break;
}
}
首先0x7FFFFFFF就是Java里面整形变量的最大值了,你可以看看Integer.MAX_VALUE,"0x7FFFFFFF
*
2.0"是,Java会把结果当做double型,因为double型的数值范围比int大,所以得到的是数学上正确的结果,然后强制转换我int就是Integer.MAX_VALUE了,第一个表达式为true;第二个里面"0x7FFFFFFF
*
2"会被认为是int型,因为0x7FFFFFFF和2都是合法的int,所以就是发生数值的溢出(int)(0x7FFFFFFF
*
2)就被算成-2了,你如果把第二个的结果显式制定为double型,得到的结果也是true:
double
d
=
0x7FFFFFFFL
*
2;//加L指定为long型
System.out.println((int)(0x7FFFFFFF
*
2.0)
==
(int)
d);
第三个因为数值比较小,所以是true。
public static void main(String[] args) {
int rows = 10;
for(int i =0;irows;i++) {//打印行
int number = 1;
//打印空格字符串
System.out.format("%"+(rows-i)*2+"s","");
for(int j=0;j=i;j++) {//打印每一行得数字
System.out.format("%4d",number);//打印当前数字
number = number * (i - j) / (j + 1); //计算下一位数字
}
System.out.println();//换行
}
}