java中变量运算细节 (2)

/*
目的:测试变量的运算方式
结果:byte a, b, c;a = b+c;或者 a = b+10形如这种形式的算式, 等式的右边的运算结果默认的都是int型的!因为等式右边有变量, 编译器无法确定变量的内容,因为它是变量!所以相加之后得到的int再默认强制转换成byte可能会损失精度.而形如 a=4+5;这种常量的赋值,虽然 4 和 5 都默认的是int, 但都是常量,它们的值是确定的!所以如果 4+5的值超过了byte的最大值的范围, 那就会编译出错!(也就是等式右边都是常量运算,编译器是可以判断的!)形如 byte a = 9, b=12;或者 a+=b; a+=10; 这样的赋值运算编译器底层都是做了强制转换运算的!也就是说 a+=b 等价于 a = (byte)(a+b); 而不是 a = a+b;
*/public class VarDemo{public static void main(String args[]){StringBuffer str =  new StringBuffer("a");String newStr = new String(str.append(1123));System.out.println(str.append(new myClass()));//这样写编译就是对的了!why?int a, b, c;b = 10;c = 14;a = b+c;int a1;byte b1, c1;b1 = Byte.MAX_VALUE;c1 = 34;a1 = b1+c1; System.out.println(b1 + " " + a1);/*这样写是编译错的!why?byte a3;byte b3;b3 = 12;a3 = b3 + 6; System.out.println(b3 + " " + a3);*/	/*这样写是编译却是对的!why?byte a3=4;byte b3;b3 = 12;a3 += b3; System.out.println(b3 + " " + a3);*/		   /*这样写编译是错的!why?byte av=100+200;*//*这样写编译就是对的了!why?byte a1;a1=4+5;*//*这样写编译是错的!why? 	   byte a1;byte b1, c1;b1=Byte.MAX_VALUE;c1=34;a1=b1+c1;*//*这样写是编译错的!why?short a2, b2, c2;b2=10;c2=34;a2=b2+c2;*/}
}class myClass{int x;String str;public myClass(){x=4234;str = new String("hujunzheng");}public String  toString(){return " " + x + " " + str;}
}

  

转载于:https://www.cnblogs.com/hujunzheng/p/3871945.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言设计二级考试程序修改题,全国计算机二级考试C语言复习题与答案解析

全国计算机二级考试C语言复习题与答案解析三、程序修改题下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数…

ccs变量观察窗口在哪_CCS3.3查看变量图形

CCS3.3查看变量图形首先声明,觉得ccs3.3中Graph并不是什么量都可以观察的,原因是跟断点有关,反正对于我的仿真器XDS510的是如此。即程序运行到断点处会有延时,对于普通信号可能没什么影响,但对于高频信号来说&#xff…

poj 2777(线段树的节点更新策略)

1 /*2 之前的思想是用回溯的方式进行颜色的更新的!如果用回溯的方法的话,就是将每一个节点的颜色都要更新3 通过子节点的颜色情况来判断父节点的颜色情况 !这就是TLE的原因!4 5 后来想一想没有必要 !加入[a, b] 区间有…

c语言计算机编程例题详解,计算机C语言编写程序题及答案解析精选.doc

计算机C语言编写程序题及答案解析精选2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315% 期限一年0.330% 期限二年月息利率 = 0.345% 期限三年0.375% 期限五年0.420% 期限八年要求输入存钱的本…

mfsort shell语法_Shell中字符串排序的几种方法

Shell中字符串排序的几种方法【方法一】按ASCII正向排序备注:1) tr将子字符串中的空白转换为换行符,再用sort排序2) sort无参的话,默认按ASCII正向排序【方法二】按ASCII正向排序备注:1) -r参数: 按ASCII码反向排序2) 在使用sort,uniq等组合命令时候【方…

java中并不是任意多个接口都可以实现多实现

interface A{public abstract void show(); }interface B{public abstract int show(); }public class Test implements A, B{public void show(){System.out.println("A show!");}/*只写 void show()出现的问题:Test不是抽象的, 并…

变形监测期末复习_寒假即将来临,中小学期末考试时间是什么时候?

2019年下学期也快结束,各个区的中小学考试时间安排已经公布了。今年,初二将首次进行全市统考,统考的意义重大,希望家长们可以督促孩子们重视起来,考出好成绩!下面,让我们来看一下2019下学期深圳各区中小学期…

c语言2048项目报告,c语言----项目_小游戏2048

2048 小游戏 主要是针对逻辑思维的一个训练.主要学习方面:1.随机数产生的概率.2.行与列在进行移动的时候几种情况.3.messagebox的使用#include #include #include #include using namespace std;int board[4][4] {0}; //二维数组int if_need_rand; //是否生成随机数int if_gam…

java中的显示初始化和特定初始化

public class Test{public static void main(String[] args){Child child new Child();} }class Parent{public Parent(){super();show();//this.show(); 因为是Child类对象调用了super()来构造其父类的部分;所以父类中的this(随着其构造方法入栈的)是指…

etl工程师 面试题_数据仓库工程师面试题笔试.doc

数据仓库工程师面试题姓名:____张小核______ 开始时间:_____:______ 结束时间:_____:_____数据库使用过哪些数据库?试说出它们的异同。答:使用过SQL SERVER和ORACLE它们的区别是:1.sql server 是中小型企业…

为什叫c语言,为什么c语言叫c语言?

1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。1973年初,C语言的主体完成。Thompson和Ritchie用它完全重写了UNIX。随着UNIX的发展&…

java中对象的初始化过程

class Parent{int num 8;// ->3Parent(){//super(); // ->2//显示初始化 // ->3//构造代码段 // ->4show(); // ->5}{// ->4System.out.println("Parent constructor code run->");}public void show(){//被覆盖System.out.println(&quo…

马斯克翻跟头机器人_马斯克又搞事情 用VR训练机器人模仿人类动作

据该公司的开发者介绍:“我们已经研发了一款新算法——单次模仿学法算法。” 人们先在VR中完成一次操作,随后机器人通过观看视频来模仿人类的行为。为了证明该算法,设计者进行了堆叠彩色方块实验。人类在VR环境中按顺序移动方块。机器人首先通…

c语言通过指针变量输出10个元素,C语言程序设计第2版指针程序设计(10页)-原创力文档...

C 语言程序设计 - 理论方法与实践(第 2 版) 7.4.1 简单指针变量作函数参数 例 7-9 用比较交换法 ,将一维数组的最 大值移到数组的最 末元素位置,交换 过程用上述 swap() 函数实现。 #include int main() { void swap(int *,int *); int i,a[10]{33,-12,9…

java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况

/* 样例1:class Parent{int num 3;}class Child extends Parent{int num 4;} *//* 样例2: class Parent{}class Child extends Parent{int num 4; } *//* 样例3: class Parent{void show(){System.out.println("Parent Show!");…

gddr6速率_Rambus展示18GT/s的GDDR6内存子系统:高频信号纯净度仍然非常好

Rambus最近展示了他们最新的GDDR6内存子系统,把传输速率提升到了18GT/s,而目前的市场上的GDDR6显存多为14GT/s,少数为16GT/s,18GT/s对于Rambus和GDDR6来说都是一个新的记录。在18GT/s的传输速率下,单颗位宽为32-bit的G…

桶排序算法c语言10个数组,桶排序算法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼//2.21 桶排序#include#include#define SIZE 100void bucket_sort(unsigned *,int);//桶排序函数的原型void print(unsigned *,int);//打印函数的原型int main(){unsigned array[SIZE];int i0;//为数组元素随机赋值for(i0;iarray[i…

diabetes影响因子2017_Journal of Diabetes

英文简介:Journal of Diabetes (JDB) devotes itself to diabetes research, therapeutics, and education. It aims to involve researchers and practitioners in a dialogue between East and West via all aspects of epidemiology, etiology, pathogenesis, ma…

java中泛型上限,下限应用

v 一.程序中无形之中用到的泛型import java.util.*; class Person implements Comparable<Person>{String name;int age;Person(){name "";age 0;}Person(String name, int age){this.name name;this.age age;}public String toString(){return name &quo…

株洲c语言培训机构,株洲好就业的学c语言程序设计,计算机专业地址

株洲好就业的学c语言程序设计衡阳市潇湘职业中等专业学校是由衡阳市教育主管&#xff0c;在衡阳校区的基础上设置的一所综合性全日制中等职业学校。坐落在国内优秀旅游城市、国内高新技术产业基地、名人辈出的全国历史文化名城-----衡阳市。我校依托长沙医校院&#xff0c;实现…