趣味Java

已有 77 次阅读2017-5-23 20:58 |个人分类:趣味Java| Java 静态变量, 实例变量, short, final

1.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错

对于short s1 = 1;s1 = s1+1;由于s1+1运算会自动提升表达式的类型,所以结果是int类型,再赋值给short类型s1时,编译器需要将报告强制类型转换的错误
对于short s1 = 1;s1+=1;由于+=是Java语言规定的运算符,Java编译器会对它进行特殊处理,因此可以正确编译。

2.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变

是引用变量不能变,但是引用变量所指的对象中的内容还是可以改变的。

例如:final String f = new String("132");

f = new String("123");执行这条语句是会报错的。

f.append("brokend");执行这条语句不会报错


3.静态变量和实例变量的区别?

在语法定义上的区别:静态变量前要加static关键字,而实例变量则前不加。
在程序运行时的却别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量
静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用穿件任何实例对象,静态变量就会分配空间,静态变量就可以被使用了
总得来说:就是一个必须创建对象。才会被分配空间,才可以访问。而另外一个,通过类就可以访问静态变量

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright;  ©2015-2017  知了堂学习社区  Powered by  知了堂Edu!     ( 蜀ICP备16011312号-1 )