zoukankan      html  css  js  c++  java
  • Java常量与变量

    1.标识符

    在Java中,变量、常量、函数、类都可以称为程序实体,而他们的名称统称为标识符。

    (1)标识符的命名规则

    标识符可以由字母、数字、下划线(_)和$组成,不能以数字开头。
    标识符严格区分大小写。
    标识符不能是Java关键字和保留字。
    标识符的命名最好能反映出其作用。

    需要说明的是,以下划线(_)开头是合法的,但是在Go语言中不合法。
    python语法中也是合法的,只不过表示私有变量。

    2.关键字

    关键字是被编程语言保留的字符序列,编程人员不能将其当作标识符,因此关键字也被称为保留字。
    java中的关键字:

      Java总共有50多个关键字,还有几个保留字,比如goto。

    3.变量

    在数学概念中,变量表示没有固定值且可以改变的数。
    从计算机系统的角度来看,变量是一段或多段用来存储数据的内存。

    变量的三个元素:变量类型、变量名和变量值。

    变量的命名规则:
      满足标识符的命名规则。
      符合驼峰法命名规范。(变量都以小写字母命令,如果由多个单词组成,除首单词外其余单词第一个字母大写)
      变量名的长度没有限制。

    变量命名方式:
    (1)先定义类型,再进行赋值
      v_type v_name
      v_name = value

    (2)直接定义变量
      v_type v_name = value

    4.数据类型

    (1)基本数据类型

    不同数据类型,占据的内存大小:

    不同数据类型的取值方位:
      • byte:-128 ~ 127
      • short: -32768 ~ 32767
      • int: -2147483648 ~ 2147483647
      • long: -9223372036854775808 ~ 9223372036854775807

    (2)字面值

    a.整型字面值

    关于进制转化:https://www.cnblogs.com/yangmingxianshen/p/7720475.html
    Java中有三种表示整数的方法:十进制、八进制、十六进制
    二进制:用0和1来表示数,基数是2,进位规则是逢二进一,借位规则是借一当二。
    八进制:用0-7来表示数,逢八进一。以0开头
    十进制:用0-9来表示数,逢十进一。
    十六进制:用0-9以及ABCDEF来表示数,逢十六进一。以0x或0X开头,ABCDEF可以使用小写表示。

    示例:
    123:十进制
    023:八进制
    0x1357:十六进制
    0X3c:十六进制

    变量定义示例:
    int octal = 037 定义int类型变量,存放八进制数据
    long longNumber = 0xa2cdf3ffL 定义long类型变量,存放十六进制数据
    short shortNumber = 123 定义short类型数据,存放十进制数据
    byte b = 10 定义int类型数据,存放2进制数据

    需要注意的是:
    在常规逻辑中,我们一直以为类似int、long这类数据,只能存储整数类型,其实是可以存储八进制、十进制、十六进制的数值的。

    b.浮点型字面值

    浮点型字面值默认情况下表示double类型,也可以在值后加d或D。
    例如:123.43d或123.43D
    如要表示float类型,则需要在字面值后加f或F

    需要注意的是:
    float f = 1234.23; //这样会报错。浮点型默认是double类型

    将double数据类型的值转化为float,可能导致值得丢失。

    c.字符型字面值

    字符型字面值用单引号内的单个字符表示。如'a','b','$'
    需要注意的是:
    字符型字面值用单引号引起来。
    单引号中必须只有一个字符。

    如何定义字符型变量?
    char a = ‘a’;

    下面这个简单示例:
    public class Char {
    public static void main(String[] main) {
    char a = 'a'; //a=a
    System.out.println("a="+a);
    char b = 65;
    System.out.println("b="+b); // b=A
      }
    }

    char类型使用两个字节表示,也就是范围是0-65535。
    如果字面值超出char类型所表示的数据范围,需要进行强制类型转换。

    为什么b不是打印65,而是打印A?在ASCII中,65对应A。

    ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)。
    基于拉丁字母的一套编码系统。
    主要用于显示现代英语和其他西欧语言。

    Unicode(万国码):相对于ASCII来说,可以表示所有字符。
    例如:
    char c = ‘u005d’
    Unicode表示法,在值前加前缀u

    char c = 'u005d';
    System.out.println("c="+c); //c=]

    单引号表示字符型的字面值。
    字符型字面值有什么意义所在吗?

    d.布尔类型字面值

    布尔值只定义为true和false。
    示例:
    boolean b = true;

    e.字符串字面值
    字符串并不是基础数据类型,但是与字符型字面值有些类似。
    双引号引起来的0个或多个字符。
    String a = “ ” //代表可以为空。


    (3)基本数据类型变量的存储
    a.按照类型来分类
    数据类型分为基本数据类型和引用数据类型。
    引用数据类型包括数组和类等。
    类定义的变量又叫做对象。

    b.按照作用范围分为
    类级
    对象实例级别
    方法级(局部变量)
    块级

      在内存中,变量又可以分为栈、堆、常量池。

      局部变量存储在栈当中。



    5.类型转换

    类型转换分为自动类型转换和强制类型转换。
    自动类型转换又叫做隐式类型转换。

      上方箭头反方向的都属于强制类型转换。


    如果A类型的数据范围比B类型大,则将A类型的值赋值给B类型,需要强制类型转换。

    强制转换示例:
    public class TypeExchange {
      public static void main(String[] args) {
      //char类型和int类型之间的转换
        char c=(char)65535;
        int n;
        n=c; //隐式类型转换
        System.out.println(n);
        c=(char)n;

        //整型和浮点型的类型转换问题
        int x = 100;
        long y=x;
        x=(int)y;
        float f=1000000000000L;
        System.out.println("f="+f); //f=1.0E12
      }
    }


    6.常量
    常量只是在变量前面加上final关键字。
    常量一旦定义之后就无法修改。
    final int n = 5;

    7.var关键字
    有时候可能类型的名字太长,写起来比较麻烦。可以使用var关键字来省略。例如
    StringBuilder sb = new StringBuilder();
    可以简写为:
    var sb = new StringBuilder();
    因为sb是StringBuilder的实例化对象,编译器可以自动推断出变量sb的类型。

    在Go语言中定义变量使用关键字var,定义方式也是多种多样。定义常量使用关键字const。
    python由于是动态类型的语言,不论是常量还是变量,都会在执行的时候自动识别。

  • 相关阅读:
    大数相加和快速相乘
    (转)直线分割平面 与 平面分割区域 问题
    8.3水了一天
    8.2数论(1)
    7.31 基本算法1.2
    7.31 基本算法1.1
    《GSoC 2019小结》&《买车小记》By Ray Guo
    【笔试题】中国电信天翼智慧家庭2020春季校园招聘
    TinyMCE主题的文章目录没法点击页内跳转
    【毕设】答辩如何准备?本科毕业论文如何撰写文献综述?
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/12495804.html
Copyright © 2011-2022 走看看