文章目录
一:关键字
1.1 : 关键字的概念
Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,
关键字不能用作变量名、方法名、类名、包名和参数。
1.2 : 关键字的分类
博主整理了下我们日常开发中经常遇到的一些关键字:如下图
二:标识符
2.1 : 标识符的概念
对于变量,常量,函数,语句块,我们统统称之为Java标识符。换句话说就是我们可以自己命名的代码,都可以称之为标识符。
2.2 : 标识符的组成
1:标识符由阿拉伯数字(0-9,非中文数字比如一),英文字母,下划线 _ ,金币符号$ 或 ¥ 组成。
2:标识符不能以阿拉伯数字开头。
3:java关键字不可以当作标识符。
4:标识符严格区分字母大小写;且标识符的组成中不能包含空格。
2.3 : 标识符的命名规范
1.包名:全部小写 : person,personutil
2.类名、接口名:
1: 一个单词:首字母大写:Cat,Person
2: 多个单词,所有单词的首字母大写:CatModel,PersonModel,PersonModelUtil
3.变量名、方法名:
1:一个单词:全小写
2:多个单词:第一个单词首字母小写,第二个单词开始每个单词首字母大写:aaaXzzYcc
4.常量名:所有字母大写,多个单词时每个单词用下划线连接:ADC_ZSY_CYS
三:变量和常量
3.1 : 变量
3.1.1 : 变量的概念
1:变量是内存中的一块存储区域,存储数据
2:变量包含 变量类型,变量名,变量值
3.1.2 : 变量的使用:
在使用变量前需要对变量进行声明(定义变量类型)
语法:**变量类型 变量名**(注意 变量类型和变量名之间有一个空格单位)
先声明变量
int length; (int是变量类型,length是变量名)
后对变量赋值
length=5; (变量赋值5)
或者声明变量的同时直接赋值
int length=5;
若是没有声明变量类型就直接赋值,是错误的。如下:
weight=10(weight未声明是什么类型的变量)
3.1.3 :变量类型
变量分为局部变量和全局变量
局部变量:在方法体**内部**声明的变量
全局变量:在方法体**外部**声明的变量
public calss Test{
/** height 是声明在方法getWay外部的变量,是一个全局变量 */
public int height;
/**
* getWay 是一个方法,weight是声明在方法内部的变量,是局部变量
* 故weight只能在getWay这个方法内部使用
*/
public void getWay(){
private int weight=20;
}
//正确
height=20;
System.out.printly(height);
//错误
System.out.printly(weight);
}
3.2 :常量
3.2.1 :常量的概念
常量是被声明赋值后不会改变的数据,被关键字final修饰(常量用大写字母表示)
常量的值是不被改变的,声明的时候就需要赋值。
例如:final String NAME=“赵王”,NAME就是一个String类型的常量,值为 赵王 。
四:数据类型
数据类型分为基本数据类型和引用数据类型
4.1 :基本数据类型
字符型: char
整数类型:byte,short,int ,long
浮点类型:float,double
布尔类型:boolean
字符型和整数类型都是数值型;boolean类型的值只有true和false,表示对错
浮点类型是小数类型,
整数类型默认为int、浮点类型默认为double。
在整数类型和浮点类型中,可以进行类型转换,分为自动转换和强制转换(其他类型不可以进行转换)
自动转换:数据范围由小到大
强制转换:数据范围从大到小
如下图,博主做了一张图,来表示这几种类型的数据范围,从左到右依次变大
不需要在变量前加括号声明变量类型的则是自动转换,需要的则是强制转换:
代码如下:
public class Test{
public static void main(String[] args){
char c=3;
byte a=1;
short b=2;
//自动转换类型
int d=a;
long f=d;
float h=f;
double i=h;
//强制转换类型
float k= (float) i;
long j= (long) k;
int m= (int) j;
short s= (short) m;
System.out.println(c);
System.out.println(d);
}
}
4.2 :引用数据类型
类(class)
接口(interface)
数组([])
集合
String,Ingeger,Double等等
五:运算符
运算符的概念:是计算机语言对变量或者常量进行运算的符号,博主把我们日常开发中常遇到的运算符整理了下:大概有以下五种类型
5.1 :算数运算符:用于数值类型,或者字符/字符串类型
+(加);-(减);*(乘);/(除),%(余数);++(自增);–(自减)
其中++,- - 只能用于数值类型(++表示自增1;–表示自减1)
double ks=0.2;
ks--;
System.out.println(ks);
结果为-0.8
double kt=3.5;
kt++;
System.out.prinln(kt);
结果为4.5
在除法和余数中,分母皆不可为0,和数学一样
另外:在java除法中,若是除数和被除数都是整数类型,则结果会抹去小数部分,只取整数。
若是整数类型和小数类型相除,则会保留小数部位。
int a=5;
int b=3;
double c=5.2;
System.out.println(a/b); //结果为1
System.out.println(c/b); //结果为1.7333333333333334
System.out.println(b/c); //结果为0.5769230769230769
System.out.println(c/c); //结果为1.0
当算数运算符为加法(+,加法中可以+字符串):若运算符中包含字符串,则结果最终为字符串。
总结:算术表达式中包含不同的基本数据类型时,算术表达式的类型会自动进行提升。
等级顺序:byte,short,char ----》int ----》 long ----》 float ----》 double(和上图一致)
提升规则:byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。
整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型。(最终的结果类型提升为最高
等级的数据类型)
5.2 :赋值运算符
赋值运算符 | 运算符 | 结果 |
---|---|---|
a=10 | 赋值 | 把10赋值给a |
a+=b | 加等于 | 把a+b的值赋值给a:a=a+b |
a-=b | 减等于 | 把a-b的值赋值给a:a=a-b |
a*=b | 乘等于 | 把a* b的值赋值给a:a=a*b |
a/=b | 除等于 | 把a/b的值赋值给a:a=a/b |
a%=b | 余等于 | 把a%b的值赋值给a:a=a%b |
5.3 :关系运算符
关系运算符 | 运算符 | 结果 |
---|---|---|
a == b | 等于 | a和b是否相等 |
a != b | 不等于 | a和b是否不相等 |
a > b | 大于 | a是否大于b |
a > = b | 大于等于 | a是否大于等于b |
a < b | 小于 | a是否小于b |
a <= b | 小于等于 | a是否小于等于b |
需要注意的是:
大于;大于等于;小于;小于等于只能运用在两边数据都是数值类型的场景
等于和不等于两边的数据既可以是数值类型也可以是引用类型
== 比较基本数据类型时;比较的是值是否相等;比较的是引用类型时,比较的是引用地址是否相同
5.4 :逻辑运算符
逻辑运算符 | 关系 | 结果 |
---|---|---|
&& | 且 | a&&b;若a为真且b也为真,则返回true;若是a,b有一个为假则返回false |
! | 非 | ! a; 返回与a相反的结果,若a为真则返回false;若a为假则返回true |
^ | 异或 | a ^ b; a和b中有且只有一方为真;则返回true;否则返回false |
|| 或者 a || b ;若a或者b至少有一方为真,则返回true,若二者都是假则返回false
需要注意的是:&和&&的区别:
&:不管左侧是否为真,左右两侧都会进行运算
&&:若左侧为真,则右侧运算不进行计算
同理:|| 和 | 是一样的。
5.5 :三元运算符
语法:布尔表达式?表达式1 : 表达式2
结果:若布尔表达式为true;则取表达式1的值;为false取表达式2的值
布尔表达式是一个返回结果为true或者false的公式(比如a>b,a>=b)
例如:String value=(3==4)?"等于":"不等于";
3==4返回false;故取第二个表达式的值:不等于 ,也就是value="不等于"
本次讲解酒到三元运算符,下次更新文章我会开始从流程结构开始讲起。