关键字
对于关键字的概述:
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中不可以写成3<x<6,应该写成x>3 & 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
\’ 单引号
\’’ 双引号
\\ 表示一个斜跨