美文网首页java基础入门
Java基础——常量、进制、变量、数据类型及运算符

Java基础——常量、进制、变量、数据类型及运算符

作者: 阿Q说代码 | 来源:发表于2019-01-07 15:47 被阅读8次

    今天呢阿Q就带大家了解一下java的常量、变量、数据类型以及运算符的相关知识。

    常量

    (1)在程序的运行过程中,其值是不可以发生改变的量。
    (2)常量的分类:字面值常量,自定义常量(将在后边的讲解中给出),字面值常量又分为

    ​ 整数常量:12,-23

    ​ 实数常量:12.5,-65.43

    ​ 字符常量:'a','A','0'

    ​ 字符串常量:"hello"

    ​ 布尔常量:true,false

    ​ 空常量:null
    (3)常量可以直接被输出。

    进制

    (1)是一种进位的方式。X进制,表示逢x进1。
    (2)java中整数常量的表示

    • 二进制 由0,1组成。以0b开头。JDK7以后的新特性。

    • 八进制 由0-7组成。以0开头。

    • 十进制 由0-9组成。默认就是十进制。

    • 十六进制 由0-9,A-F(不区分大小写)组成,以0x开头。

    (3)计算机存储数据时用高低电平(高低位)来存储的 也就是 二进制的 1 和 0,1个就二进制数据被称为位 (bit)
    ​ 1byte = 8 bit;
    ​ 1Kb = 1024byte;
    ​ 1Mb = 1024Kb;
    ​ 1Gb = 1024Mb;
    ​ 1Tb = 1024Gb;
    (4)进制转换:进制转换详情见链接https://jingyan.baidu.com/article/495ba84109665338b30ede98.html,掌握方法即可,因为电脑的计算器都带有进制转换功能,此处不再赘述。

    变量

    (1)程序的运行过程中,在指定范围内发生改变的量。
    (2)格式:
    ​ 数据类型 变量名 = 初始化值;

    ​ 变形格式:
    ​ 数据类型 变量名;
    ​ 变量名 = 初始化值;

    ​ 举例:
    ​ 方式1: byte b = 10;

    ​ 方式2: byte b;
    ​ b = 10;
    (3)注意事项
    ​ A:在一对{}内,是不能重复定义变量的。
    ​ B:赋值的时候,尽量不要超出范围。
    ​ C:定义长整数型,必须加后缀:l或者L
    ​ D:定义单精度类型的时候,必须加后缀:f或者F
    ​ E:变量要先初始化再使用(在使用之前初始化即可)

    (4)代码举例:

    class VariableDemo {
    ​   public static void main(String[] args){
    ​       //定义字节变量
    ​       byte b = 12;
    ​       System.out.println(b);
    
    ​       //定义短整型变量
    ​       short s = 1234;
    ​       System.out.println(s);
    
    ​       //定义整数变量
    ​       int i = 12345;
    ​       System.out.println(i);
    
    ​       //定义长整型变量
    ​       long l = 12345678912345L;
    ​       System.out.println(l);//这是1
    
    ​       //定义单精度类型(7-8位的有效数字)
    ​       float f = 12.5F;
    ​       System.out.println(f);
    
    ​       //定义双精度类型(15-16位的有效数字)
    ​       double d = 12.5;
    ​       System.out.println(d);
    
    ​       //定义字符类型
    ​       char c = 'a';
    ​       //重新赋值,Java中的字符采用的编码是Unicode编码。占用2个字节。
    ​       c = '中';
    ​       System.out.println(c);
    
    ​       //定义布尔类型
    ​       boolean flag = true;
    ​       System.out.println(flag);
    ​   }
    ​}
    

    数据类型

    (1)分类:

    ​ 基本类型:4类8种。
    ​ 引用类型:类,接口,数组
    (2)基本类型
    ​ 整型:
    ​ byte 1字节
    ​ short 2字节
    ​ int 4字节
    ​ long 8字节
    ​ 浮点型:
    ​ float 4字节
    ​ double 8字节
    ​ 字符型:
    ​ char 2字节
    ​ 布尔型:
    ​ boolean 不明确。可以认为是1个字节。

    注意:

    ​ 整数默认是int类型。long类型需要加L或者l后缀。
    ​ 浮点数默认是double类型。float类型需要加F或者f后缀。

    (3)类型转换
    ​ 在运算的过程中,一般要求类型一致。如果遇到不一致的情况,就会有类型转换问题
    ​ 1:boolean类型不参与转换。
    ​ 2:隐式转换(从小到大)
    ​ byte,short,char -- int -- long -- float -- double
    ​ 注意:long是8个字节,float是4个字节。
    ​ long是整数,float是浮点数,整数和浮点数的存储规则不一样。
    ​ long的范围是小于float的。
    ​ 2^63 10^38 > (23)38 > 2^114
    ​ 3:强制转换(从大到小)
    ​ 如果你明确知道数据是可以表示,就可以用强制类型转换。
    ​ 格式:(转换后数据类型)变量或者值
    ​ 一般情况下,根本不推荐使用强制类型转换。

    ​ 4:代码

    class VariableDemo2{
    ​   public static void main(String[] args){
    ​       //定义两个类型不一致变量
    ​       int x = 10;
    ​       byte b = 20;
    ​       //把两个变量进行加法运算
    ​       byte b2 = x + b;
    ​       System.out.println(b2);
    
    ​       //定义两个类型一致的变量
    ​       int x = 10;
    ​       int y = 20;
    ​       int z = x + y;
    ​       System.out.println(z);
    
    ​       //隐式转换
    ​       byte a = 10;
    ​       int b = a;
    ​       System.out.println(b);
    ​               
    ​       //隐式转换
    ​       float f = 12.5F;
    ​       double d = a+b+f;
    ​       System.out.println(d);
    
    ​       //强制类型转换
    ​       int i = 10;
    ​       byte b2 = (byte)i;
    ​       System.out.println(b2);
        }
    ​}
    

    (4)类型转换的原理(理解即可)
    ​ 比如把int类型强制转成了byte类型 就是把32位的int的后8位截取出来 再换算成人类能看得懂的源码

    (5)字符类型对应的ASCII码表
    ​ 数字字符和英文字符,包括中文字符,他们都是我们用于交流的数据,而计算机中的数据
    ​ 底层是二进制的,所以,它不可能直接存储我们使用的这些数据。
    ​ 必须想办法,把他们变成我们能够存储的数据在计算机中存储。
    ​ 这样的话,就出了编码表。
    ​ 编码表:
    ​ 就是字符及其对应的数值组成的一张表。

    ​ 最常见的编码表:ASCII码表。(详见resource里面)

    class VariableDemo5 
        {
            public static void main(String[] args) 
            {
                System.out.println('a');
                System.out.println('a'+1);//98-1=97 --  'a'
                System.out.println('a'+3);//100
                System.out.println('A'+1);//66-1=65 --  'A'
                System.out.println('0'+1);//49-1=48 --  '0'
            }
        }
    

    运算符

    (1)就是把常量和变量连接的符号,一般参与运算使用。
    (2)分类:
    ​ 算术运算符
    ​ 赋值运算符
    ​ 关系运算符
    ​ 逻辑运算符
    ​ 位运算符
    ​ 三元运算符
    (3)算术运算符
    ​ +,-,*,/,%,++,--

    ​ +:正号,加法,字符串连接符。
    ​ System.out.println("5+5=" + 5 + 5); //5+5=55
    ​ System.out.println(5 + 5 + "=5+5"); //10=5+5

    ​ /:整数相除,结果只能是整数。
    ​ 如果你想要小数,那么参与运算的数据必须有一个是浮点数类型。

    ​ %:取余,即整除之后的余数。

    ​ ++/--:
    ​ i++ :++放后面 就是说 i++ 这个整体是1,也就是说如果把 i++ 赋给一个 int z 那么z还是1
    ​ 而这会儿i已经是2了
    ​ int i = 1;
    ​ System.out.println(i++);// 1
    ​ System.out.println(i);// 2
    ​ ++i:++放后面 就是说 ++i 这个整体是2,也就是说如果把 ++i 赋给一个 int z 那么z还是2
    ​ 这会儿i是2
    ​ int j = 1;
    ​ System.out.println(++j);// 2
    ​ System.out.println(j);// 2

    (4)赋值运算符
    ​ =,+=,-=,*=,/=,%=

    ​ int a = 10;
    ​ 把10赋值给int类型的变量a。

    ​ a += 20 即为 a = a + 20

    ​ 注意事项:
    ​ a = a + 20;
    ​ a += 20;
    ​ 结果是等价的,理解不是等价的。

    ​ 因为+=这种运算符,内含了强制类型转换功能。
    ​ 比如:
    ​ short s = 2;

    ​ s+=3;
    ​ 等价于
    ​ s = (short)(s + 3)
    (5)关系运算符
    ​ ==,!=,>,>=,<,<=

    ​ 特点:关系运算符的结果都是boolean类型。
    ​ 请千万注意:== 不要写成 =

    (6)逻辑运算符
    ​ &,|,!,^,&&,||

    ​ &:有false则false
    ​ |:有true则true
    ​ !:true变false,false变true
    ​ ^:相同false,不同true

    ​ &&:有false则false
    ​ ||:有true则true

    ​ &&和&的区别是:如果左边有false了,右边将不再执行。
    ​ ||和|的区别是:如果左边有true了,右边将不再执行。

    ​ &&和|| 验证举例:

            int a = 10;
            int b = 20;
            //System.out.println((a++ > 10) & (b-- > 10));//a=11,b=19
            System.out.println((a++ > 10) && (b-- > 10)); //a=11,b=20
            System.out.println(a);
            System.out.println(b);
    

    (7)位运算符
    ​ 位运算符:是针对二进制数据的运算。
    ​ & 按位与
    ​ | 按位或
    ​ ^ 按位异或
    ​ ~ 按位取反

        <<  左移  左边的高位舍弃,右边空出的部分补齐0。
        >>  右移  如果最高位是0,左边被移空的位就填入0;如果最高位是1,左边被移空的位就填入1
        >>> 无符号右移 无论最高位是1还是0,左边被移空的高位都填入0
    
    注意:向左移动或者向右移动,其实就是把数据增大或者缩小2的指定次幂。

    (8)条件运算符也叫三目运算符
    ​ 格式:
    ​ 条件表达式?表达式1:表达式2

    ​ 执行流程:
    ​ 根据条件表达式返回的是true还是false,决定结果是什么。
    ​ 如果是true,就把表达式1作为结果。
    ​ 如果是false,就把表达式2作为结果。

    好了今天就先说到这了,明天继续。想了解更多学习知识,请关注微信公众号“阿Q说”,获取更多学习资料吧!你也可以后台留言说出你的疑惑,阿Q将会在后期的文章中为你解答。每天学习一点点,每天进步一点点。

    相关文章

      网友评论

        本文标题:Java基础——常量、进制、变量、数据类型及运算符

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