数据存储,常量和变量

数据存储,常量和变量

1. 数据存储

1.1 计算机中的常用数据存储单位
计算机最小存储单位 byte 字节
数据存储进制单位:
	Windows操作系统 1024
		1024 Byte ==> 1KB
		1024 KB ==> 1 MB
		1024 MB ==> 1 GB
		1024 GB ==> 1 TB
		1024 TB ==> 1 PB
		1024 PB ==> 1 EB
	硬件实际生产 和 macOS 系统中,进制单位 1000

马云爸爸 2017 云栖大会
	得数据者 得天下
	后期考虑用最小的数据,表示最多的信息。
1.2 数据表示的进制关系【了解】
生活中的常见进制:
	十进制,十二进制,二十四进制, 六十进制
开发中需要[了解]的进制:
进制 基数范围 进位关系
十进制 0 ~ 9 逢十进一
二进制 0, 1 逢二进一
八进制 0 ~ 7 逢八进一
十六进制 0 ~ 9, A ~ F 逢G(十六)进一
八进制:
	数据展示要求,开头为 0
	0777 0755 0711 
	但是 0 在特殊情况下可以省略

十六进制:
	数据展示要求,开头为 0x
	0xABCD 0xabcd 这两个数据完全一致,十六进制不区分大小写!
	0xFFFF 0x1234

所有的进制转换,全部交给计算器处理,提高效率。

2. 常量

2.1 生活中的常量
数值:
	整数: 10 20 30
	小数(浮点数): 3.14 0.618 11.11 12.12
文字:
	你 我 他
	A B C
	1 2 3
文本:
	"北国风光,千里冰封,万里雪飘,望长城内外,惟余莽莽...."

常量就是在生活中不可以改变的内容。
2.2 开发中对于常量分类
整数:
	1 2 3 4 5 -1 -2 -3 -4 -5 0
小数(浮点数):
	3.14 0.618 9.8 1998.99

真假关系(布尔类型):
	true false

字符:
	[重点] Java中的字符是使用英文单引号包含的单个元素
	'A' 'B' 'C' '1' '你'
字符串:
	[重点] Java中的字符串是使用英文双引号包含的所有内容
	"老马烧烤" "淼庄地锅鸡" "新疆拉条烧烤城"
// 常量演示
class Demo1 {
	public static void main(String[] args) {
		// 整数
		System.out.println(10);
		System.out.println(20);
		System.out.println(-10);
		System.out.println(-20);
		
		// 浮点数
		System.out.println(3.14);
		System.out.println(0.618);
		
		// 布尔类型
		System.out.println(true);
		System.out.println(false);
		
		// 字符类型
		System.out.println('A');
		System.out.println('B');
		System.out.println('C');
		
		// 字符串
		System.out.println("老马烧烤,京广路保全街交叉口向东350米路北");
	}
}
2.3 字符常量
2.3.1 编码集
常用编码集:
	GBK 新国标,包含中文简体字和所有少数民族文字
	GB2312 老国标,包含中文简体字和一部分少数民族文字
	BIG5 中文繁体字编码集,主要用于 中国台湾省,中国香港,中国澳门,新加坡
	UTF-8 万国码,目前开发中使用最多编码集
	ASCII 美丽国XXX标准协会制定编码

开发使用字符要求:
	1. 字符有且只允许使用字符本身,不允许使用对应编码值。【数据类型一致化】
	2. 编码集中 0 ~ 31 编码为不可见字符
	3. 大写字母编码值小于小写字母,并且大写字母和小写字母编码中间相隔其他字符
	4. 数字字符是从 0 ~ 9
	5. 编码值不允许直接使用!!!

2.3.2 转义字符[仅了解]
\ 是转义字符标记,带有特殊含义
    转无意义
        \' \" \\ \\\\
        tips: 转义字符有且只可以处理 \ 之后的第一个字符

    转有意义
    	\n 回车换行
    	\t 制表符
2.3.3 面试题
请问:
	\40 是什么???
	知识点:
		1. \ 之后的数值要求为 八 进制
		2. 八 进制在 \ 之后可以省略标记 0
		3. \40 是对应编码为 32 的 sp 空格
	
	只用于对暗号,不允许面试别人!!!

3. 变量

3.1 生活中什么是变量
生活中变量的特质:
	1. 变量有名称
	2. 变量有一定的单位,并且有一定取值范围
	3. 变量需要一定的容器概念
3.2 Java中定义变量的格式
基本格式:
	数据类型 变量名 = 初始化数据;

数据类型:
	明确当前变量的数据类型,开发中需要选择合适的数据类型。
变量名:
	见名知意,按照规范定义,并且在一定范围以内唯一	
=:
	将赋值号右侧的数据,赋值给左侧的【变量】
初始化数据:
	根据程序所需,数据类型所需,选择合适的初始化数据进行赋值操作。
