关键字
在java中具有特殊功能的单词
一共有53个(const、goto都是保留字)
都是小写
标识符
在Java中可以自定义的名称
组成范围
各国常见文字
数字(0~9)
特殊符号(_、
(
慎
用
内
部
类
默
认
标
识
符
里
使
用
(慎用 内部类默认标识符里使用
(慎用内部类默认标识符里使用))
命名规则
不能以数字开头
不能是关键字
当在组成范围之内并且遵守命名规则—合法标识符
命名规范(驼峰命名法)
类名/接口名----XxxYyyZzz
方法名/变量名—xxxYyyZzz
包名(包代表文件夹来区分同名类)
单级: xxx cn
多级: xxx.yyy.zzz cn.tedu.day01(不是标识符)
常量名—XXX_YYY_ZZZ
见名知意
注释:
在java代码中用于解释和说明的文字
格式:
//注释内容---单行注释(可以嵌套单行注释)
/*注释内容*/---多行注释(可以嵌套单行注释,但是不能嵌套多行注释)
/**注释内容*/---文档注释(通过javadoc命令把注释内容生成文档)
常量:
在程序执行过程中值不发生改变的量
分类:
字面值常量
整数常量—1、123、56789
小数常量—3.4、6.789
字符常量—‘a’、‘5’
字符串常量—“weyurgve”
布尔常量—true、false
空常量—null
自定义常量(后面讲)
整数不同表现形式
二进制
由0和1组成 0b1010 以0b开头的数据
八进制
由0~7组成 0156 以0来开头
十进制
由0~9组成 默认
十六进制
由09、af(不区分大小写)组成 以0x开头
/*
展示四种进制表现形式
*/
class JavaDemo{
public static void main(String[] args) {
//操作二进制数据
System.out.println(0b100);
//操作八进制数据
System.out.println(0100);
//操作十进制数据
System.out.println(100);
//操作十六进制数据
System.out.println(0x100);
}
}
有符号的数
数据转成底层的二进制数据补码形式来进行操作和存储
表示 5 和 -5
原码
正数的符号位为0,负数的符号位为1
反码
正数的反码和原码保持一致,负数的反码是在原码的基础上符号不变,其他位按位取反。
补码
符号位 数值位
5 0 0000101
-5 1 1111011
正数的补码和反码以及原码都是一样的,负数的补码是在反码的基础上末尾加1
1+1=2
00000001 1补码形式
00000001
00000002 补码形式
转成原码形式来展示
00000002----2
绝大部分小数转成二进制都是无限位数
进制—进位的一种方式
数据都是通过底层计算机硬件状态来表示的
通过上述的8个状态来表示数据就能表示更多的数据
为了更加方便和快捷去表示数据状态,通过0和1来表示状态,底层由0和1来组成一堆数字------二进制数据
从右向左每三位一组,如果不够左边补0,依此计算出每组十进制的值
从右往左每四位一组,如果不够左边补0,依次计算出每组的十进制的值
随着进制的增大,数据表现形式越简单
其他进制转成十进制
二进制 110 十进制 6
=122+1*21+02^0
=4+2=6
十六进制 110 十进制 6
=5162+2*161+216^0
=1314
基数—X进制,基数就是X位–每一位上的数权—从优往左,由0开始编号
规律:位乘以基数为敌底的权次幂之和
十进制转成其他进制
规律:除基取余,直到商为0,余数取反
任意进制之间转换
1.先把X进制转成十进制,再把十进制转换成Y进制
二进制 1010 十六进制 A
=1*23+1*21
=10
2.拆分组合
十六进制 12 二进制 10010
=0001 0010
变量
在程序执行过程中值可以改变的量
可以存储单个数据的容器
控制变量变化范围
数据类型
区分变量
变量名
保证变量操作之前给值
初始化
变量的定义格式
数据类型 变量名 = 初始化
数据类型
编码-----把文字转成底层数字的过程 转换规则-----码表
ASCII(阿斯克码表 0~127 占1个字节)----ISO8859-1(西欧码表 0~255 占1个字节)-----BIG5(繁体中文 占2个字节)、GB2312(简体中文 占2个字节)-----GBK(国标码 占2个字节)-----Unicode编码体系(UTF-8(占3个字节)、UTF-16(占2个字节)等等)
所有完整的码表默认兼容西欧码表
用UTF-8编码 char=‘a’;底层占1个字节
char=‘中’;底层占3个字节
转义字符
‘/t’ 制表符空格
‘/r’ 回车
‘/n’ 换行
变量之间的相互操作
类型转换
1.默认类型提升(从小到大)
a.byte、short、char类型无论做任何操作都会类型提升为int类型
b.整形类型提升为浮点型可能会出现精度丢失
c.byte—short、char—int—long—float—double
2.强制类型转换
目标类型 名称 = (目标类型)操作数据