三 Java详细基础(关键字 标识符 进制 码表 引用 字面值 引用)

	## 关键字

概述:被java赋予特定含义单词
class:定义类
public:表示权限公共的

在这里插入图片描述
注意:
1、关键字都是小写的
2、在开发工具例如eclipse idea对于关键字由特殊标识
3、goto const是特殊的关键字,又称为保留字;目前还没有特殊含义;

标识符

概念:给类 接口 方法 变量 常量等起名字的字符序列
组成规则:必须遵守,如果不满足则编译会报错
1、英文大小写字母,中文汉字 HelloWorld
2、数字 Demo1
3、$ _

注意:
1、除了以上三类其他字符都不能用于组成标识符
2、不建议使用中文汉字
3、数字不能开头也不能单独使用
4、$ _有特殊的场景 不建议随便使用
5、标识符不能和关键字冲突
6、Java严格区分大小写

组成规范:建议遵守,如果不满足仍然可以正常执行
为了提高程序的可读性
见名知意 Person Animal Dog
驼峰规则
小驼峰:
从第二个单词开始首字母大写
方法:main addUser queryUserById queryUserByNameAndPasswd

变量: age idCard

大驼峰:
每个单词首字母都要大写
类:HelloWorld Demo
接口 枚举

进制

概念:
计数时进位的机制
分类:
十进制 二进制 八进制 十六进制

十进制:满十进一 0-9
0 1 2 … 9 10 11 12 … 19 20 …

二进制:满二进一 0、1
0 1 10(2) 11(3) 100(4) 101(5) 110(6) 111(7)…

八进制:满八进一 0-7
0 1 2… 7 10(8) 11(9) 12(10)…

0:000
7:111

十六进制:满十六进一 0-9 a-f(A-F)
a(10) b(11) … f(15) 10(16) 11(17) 12(18)… 19 1a 1b…

十进制和二进制:
十进制-》二进制:
在这里插入图片描述

总结:
将十进制数不停的除2取余,直到商为0,将余数反转组合,即得到对应的二进制数;

练习:
8-》1000
15-》1111
在这里插入图片描述

二进制-》十进制:
在这里插入图片描述

总结:
二进制每一位上的数字乘以2的相应的幂次并求和,得到的就是十进制数

幂次:
从最低位-》最高位 +1
最低位:最右边 0
最高位:最左边 位数-1

二进制和八进制转换:
三位二进制数组成了一位八进制数
二进制-》八进制:

二进制:11101
011 101
3 5

八进制:35

总结:将二进制数从最低位开始三位一组,如果不足三位,在左侧补0;将每一组转为0-7中的某一个数,将转换完的数字组合即得到八进制数

八进制-》二进制:

八进制:35

3 5

011   101

二进制:011101—11101

总结:将八进制数的每一位的数字转为三位二进制数,如果不足三位,左侧补0,按照顺序组合即得到二进制数,组合之后最左侧的0 可以省略

二进制和十六进制转换:

四位二进制数组成了一位十六进制数

二进制-》十六进制:

二进制:11101

0001 1101

1 d

十六进制:1d

总结:将二进制数从最低位开始四位一组,如果不足四位,在左侧补0;将每一组转为0-9 a-f中的某一个数,将转换完的数字组合即得到十六进制数

十六进制-》二进制:

十六进制:1d

1 d

0001 1101

二进制:00011101—11101

总结:将十六进制数的每一位的数字转为四位二进制数,如果不足四位,左侧补0,按照顺序组合即得到二进制数,组合之后最左侧的0 可以省略

扩展:

2^0=1 2^1=2 2^2=4 2^3=8 2^4=16 2^5=32

2^6=64 2^7=128 2^8=256 2^9=512 2^10=1024

67=64+3=64+2+1

=126+1*21+12^0

=126+0*25+024+0*23+022+1*21+12^0

=1000011

129=128+1

=10000001

二进制的单位

计算机上的数据存储都是基于二进制的;

无论是图片 音频 视频 字符等都需要转为二进制来存储;

bit:比特位 二进制位

0 1

一位二进制

Byte:字节

1Byte=8bit

00000000->0

11111111->255

共256个可能性

