目录
一:标识符
定义:在程序中由用户给类名、方法名,或者变量所取的名字
规定:1.由字母、数字、下划线、美元符号$组成
2.不能以数字开头
3.建议以驼峰法命名
4.不能和关键字重名(定义为main是合法的)
5.不包含其他符号(如‘:’、‘.’、空格等等)
6.java对于标识符是严格区分大小写的
二:关键字
定义:关键字是由Java语言提前定义好的,有特殊含义的标识符,或者叫Java保留字
三:数据类型与变量
1.字面常量
分类:1.字符串常量,比如“12345”、“hello”、“你好”
2.整型常量:比如:100、1000、114514
3.浮点数常量:3.14、0.114514
4.字符常量:有单引号括起来的单个字符,比如:‘A’、‘1’
5.布尔常量:true和false
6.空常量:null
2.数据类型
分类:1.基本数据类型
(1)byte 字节类型
(2)short 短整型
(3)int 整型
(4)long 长整型
(5)char 字符类型
(6)float 单精度浮点数
(7)double 双精度浮点数
(8)boolean 布尔类型 注意:1.不区分平台,数据类型在32位还是64位都是一样的内存占用
2.java只有有符号数字,没有无符号数字,比如:int 4个字节,32位,第一位就是符号位,没有32位都是有效数字的情况,即无unsigned int数据类型
3.各种整型类型变量均能够保存八进制、十进制、十六进制整数数据,八进制常量以0开头,十六进制常量以0x开头,比如 int a = 123;int b = 0173;int c = 0x7B;a、b、c按十进制的方式输出都是123
4.在单引号之间可以存放一个字符,或者转义字符
5.C中转义字符如‘\xhh’,以"\x"开头,后面接1~2位十六位进制数,比如"\x61";而Java采用以“\u”开头,后面接1~4位的十六进制数,比如"\u0061"
3.变量
定义变量的语法格式:
数据类型 变量名 = 初始值;
注意:1.定义局部变量一定要初始化,若没有进行初始化,则编译器会报错
2.一行内可以定义多个变量
3.变量赋值不能超出其数据类型的范围
1.整型变量
注意:1.long数据类型的变量标准赋值是在数值值后面加上L或l
2.IDEA编译器会检查一些出错的字面值
比如:输出int最大值+1编译器会输出溢出的值-2147483648
而直接输出字面值2147483648就报e错,并不输出
2.浮点型变量
1.双精度浮点型double 八字节 16位有效数字
2.单精度浮点型float 四字节 8位有效数字
注意:1.java中默认小数是double类型,float数据类型的变量标准赋值是在数值值后面加上f或F
2.a和b都是赋值了1.2,a的精度是16位,为1.2000 0000 0000 0000,但b的精度是6位,为1.2000 0014 5601 45,在小数6位后出现了一些数字,所以b比a大
3.字符变量
char两个字节,无负数
注意:1.一个汉字两个字节
2.IDEA中java采用Unicode字符集表示字符,每个Unicode码占用2个字节,可以表示英文,拉丁文,希腊文,中文等等,支持更多国家的语言
4.布尔类型变量
C:非0和true是真,0和false是假
Java: true是真,false是假
注意:1.Java中不存在非0表示真,0表示假的情况,即不允许用数字来表示逻辑真或逻辑假,如if(a+b)是非法的,必须写成if(a+b)!=0);作为if语句条件只能是boolean变量、条件表达式或逻辑表达式
2.Java虚拟机规范中,并没有规定boolean占几个字节;但部分书籍上说明在内存中占用1字节
4.类型转换
Java是一个强类型的编程语言,当不同类型之间的变量相互赋值的时候,会有较严格的校验
如:int变量和long变量相互转换
long类型占8个字节,int类型占4个字节,8字节到4字节数据可能会出现损失;
但4字节往8字节转换就只会出现类型转的警告,4字节转换8字节,数据更精确了
解决:强制类型转换
1.自动类型转换(隐式)
系统支持某个基本数据类型直接赋值给另外一种数据类型
自动类型转换方向
注意:1.boolean不在该图中,所以不能够进行类型转换;不相干的类型之间不能互相转换 如:int(数值)和boolean(布尔)和(字符串)
2.不同数字类型的变量之间赋值,表示范围更小的类型能隐式类型转换成范围较大的类型
2.强制类型转换(显示)
可以使用强制类型转换运算符即(类型名)来强制进行类型转换i
注意:1.int、double可以强转成char
2.int、double强转byte
5.类型提升
1.int和long的运算:int会被提升为long
2.byte和byte的运算: 参与运算的数据,小于4个字节的数据,会进行提升,所以运算后的数据是4个字节的
原因:计算机的CPU通常按照4个字节为单位从内存中读写数据,为了硬件上实现方便,诸如byte和short这种低于4个字节的类型,会先提升为int,再参与计算
6.字符串类型
1.int转String
1.整型+""
2.调用String的valueOf方法
2.String转int
1.调用Integer的paseInt方法
注意:1.Java中的字符串不是以‘\0‘结尾的
2.字符串拼接
四:课后习题:
1.(B)2字节=16比特位
2.(ABCD)
3.(BC)byte code字节码
4.(D)
1.(B)
2.(BC)A、D引用类型
3.(BCD)包装类:基本数据类型对应的类类型
4.(B)boolean不能转
5.(A)
6.(A)转义字符 \\ 和\"
7.(B)short128的二进制0000 0000 1000 0000截断成byte是1000 0000(从补码角度看也可以)
1000 0000第一位视为符号位,是-0但规定为-128
8.(C)
9.(AB)