常量,变量和运算符
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类型
关系运算符一般用于条件判断,数据过滤...