基本数据与计算
基本数据保证了我们如何在编程中解决实际问题,所以,下来我们就一起来学习Java中的基本数据吧!
-
关键字(一些被Java语言赋予特殊含义的单词,不能随意使用,例如class、public等)
-
标识符(程序员在写代码过程中自定义的一些名称。例如类名、函数名、变量名等)
- 标识符是由字母、数字、下划线(_)和美元符号($)构成的字符序列。
- 标识符必须以字母、下划线(_)和美元符号($)开头,不能以数字开头。
- 标识符不能是关键字。
- 标识符不能是true、false或null。
- 标识符可以为任意长度。
- 标识符命名规范:
1.类名 所有单词首字母大写,例如YourGirlFriend等。
2.函数名,变量名 除了第一个单词外其他单词首字母大写,例如makeMoney、playGame等。
3.常量名全大写 单词之间用_分开,例如MAX_VALUE、PI等。
-
注释(解释说明程序,不算进代码里面,也不进字节码文件)
单行注释 //注释内容
多行注释 /*注释内容*/
文档注释 /**注释内容*/
PS:单行里面可以套多行,多行里面也可以套单行,但是多行里面不能套多行。
我们在写代码的时候,都应该加上注释。这不仅仅是为了让他人能够看懂我们的代码,也是为了日后我们自己还能够看懂我们写的这串代码到底是干什么的。
-
常量(字面量,程序中直接出现的数据)
整数常量(二进制整数(0b开头)、八进制整数(0开头)、十进制整数(默认)、十六进制整数(0x开头))
浮点数常量(小数)
字符常量(由一个数字、字母、符号被单引号包含的数据)
字符串常量(由一个或多个数字、字母、符号被双引号包含的数据)
布尔常量(true、false)
空常量(null)
-
变量(字面意思就是本身可变化的数据)
往更深层次的说,那变量的本质到底是什么呢?其实,变量本质就是在内存当中某一个进程里面的一个临时存储区域,它主要用来存储计算中产生的一些临时性数据。而每一个变量在创建的时候都会被系统给随机分配一个地址,这个地址是真实的物理内存地址,我们一般都是通过访问这个地址从而获取到这个变量具体的内容。但是,如果在代码中用变量的地址直接去访问内存空间中的数据的话,有可能会访问不到,因此为了避免地址的不确定性,我们引入了“变量名”这个概念,由 变量名-地址表 来保证变量名和变量之间的关系,这样的话,就不会存在前面所说的问题了。
注意:变量中数据的可变的,在同一类型下(兼容)可变。 -
数据类型
- 基本数据类型
-
有人问,基本数据类型不就是整数和小数吗?其实不是这样,基本数据类型还有字符型和布尔型。而且整数里面还有分类,这是因为数据有大有小,有它的范围,我们给它划定了范围,这样方便人们使用。
- 整型(整型常量默认是int型)
- byte 1byte 8bit 范围:-2^7(-128)~2^7-1(127)
- short 2byte 16bit 范围:-2^15(-32768)~2^15-1(32767)
- int 4byte 32bit 范围:-2^31~2^31-1
- long 8byte 64bit 范围:-2^63~2^63-1
-
浮点型(浮点型常量默认是double类型)
-
float 4byte 32bit
-
double 8byte 64bit
-
- 字符型 char 2byte 0~65535
- 布尔型 boolean
- 整型(整型常量默认是int型)
- 引用数据类型
- 字符串 String
- 数组 [ ]
-
运算符
-
算数运算符
-
加法运算 +(java中+不仅仅是相加,它有两种含义。如果+两边全部是数字,那么+表示相加;如果+有一边是字符串,那么+表示连接符)
-
减法运算 -
-
乘法运算 *
-
除法运算 /(如果除号两边都是整数,那么结果就是整数(整除),如果两边至少存在一个小数,那么结果就是小数)
-
取余运算 %(相当于是整除运算,只不过结果取的是余数)
-
自增运算 ++(自增有前置的,还有后置的。比如++a和a++,前++表示a本身直接+1再参与运算,后++表示a先参与运算再本身+1)
-
自减运算 --(同样,自减也有前置和后置。比如a--和--a,用法和++一样)
-
-
赋值运算符
-
= += -= *= /= %= 这些运算符都很简单,这里就不再多强调。
-
-
比较运算符
-
< > <= >= == != 运算的结果肯定是一个布尔类型
这里着重强调一下==,==比较的是两个变量(常量)当中所存储的那个数据的地址!常量在常量池中的地址;对象在堆内存中的地址。
-
-
逻辑运算符
-
与(&、&&) ,&的话,同真则真,遇假则假。&&的话,左边一旦为假,右边无论真假,结果都是假,所以右边可以不运行。
-
或(| 、||),| 的话,有真则真,同假则假。|| 的话,左边一旦为真,右边无论真假,结果都是真,所以右边可以不运行。
-
非(!)非真就是假,非假就是真
-
异或(^)相同为假,不同为真
-
PS:逻辑运算符运算的结果肯定是一个布尔类型
-
-
位运算符(&、|、^、<<、>>),指的就是二进制之间的运算
-
三目运算符(变量=布尔表达式 ? 值1 : 值2;),布尔表达式的意思是,计算的结果必须是boolean类型。如果布尔表达式的结果是true,则将值1赋予变量,如果布尔表达式的结果是false,则将值2赋予变量。这个在一定程度上简化了if语句的功能。
-
在这里再附上一张Java中运算符的优先级表
好了,关于基本数据与计算相关的知识点到这里就已经算完了,下面有一些需要特别注意的。
PS:1.在一个程序中,字符串常量不能跨行,否则会出错;
2.在给一个变量赋值前,必须先声明这个变量;
3.在赋值语句中,左边变量的数据类型必须与右边值的数据类型兼容;
4.如果要将一个值赋给一个范围较小类型的变量,例如:将double型的值赋给int型变量,就必须进行类型转换,不然会出现编译错误。