注释
变量
关键字(keyword)
用作专门用途的字符串
特点:全是小写字母
e.g.:class,for,double,public,(const,goto:they are not keywords,they are literals)
标识符(identifier)
可自己起名的字符序列
e.g.:变量、类、方法、包名、常量名
命名规则
1、不可以数字开头:为了区分变量和常量使'自洽'
2、组成:26英文字母大小写,0-9,_或$...
3、不能直接使用关键字保留词,能包含关键字和保留词
4、注意大小写,不限制长度
5、内不含空格
命名规范
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时所有单词首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ
变量
内存中的一个存储区域,区域内的数据能在同一类型内变化
java格式:数据类型 变量名 = 变量值
定义变量
法1、e.g.int age = 19;
法2、char gender;//变量声明
gender = '女';//变量赋值
数据类型
1、基本数据类型(8):
整型:byte,short,int,long
○声明long类型变量时需提供后缀'l'/'L'
e.g. long l1 = 123123L
浮点数:float,double
○通常用double,精度更高
○float定义需以'f'/'F'作为后缀
○在需要高精度时,float/double都不合适,需用BigDouble类
字符型:char
○字符,占两个字节
○表示形式1:使用一对单引号表示,内部有且仅有一个字符。因为使用Unicode编码所以所有符号都可以赋值
表示形式2:直接使用Unicode值(e.g.\uXXXX,XXXX为一个十六进制整数)
表示形式3:使用转义字符\t,\n…
表示形式4:ASCII码
e.g.
布尔型:boolean
○*4字节
○取值只有true和false
○常用于流程控制
2、引用数据类型:
类class
数组array
接口interface
枚举enum
注解annotation
记录record
注:1、变量有其作用域,出了作用域(e.g.类)即失效
2、同一作用域内不能声明两个相同变量
3、要在该数据类型有效范围内赋值
基本数据类型变量间的运算规则
○能做运算的基本类型有除了boolean类型的7种
运算规则:
1、自动类型提升
容量大与小的变量做运算时,结果自动转换为容量大的数据类型(此处容量指数据的范围大小)
○Byte、short和char间做运算结果都是int,int ---> long ---> float --->double
○整型常量规定是int类型,浮点数常量规定为double类型。
2、强制类型转换
将容量大的类型转换成容量小的变量类型,使用强制转换符()
精度损失e.g.1 截断
e.g.2
String:一个类,属于引用数据类型,俗称字符串
定义符号:“”(双引号),内部可包含0/1/多个字符
对比:char的符号:‘ ’(单引号)
与基本数据类型变量间的运算
1、与8种基本数据类型变量都能进行运算
2、只能做连接运算
3、要实现string到int的转化需使用Integer类
进制
e.g.
原码反码补码
计算机数据储存以二进制补码形式储存
e.g.
-128e.g.
十进制转化为二进制
除2取余的逆
e.g.
运算符operator
分类
按功能
1、算数运算符
+(正);-;+(加);-;*;/;%;(前)++;(后)++;(前)--;(后)--;+(连接符)
%(取模/取余)
●%常用e.g.判断num1是否为偶数:num1 % 2 ==0
●取余后,余数与被除数符号相同
e.g.(-12)%5=-2;(-12)%(-5)=-2;12%(-5)=2
(前)++:先自增1,再赋值运算;
(后)++:先赋值运算,再自增1;
●++/--不会改变变量类型
●e.g.a=10
b=++a
------>a=11;b=11
a=10
b=a++
------>a=11;b=10
(前)--:先自减1,再赋值运算;
(后)--:先赋值运算,再自减1;
+(连接符):只能用于String和其他变量间运算,结果为String
2、赋值运算符
=;+=;-=;*=;/=;%=
●支持连续赋值:e.g.1:int a;
int b;
a=b=10;
e.g.2:int a=10,b=20;
●不会改变变量类型:自动进行强制类型转换
3、比较运算符
==;!=;<;>;<=;>=;instanceof
●结果都是布尔类型
●<;>;<=;>=适用于布尔类型以外的类型
4、逻辑运算符
且:&;&&(better)
区别:若【前面的条件为false】,即已得出结论。&&会‘短路’,不会执行【判断下一个条件】;&会继续执行【判断下一个条件】
或:|;||
区别:若【前面的条件为true】,即已得出结论。||会‘短路’,不会执行【判断下一个条件】;|会继续执行【判断下一个条件】
非:!
异或:^ 不一样即为true
●对象和结果都是布尔类型
*5、位运算符
<<在一定范围内(某些范围会改变正负),每向左移动一位,*2
>>在一定范围内(某些范围会改变正负),每向右移动一位,/2
>>>实现>>的效果后,左边空出来部分全部补0
&,|,^,~都对二进制进行计算。1表true,0表false。正数用原码,负数用补码
6、条件运算符(三元运算符)
e.g.
●能用条件运算符的一定能改为if-else
能用if-else的不一定能改成条件运算符
两者都能用时推荐条件运算符,因为执行效率稍高
7、Lambda运算符
按操作数个数
一元运算符
二元运算符
三元运算符