美文网首页Java学习笔记
Java SE学习(三)之Java的基础语法(上)

Java SE学习(三)之Java的基础语法(上)

作者: Lucky_Light | 来源:发表于2017-03-19 19:52 被阅读187次

    Java的基础语法(上)

    要学习一门程序设计语言,首先必须得学习它的语法,这部分内容对于大部分人来说是非常枯燥的,因为要记忆的内容非常多,但是要想学好 Java,就必须了解这部分的内容。语法格式只是学习时最基础的知识,在实际的开发中,需要根据程序的需要,使用恰当的格式去实现程序逻辑,所以语法一定要熟练。这部分内容对于具有 C/C++ 编程经验的程序员来说,只需要快速的浏览一下,注意其中的差异就行了。

    注释

    注释(comment)是对代码功能和用途的说明。在程序中编写适当的注释,将使程序代码更容易阅读,增强代码的可维护性。与大多数程序程序设计语言一样,Java 中的注释也不会出现在可执行程序(即 .class 文件)中。因此,可以在源程序中根据需要添加任意多的注释,而不用担心代码会膨胀。

    单行注释

    单行注释是最常用的注释方式,只需要在要注释的内容前面加上 // 即可。例如:

    // hello world
    

    注意:单行注释从两个斜线开始到本行结束都是注释的内容,注释内容不能换行。

    多行注释

    多行注释可以将任意多行的内容注释,一般用于说明比较复杂的内容,只需要将需要注释的内容用 /**/ 包围起来。例如:

    /*
        hello
        world
    */
    

    注意:多行注释不能嵌套使用。

    文档注释

    文档注释可以自动地生成文档,是 Java 的特色注释格式,这种注释以 /** 开头,以 */ 结束。例如:

    /**
        @version v1.0
        @author Lucky Light
    */
    

    关键字

    所谓关键字就是被 Java 语言赋予特殊含义,具有专门用途的单词,比如之前接触的 class,public,static等均为 Java 预设的关键字。组成关键字的字母全部都是小写,且不能用作常量、变量和其他标识符的名字。

    常见关键字

    关键字 关键字 关键字 关键字
    abstract assert boolean break
    byte case catch char
    class const continue default
    do double else enum
    extends final finally float
    for goto if implements
    import instanceof int interface
    long native new package
    private protected public return
    short static strictfp super
    switch synchronized this throw
    throws transient try void
    volatile while

    注意:goto 与 const 是 Java 中的保留字,即没有赋予特殊含义却仍被 Java 占用的单词

    标识符

    标识符即标识的符号,指程序中一切自己指定的名称,例如后续语法中涉及到的变量名称、常量名称、数组名称、方法名称、参数名称、类名、接口名、对象名等等。

    组成规则

    • 英文大小写字母
    • 数字
    • 货币字符($)和下划线(_)

    注意事项

    • 数字不能开头
    • 不可以使用关键字
    • 严格区分大小写,不限制长度
    • 起名时,尽量达到见名知意

    标识符中常见的命名规则

    • 类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:(领域模型 的相关命名)DO / DTO / VO / DAO 等。

    正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
    反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion

    • 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。

    正例: localValue / getHttpMessage() / inputUserId

    • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

    正例: MAX_STOCK_COUNT
    反例: MAX_COUNT

    • 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命 名以它要测试的类的名称开始,以 Test 结尾。
    • POJO 类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。

    反例:定义为基本数据类型 boolean isSuccess;的属性,它的方法也是 isSuccess(),RPC框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常。

    • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用 单数形式,但是类名如果有复数含义,类名可以使用复数形式。

    正例: 应用工具类包名为 com.alibaba.mpp.util、类名为 MessageUtils(此规则参考 spring的框架结构)

    变量和常量

    所谓变量,就是程序的运行过程中值会发生改变的量;所谓常量,就是程序运行过程中值不能发生改变的量。

    在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量还是常量。

    声明

    由于 Java 语言是一种强类型的语言,所以变量和常量在使用以前必须首先声明,在程序中声明变量和常量的语法格式如下:

    数据类型 变量或常量名称;
    

    变量或常量名称是该变量或常量的标识符,需要符合标识符的命名规则,在实际使用中,该名称一般和变量或常量的用途对应,这样便于程序的阅读。例如:

    int age;
    

    赋值

    变量和常量在使用前必须先赋值,给变量或常量赋值的格式为:

    变量或常量名称 = 值;
    

    赋值时,要求值的类型需要和声明变量或常量的数据类型一致。例如:

    age = 18;
    

    注意:= 表示赋值,将 = 右边的值赋给了左边的变量或常量。Java 中使用 == 表示相等,等价于数学中的 =

    综合使用

    可以在声明变量或常量的同时,设定该变量或常量的值,语法格式如下:

    数据类型 变量或常量名称 = 值;
    

    例如:

    int age = 18;
    

    数据类型

    Java 是一种强类型语言,这意味着必须为每一个变量声明一种数据类型,基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字字母。

    在 Java 中,数据类型分为原生数据类型和引用数据类型。

    原生数据类型

    Java 支持 8 种原始数据类型。原始数据类型是由该语言预先定义的并用关键词命名的。

    字节型(byte)

    • 字节型是一种 8 位有正负的二进制整数,最小值是 -128(-2^7),最大值是 127(2^7-1),默认值为 0。
    • 字节型数据类型主要是为了在大型数组内节省空间,主要是替代整数由于字节型比整数小 4 倍。

    例如:

    byte a = 100;
    byte b = -50;
    

    短整数(short)

    • 短整数是一种 16 位有正负的二进制整数,最小值是 -32768(-2^15),最大值是 32767(2^15-1),默认值为 0。
    • 短整数类型的数据也可以像字节型一样用于节省空间。短整数比整数小两倍

    例如:

    short a = 10000;
    short b = -20000;
    

    整数型(int)

    • 整数型是一种 32 位有正负的二进制整数,最小值是 - 2,147,483,648(-2^31),最大值是 2,147,483,647(2^31 -1),默认值为 0。
    • 整数型一般默认被应用于整数值除非担心内存不够用。

    例如:

    int a = 100000;
    int b = -200000;
    

    长整型(long)

    • 长整型是一种 64 位有正负的二进制整数,最小值是 -9,223,372,036,854,775,808(-2^63),最大值是 9,223,372,036,854,775,807 (2^63 -1),默认值为0。
    • 这种数据类型一般是在需要比整数型范围更大时应用。

    例如:

    long a = 1000000L;
    long b = -20000000L;
    

    浮点型(float)

    • 浮点型数据是一种单精度的 32 位 IEEE 754 标准下的浮点数据,默认值是 0.0f。
    • 浮点型数据主要是为了在大型浮点数字数组中节约内存。
    • 浮点型数据不能用于如货币这样的精确数据。

    例如:

    float a = 234.5F;
    

    双精度型(double)

    • 双精度型数据是一种双精度的 64 位 IEEE 754 标准下的浮点数据,默认值是 0.0d。
    • 这种数据类型主要是默认被用于表示小数的值,一般是默认的选择。
    • 双精度型数据不能用于如货币这样的精确数据。

    例如:

    double a = 123.4;
    

    布尔型(boolean)

    • 布尔型数据代表一个信息比特。它只有两个可能的值:真(true)和假(false),默认值是假(false)。
    • 这种数据类型用于真假条件下的简单标记。

    例如:

    boolean a = true;
    

    字符型(char)

    • 字符型数据是简单的 16 位 Unicode 标准下的字符,最小值是: '\u0000' (或 0),最大值是: '\uffff' (或 65,535 )。
    • 字符型数据可以用来储存任意字母。

    例如:

    char a ='A';
    

    原生数据类型的相互转换

    在 Java 中,类型的转换随处可见。例如变量的定义、数值的计算以及方法的传递等等,类型转换在 Java 中具有重要的作用。在此,先简单介绍一下原生数据类型的相互转换。

    要想理解数据类型的相互转换,首先必须知道以下两点:

    • 在 Java 中各种原生数据类型所占内存的大小,如下表所示:
    数据类型 所占的内存
    boolean 未定
    byte 1字节
    char 2字节
    short 2字节
    int 4字节
    long 8字节
    float 4字节
    double 8字节
    • 在 Java 中,整数的默认数据类型为 int,浮点数的默认数据类型为 double。
    隐式类型转换

    在 Java 中,隐式转换由系统自动进行,无需程序员干涉,且不会损失精度。规则如下表所示:

    原类型 目的类型
    byte short, int, long, float, double
    short int, long, float, double
    char int, long, float, double
    int long, float, double
    long float, double
    float double

    例如:

    byte + int
    

    会自动转换成:

    int + int
    

    又如:

    int + double
    

    会转换成:

    double + double
    

    再如:

    byte + char
    

    会转换成:

    int + int
    
    显式类型转换

    在 Java 中,显式类型转换又被称为强制类型转换,这种转换不会自动进行,需要由程序员显式指定,而且有可能损失精度。规则如下表所示:

    原类型 目的类型
    byte char
    short byte, char
    char byte, short
    int byte, short, char
    long byte, short, char, int
    float byte, short, char, int, long
    double byte, short, char, int, long, float

    例如:

    int a;
    

    要想将a转换成 byte 类型,需要这样写:

    (byte) a;
    

    如想将整个表达式的结果进行数据类型转换,必须将整个表达式用括号括起来。
    例如:

    int a;
    int b;
    byte c;  
    

    要想将 a + b 的结果赋值给 c,则需要这样写:

    c = (byte) (a + b);
    

    引用数据类型

    • 引用数据类型是由类的编辑器定义的。他们是用于访问对象的。这些变量被定义为不可更改的特定类型。例如:Employee, String 等等。
    • 类对象和数组变量就是这种引用数据类型。
    • 任何引用数据类型的默认值都为空。
    • 一个引用数据类型可以被用于任何声明类型和兼容类型的对象。

    例如:

    String string = new String("hello world");
    

    相关文章

      网友评论

        本文标题:Java SE学习(三)之Java的基础语法(上)

        本文链接:https://www.haomeiwen.com/subject/vqdvnttx.html