-
003-Java中的变量和数据类型
一、变量
1、什么变量
变量就是内存中存储数据的最基本的单元,相当于一个存储数据的盒子;
2、变量的三要素
- 变量的数据类型;
- 变量的名字;
-
变量中保存的值;
3、变量的命名规范
变量属于标识符,命名是首字母小写,后面每一个单词首字母大写,遵循驼峰命名原则,见名知意;
4、变量的分类
- 在方法体当中声明的变量:局部变量;
-
在方法体之外,类体内声明的变量:成员变量;
5、变量的作用域
- 什么是作用域:变量的有效范围;
- 变量的作用域:出了大括号就不认识了;
-
就近原则:哪个离我近,我就访问谁;
6、变量的注意事项
- 变量必须先声明,再赋值才能访问,不然报错如下:
2. 在同一个域中,变量不能重新声明,变量名不能重复,否则会报错,但是变量可以重新赋值;
3. 一行上可以同时声明多个变量;
二、数据类型
1、什么是数据类型
Java语言当中任何数据都是有数据类型的,其中整数型是int、字符型是char等等
2、数据类型有什么用
不同的数据类型,在内存中分配的空间大小不一样。也就是说,Java虚拟机到底给这个数据分配多大的空间,主要是看这个变量的数据类型,根据不同的类型,分配不同大小的空间。
3、数据类型的分类
-
第一种:基本数据类型
-
整数型:byte(一个字节)、short(两个字节)、int(四个字节)、long(八个字节);
- 整数型的“字面量/数据”默认被当做int类型处理,如果希望该“整数型字面量”被当做long类型来处理,需要在“字面量”后面添加L/l;
-
浮点型:float(4个字节)、double(8个字节);
- float是单精度,double是双精度所以double更加精确;
- float和double存储数据的时候都是存储的近似值;
- 任意一个浮点型都比整数型空间大,float容量 > long容量;
- 任何一个浮点型数据默认被当做double来处理,如果想让这个浮点型字面量被当做float类型来处理,那么请在字面量后面添加F/f;
-
布尔型:boolean,一个字节,Java中的boolean类型只有两个值:true、false;
- 使用在逻辑判断当中,通常放到条件的位置上(充当条件);
- 布尔型不能转换为其他类型,不然会报错。
-
字符型:char,一个字节;
- chart采用的是Unicode编码;
- chart类型的字面量使用单引号括起来
-
chart可以存储一个汉字
-
整数型:byte(一个字节)、short(两个字节)、int(四个字节)、long(八个字节);
-
第二种:引用数据类型
-
除了基本数据类型之外,其他的都是引用数据类型;
-
除了基本数据类型之外,其他的都是引用数据类型;
4、数据类型的相互转换
- 八种基本数据类型中,除了boolean类型不能转换,剩下的七种类型之间都可以进行转换;
- 如果整数型字面量没有超出byte,short,char的取值范围,可以直接将其赋值给byte,short,char类型的变量;
- 小容量向大容量的转换成为自动类型转换,容量从小到大的排序为:byte < short(char)< int < long < float < double,其中short和char都占用两个字节,但是char可以表示更大的正整数;
- 大容量转换为小容量,成为强制类型转换,编写是必须添加“强制类型转换符”,但是运行时可能会出现精度损失,谨慎使用;
- byte,char,short类型混合运算时,先各自转换为int类型再做运算;
-
多种数据类型混合运算时,各自先装换为容量最大的那一种再做运算(要先排除第五中情况)
5、数据类型的取值范围
原文:https://www.cnblogs.com/yunlixzm/p/jichu03.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比