黑马程序员-Java基础【1】(关键字,标识符,常量,变量,运算符)

时间:2023-02-19 09:28:21

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


一、关键字

       定义:就是java语言中有特殊含义的单词。

       特点:字母全部是小写。

       注意事项:

       a:goto,const是保留字。

       b:高级的记事本中,有特殊的颜色标识。

1、用于定义数据类型的关键字

       基本数据类型:

       整数类型:byte  short int double long

       浮点类型:float  double

       字符:char

       布尔:boolean

       引用数据类型:

       类:class        接口:interface

       void用于函数上表示无返回值类型

2、用于定义数据类型值的关键字

       true(真)      false(假) null(空)

3、用于定义流程控制语句的关键字

       判断流程:if(如果)、else(否则)、switch、case(分支)、default(默认)

       循环流程:for(条件循环)、while(条件判断)、do(执行)、continue(继续循环)、break(跳出)、return(返回)

4、用于定义访问权限修饰符的关键字

         private (私有的)、protected (受保护的)、public(公有的)

5、 用于定义类、函数,变量修饰符的关键字

        abstract(抽象的) 、final(最终的) 、static(静态的) 、synchronized(同步的) 

6、用于定义类与类之间关系的关键字

        extends(继承)、 implements(实现)

7、 用于定义建立实例及引用实例,判断实例的关键字

        new(建立实例)、  this(当前引用)  、super(父类引用)  、instanceof(判断对象类型)

8、 用于异常处理的关键字

        try(检查异常)  、catch(捕获异常) 、 finally(最终执行)

        throw和 throws:两个都表示抛出异常,但使用位置不同

9、 用于包的关键字

        package(创建包)         import(导入包)

10、其他修饰关键字

        native(本地)         

        strictfp(strict float point,精确浮点) 

        transient(用来表示一个域不是该对象串行化的一部分)

        volatile(类型修饰符,用来修饰被不同线程访问和修改的变量) 


二、标识符

        定义:就是在给类\接口\变量\方法等起名字的时候用到的字符序列

规则:

a:英文带小写字母

b:数字

c:$和_

注意事项:

a:.不能以数字开头

b:不能是java中的关键字

c:区分大小写

1、常见的命名规则

首先要做到见名知意

包:全部小写,多级包的时候用.相隔 cn.itcast

类或者接口:大驼峰式,AaaBbbCcc

变量或者方法:小驼峰式,aaaBbbCcc

常量:全部大写,多个单词用”_”隔开 PI ,STUDENT_MAX_GRADES


三、常量

定义:就是在程序执行过程中,不可改变的量

分类:

a:字面值常量:

整数常量      0,1,100

小数常量       9.9,0.0,1.0

字符串常量  “hello”,”0”,””,” ”  用双引号引起的内容

字符常量       ‘a’,’中’,’0’,’ ’,’\’’  用单引号引起的内容

布尔常量 true 和false

  空常量 null

b:用不同进制表示整数常量:

二进制 由0,1组成,以0b开头

八进制 由0,1,…7组成,以0开头

十进制 由0,1,…9组成,默认就是十进制

十六进制 由0,1,…9,a,b,c,d,e,f(大小写均可)组成, 以0x开头

  有时需要转义符号表示一个字符,使用\加后边的字符可以将后边的字符转为其他含义.转义字符代表的是一个字符,它可以写成单独字符或者字符串的一部分

转义符号:\

\t :制表符

\n:换行符

\r :回车符

\’: 单引号字符

\”: 双引号字符

\\  : 反斜杠字符


四、变量

定义:就是在程序的执行过程中,其值可以在一定范围内可以改变的量

1、变量的定义格式

a:数据类型 变量名= 初始化值

b:数据类型变量名

变量名=初始化值

2、数据类型分类

a:基本数据类型(4类8种)

b:引用数据类型

黑马程序员-Java基础【1】(关键字,标识符,常量,变量,运算符)

3、基本数据类型取值范围占用内存大小及默认值

