常量,变量和运算符

常量,变量和运算符

1. 计算机中的数据存储

1.1 计算机中数据存储单位
计算机中最小存储单元是 字节 byte bit
	一个字节对应8个bit位,也就是8个二进制位
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024PB = 1EB

2017年 阿里巴巴 云栖大会 马云爸爸 得数据者得天下
用户画像
1.2 进制关系
十进制 十二进制 二十四进制 六十进制 七进制

开发中可能会使用到进制
	十进制
	二进制
	八进制
	十六进制
进制 基数范围 进制规则
十进制 0 ~ 9 逢十进一
二进制 0,1 逢二进一
八进制 0 ~ 7 逢八进一
十六进制 0 ~ 9 A ~ F 逢十六进一
Java中支持最大进制是多少?
	最大支持36 十个数字 + 26个字母 0 ~ 9 A ~ Z

十进制 
	118(10)
	十进制转换为二进制 使用计算器 
	118(10) = 0111 0110(2)
二进制
	1011 1110(2) == 190 也是使用计算器

八进制
	展示方式
	要求八进制数是以0开头
	0777 0666 
	0898 ×
	【注意】有一些无良的地方是没有这个0的
	真正会使用八进制的地方 Linux 操作命令给予文件权限【后面学习】
	[了解]八进制数一位对应二进制三位
	
十六进制
	展示方式
	要求十六进制数是以0x或者0X开头
	0x1234 0xabcd 0xABCD
	[了解]十六进制数一位对应二进制四位
	[了解]十六进制Java开发最常见的地方是【对象空间首地址】
1.3 原码,反码和补码[了解]
原码,反码和补码的使用是为了提高计算机的运算逻辑速度,降低计算机的逻辑复杂度。

使用正整数和负整数来演示原码,反码和补码

正整数:
	正整数的原码,反码和补码一致
	118(10) = 0111 0110(2)

负整数
	-118
	原码:
		对应正整数的原码,最高位表示符号位改为1
		0111 0110(2) ==> 1111 0110(2)
	反码:
		负整数的原码按位取反,但是符号号不变
		1111 0110(2) ==> 1000 1001(2)
	补码:
		反码 + 1
		1000 1001(2) + 1 ==> 1000 1010(2)
	
	0111 0110(2)
	1000 1010(2)
    0000 0000	==> 0

2. 常量【伪重点】

2.1 生活中的常量
一个小时60分钟
一分钟60秒
一年12个月
一周7天
四季

北国风光,千里冰封,万里雪飘... 
你 我 他 文字
A B C D

在生活中常量的概念很多,例如 文字,文本,固定数值...
开发来源于生活,最终反馈于生活
2.2 开发中使用的常量
整数
	正整数 1 2 3 4 5
	负整数 -1 -2 -3 -4 -5
	
小数(浮点数)
	3.1415926
	0.618
	11.11
	
真假关系(布尔类型)
	T True
	F False
	boolean 舶来品

字符
	'A' 'B' '1' '2' '你'
	'AB' ×
	[要求]
		英文【单引号】包含的【单个元素】
		
字符串
	"这是一个字符串!!!"
	"先帝创业未半,而中道崩殂"
	[要求]
		英文【双引号】包含的所有内容,都是字符串常量
2.3 字符常量
2.3.1 字符集
GB2312 老国标 支持中文简体字和一部分少数民族文字。
GBK 新国标 支持中文简体字和所有少数民族文字。
UTF-8 万国码,支持所有文字,也是开发中使用最多的编码集。
BIG5 中文繁体字编码,主要用于中国台湾,中国香港,中国澳门,新加坡
ASCII 美国什么什么什么标准协会制定的编码
	1. 英文字母中大写字母在前,小写字母在后
	2. 英文字母大小写并非连续存在,中间有6个标点符号
	3. 数字字符是从0 ~ 9
	4. 编码 0 ~ 31 或者说前32个字符是不可见字符

【强制要求】
	在开发中使用到字符,并且使用字符本身,不允许使用任何一个编码值!!!
	【数据类型一致化要求】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gNZ8Yexz-1581865112131)(.\img\标准十进制ASCII码表.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6WGoLhPe-1581865112133)(.\img\八进制ASCII码表.jpg)]

2.3.2 转义字符
在Java中存在一些字符是带有特定含义的
	'' "" 都是带有特定含义

将带有特定含义的字符转换为无意义字符
	\'
	\"
将无特定含义的字符转换为带有含义的字符
	\n 换行
	\t 制表符 Tab
