• Java变量和字面量教程


    前言

    变量,指值可以变的量。变量以非数字的符号来表达,一般用拉丁字母。变量的用处在于能一般化描述指令的方式。结果只能使用真实的值,指令只能应用于某些情况下。变量能够作为某特定种类的值中任何一个的保留器。

    在数学中变量分为自变量和因变量,那么在Java中变量有什么作用呢

    在这里插入图片描述

    变量

    变量示例如下:

    int a = 0;
    long b = 0;
    short c = 1;
    String d = "三省同学";
    
    • 1
    • 2
    • 3
    • 4

    Java 编程语言定义了以下类型的变量:

    实例变量(非静态字段)

    独立于方法之外的变量,没有 static 修饰。
    非静态字段也称为实例变量,因为它们的值对于类的每个实例(换句话说,对于每个对象)都是唯一的;
    例如每个人自己的身份证都是唯一的。

    当一个对象被实例化之后,每个实例变量的值就跟着确定;

    实例变量在对象创建的时候创建,在对象被销毁的时候销毁;

    实例变量可以声明在使用前或者使用后;

    访问修饰符可以修饰实例变量;

    实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;

    实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;

    实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObjectReference.VariableName。

    类变量(静态字段)

    类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。

    无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。

    静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/private,final 和 static
    类型的变量。静态变量初始化后不可改变。

    静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。

    静态变量在第一次被访问时创建,在程序结束时销毁。

    静态变量还可以在静态语句块中初始化。

    静态变量可以通过:ClassName.VariableName的方式访问。

    类变量被声明为 public static final 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和
    final 类型,其命名方式与实例变量以及局部变量的命名方式一致。

    static String age = 18;
    
    • 1

    静态字段age将会应用于类的所用实例,都是18岁。当然还可以添加关键字final来表示年龄18岁永远不变。

    局部变量

    类的方法中的变量。

    声明局部变量的语法类似于声明字段(例如,int count = 0;)。

    局部变量只在声明它的方法、构造方法或者语句块中可见;

    局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;

    访问修饰符不能用于局部变量;

    局部变量是在栈上分配的。

    局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

    参数

    main方法的签名是

    public static void main(String[] args)
    
    • 1

    args变量是这个方法的参数。参数在方法中一般被归类为“变量”而不是“字段”。例如构造函数和异常处理程序中的变量。
    类型的字段、方法和嵌套类型统称为其成员。

    变量命名

    命名变量的规则和约定:

    变量名区分大小写。

    变量的名称可以是任何合法标识符长度不限的 Unicode 字母和数字序列,以字母、美元符号“ $”或下划线字符“ _”开头。

    通常以字母开头变量名,而不是“ $”或“ _”。

    通常不使用变量名包含美元符号字符。

    以“ _”开头的变量名称虽然在技术上是合法的,但不推荐这种做法。

    不允许使用空格。
    变量名称尽量使用完整的单词而不是隐晦的缩写。这样做将使您的代码更易于阅读和理解。
    变量名称不能是 关键字或保留字。
    变量名称仅包含一个单词,该单词拼写为所有小写字母。
    变量名称包含多个单词,则将每个后续单词的第一个字母大写。例如getName
    变量存储一个常量值,例如static final int NUM_GEARS = 6,则约定会略有变化,将每个字母大写并用下划线分隔后续单词。通常下划线字符从不在其他地方使用。

    原始数据类型

    原始类型由语言预定义并由保留关键字命名。Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 :

    原始类型

    类型名称字节、位数最小值最大值默认值例子
    byte1字节,8位-128(-2^7)127(2^7-1)0byte a = 100,byte b = -50
    short2字节,16位-32768(-2^15)32767(2^15 - 1)0short s = 1000, short r = -20000
    int4字节,32位-2,147,483,648(-2^31)2,147,483,647(2^31 - 1)0int a = 100000, int b = -200000
    long8字节,64位-9,223,372,036,854,775,808(-2^63)9,223,372,036,854,775,807(2^63 -1)0LL long a = 100000L, Long b = -200000L
    duble8字节,64位4.9E-3241.7976931348623157E3080.0ddouble d1 = 123.4
    float4字节,32位1.4E-453.4028235E380.0ffloat f1 = 234.5f
    char2字节,16位\u0000(即为0)\uffff(即为65,535)可以储存任何字符char letter = ‘A’;
    boolean返回true和 false两个值这种类型只作为一种标志来记录 true/false 情况;只有两个取值:true 和 false;falseboolean one = true

    字面量

    字面量是用于表达源代码中一个固定值的表示法;如下所示,可以将字面量分配给原始类型的变量:

    boolean result = true;
    char capitalC = 'C';
    byte b = 11;
    short s = 111;
    int i = 1111;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    整数字面量

    long型整数字面量以字母L或者l结尾。建议使用大写字母,因为小写字母很难与数字区分开来。

    十进制:以 10 为底,其数字由数字 0 到 9 组成;
    十六进制:以 16 为基数,其数字由数字 0 到 9 和字母 A 到 F 组成;
    二进制:以 2 为底,其数字由数字 0 和 1 组成;
    前缀0x表示十六进制,0b表示二进制:

    // 数字 26,十进制
    int decVal = 26; 
    // 数字 26,十六进制
    int hexVal = 0x1a; 
    // 数字 26,二进制
    int binVal = 0b11010;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    浮点字面量

    double浮点类型以D或d结尾,float浮点类型以F 或 f结尾。
    浮点类型 (float和double) 也可以使用 E 或 e(科学计数法)来表示:

    double d1 = 123.4;
    // 与 d1 相同的值,采用科学计数法
    double d2 = 1.234e2;
    float f1  = 123.4f;
    
    • 1
    • 2
    • 3
    • 4

    字符和字符串字面量

    字面量类型char、String可以包含任何 Unicode (UTF-16) 字符。char文字使用“单引号”,String文字使用“双引号” 。Unicode 转义序列可以在程序的其他地方使用(例如在字段名称中),而不仅仅是在char或String文字中。

    特殊的转义序列char和String文字:

    (\b退格)、\t(制表符)、\n(换行)、\f(换页)、\r(回车)、"(双引号)、'(单引号)和\(反斜杠)。

    特殊的null文字可以用作任何引用类型的值。null可以分配给任何变量,除了原始类型的变量。null经常在程序中用作标记,表示某些对象不可用。

    还有一种特殊的字面量,称为类字面量,由类型名称和 " .class"组成;例如,String.class, 表示类型本身的对象。

    在数字字面量 中使用下划线字符

    在 Java SE 7 及更高版本中,下划线字符 ( _) 可以出现在数字之间的任何位置。分隔数字文字中的数字组,提高代码的可读性。

    以下示例显示了可以在数字文字中使用下划线的其他方式:

    long creditCardNumber = 1234_5678_9012_3456L;
    long socialSecurityNumber = 999_99_9999L;
    float pi =  3.14_15F;
    long hexBytes = 0xFF_EC_DE_5E;
    long hexWords = 0xCAFE_BABE;
    long maxLong = 0x7fff_ffff_ffff_ffffL;
    byte nybbles = 0b0010_0101;
    long bytes = 0b11010010_01101001_10010100_10010010;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    只能在数字之间放置下划线。
    示例:

    //无效:不能在小数点附近放置下划线
    float pi1 = 3_.1415F; 
    //无效:不能在小数点附近放置下划线 
    float pi2 = 3._1415F; 
    //无效:不能在 L 后缀之前加上下划线
     long  socialSecurityNumber1 = 999_99_9999_L; 
    
    // 有效
    int x1 = 5_2; 
    //无效:在字面量的末尾不能放下划线
    int x2 = 52_; 
    // 有效
    int x3 = 5_______2; 
    
    //无效:在前缀中间不能使用下划线
    int x4 = 0_x52;
    //无效:不能在数字开头放置下划线
    int x5 = 0x_52;
    // 有效
    int x6 = 0x5_2;
    //无效:不能在数字末尾添加下划线
    int x7 = 0x52_;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    小结

    Java 编程语言同时使用“字段”和“变量”作为其术语的一部分。实例变量(非静态字段)对于类的每个实例都是唯一的。类变量(静态字段)是用static修饰符声明的字段;无论类被实例化多少次,类变量都只有一个副本。局部变量将临时状态存储在方法中。参数是为方法提供额外信息的变量;局部变量和参数总是被归类为“变量”(而不是“字段”)。在命名字段或变量时,应该(或必须)遵循一些规则和约定。

    八种原始数据类型是:byte、short、int、long、float、double、boolean 和 char。类 java.lang.String表示字符串。编译器会为上述类型的字段分配一个合理的默认值;对于局部变量,从不分配默认值。字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。

    犯我中华者虽远必诛

    在这里插入图片描述

  • 相关阅读:
    python数据可视化-matplotlib入门(2)-利用随机函数生成变化图形
    Docker Swarm Mode
    docker学习(一)
    centos7安装nacos2.1.0
    springboot 多线程实现
    YOLOv5~目标检测模型精确度
    基于JSP+Bootstrap+MySQL的“我与家乡”网页设计
    MySQL数据库命令大全
    JS(第二十四课)JS高级Es6语法
    如何让Springboot RestTemplate同时支持发送HTTP及HTTPS请求呢?
  • 原文地址:https://blog.csdn.net/qq_35764295/article/details/126128094