黑马程序员-Java基础【1】(关键字,标识符,常量,变量,运算符)

4、注意

定义long的时候,一定要以L或者l结尾,建议L

定义float的时候,一定要以F或者f结尾,建议F

5、数据类型转换

a:默认数据类型转换

由”+”号运算符引起的问题.两个int,一个int和一个byte相加的结果是int ,这就是数据提升,也就是默认转换

规则:

1:byte,short,char—int—long—float—double,不同数据类型进行混合运算时,会转成最大的数据类型

2:byte,short,char相互之间不转换,他们参与运算首先转换为int类型

b:强制数据类型转换

格式:目标类型 变量名=(目标类型)(被转换的数据);

注意:强制数据类型转换隐藏了损失精度的问题

byte b1=3,b2=4,b;
b=b1+b2;//报错
int c=b1+3;//正确,运算时byte会自动提升为int类型,这就是默认数据类型转换
b=(byte)b1+b2;//正确,强制数据类型转换,将b1+b2的结果转为byte类型,再赋值给



五、运算符

运算:对常量和变量进行操作

运算符:对常量和变量进行运算的符号

1、算术运算符:+,-,*,/,%,++,--

+的三种用法:

a.正号

b.加法

c.字符串连接(只要”+”的一侧为字符串)`            

/和%用法:

/:取的是商,余数舍弃;%取的是余数,商舍弃.

注意:

小数的%运算无意义

整数进行运算的时候,除数不能为0

小数进行相除的时候,除数为0.0的时候,不报错,Infinity

%运算的时候,符号与被除数相同,

++和--:作用就是自增或者自减(我只给大家演示++)

单独使用:放在操作数据的效果一样

混合使用:

符号在前,先自增或自减,再使用

符号在后,先使用,再自增或自减

2、赋值运算符:=,+=,-=,/=,*=,%=

=,将等号右边的值赋给左边的变量;

类似+=这样的运算符是讲符号左右两侧是值进行运算后,再将结果赋值给左边的变量

short s = 1;
s = s + 1;//报错,损失精度,short类型计算是会提升为int类型
short b = 1;
b += 1;//正确,隐含了强制类型转换</span>

3、比较运算符:==,!=,>,>=,<,<=

比较运算符的结果都是boolean型,也就是要么是true,要么是false。

int x = 10;
int y = 10;
boolean flag = (x == y);//true,比较x和y是否相等
boolean flag = (x = y);//报错,=是赋值运算符
4、逻辑运算符:|,&,!,^,&&,||

逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6

表达式:用运算符把常量或者变量连接起来符合java语法的式子

&:有false则false

|:有true则true

^:不同为true,相同为false

!:非true即false,非false即true

  &&:有false则false

||:有true则true

&&&的区别是:如果左边有false,右边将不再执行.

|||的区别是:如果左边有true,右边将不再执行.

5、位运算符:&,|,^,~,<<,>>,>>>

&,|,^,两边为数据的时候是位运算.将两边数据都转成补码后操作

&:有0则0

|:有1则1

^:不同为1,相同为0

~:取反,包括符号位

^的特点:一个数据对另一个数据位异或两次,该数本身不变.

<<:左移  左边最高位丢弃,右边补齐0; 结果是把<<左边的数据乘以2的移动次幂

>>:右移  最高位是0,左边补齐0;最高为是1,左边补齐1;结果是把>>左边的数据除以2的移动次幂

>>>:无符号右移无论最高位是0还是1,左边补齐0

6、三目运算符:

格式:

条件表达式?表达式1:表达式2;

流程:

1.计算条件表达式的结果(boolean类型)

2.条件表达式的结果为true,运算后的结果为表达式1

3.条件表达式的结果为false,运算后的结果为表达式2

int a=3;
<span style="font-family: Arial, Helvetica, sans-serif;">int b=4;</span>
System.out.println(a>b?a:b);//判断a和b的大小,结果输出最大值