2.3.3 来自2015年一个mdzz的面试官的面试题
请问:
	"\40"什么意思?
	" "
	这是一个空格
	
	\是转义字符
	\之后的数字是一个没有良心的八进制数
	\40是对应ASCII码八进制码表的sp
	man手册
	man ascii

写代码中请不要给你的小伙伴挖坑!!!

3. 变量【伪重点】

3.1 生活中的变量
体重,天气,温度,年龄,身高
银行卡余额 
头发

在过程中不断发生改变的量
3.2 代码中的变量
3.2.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
浮点型 占用内存空间大小 数据范围
float 4字节(32bit) ±3.4×10^38
double 8字节(64bit) 10^308
字符型 占用内存空间大小 数据范围
char 2字节(16bit) 能够保存中文
布尔类型 占用内存空间大小 数据范围
boolean 视情况而定 true false
3.2.2 Java中定义变量的格式【重点】
格式:
	数据类型 变量名 = 初始化数据;

数据类型:
	表示当前变量对应的具体数据类型是哪一个,也就确定了当前变量能够保存的哪一种数据类型。

变量名:
	操作当前变量使用的名字【命名规范】

=:
	赋值号。作用是把赋值号左侧的数据赋值给右侧的变量

初始化数据:
	对应当前变量的初始化数据。
3.2.3 变量使用出现的问题
1. 【数据类型一致化问题】
Demo3.java:15: 错误: 不兼容的类型: 从double转换到float可能会有损失
                float floatNumber = 0.618;
                                    ^
1 个错误
在Java代码运行过程中,会把所有的小数看作是一个double类型。
	a. 保证数据的精度问题
	b. 系统不在乎内存的浪费
这里需要告知Java编译器,0.618是一个float类型,在0.618之后加上一个大写F
改为:
	float floatNumber = 0.618F;

2. 【数据类型一致化问题】
在Java代码中给予long类型变量赋值常量,需要在给予的常量之后加上一个大写L,告知编译器这常量是一个long类型
	long longNumber = 10L;
	
3. 【字符常量使用强制要求使用字符本身,不允许使用对应编码】

4. 【Java中变量没有被赋值不能参与其他非赋值操作运算】
	为了避免遇到野值问题

5. 【Java中变量未定义不能使用】

【命名规范 重点】

标识符:
	Java开发使用到的程序员自定义名字,变量名,方法名和数据类型名

标识符命名规范
	AJCG 

标识符命名规范:
	1. 标识符要求能够使用的字符范围是英文字母(A ~ Z a ~ z),数字(0 ~ 9)和下划线 _
	2. 标识符要求使用英文字母开头
	3. 标识符严格区分大小写,Java中的强制要求
	4. 标识符没有严格的长度限制,但是会考虑实际的使用情况来约束标识符长度。
	5. 标识符要求【见名知意,动宾结构】
		img1.jpg img2.jpg img3.jpg img4.jpg img5.jpg ×
		banner.jpg logo.jpg
		
		int a,b,c,d,e,f,g; ×
		int age; 
		String name; 
		int ageOfStudent;
		
		int XueShengDeNianLing ×
		tsgly ×
		
		payTime
		payBeiZhu ×

		getStudentName getStudentAge getMathScore
		setStudentName setStudentAge setMathScore
		
	6. 标识符需要符合驼峰命名法或者下划线命名法
		驼峰命名法【常见】
			a. 小驼峰命名法
				要求标识符首字母小写,之后的每一个单词首字母大写
				iPhone iTouch iMax macOS 
				ageOfStudent getStudentName
				适用于:
					方法名和变量名
			b. 大驼峰命名法
				要求标识符每一个单词的首字节都是大写
				String Person FileUpLoad LoginFilter
				适用于:
					类名或者说接口名
					class FirstJava
					class Demo1 class Demo2
		下划线命名法: [后面在讲]
			DEFAULT_CAPACITY 带有名字的常量 默认容量
			
	7. 已经被Java占用的关键字和保留字不能用于自定义标识符使用
	
下个月12月4号开始,代码不按照规范来,俯卧撑安排一下~~

4. 运算符

4.1 算术运算符
+ - × ÷ ()
先乘除,后加减
有括号先处理括号内的内容
除数不能为0
从左至右运算

+ - * / % = ()
10 ÷ 4 = 2 …… 2

在操作符两边,各空一格,提高阅读性

偷懒专用
	+= -= *= /= %=
4.2 关系运算符
> < >= <= != ==
对外结果都是一个boolean类型
关系运算符一般用于条件判断,数据过滤...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章