数据类型和运算符
关键字:
具有特殊含义、被保留的、不能随意使用的字符,这样的字符我们就称为关键字
添加注释
注释:就是对代码的解释和说明,其目的就是其他开发者能轻松的了解代码。注释是不影响程序的编译和运行。
java中的注释有三种:
- 单行注释以 //开头 换行结束
- 多行注释以"/"开头,以"/"结束
- 文档注释以"/**"开头,以"*/"结束
标识符
标识符:一般是指在程序中,我们自定义的内容。比如说类的名字(HelloWorld)、方法的名字(main)和变量的名字等等,都是标识符。
标识符的命名规则:硬性要求
- 标识符可以包含英文字母26个(区分大小写)、0-9数字、_(下划线)、$(美元符号)
- 标识符不能以数字开头
- 标识符不能是关键字
命名规范:软性建议
-
建议类名首字母大写,后面的每个单词首字母建议大写(大驼峰命名法)
-
方法名首字母小写,后面的每个单词首字母建议大写(小驼峰命名法)
-
变量名,全部小写。
-
标识符尽量达到见名知意的效果。
-
常量
常量:在程序的运行期间,固定不变的量。
常量的分类:
- 字符串常量: 凡是用双引号引起来的部分,叫做字符串的常量 "今天是我学习Java的第二天"
- 整数常量: 直接写上的数字,没有小数点。如 18、28、20、-5
- 浮点数(小数)常量: 直接写上的数字,有小数点。如3.14、0.0
- 字符常量: 凡是用单引号引起来的单个字符,就叫做字符常量 如 '男' 、 '女'、'A'、'9'
- 布尔常量: 只有true、false。
- 空常量: null。代表没有任何数据,在内存中不存在。空常量不能直接用来打印输出
变量
变量:在程序运行期间,内容可以发生变化的量。
数学中, 3 + 5 = 8---> x + 5 = 8 或者 3 + x = 8
在程序中,可以使用字母保存数字的方式进行运算,提高计算能力,可以解决更多的实际问题。比如x保存3,x也可以保存5,x保存数字(数据)是可以发生改变的,我们一般称这个x为变量。
备注:java中,一个变量每次只能保存一个数据,而且要明确保存的数据类型。
数据类型
分类:
-
基本数据类型:如 整数、浮点数、字符、布尔
-
引用数据类型 如 类、数组、接口等
基本数据类型:
四类八种基本数据类型:
数据类型 关键字 内存大小 取值范围 字节型 byte 1个字节 1B -128~127 2^7-1 短整型 short 2个字节 2B -32768~32767 2^15-1 整形 int 4个字节 4B 21开头的十位数 2^31-1 长整型 long 8个字节 8B 92开头的19位数 2^63-1 单精度浮点数 float 4个字节 4B -1.4013E-45~3.4028E+38 双精度浮点数 double 8个字节 8B 4.9E-324~1.7977E+308 字符型 char 2个字节 2B 0~65535 布尔类型 boolean 1个字节 1B true、false 备注:java中的默认数据类型:整数类型为int,浮点数类型为double。
计算机基础知识:
二进制:计算机中的数据全部采用的是二进制数表示 ,只包含0、1两个数,逢二进一, 1+1=10。
每一个1或者每一个0,叫做一个bit(比特)(位)
字节:
字节称为我们计算机中最小的存储单元。计算机中存储任何的数据,都是以字节的形式进行存储。
1个字节 = 8个比特(二进制位) 0000-0000表示一个字节,写成1byte或者1B
-
8bit = 1B
-
1024B = 1KB
-
1024KB = 1MB
-
1024MB = 1GB
-
1024GB = 1TB
-
1024TB = 1PB
-
1024PB = 1EB
-
1024EB = 1ZB
变量的定义
变量定义具备三元素:数据类型、变量名、数据值。
格式:
变量的数据类型 变量名 = 变量值;
变量定义注意事项
使用变量的时候,需要注意的事项如下:
1.创建多个变量的时候,变量之间的名称不可以重复;
2.对于float和long类型来说,变量的数据值后面需要添加字母F和L
3.如果使用byte或者是short类型的变量,那么右侧的数据值不能超过左侧类型的范围。
4.没有进行赋值的变量,不能直接使用,能够使用的变量一定是经过初始化(赋值)。
5.变量的使用不能超出它对应的作用域。
6.可以通过一个语句来创建多个变量,但是不建议使用。
作用域---->{} 左半部分{ 代表作用域的起始位置
右半部分} 代表作用域的结束位置转义字符
一些具有特殊含义的字符,通过"\"来进行转义
\t ---->一个制表符(占8位) 一个tab缩进
\n ---->一个换行符 newLine()
\r ----->一个回车符 按一下enter键
\b ---->退一格
数据类型之间的转换
java程序中要求参与计算的数据,必须保证数据类型的一致性,当数据类型不一致的时候,将会发生数据类型转换。
数据类型之间的转换分为两种:
-
自动类型转换(隐式)
自动转换:将取值范围小的类型自动提升为取值范围大的类型。
byte类型在内存中占1个字节,需要和int类型的变量做运算会自动提升为int类型,自动补充3个字节,计算的结果自然就是int类型。
-
强制类型转换(显式)
强制类型转换:将取值范围大的类型转换成取值范围小的类型
格式:数据类型 变量名 = (数据类型) 被转数据值;
ASCII(美国信息交换标准代码)
数字和字符的对照关系表(编码表)
ASCII编码:American Standard Code for Information Interchange
Unicode编码:万国码。也是数字和字符符号的对照关系表,开头0-127部分和ASCII完全一样,但是从128开始包含更多的字符。
需要记忆 :
48----->‘0’
57------>'9'
65----->'A'
90------>'Z'
97----->'a'
122--->'z'
在计算机内部运算采用的是二进制的方式,里面的数据都是二进制0、1格式,如何让计算机识别人类文字
就出现了编码表的概念。
编码表:就是将人类的文字和一个十进制数进行对应起来组成的一张表格。
-
-
将所有的英文字母、数字、符号都和十进制数进行对应,产生了世界上第一张编码表(ASCII)
备注:在char和int类型进行计算的过程中,char类型的字符会被转成int类型,需要查询编码表
运算符
-
算术运算符
算术运算符 含义 + 加法运算、字符串拼接运算、正数 - 减法运算、负数 * 乘法运算、通配符 / 除法运算(求商数) % 除法运算(取余数、取模运算) ++ 自加一运算 -- 自减一运算 -
比较运算符
比较运算符 含义 == 相等比较 < 小于比较 > 大于比较 >= 大于等于比较 <= 小于等于比较 != 不等于比较 备注:比较运算符,运算的结果都是布尔类型值true、false。
注意事项:
如果我们进行多次判断,不能连着写。
数学当中, a < 3 a >-1------> -1 < a < 3
在程序当中,【不允许】这种操作。
-
赋值运算符
赋值运算符 含义 = 赋值 += 加等于 -= 减等于 *= 乘等于 /= 商等于 %= 模等于 备注:
- 重点掌握【=】基本赋值运算符
- 剩下的都是复合赋值运算符
- 只有变量才可以使用赋值运算符,常量不能进行赋值
- 复合赋值运算符其中隐含了一个强制类型转换。
-
逻辑运算符
逻辑运算符 含义 && 短路与 1.如果两边都是true,结果为true;2.如果一边为false,结果就是false || 短路或 1.如果两边任意一边是true,结果则为true,否则为false ! 取反(取非) 如果为false,结果为true;反之则为false。 ^ 异或 如果两边有且只有一个为true,结果则为true,否则为false。
位运算符
运算符 | 含义 | 示例 |
---|---|---|
<< | 左移 | 5 << 2 = 20 ---> 5 * 2^2 = 5 * 4 = 20 |
>> | 右移 | 5 >> 1 = 2 ---> 5 / 2^1 = 5 / 2 = 2 |
>>> | 无符号右移 | 5 >>> 1 = 2---> 5 / 2^1 = 5 / 2 = 2 |
& | 与运算(只要有一个为0,运算结果则为0,否则为1) | 5 & 3 = 1 |
| | 或运算(只要有一个为1,运算结果就为1,否则为0) | 5 | 3 = 7 |
^ | 异或运算(如果两个数值一样,运算结果就为0,否则为1) | 5 ^ 3 = 6 |
~ | 取反运算(了解) | ~6--->0110 = -7 |
备注:位运算计算机底层采用的对整数进行二进制运算。
【没有无符号左移位运算符】
二进制整数表示:原码、反码、补码
三目运算符
?:
三目运算符格式:
布尔类型表达式 ? 真的结果值 : 假的结果值
三目运算符格式:
数据类型 变量名 = 布尔类型表达式 ? 真的结果值 : 假的结果值
计算方式:
如果布尔类型表达式结果是true,三目运算符运算的结果为紧邻?后面的值
如果布尔类型表达式结果是false,三目运算符运算的结果为紧邻:后面的值。
备注:当三目运算符运算参与有其他的运算(如赋值运算),要求三目运算符中的 ?和: 后面的值的【数据类型保持一致】。