一、入门
1、标识符:
是指在程序中我们自己定义的内容。比如:类的名字,方法的名字和变量的名字
1.1 命名规则:
1、只能包含英文字母26个(区分大小写),0-9数字,$(美元符号)、_(下划线)。
2、不能以数字开头,不能是关键字。
3、大驼峰:(适用于类名)首字母大写,后面的每个单词的首字母大写。
4、小驼峰:(适用于变量名和方法名)首字母小写,后面的每个单词首字母大写。
2、常量
是指在程序运行过程中固定不变的量
2.1 分类
1、字符串常量:凡是用双引号引起来自的部分,叫做字符串常量。(“1234”,“lahfkajds”,“hello”)
2、整数常量:直接写上的数字,没有小数点(199,0,-199)
3、浮点数常量:直接写上的数字,有小数点(100.99,-3.14,0.312)
4、字符常量:凡是用单引号引起来的单个字符,就叫字符常量(‘1’,‘a’,‘A’)
5、布尔常量:只有量中取值(true false)
6、空常量:null ,代表没有任何数据
3、变量
3.1注意事项
1、如果创建多个变量,变量之间的名称不能重复
2、对于float和long类型来说,字母后缀F和L不要丢掉 (例:long num=100L)
3、如果使用byte或short类型的变量,那么右侧的数据值不能超过左侧类型的范围
4、没有赋值 的变量,不能直接使用,赋值之后才能使用
5、变量使用不能超过作用域(作用域是指从定义变量的一行开始,一直到直接所属的大括号结束为止)的范围
3.2基本数据类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWEVIIom-1615386995297)(C:\Users\向吉佳\AppData\Roaming\Typora\typora-user-images\image-20210107184305623.png)]
4、数据类型转换
当数据类型不一样时,将会发生数据类型转换
4.1自动类型转换(隐式)
1、特点:代码不需要进行特殊处理,自动完成
2、规则:数据范围从小到大
long num1=100;//左边是long类型,右边是int类型,左右不一样,将右边的int常量交给左边的long变量存储,int(4字节)到long(8字节)符合数据范围从小到大的要求,则发生自动类型转换
double num2=2.5F;//左边是double类型,右边是float类型,符合从小到大的规则,也发生自动类型装换
4.2强制类型转换(显式)
1、特点:代码需要特殊的格式处理,不能自动完成
2、格式:范围小的类型 范围小的变量名=(范围小的类型)原本范围大的数据。
int num=(int) 100L;
4.3注意事项
1、强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出
2、byte/short/char这三种类型都可以发生数学运算,例如加法“+”
char zifu1='A';//字符型变量,里面是大写字母A
System.out.println(zifu1+1);//66,大写字母A 被当做65进行处理
//计算机的底层会用一个数字(二进制)来代表字符A,就是65
//一旦char类型进行了数字运算,那么字符就会按照一定的规则翻译成数字
3、byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算
4、boolean类型不能发生数据类型转换
4.4ASCII码表(0-127)
1、0是从48开始
2、A是从65开始
3、a是从97开始
4、万国码。也是数字和字符的对照关系,开头0-127和ASCII码相同,从128开始包含更多字符
5、运算符
5.1算术运算符
1、四则运算:加(+)、减(-)、乘(*)、除(/)、取余(%)
2、注意事项:一旦运算中有不同类型的数据,那么结果将会是数据类型范围大的那种。
3、“+”的三种用法、
①对于数值来说就是加法
②对于char类型来说,在计算之前,char会被提升为int 然后在进行运算。char类型与int类型之间对照表:ASCII、Unicode
③对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。
4、自增自减(++、–)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-supJ7vIc-1615386995299)(C:\Users\向吉佳\AppData\Roaming\Typora\typora-user-images\image-20210108165332797.png)]
//自增自减与其他混合使用
int num2=20;
//先++,变量立刻马上变成21,然后打印结果21
System.out.println(++num2);//21
System.out.println(num2);//21
int num3=30;
//后++,首先使用变量本来的30,然后再让变量加1得到31
System.out.println(num3++);//30
System.out.println(num3);//31
//例
int x=10;
int y=20;
int result3=(++x)+(y--);//11+20=31
System.out.println(result3);//31
System.out.println(x);//11
System.out.println(y);//19
5.2赋值运算符
将符号右边的值赋值给左边
= | 等于 |
---|---|
+= | 加等于 |
-= | 减等于 |
*= | 乘等于 |
/= | 除等于 |
%= | 取模等于 |
5.3比较运算符
两个数据之间进行比较的运算,运算结果是布尔值**true**或者false
== | 比较符号两边数据是否相等,相等则true |
---|---|
< | 比较符号左边数据是否小于右边的数据,如果小于则true |
> | 比较符号左边数据是否大于右边的数据,如果小于则true |
<= | 比较符号左边数据是否小于等于右边的数据,如果小于则true |
>= | 比较符号左边数据是否大于等于右边的数据,如果小于则true |
!= | 如果符号两边的数据不相等,结果是true |
5.4逻辑运算符
与(并且) && ,全都是true,才是true,否则就是false
或(或者) || 至少有一个是true,就是true;全是false才是false
非(取反)! 本来是true,变成false;本来是false,变成true
5.4.1注意事项
1、“&&”,“||” 具有短路效果,如果根据左边结果已经可以判断最终结果,那么右边的代码将不再执行,从而节省一定的性能。
2、逻辑运算符只能用于boolean值,
3、与、或、需要左右各自有一个boolean值,但是取反只要有一个boolean值即可。
4、与,或,如果有多种条件,可以连续写。
例:1<x<3可以写成:1<x&&x<3
5.5三元运算符
数据类型 变量名称=条件判断?表达式A:表达式B
流程:首先判断条件是否成立
如果成立为true,那么表达式A的值赋值给左侧变量;
如果不成立为false,那么讲表达式B 的值赋值给左侧变量;
6、方法
6.1定义一个方法
public static void 方法名称(){
方法体
}
方法名称的命名规则和变量一样,使用小驼峰。
方法体:也就是大括号当中可以包含任意条语句。
注意事项:
1、方法定义的先后顺序无所谓
2、方法的定义不能产生嵌套包含关系
3、方法定义好了之后不会执行,想要执行则必须进行方法的调用。
6.2方法的调用
方法名称();//main方法中
7、JDK9的新特性
7.1jshell脚本语言
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JgsdIJo4-1615386995301)(C:\Users\向吉佳\AppData\Roaming\Typora\typora-user-images\image-20210109131440582.png)]
7.2编译器的两点优化
1、在给变量赋值的时候,如果右侧的表达式中全都是常量,没有任何变量,那么编译器javac将会将若干常量表达式计算得到结果。
2、注意:一旦表达中有变量的参与,那么就不能进行这种优化了。
8、选择结构
//if
if(关系表达式){
语句体;
}
//if,,,else
if(关系表达式){
语句体1;
}
else{
语句体2;
}
//if...else if...else
if(判断条件1){
执行语句1;
}else if(判断条件2){
执行语句2;
}
.....
else{
执行语句n;
}
9、循环结构
//for循环
for(初始化表达式;布尔表达式;步进表达式)
{
循环体;
}
//while循环:先判断再执行
//do...while循环:先执行再判断(至少执行一次)
例:
//求出1-100之间的偶数和
public class demo{
public static void main(String[] args)
{
int sum=0;
for(int i=1;i<=100;i++)
{
if(i%2==0)
{
sum+=i;
}
}
System.out.println("偶数和为:"+sum);
}
}
9.4break和continue
间的偶数和
public class demo{
public static void main(String[] args)
{
int sum=0;
for(int i=1;i<=100;i++)
{
if(i%2==0)
{
sum+=i;
}
}
System.out.println(“偶数和为:”+sum);
}
}
#### 9.4break和continue