Java注释
注释概念
注释就是用来解释说明代码作用的,帮助程序员理解代码,不会编译。对程序运行没有影响,可以提高代码可读性。
注释作用
解释说明代码作用
使用:
单行注释//
多行注释/**/
文档注释/** */
分隔符:分号;、花括号{}、方括号[]、圆括号()、圆点. 、空格 、一般单词之间一个空格就可以了
关键字
其实就是在设计java语言的时候赋予特殊意义的单词
特点:所有的字母全部小写 : 如下Java中的关键字
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
标识符
概念:就是为了代码可读性而定义的一些规则符号。简单的认为就是了规范命名的。
类名 变量名 方法名
作用就是为了代码可读性
标识符的组成
1.标识符由大小写字母(A-Z或者a-z)、美元符($)、或者下划线(_)、数字构成(不能以数字开头)。
2.不能以关键字/保留字作标识符
3.标识符严格区分大小写
标识符书写规范
1.一般不建议使用$及下划线_作为起始符号
2.见名知意
3.类名大驼峰,首字母大写,后面每个单词首字母大写
4.方法名小驼峰
5.不要以java中关键字、保留字、jdk中存在的类命名
数据类型
概念
就是用于保存数据的一个类型,一种数据类型,只能保存该类型数据值
作用
只有了解数据类型,才能选择合适的类型存放数据,才能更好的利用计算机硬件资源(内存和硬盘等)。
不同的数据类型存放数据大小是不同的。
数据类型的使用方式就是用来声明一个变量,装数据的。
变量就是一个容器,这个容器有类型 类型决定可以装多大的数据
数据类型分类
浮点数注意事项:
1.直接赋值给float类型,需要加上F或f,因为默认类型都为double。
2.精度损失,如double d = 1.0 表示的是无限接近于1.0的一个小数,而不是真正的1.0。如果需要精确的表示一个小数,可以使用后面学到的BigDecimal。
3.单精度双精度区别:
- 对于单精度浮点数,运行速度相比double更快,占内存更小,
- 但是当数值非常大或者非常小的时候会变得不精确。
- 双精度比单精度表示的位数大 精确的位数多,简单地说, float表示的小数点位数少。
最近几天建议用double类型,而实际开发用BigDecimal类型表示小数。
转义字符
\r 表示回车符;
\n 表示换行符;
\t 表示相当于Table键制表符,;
\b表示退格键,相当于Back Space键;
\’表示单引号;
\” 表示双引号;
\ 表示一个斜杠\。
布尔类型
只有true、false
引用类型
除了基本类型以外,几乎所有的其他类型都是引用类型。
类 class、接口 interface、枚举 enum、抽象类 abstract class、数组 数据类型[]、String类是java中自带的引用数据类型,表示字符串数据
常量
概念:一个固定不变的值
整数常量,所有整数,如 1、2、3、100、200 等
小数常量,所有小数,如 1.2、2.7、3.14 等
字符常量,用单引号括起来的符号如,’A’、’a’、‘好’等
布尔常量,只有 true 和 false,分别表示对与错
字符串常量,使用双引号括起来的内容如:“Will”、“itsource”等
变量
概念:就是一个盒子(容器),用来装数据的。同一时间只能装一个数据。
变量是内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),Java中每个变量必须先声明,后使用, 该区域的数据可以在同一类型范围内不断变化。
变量声明:数据类型 变量名
变量赋值:变量名 = 值;
声明变量同时赋值:变量名 = 值;
数据类型转换
作用:
1.节约内存空间
byte short int long
2.将一些类型转换为项目所需要的类型
自动类型转换
注意事项:
1.在Java中,boolean类型与所有其他7种类型都不能进行转换。
2.其他 7种数据类型,它们之间都可以进行转换,但是可能会存在精度损失或者其他一些变化。
byte -> short -> int -> long-> float-> double
char -> int -> long-> float-> double
byte与char 不能自动转换
char与short不能自动转换
由于小数(浮点数)的存储方式、结构和整数不一样,所以,float哪怕是4个字节、long是8个字节,表示范围也大于long类型。
强制类型转换
大转小
小数据类型 变量名 =(小数据类型)大类型值/大类型变量名
注意事项:
1.高转低会导致精度丢失,有数据的溢出风险。溢出的时候,会以二进制进位。
2.实际开发中:应该要知道被强制转换的数据,是在一个已知的范围。
3.当int类型的具体的值,向byte、short、char类型转换的时候,值只要在其表示范围内,都会隐式转换。
运算符
算数运算
+:加号,在String字符串作连接符表示连接
-:减号
*:乘号
/:除号
%:取模(取余)求余数
自增自减
自增(++) 自减(–)
注意事项:
1.自增自减只能用于变量,不能用于常量
2.自增自减运算的优先级比其他算术运算符高
3.一般用在循环语句中
如果变量名在前面(a++),那么整个表达式(a++)的值就是原来值不变。a是为自增之后的值
如果变量名在后面(++a),那么整个表达式(++a)的值就是原来的值加1。a是为自增之后的值
赋值运算
赋值运算(Assignment Operation):是优先级最低的一种运算,等 = 后边的所有运算完毕后,才执行赋值运算。
+=、-=、*=、/=、%=、=、^=、&=、|=
赋值运算有强制转换的功能,可以避免类型提升,会有溢出风险
比较运算
比较运算结果为boolean类型
>
<
>=
<=
==
比较基本类型为比较值是否相等,引用类型为地址值是否相等
!=
instanceof:只能比较引用类型,一般配合条件语句使用
表示判断一个变量或者值是否属于某一个引用数据类型
三目运算
语法:x ? y : z;
表示如果x为true,执行y,x为false执行z。
x为boolean表达式或类型值
比较运算
比较运算结果为boolean类型
>
<
>=
<=
==
比较基本类型为比较值是否相等,引用类型为地址值是否相等
!=:
instanceof:只能比较引用类型,一般配合条件语句使用
表示判断一个变量或者值是否属于某一个引用数据类型
三目运算
语法:x ? y : z;
表示如果x为true,执行y,x为false执行z。
x为boolean表达式或类型值
位运算
概念:程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。
~n:按位取反,二进制按位取反0->1,1->0
&:按位与,有0则0;
0011
&
0001
0001
| :按位或:有1则1;
0011
|
0101
0111
^:按位异或,相同为0,不同则1;
0011
^
0101
0110
m<<n:按位左移,不管m是正数还是负数,右边补0 相当于*2^n次方,有溢出风险
m>>n:按位右移,如果m为整数,左边补0,负数就补1,相当于/2^n次方
m>>>:无符号右位移,不管m是正数还是负数,左边补0,这样的话,负数移动后就变成了正数,失去了数学意义
逻辑运算
&:逻辑单与,表示并且,有假即假,没有短路功能,有位运算功能,两边都为true ,结果为true。
|:逻辑单或,表示或者,有真即真,没有短路功能,有位运算功能,只要有一边为true,结果为true。
&&:逻辑双与,表示并且,有假即假,有短路功能,没有位运算功能,两边都为true ,结果为true。
||:逻辑双或,表示或者,有真即真,有短路功能,没有位运算功能,只要有一边为true,结果为true。
^:逻辑异或,同假异真,两边不一样,结果为true ,否则为false。
!:逻辑非,表示取反,非真即假,非假即真
优先级:!>&&(&)>||(|)
&&当左边为false时,右边的就短路了(即当左边式子为假时,右边不管是什么整个式子为假)
||当左边为true时,右边的就短路了(同上)