黑马程序员——Java基础——关键字、常量、变量、运算符

来源:互联网 发布:数控编程要学哪些 编辑:程序博客网 时间:2024/05/20 12:48

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

一、关键字

      关键字是被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(公有的)

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 虽然不是关键字,但是却是唯一被虚拟机识别的单词,是程序的唯一入口。一个独立运行的程序中可以有多个主函数,但一定是以重载形式出现的。

二、标识符

    是在程序中自定义的名字。标识符一般由大小写英文字母、数字、下划线、$等组成。

    标识符的规则:

     1、数字不可以开头。例如:int  3abc;这是不合法的。

     2、不可以使用关键字。

另外,java是严格区分大小写的。

比如:Class和class  就是两个不同的关键字。Abc和abc也是两个不同的变量名。

   以上是规则,就是被java视为合法所必须具备的。另外,我们还必须遵守一个规范,不遵守也不会违法,但是既然大家都在遵循,作为另类是很难的。所以,有一个良好的编程规范是很有必要的。

      java的名称规范:

   1、包名:若由多个单词组成时,所有字母都小写。如:xxxyyyzzz

   2、类名、接口名:多个单词组成时,所有单词的首字母大写。如:XxxYyyZzz

   3、变量名和函数名:多个单词组成时,第一个单词首字母小写。第二个单词首字母大写。如:xxxYyyZzz

   4、常量名:多个单词组成时,所有字母都大写。每个单词都用_连接。

                         如:XXX_YYY_ZZZ

   三、常量与变量

             常量

          定义:Java中固定不变的、表示不能改变的数值。

Java中常量的分类:

        1、整数常量:所有整数。

        2、小数常量:所有小数。

        3、布尔型常量:true  false

        4、字符常量:将一个数字字母或者符号用单引号( ' ' )标识。如:char ch='c'

        5、字符串常量:将一个或者多个字符用双引号(“”)标识。如:String  str="abc"

        6、null常量。只有一个数值就是:null。常作为引用变量的初始化值。

  我们有必要再复习下数值进制的知识:

        对于整数,java有三种表现形式:

             1、十进制:0~9

             2、八进制:0~7.满7进1.以0开头

             3、十六进制:0~9、A~F。满16进1,以0x开头。

    进制的基本转换:

         十进制------->二进制:

        用十进制的整数不断除2,取余数。

         二进制------->十进制:

         用二进制数的每一位,乘以2的n次幂,n为位数。

        十进制-------->八进制:

          与转二进制同理,用十进制数不断除以8,取余数

       八进制--------->十进制:

        与二进制转十进制同理。底数是8

         十进制--------->十六进制:同上。

        八进制<-------->二进制的互转:

                   八进制----->二进制:把八进制数的每一位都变成二进制即可。

                  如:127的二进制为001010111

                   二进制------->八进制:把每三位二进制数变成八进制即可。

                  如:110 111  001  011的八进制为6713

         十六进制<-------->二进制

                 十六进制--------->二进制:与上述同理。如0x6A的二进制为0110 1010

                 二进制---------->十六进制:与上述同理。如1100 1001的十六进制为0xC9

       负数的二进制表现形式:

        原理:就是该负数的绝对值,取反后加1即可。

        如:负数-9

       其绝对值9的二进制为0000 0000- 0000 0000- 0000 0000 -0000 1001

                                    取反1111  1111- 1111 1111-1111  1111 -1111  0110

                                    加1  0000  0000-0000 0000-0000  0000 -0000   0001                                          

——————————————————————————————————

                 所得的数为:   1111  1111  1111 1111 1111 1111  1111   0111

          这就是-9的二进制表现形式。

当然程序中,我们要这么计算就要崩溃了,它们都已经被封装为一个一个函数,直接调用即可,但原理还是需要掌握的。

  四、变量

       1、 变量:就是将不确定的数据在内存中进行存储。

          这也就是说需要在内存中开辟一片空间。如何开辟空间呢?就是通过明确数据类型,变量名称,数据三步来完成的。刚开始比较简单的数据,不用说,到后面较为复杂的数据类型,按这三步走还是很有用的哦!

            java的数据类型:

       

在java中,默认的整数类型是int,小数类型是double

对于long类型数据表现形式为,数后面要加L。如:32L;

