变量与常量

作者: 程序员丶星霖 | 来源:发表于2017-11-13 09:28 被阅读28次

    变量与常量

    @(Java学习)

    一、关键字

    Java语言中具有特殊用途的词称为关键字

    关键字 描述
    abstract 抽象方法,抽象类的修饰符
    assert 断言条件是否满足
    boolean 布尔数据类型
    break 跳出循环或者label代码段
    byte 8-bit有符号数据类型
    case switch语句的一个条件
    catch 和try搭配捕捉异常信息
    char 16-bit Unicode字符数据类型
    class 定义类
    const 未使用
    continue 不执行循环体剩余部分
    default switch语句中的默认分支
    do 循环语句,循环体至少会执行一次
    double 64-bit双精度浮点数
    else if条件不成立时执行的分支
    enum 枚举类型
    extends 表示一个类是另一个类的子类
    final 表示一个值在初始化之后就不能再改变了;表示方法不能被重写,或者一个类不能有子类
    finally 为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码
    float 32-bit单精度浮点数
    for for循环语句
    goto 未使用
    if 条件语句
    implements 表示一个类实现了接口
    import 导入类
    instanceof 测试一个对象是否是某个类的实例
    int 32位整型数
    interface 接口,一种抽象的类型,仅有方法和常量的定义
    long 64位整型数
    native 表示方法用非Java代码实现
    new 分配新的类实例
    package 一系列相关类组成一个包
    private 表示私有字段,或者方法等,只能从类内部访问
    protected 表示字段只能通过类或者其子类访问子类或者在同一个包内的其他类
    public 表示共有属性或者方法
    return 方法返回值
    short 16位数字
    static 表示在类级别定义,所有实例共享的
    strictfp 浮点数比较使用严格的规则
    super 表示基类
    switch 选择语句
    synchronized 表示同一时间只能由一个线程访问的代码块
    this 表示调用当前实例或者调用另一个构造函数
    throw 抛出异常
    throws 定义方法可能抛出的异常
    transient 修饰不要序列化的字段
    try 表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码
    void 标记方法不返回任何值
    volatile 标记字段可能会被多个线程同时访问,而不做同步
    while while循环

    Java中常用的关键字如下表:

    关键字 描述
    abstract 抽象方法,抽象类的修饰符
    assert 断言条件是否满足
    boolean 布尔数据类型
    break 跳出循环或者label代码段
    byte 8-bit有符号数据类型
    case switch语句的一个条件
    catch 和try搭配捕捉异常信息
    char 16-bit Unicode字符数据类型
    class 定义类
    const 未使用
    continue 不执行循环体剩余部分
    default switch语句中的默认分支
    do 循环语句,循环体至少会执行一次
    double 64-bit双精度浮点数
    else if条件不成立时执行的分支
    enum 枚举类型
    extends 表示一个类是另一个类的子类
    final 表示一个值在初始化之后就不能再改变了;表示方法不能被重写,或者一个类不能有子类
    finally 为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码
    float 32-bit单精度浮点数
    for for循环语句
    goto 未使用
    if 条件语句
    implements 表示一个类实现了接口
    import 导入类
    instanceof 测试一个对象是否是某个类的实例
    int 32位整型数
    interface 接口,一种抽象的类型,仅有方法和常量的定义
    long 64位整型数
    native 表示方法用非Java代码实现
    new 分配新的类实例
    package 一系列相关类组成一个包
    private 表示私有字段,或者方法等,只能从类内部访问
    protected 表示字段只能通过类或者其子类访问子类或者在同一个包内的其他类
    public 表示共有属性或者方法
    return 方法返回值
    short 16位数字
    static 表示在类级别定义,所有实例共享的
    strictfp 浮点数比较使用严格的规则
    super 表示基类
    switch 选择语句
    synchronized 表示同一时间只能由一个线程访问的代码块
    this 表示调用当前实例或者调用另一个构造函数
    throw 抛出异常
    throws 定义方法可能抛出的异常
    transient 修饰不要序列化的字段
    try 表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码
    void 标记方法不返回任何值
    volatile 标记字段可能会被多个线程同时访问,而不做同步
    while while循环

    二、标识符

    标识符就是用于给Java程序中变量、类、方法等命名的符号。

    2.1、使用标识符,需要遵守几条规则:

    1. 标识符可以字母数字下划线(_)美元符($)组成,但不能包含@、%、空格等其他特殊字符,不能以数字开头
    2. 标识符不能是Java关键字和保留字,但可以包含关键字和保留字。
    3. 标识符是严格区分大小写的。
    4. 标识符的命名最好能反映出其作用,做到见名知意

    三、变量

    在Java中,变量就是申请内存来存储值,可以通过三个元素描述变量:变量类型变量名以及变量值

    3.1变量名命名规则

    命名规则.jpg
    1. 变量名的长度是没有限制的;
    3.1.1变量的初始化

    1.先声明,再初始化:

    String name;
    name="张三";
    

    2.声明和初始化放在同一行:

    String name="张三";
    

    3.2命名的好习惯:

    1. 变量名由多个单词组成时,第一个单词的首字母小写,其后单词的首字母大写,俗称驼峰式命名法
    2. 变量命名时,尽量简短且能清楚的表达变量的作用,做到见名知意

    3.3Java中变量的使用规则

    1. Java中的变量需要先声明后使用;
    2. 变量使用时,可以声明变量的同时进行初始化;也可以先声明后赋值;
    3. 变量中每次只能赋一个值,但可以修改多次;
    4. main方法中定义的变量名必须先赋值,然后才能输出;
    5. 虽然语法中没有提示错误,但是在实际开发中,变量名不建议使用中文,容易产生安全隐患,譬如后期跨平台操作时出现乱码等等。

    四、数据类型

    Java是一种强类型语言,也就意味着必须为每一个变量声明一种类型。Java中有两类数据类型,如下所示:

    数据类型.jpg

    在Java中,基本数据类型变量存的是数据本身;引用类型变量存的是保存数据的空间地址

    4.1、基本数据类型

    Java语言提供了八种基本数据类型类型。其中6种数字类型(4种整数型,2种浮点型),1种字符串类型,还有1种布尔型。

    • 常用的基本数据类型如下表所示:
      [图片上传失败...(image-d675b3-1510536439971)]
    4.1.1整型

    整型用于表示没有小数部分的数值,允许是负数。Java提供了4种整型,如下表所示:

    类型 存储需求 取值范围
    int 4字节 -2147483648 ~ 2147483647
    short 2字节 -32768 ~ 32767
    long 8字节 -9223372036854775808 ~ 9223372036854775807
    byte 1字节 -128 ~ 127

    注意:

    1. int类型最常用;
    2. byte和short类型主要用于特定的应用场合;
    3. 长整型数值有一个后缀L或l(例如10000000000L)。
    4. 十六进制数值有一个前缀0x或0X(例如0xCAF0)。
    5. 八进制数值有一个前缀0(例如010就是8)。
    6. 从Java 7开始,加上前缀0b或0B就可以写二进制数(例如0b1001就是9)。
    7. 从Java 7开始,还可以为数字字面量加下划线,为了让人更易读,Java编译器会去除这些下划线。
    8. Java没有任何无符号形式的int、long、short或byte类型。
    4.1.2浮点类型
    类型 存储需求 取值范围
    float 4字节 大约+/-3.40282347E+38F(有效位数6~7位)
    double 8字节 大约+/-1.79769313486231570E+308(有效位数15位)

    浮点类型用于表示有小数部分的数值。在Java中有两种浮点类型,如下图所示:

    类型 存储需求 取值范围
    float 4字节 大约+/-3.40282347E+38F(有效位数6~7位)
    double 8字节 大约+/-1.79769313486231570E+308(有效位数15位)

    注意:

    1. float类型的数值有一个后缀F或f,没有后缀的浮点数值默认为double类型;
    2. double类型的数值也可以有一个后缀D或d;
    3. 所有的浮点数值计算都遵循IEEE 754规范;
    4. 用于表示溢出和出错情况的三个特殊的浮点数值如下:
    • 正无穷大(Double.POSITIVE_INFINITY)
    • 负无穷大(Double.NEGATIVE_INFINITY)
    • NaN(不是一个数字,Double.NaN)
    4.1.3char类型
    1. char类型原本用于表示单个字符;
    2. char类型的字面量要用单引号括起来;
    3. char类型的值可以表示为十六进制值,其范围从\u0000到\Uffff。
    4. 特殊字符的转义序列如下表所示:
    转义序列 名称 Unicode
    \b 退表 \u0008
    \t 制表 \u0009
    \n 换行 \u000a
    \r 回车 \u000d
    " 双引号 \u0022
    ' 单引号 \u0027
    \ 反斜杠 \u005c

    注意:

    1. Unicode转义序列会在解析代码之前得到处理;例如:"\u0022+\u0022"并不是一个由引号包围加号构成的字符串。实际上,\u0022会在解析前转换为",所以得到""+"",也就是一个空串
    2. 要当心注释中的\u。
    • //\u00A0 is a newline会产生一个语法错误,因为读程序时\u00A0会替换为一个换行符;
    • //Look inside c:\users会产生一个语法错误,因为\u后面并未跟着十六进制数。
    1. 在Java中,char类型描述了UTF-16编码中的一个代码单元。
    4.1.4boolean类型

    boolean类型有两个值:false和true,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。

    4.2、引用数据类型

    • 引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型。变量一旦声明后,类型就不能被改变了。
    • 对象、数组都是引用数据类型。
    • 所有引用类型的默认值都是null。
    • 一个引用变量可以用来引用与任何与之兼容的类型。
    • String是一种常见的引用数据类型,用来表示字符串。

    4.3类型转换

    在Java程序中,不同的基本类型的数据之间经常需要进行相互转换,可以分为自动类型转换强制类型转换

    4.3.1自动类型转换

    自动类型转换需要满足如下特定的条件:

    1. 目标类型能与源类型兼容,例如:double兼容int,char不兼容int;
    2. 目标类型大于源类型。
    3. 数值类型之间的合法转换如下图所示:


      数据类型转换.png
    • 实心箭头:表示无信息丢失的转换
    • 虚心箭头:表示可能有精度损失的转换
    4.3.2强制类型转换
    1. 语法:(数据类型)数值
    2. 强制类型转换可能会造成数据的丢失。

    五、常量

    1. 常量就是一个固定值,不需要计算,直接代表相应的值。在程序运行过程中不允许改变。在Java中利用关键字final指示常量。
    2. 语法:final 常量名 = 值;
    3. 关键字final表示这个变量只能被赋值一次。一旦被赋值之后,就不能再更改了。
    4. 常量名一般习惯全名使用大写字符

    六、注释

    1. Java中注释有三种类型:单行注释多行注释文档注释
    • 单行注释:以//开头,行末结尾
    • 多行注释:以/开头,以/结尾
    • 文档注释:以/*开头,以/结尾
    1. 在Java中,空白行或者有注释的行,Java编译器都会忽略掉。

    学海无涯苦作舟

    我的公众号.jpg

    相关文章

      网友评论

        本文标题:变量与常量

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