3.3 基本数据类型 【重点】
3.3.1 整型
数据类型 占用内存空间大小 数据存储范围
byte 1字节(8bit) -128 ~ 127
short 2字节(16bit) -32768 ~ 32767
int 4字节(32bit) -2^31 ~ 2^31 - 1
long 8字节(64bit) -2^63 ~ 2^63 - 1
3.3.2 浮点类型
数据类型 占用内存空间大小 数据存储范围
float 4字节(32bit) 10^38
double 8字节(64bit) 10^308
3.3.3 布尔类型
数据类型 占用内存空间大小 数据存储范围
boolean 视情况而定 true false
3.3.4 字符类型
数据类型 占用内存空间大小 数据存储范围
char 2字节(16bit) 可以存储中文
3.4 定义变量
// 变量定义演示
class Demo3 {
	public static void main(String[] args) {
		/* 
		整型变量定义 
		基本格式:
			数据类型 变量名 = 初始化数据;
		*/
		byte byteNumber = 10;
		short shortNumber = 20;
		int intNumber = 30;
		long longNumber = 500L;
		
		System.out.println(byteNumber);
		System.out.println(shortNumber);
		System.out.println(intNumber);
		System.out.println(longNumber);
		
		// 浮点型变量定义
		float floatNumber = 3.14F;
		double doubleNumber = 3.14;
		
		System.out.println(floatNumber);
		System.out.println(doubleNumber);
		
		/* 
		字符类型变量定义
		【强调】字符类型有且只允许使用字符本身,不允许操作编码值
		ch ==> character 字符
		*/
		char ch1 = 'A';
		char ch2 = '你';
		
		System.out.println(ch1);
		System.out.println(ch2);
		
		/*
		布尔类型变量定义
		ret ==> result 结果
		*/
		boolean ret1 = true;
		boolean ret2 = false;
				
		System.out.println(ret1);
		System.out.println(ret2);

	}
}
3.5 变量定义问题
3.5.1 float 类型变量赋值问题
Demo3.java:20: 错误: 不兼容的类型: 从double转换到float可能会有损失
                float floatNumber = 3.14;
                                    ^
1 个错误

解释:
	在计算机中为了保证数据类型精度和存储的完整性,小数(浮点数)常量默认采用的数据类型存储方式为 double。使用 double 类型的常量赋值一个 float 类型变量,会导致数据精度丢失同时数据存储完整性也存在影响。

解决方案:
	明确告知计算机当前常量为 float 类型。在常量之后加上【大写 F】
	float floatNumber = 3.14F;
3.5.2 long 类型变量赋值建议
	Java 代码中整数默认选择数据类型为 int 类型,我们建议在给予 long 类型变量赋值的过程中,选择常量标记
【大写 L】。明确告知计算机当前常量为 long 类型。
案例:
	long longNumber = 500L;
3.5.3 变量未赋值不能使用
Demo4.java:5: 错误: 可能尚未初始化变量num
                System.out.println(num);
                                   ^
1 个错误	
	Java 中规定,变量在未赋值的情况下,不可以参与除赋值之外的其他语句操作。
3.5.4 变量未定义不能使用/拼写错误出现情况
Demo4.java:7: 错误: 找不到符号
                System.out.println(nmu);
                                   ^
  符号:   变量 nmu
  位置: 类 Demo4
1 个错误
3.5.5 字符类型常量有且只允许使用字符本身
4. 阿里巴巴Java开发规约
4.1 注册邮箱
163邮箱为例,要求用户名/邮箱名
	6 ~ 18个字符,可以使用英文,数字和下划线,并且要求英文开头
4.2 标识符命名规范
标识符有哪些内容
	变量名,方法名,类名,接口名,程序员自己定义的名字。

1. AJCG规定,标识符有且只可以使用 英文字母(A ~ Z a ~ z), 数字(0 ~ 9),以及唯一可以使用的标点符号下划线(_)
2. AJCG规定,标识符要求英文字母开头,不允许其他字符开头
3. AJCG规定,标识符严格区分大小写,大写和小写含义不同。
4. AJCG规定,标识符没有严格的长度限制,会根据实际情况限制标识符长度。
5. AJCG规定,标识符要求做到【见名知意,动宾结构】
	例如:	
		错误案例:
			int a,b,c,d,e,f,g; 
		正确案例:
            studentAge studentName studentScore studentGender
            getStudentAge setStudentAge 
6. AJCG规定,推荐采用驼峰命名法和下划线命名法
	驼峰命名法
		小驼峰
			要求首字母小写,之后的每一个单词首字母大写
			适用于: 变量名,方法名
			iPhone iMac iTouch iPod iPad
			studentAge studentName studentScore studentGender
            getStudentAge setStudentAge 
		大驼峰
			要求所有单词首字母大写
			适用于: 类名,接口名
			Demo1 Demo2 Demo3
			FirstJava BufferedOutStream ArrayIndexOutOfBoundsException
	下划线命名法
		所有字母全部大写,使用下划线分割
		MAX_VALUE MIN_VALUE MAX_ARRAY_SIZE DEFAULT_CAPACITY
		NORMAL_PRIORITY
7.AJCG规定,已经被 Java 占用的关键字和保留字不得用于自定义标识符使用。
	变色都不能用!!!
		int int = 10; 不允许!!!
posted @ 2022-02-26 14:09  qtyanan  阅读(339)  评论(0编辑  收藏  举报