对于float类型数据表现形式为,数后面要加f。如:3.2f;如果不加f,系统就会报错,因为系统默认是double类型的。

       最关键的就是什么时候定义变量,当 数据不明确,又需要对数据进行存储的时候,就需要定义一个变量来完成存储的操作。

  2、类型转换问题

         每种数据类型在内存中都有相应的存储形式。如整数是用4个字节来表示,byte类型只能存储一个字节的数据,long是用64位来表示一个数据。

         当不同类型之间进行互转时,就容易发生损失数据精度等问题。因此,java中严格的类型转换机制来解决此类问题。

         A 向上转型(类型的自动提升)

         用高精度数据类型来存储低精度数据。  例如:用一个int类型来存储一个字节型数据。

           举例说明:byte  a=2;  int  b=a;

           a是一个字节的数据2,而b是用四个字节来表示的,这时,系统就会自动将a提升为int类型来和b相匹配,并将a赋值给b。

       B 向下转型(强制转型)

         用低精度数据类型来存储高精度数据。   不加任何强制操作的向下转型是java绝对不允许的。例如:非得用一个byte型数据来存储一个int型数据。这样,就会造成 损失数据精度等问题

          实现数据的强制类型转换,要在被转换的变量前面加上转换的数据类型。格式如下:

             目标类型变量=(目标类型)表达式

         int id=15; byte bid=(byte) id;

 在这个强制类型转换过程中,由于int型变量值没有超出byte型的取值范围,因此byte型变量可以完全容纳int变量。但如果此时int型变量值为200,当int型数据转换为byte类型时,就会超出byte取值范围,出现数据丢失的现象。

         注解:boolean类型不能被强制转换为其他数据类型,反之亦然。

 五 、运算符

        java中的运算符有:赋值运算符、算术运算符、逻辑运算符、比较运算符、位运算符、三元运算符等。

     1、赋值运算符

          主要作用就是将某个类型数据对象赋值给目标类型的变量。使用符号“=”,注意要和比较运算符= =区分开。

        例如:int a=9; String str="abc";

         扩展使用:+=    -=    *=    /=  均属于赋值运算范畴。

    2、算术运算符

           包括 + 、 - 、*、 /、%。其中,/为除法,%为求余数。

                                             算术运算符

                                  运算符                运算     

                                     +                      正

                                     -                       负

                                    +                     加法

                                    -                      减法

                                   *                        乘法

                                   /                        除法

                                   %                      求余数

                                   ++                      自增

                                    - -                      自减

                                  +                            字符串相加

             注意:1、i++ 和++i是不同的,i++是使用i后再自增。++i是i先自增后,再使用它。对比起来,更容易理解。

                       2、 取模运算里面有负数,运算结果要看左边,如:-1%5=-1             1%-5=-1   两者不同

                       3、字符串和任何数据相加,结果都是字符串。

               如:System.out.println("5+5="+5+5);结果是5+5=55;这时候,可以用()来提高优先级。

                        System.out.println("5+5="+(5+5));

        3、比较运算符

          有:= =、<=  、>=   、!= 、instanceOf.

             instanceOf     检查是否是类的对象

             例如:"hello" instanceOf String   结果是true

        4、逻辑运算符

           有:   &、|、^(XOR)、!、&&、||。  逻辑运算符用于连接boolean类型的表达式。

           &和&&的区别:

           &:无论两边的表达式是否为true,都要做判断

          &&:如果左边的表达式为false,就不必判断右边的表达式,结果为false,因为&运算符的规律是两者同为真,结果为真。有一者为假,结果为假。

        |和||也是同理。

       5、位运算符

             <<          左移   空位补0          例:3<<2=12

             >>          右移   空缺的高位补0 还是1,取决于符号位     例:3>>1=1

            >>>        无符号右移   无论符号位是0还是1,空缺的高位补0

            &             与        二进制位进行&运算

            |               或        二进制位进行|运算

           ^             异或      二进制位进行xor运算,常用于加密。

                  一个数异或同一个数两次,所得的仍然是原数。

           ~            取反      

    6、三元运算符

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

      当条件表达式为true时,执行表达式1,否则,执行表达式2.

     附:转义字符

         通过\来转变后面字符或字母的含义。

     \b为退格   相当于backspace键

     \r按下回车键

    \t 制表符 相当与tab键

   注:linux系统中的换行符只有一个字符:\r

          window系统中的换行符需要两个字符:\r\n

我们通过一个小程序来演示:

          在dos命令行中输入:javac   ByteOperate.java

                       java   ByteOperate

     

           

 







                                                                      





------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
0 0
原创粉丝点击