关键字
保留字
标识符:Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符
(凡是自己可以起名字的地方都叫标识符)
定义合法标识符规则:
1.由26个英文字母大小写,0-9 ,_或 $ 组成
2.数字不可以开头。
3.不可以使用关键字和保留字,但能包含关键字和保留字。
4.Java中严格区分大小写,长度无限制。
5.标识符不能包含空格
Java中的名称命名规范
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
变量
特点:
- 内存中的一个存储区域
- 该区域有自己的名称(变量名)和类型(数据类型)
- Java中每个变量必须先声明,后使用
- 该区域的数据可以在同一类型范围内不断变化
java中变量的定义:数据类型 变量名 = 变量的值,例如:int i = 1
变量基本类型
整数类型中,默认为int,声明long类型是要加l
byte b = 126
int i = 1
short s = 1
long l = 3l,这个long类型变量赋值时要在值的后面跟上一个字母l
byte的范围-128到127之间,声明byte类型变量的时候赋值不能超过这个范围,给byte类型变量赋值时不能超过这个范围
byte b = 130,这个就是超出范围了是错误的
byte b = 126
bit是什么单位?0100110,这个就7bit 1byte=8bit
浮点型常量默认为double(双精度)型,声明float(单精度)型常量,须后加‘f’或‘F’
double d = 1.22
float f = 1.22f,float类型变量赋值时值后面跟上字母f
字符类型char:用英文的单引号括起来的单个的字母、数字、符号
比如:
char c1 = ‘a’
char c2 = ‘1’
char c3 = ‘%’
char c4 = ‘\n’
char c5 = ‘’’
char类型是可以进行运算的。因为它都对应有Unicode码
字符串string
引用类型,都可以用null作为值,也就是说可以在初始化的时候赋值为null
String是引用类型,也就是说可以使用null作为值
int i0 = 1
int i1 = 1
以上这种会在内存中存储2个1的值
String s0 = “hello”
String s1 = “hello”
这种的,不会在内存中存在两个"hello",只存在1一个"hello"
假设"hello"的内存地址xxxxx,声明s0变量时给s0赋值"hello"实际上让s0变量引用"hello"的内存地址xxxxx;当我们再声明变量s1也赋值"hello"的时候实际上也是直接把已经存在的"hello"的内存地址给s1引用
基本类型转换
数字类型的运算规则:
1、有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。数字类型的从小到大分别是byte、short、int、long、float、double。
2、数字类型的运算中,多个相同类型变量参与的运算,变量要先转换为相对应的数据类型的默认类型(比如两个byte类型的变量相加,会先把两个byte类型的变量转换成默认的int类型之后再计算,得到的结果是int类型)。这种情况适用于变量的数据类型的容量比默认类型的容量小,(比如byte,short,都比int小)
3、byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
运算符
算术运算符:+ - * / (整数相除就是整数,除不尽会舍弃小数;)% (如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数)
i++(先取值后运算) ++i(先运算后取值)
赋值运算符:= +=(s+=2就是s=s+2)
比较运算符:== !=
逻辑运算符:&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或
&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
位运算符:位运算是直接对二进制进行运算
<<左移 >>右移 >>>无符号右移 ~反码(把二进制的同为反转)
三元(目)运算符:(条件表达式)? 表达式1:表达式2;
如果true执行表达式1
程序流程控制
顺序结构:
分支结构:
if-else 三种:1. if(true){执行代码块 ;}
2. if(条件表达式){执行代码块;}else{执行代码块;}
3. if(条件表达式){
执行代码块;
}
else if (条件表达式){
执行代码块;
}
……
else{
执行代码块;
}
switch语句:
switch(变量){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
… …
case 常量N:
语句N;
break;
default:
语句;
break;
}
循环结构: