黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

时间:2023-02-19 09:33:07

——- android培训java培训、期待与您交流! ———-

 

一、Java语言的基本组成:

关键字、标识符、注释(上一章讲过) 、运算符、常量和变量 、语句、函数 、数组。

(1)关键字

关键字:被Java语言赋予了特殊含义的单词。注:关键字中的所有字母都为小写。

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

基本数据类型:

        整数类型:byte  short  int  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(公有的)default(默认的)

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

         abstract(抽象的final(最终的static(静态的synchronized(同步的enum(枚举)

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(类型修饰符,用来修饰被不同线程访问和修改的变量

         assert(断言,可以看作是异常处理的一种高级形式,用于捕捉我们在代码中做出的假设)

注:main不是关键字,却是被虚拟机所识别的一个名称。

示例:使用编辑器EditPlus编写一个Hello World输出程序。

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

其中:编辑器中蓝色字体就是关键字,红色字体就是JDK为我们提供的类。EditPlus默认会创建一个后缀名为bak的备份文件,如果不想创建备份文件,只需要通过如下操作:点击Tools-->preferences-->File-->勾掉Create backup file when saving即可。

(2)标识符

标识符:在程序中自定义的一些名称。

由26个字母大小写,数字0-9,符号_ $组成。

注:数字不能开头,不可以使用关键字,严格区分大小写,在起名字时,为了提高阅读性,尽量起有意义的名字。

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

(3)常量与变量

3.1、常量:表示不能改变的数值。

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

 对于整数,Java的表现形式有:

  • 二进制:0-1
  • 八进制:0-7,满8进1,以0开头
  • 十进制:0-9,满10进1
  • 十六进制:0-9,A-F,满16进1,以0x开头

注:8个二进制组成一个数据单元,称为字节。

示例:使用计算机进行进制转换

 1)点击“开始”-->“所有程序”-->“附件”-->“计算器”

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

2)点击“查看”-->“程序员”

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

3)现在就可以使用计算机来进行进制转换了

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

 注:1Byte = 8bit           1KiB = 1024Byte           1MiB = 1024KiB           1GiB = 1024MiB

 

3.1.1、二进制与十进制之间的转换

十进制—>二进制。原理:对十进制数组进行除2运算 。例如6—>110

    黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

 二进制—>十进制。原理:二进制乘以2的过程。例如110—>6

      黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

3.1.2、其他进制间的转换

二进制—>十六进制。原理:每4位二进制就是一个十六进制位。例如90的二进制是01011010,将每4为二进制转换成对应的十六进制后就为0x5A

     黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

二进制—>八进制。原理:每3位二进制代表一位八进制位。例如90的八进制为132

     黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

3.1.3、负数的二进制表现形式

原理:就是正数的二进制取反+1。

例如:6的二进制为110。6在内存中占了4个字节,其表现形式为:

     黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

-6:就是6的二进制取反+1。

取反:就是将二进制的1变成0,0变成1。

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

结论:负数的最高位都是1。可通过代码的Integer.toBinaryString(-6);进行验证。

3.2、变量的概念:

变量就如同数学中的未知数。变量在内存中开辟一个空间,将不确定的数据进行存储;即在内存中开辟存储区域,该区域有自己的名称(变量名)和类型(数据类型),该区域的数据可以在同一类型范围内不断变化。

3.2.1、为什么要定义变量?

用来不断的存放同一类型的常量,并可以重复使用。

3.2.2、使用变量应注意:

变量的作用范围(一对{}之间有效)

初始化值

3.2.3、定义变量的格式:

格式:数据类型   变量名=初始化值;

注:格式是固定的,记住格式,以不变应万变。

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

byte:在内存中占8个二进制位/1个8位/1个字节,范围:-128~127

short:在内存中占16个二进制位/2个8位/2个字节,范围:-2^15~2^15-1

int:在内存中占32个二进制位/4个8位/4个字节

long:在内存中占64个二进制位/8个8位/8个字节,如:long x=4L;

float:在内存中占32个二进制位/4个8位/4个字节,如:float x=3.2f;

double:在内存中占8个8位/8个字节

char:2个字节

注:  double类型的小数精度比float类型的小数更高。

当数据不确定的时候,需要对数据进行存储时,就定义一个变量来完成存储动作。

3.2.4、类型转换:

a).强制类型转换(显示类型转换):强制类型转换需要把类型进行手动转换,否则无法正常使用
如:byte b=2;    b=(byte)(b+3);

b).自动类型转换(隐式类型转换):如:byte b=2;    b=b+3;    会报错。因为:b是一个8位,3是4个8位,所以系统会自动将b提升至4个8位(类型自动提升),结果为4个8位,4个8位无法自动转换为byte(一个8位),所以会报错。