KB:1KB=1024Byte 2^10=1024
MB:1MB=1024KB
GB:1GB=1024MB
TB:1TB=1024GB
PB:1PB=1024TB
大数据处理的量级最少在上百GB

码表 字符编码

字符在计算机中都需要转为二进制来进行存储和计算
需要将字符和整数编码进行映射,存储和计算都是使用该字符的整数编码值;

ASCII:
早期码表
英文大小写字母 数字 常用字符等
占用一个字节来存储一个字符
a:97

GB2312:
中国的码表
兼容ASCII码表
加入了常用的中文汉字字符
占用两个字节来存储一个字符

GBK:
兼容ASCII码表
增加了更多的中文汉字字符
占用两个字节来存储一个字符
Windows系统是中国版本的 则默认码表就是GBK

Unicode编码规则:
兼容ASCII码表
几乎包含了全世界的字符
规定了每个字符和整数值的映射关系,但是没有指定使用多少个字节来存储一个字符

UTF-16:
基于unicode编码规则实现的
使用两个字节来存储一个字符
能表示的字符数较少但是占用的空间较小

UTF-32:
基于unicode编码规则实现的
使用四个字节来存储一个字符
能表示的字符数较多但是占用的空间较大

UFT-8:
基于unicode编码规则实现的
变长的字节数来存储字符
常用的字符 1个字符使用1个字节来存储
较为常用的字符 1个字符使用2个字节来存储
一般常用的字符 1个字符使用3个字节来存储
不常用的字符 1个字符使用4个字节来存储

建议项目中最好使用UTF-8
其中,中文汉字一个字符占用3个字节

乱码问题:
编码:字符转为二进制的过程
解码:将二进制转为字符的过程
编码和解码使用的码表不一致

以下案例中,编码使用的是UTF-8码表,一个中文汉字占用3个字节;解码时则使用的时GBK的码表,一个中文汉字占用2个字节;

案例:

GBK 2个字节
11011101 10111010
01101000

UTF-8 3个字节
人:11011101 10111010 01101000

ANSI:
当前系统的默认码表

字面值

在Java程序可以直接使用的值称为字面值,又称为直接量

分类:
数值型字面值
字符型字面值
字符串字面值 :“Hello World”
布尔型字面值

数值型字面值:
在这里插入图片描述

整数:100 88 -50
不同进制:
二进制:0b10
八进制:010
十六进制:0x10
也支持大写
在这里插入图片描述

浮点数:小数
1.5 1.22223
+0.5
-0.02

字符型字面值:
通过一对单引号引起来的一个字符
在这里插入图片描述
在这里插入图片描述

‘a’ ‘A’ ‘+’ ‘中’ ’ ’

转义字符:
在这里插入图片描述

格式:\字符
’ --’
\-- \
\t – 制表符 缩进对齐
\r–回车
\n–换行
不同操作系统回车换行对应的转义字符不同
在Windows中通常\r\n表示回车换行
在这里插入图片描述

字符串字面值
通过双引号引起来表示多个字符
“hello”
“\r\n” 表示换行
“a”–字符串
‘a’–字符
" "–空字符串

布尔型字面值
对 正确的 true
错误的 false
在这里插入图片描述

补充知识点:
System.out.println(“hello”);–先输出hello字符串,再输出换行
System.out.print(“hello”);–直接输出hello字符串

引用

通过一个名字指向一个具体的数据值
格式:数据类型 引用名称 = 初始化值;
例如:int x = 8;

注意:
数据类型–int–整数类型

分类:
变量:引用可以发生变化的量
常量:引用不可以发生变化的量

常量:
格式:final 数据类型 常量名 = 初始化值;
常量名:
所有字母必须全部大写
多个单词之间通过_分隔

特点:
引用不可以发生变化的量

注意:
final是关键字 最终的

变量:
存储数据的最小的容器
格式:数据类型 变量名 = 初始化值;
例如:int age = 18;
先声明再赋值
数据类型 变量名;–声明一个变量
变量名 = 初始化值;–给声明的变量进行赋值
这样不占用空间 声明不会申请空间 (赋值才申请空间)
在这里插入图片描述

特点:
引用可以发生变化的量
注意:1、变量必须要先定义再使用
2、基于目前学习的内容,要求变量名不能重复

猜你喜欢

转载自blog.csdn.net/weixin_43872169/article/details/113558190