关键字
对于关键字的概述:
Java的关键字有叫做保留字,它对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。
常见关键字:
1.用于访问权限修饰符的关键字有:public, private, protected。
2.用于定义类,函数,变量修饰符的关键字有:final, abstract, static, synchronized。
3.用于定义类与类之间的关系的关键字有:extends, implements。
4.用于定义建立实例及引用实例,判断实例的关键字有:new, this, super, instanceof。
5.用于处理异常的关键字有:try, catch, finally, throw, throws。
6.用于处理包的关键字有:package, inport。
7.其他修饰符关键字有:native, strictfp, transient, volatile, assent。
标识符:
标识符的概述:
Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符。
常用的标识符:
1.用于定义数据类型的关键字有:class, interface, byte, short, int, long, float, double, char, boolean, void。
2.用于定义数据类型值的关键字有:true, false, null。
3.用于定义流程控制类型的关键字有:if, else, switch, case, default, while, do, for, break, continue, return。
标识符必须要遵守以下规则:
1.标识符是由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美元符号($)组成。
2.不能以数字开头,不能是关键字
3.严格区分大小写
4.标识符可以为任意长度
标识符的命名规范:
1.包名:多个单词组成时所有字母小写(例如:sutdent com.itcast)
2.类名和接口:多个单词组成时所有单词首字母大写(例如:HelloWorld)
3.变量名和函数:多个单词组成时第一个单词首字母小写,其他单词首字母大写(例如:helloWorld)
4.常量名:多个单词组成时,字母全部大写,多个单词之间使用_分隔(例:INTEGER_CACHE)
注意:只是为了增加规范性、可读性而做的一种约定,标识符在定义的时候最好见名知意,提高代码阅读性。
注释
注释的作用:
通过注释提高程序的可读性,是java程序的条理更加清晰,易于区分代码行与注释行。另外通常在程序开头加入作者,时间,版本,要实现的功能等内容注释,方便后来的维护以及程序员的交流
注释的种类:3种 (xxxx 代表注释内容)
1.单行注释:用 // 表示 例如 // xxxx
2.多行注释:用 /* */ 表示 例如 /* xxxx */
3.文档注释:用 /** */ 例如: /**xxxx */
常量和变量
1.常量
常量的概述:
常量是指在运行过程中其值不能改变的量
常量的分类:
1>整型常量:所有的整数 例如:1 2 3 4
2>小数常量:所有的小数 例如 1.1 2.2 3.3
3>布尔常量:只有true和false
4>字符常量:只能用单引号引起来的单个字符 例如 ‘a’'b' 'c'
5>字符串常量:只能用双引号引起来的字符序列 例如 "a" "b" "c"
6>null常量:只有一个值null;
整数的变现形式:
1>二进制:由0和1两个数字组成
2>八进制:由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始
3>十进制:都是由0-9数字组成,不能以0开头
4>十六进制:由0-9和A-F组成,为了区分开其他数字的区别,开头都是以ox开始
2.变量
变量的概述:
用于存储可变数据的容器
变量的特点:
1>必须要有大小
2>存储一定格式的可变数据
3>必须要有名字
变量的数据类型
1>整型
byte代表一个字节的大小 8bit 2(8) -128~127 例如:byte a = 1;
short 代表两个字节的大小 16bit 2(16) -2(15)~2(15)-1
int 代表四个字节的大小 32bit 2(32) -2(31)~2(31)-1 例如:int a = 12;
long 代表八个字节的大小 64bit 2(64) -2(63)~2(63)-1 例如:long a = 123;
如果一个数值没有采取特殊的处理,那么该整数默认的类型是int。
可以使用数值后面添加L或小写L改变默认的整数类型。
2>浮点型
float代表四个字节的大小 32bit 例如:float a=10.23f;
double代表八个字节的大小 32bit 例如:double a=10.23;
java程序中所有的小数默认的类型是double类型,所以需要使用特殊的符号改变默认的小数类型。
3>字符型
char 代表两个字节的大小 16bit 2(16) 例如:char a = 'f';
原理:将字符映射为码表中对应的十进制数据加以存储。
4> 布尔型
boolean 占一个字节。只有true与false两个值。
变量的声明格式:数据类型 变量名字1 ,变量名字2 ,……变量名字n ,;
数据类型的转换
1. 自动类型转换(也叫隐式类型转换)
Java内部其实做了工作就是自动将数值进行了类型提升,就叫做自动类型转换(也叫隐式类型转换)
要实现自动类型的转换,需要满足两个条件,第一两种类型彼此兼容,第二目标类型取值范围必须大于源类型。所有的数字类型,包括整形和浮点型彼此都可以进行转换
例如:
int*double--->double
char*int--->int
long*float--->float
2. 强制类型转换(也叫显式类型转换)
当两种类型彼此不兼容,或者目标类型取值范围小于源类型(目标是byte源是int)
无法自动转换,此时就需要进行强制类型转换。
例如:
int a=128;
byte b=(byte)a;
System.out.println(b);//-128 此时的强转已经造成了数值的不准确
运算符
算术运算符
正负号(+,-)
除法
%取模
求余数
取模的正负取决与被除数
自增(++)
自增在前:先自增完毕,再运算整个表达式,语句分号前面的都是运算表达式;
自增在后:先运算完整个表达式(分号前面的都是表达式),再进行自增;
备注:参与自增运算的操作数据每次会加1.
结论:
如果运算符在变量的前面,则该变量自增1或者自减1,然后返回的是变量的新值,如
果运算符在变量的后面,则变量也会自增或者自减1,但是返回的是变量原来的值。++在前就是先运算,再取值,++在后就是先取值,再运算。
赋值运算符
运算符
运算
范例
结果
=
赋值
a=3,b=2
a=3,b=2
+=
加等于
a=3,b=3;a+=b;
a=5,b=2;
-=
减等于
a=3,b=2,a-=b;
a=1,b=2;
*=
乘等于
a=3,b=2,a*=b;
a=6,b=2
/=
除等于
a=3,b=2,a/=b;
a=1,b=2;
%=
模等于
a=3,b=2,a%=b;
a=1,b=2
比较运算符
比较运算符比较的两边操作数,结果都是boolean的,只有true和false两种结果。
运算符
运算
例子
结果
==
相等于
4= =3
false
!=
不等于
4!= 3
true
<
小于
4 < 3
flase
>
大于
4>3
true
<=
小于等于
4<=3
false
>=
大于等于
4>=3
true
Instanceof
检查是否是类的对象
"hello"instanceof String
true
使用比较运算符的时候,要求两种数据类型必须一致。
逻辑运算符
逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。我们的比较运算符只能进行一次判断,对于对此判断无能为力,那么逻辑运算符就可以经将较运算符连接起来。
逻辑运算符用于连接布尔型表达式,在Java中不可以写成33 & x<6 。
“&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真右边不参与运算。
“ ^ ”异或与“|”或的不同之处是:当左右都为true时,结果为false。
& 与 | 或 ^ 异或 ! 非
位运算符
位运算符
运算符含义
&
与(AND)
|
或(OR)
^
异或
~
取反
移位操作符
位运算符
运算符
运算
范例
<<
左移
3 << 2 = 12 --> 3*2*2=12
>>
右移
3 >> 1 = 1 --> 3/2=1
>>>
无符号右移
3 >>> 1 = 1 --> 3/2=1
&
与运算
6 & 3 = 2
|
或运算
6 | 3 = 7
^
异或运算
6 ^ 3 = 5
~
反码
~6 = -7
位运算符的细节
<<
空位补0,被移除的高位丢弃,空缺位补0。
>>
被移位的二进制最高位是0,右移后,空缺位补0;
最高位是1,空缺位补1。
>>>
被移位二进制最高位无论是0或者是1,空缺位都用0补。
&
二进制位进行&运算,只有1&1时结果是1,否则是0;
|
二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;
^
任何相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0
不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1
三元运算符
格式
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
例如:
int x = 1;
int y = 2;
int z;
z = x > y ? x : y;
System.out.println(z); //2
运算符的优先级与结合性
例如:
、
转义字符
转义字符
名称
Unicode
\b
Backspace(退格键)
\u0008
\t
Tab(Tab键盘)
\u0009
\n
Linefeed(换行)
\u000A
\r
Carriage Return(回车)
\u000D
\\
Backslash(反斜杠)
\u005C
\'
Single Quote(单引号)
\u0027
\"
Double Quote(双引号)
\u0022
\r 表示接受键盘输入,相当于按下回车。
\n 表示换行。
\t 制表符,相当于Table键
\b 退格键,相当于Back Space
\’ 单引号
\’’ 双引号
\\ 表示一个斜跨