3.2.5、表达式的数据类型的自动提升:

所有的byte型、short型、char型的值将被提升至int型

如果一个操作数是long型,计算结果就是long型

如果一个操作数是float型,计算结果就是float

如果一个操作数是double型,计算结果就是double

(4)运算符

4.1、算术运算符:正号(+),负号(-),加(+),减(-),乘(*),除(/),取模(%),自增(++),自减(--),字符串相加("he"+"llo")

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

如:int x=4270;    x=x/1000;   结果为:x=4;

        取模%:当左边小于右边,结果为左边

                        当左边等于右边,结果为0

                        当右边为1,结果为0

                        当有负数时,只看左边。如:1%-5=1,-1%5=-1

       自增++:如:int a=3,b;

                               b=a++;  //相当于b=a+1;结果为:b=3,a=4

                               b=++a;  //结果为:b=4,a=4  注:当a独立存在是不受影响

       字符串数据和任何数据使用“+”相连接,最终都会变成字符串。

           如:system.out.println("ab"+5+5);   //结果为:ab55

4.2、转义字符:通过“\”来转变后面字母或者符号的含义

\n:换行

\b:退格,相当于backspace键

\r:相当于按下回车键,在window系统中,回车符是由“\r\n”两个字符

\t:制表符,相当于tab键

\\:表示反斜杠

\':表示单引号

\":表示双引号

4.3、赋值运算符:=,+=,—=,*=,/=,%=

        黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符   

例如:short s=3;

            s=s+2;  //编译失败,因为s会被提升为int类型,运算后的结果还是int类型,无法赋值给short类型。

            s+=2;    //编译成功,因为+=运算符在给赋值时,自动完成了强制转换操作。

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

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

注:比较运算符的结果是boolean型的,所以要么是true,要么是false

4.5、逻辑运算符:&(与),|(或),^(异或),!(非),&&(短路),||(短路)

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

&:只要两边的boolean表达式结果,有一个为false,那么结果就是false。只有两边都为true,结果为true。

|:两边只要有一个为true,结果为true;只有两边都为false,结果为false。

^:两边相同结果是false,两边不同结果是true。

&和&&的区别:

单&时,左边无论真假,右边都进行运算;

双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

注:逻辑运算符用于连接boolean类型的表达式

4.6、位运算符:用于二进制的运算符号,直接对二进制进行运算

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

<<:左移;空位补0,被移除的高位丢弃,空缺位补0。就是乘以2的移动的位数次幂。如:3<<2—>3*2的2次方

>>:右移;被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。就是除以2的移动位数次幂。

>>>:无符号右移;被移位二进制最高位无论是0或者是1,空缺位都用0补。

&:与;二进制位进行&运算,只有1&1时结果是1,否则是0

|:或;二进制位进行 |运算,只有0 | 0时结果是0,否则是1

^:异或;任何相同二进制位进行 ^运算,结果是01^1=0 , 0^0=0

      不相同二进制位 ^运算结果是11^0=1 , 0^1=1

~:反码;对二进制进行取反。

4.7、 三元运算符

 格式: (条件表达式)?表达式1:表达式2

  a)如果条件为true,运算后的结果是表达式1

  b)如果条件为false,运算后的结果是表达式2

 示例: 获取两个数中大数。

             int x=3,y=4,z;

              z = (x>y)?x:y;//z变量存储的就是两个数的大数。

运算符的优先级:

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

练习:1、最有效的方式算出3乘以8等于几?

黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

  2、对两个整数变量的值进行交换

 黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符

——- android培训java培训、期待与您交流! ———-