博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA语法细节(1)
阅读量:6422 次
发布时间:2019-06-23

本文共 1373 字,大约阅读时间需要 4 分钟。

1、变量的作用域

变量的作用域从变量定义的位置开始,到变量所在的那对大括号结束。变量定义内存开辟一块空间用于该变量,变量到达作用域时,该变量从内存中消失。

2、变量的数据类型

变量基本数据类型:byte、short、int、long、float、double、char、boolean 

byte	b = 3;short s = 4000;int x = 12;long l = 123l;         //定义的数据后需加‘l’代表定义的是long型变量float f = 2.3f;        //定义的数据后需加‘f’代表定义的是float型变量double d = 3.4;char ch = '1';boolean bl = true;
注意:Java中所有的常数默认都是int类型的数据,当定义byte  x=9;时,编译器自动检查所赋值是否超出定义的类型范围,若没超出范围正常定义,若超出范围,编译器报错,“可能会损失精度”。

变量的自动类型转换:

byte x = 1, m = 2;     //定义了一个byte型数据xint y = 2;             //定义了一个int型数据yy = x+m;     //自动将x+m的类型转换成int类型

变量的强制类型转换:

short a = 23;int b = 34;b = (int)a;

3、使用变量时需注意一些情况

byte a = 1;byte b = 2;b = a+b;
这种情况下编译器会报错,“可能会损失精度”。
int a = 1;int b = 2;b = a+b;
这种情况,编译器不会报错,能正常运行。这是因为在Java中两个byte型的数据相加如果两个数据比较大结果可能会超过buyte型变量的所属范围,编译器会提示可能会损失精度。而两个int型的数据相加,若超出范围则向前进位,但只取低32位的有效数据,所以编译器不会报错。

4、运算符a++,++a,+=

(1) 当a++,和++a单独存在时,这两个运算语句的结果是相同的,都相当于a = a + 1;

(2)当a++或++a参与运算时,结果就不相同了

class VarDemo2 {	public static void main(String[] args) 	{		int a = 1, b, c;		b = a++;		c = ++a;		System.out.println("a="+a+",b="+b+",c="+c);	}}
编译、运行后输出“a=3,b=1,c=3”,当a++参与运算时,b=a++这条语句执行时,内存中先开辟出一个临时变量存储a的值,然后运行a++,此时a的值为2,然后将a++的值(即开辟的临时变量的值)赋给b,运行c=++a;时,a自加一次,此时a的值为3,将a的值赋给c。

(3)+=是一个赋值运算符,

byte a = 9;a = a+1;

 
此时编译器报错,提示“可能会损失精度”,原因如上文所述。

byte a = 9;a += 1;
此时编译器不会报错,能正常运行,“+=”是一个赋值运算符,在赋值前会自动检查是否超出了作用范围。

转载于:https://www.cnblogs.com/myeden/p/6218300.html

你可能感兴趣的文章
技术助力第三次革命
查看>>
《HTML与CSS入门经典(第8版)》——2.6 总结
查看>>
新手指南:在 Ubuntu 和 Fedora 上安装软件包
查看>>
在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器
查看>>
《Python高性能编程》——2.2 Julia集合的介绍
查看>>
大型网站的 HTTPS 实践(二):HTTPS 对性能的影响
查看>>
《Swift 权威指南》——第6章,第6.10节嵌套函数
查看>>
《自己动手做交互系统》——1.3 本章小结
查看>>
Mobile devices bundled with malware?
查看>>
《JavaScript面向对象精要》——1.5 访问属性
查看>>
《Python数据可视化编程实战》—— 第 1 章 准备工作环境
查看>>
Android应用性能优化最佳实践.1.1 Android Studio的优势
查看>>
《设计模式解析(第2版•修订版)》—第2章 2.2节什么是UML
查看>>
【健康医疗】4步完成数据分析报表,让医疗数据转化为生产力
查看>>
【直播】APP全量混淆和瘦身技术揭秘
查看>>
10个大坑,当你产品上架AppStore会遇到
查看>>
【shell 脚本】两种登录方式
查看>>
echars 动态加载数据
查看>>
学习编程的方法
查看>>
升级linux自带的Python
查看>>