Java数据类型
Elora Rinta!
It has been 0 days since the last update of this post. Some contents may be outdated. Please pay attention to screening.

数据类型

Java数据类型划分

  • 基本数据类型(primitive types)
    • 数值型
      • 整数类型(byte,short,interesting,long)
      • 浮点类型(float,double)
    • 字符型(char)
    • 布尔型(Boolean)
  • 引用类型(reference types)
    • 类(class)
    • 接口(interface)
    • 数组

两种类型的差别

  • 基本类型:变量在栈

  • 引用类型:变量引用到堆,在“那里”。储存的内容在堆

1
2
3
4
5
double d = 3.14;
Person p = new Person();
//赋值时
double d2 = d;//赋值的是值
Person p2 = p;//赋值的是引用

逻辑型

  • Boolean类型适于逻辑运算,一般用于程序流程控制
  • Boolean类型数据只允许取值true或false
    • 不可以0或非0的整数替代true和false
    • if(a=5)在Java中是不允许的

字符型

  • char型数据用来表示通常意义上的字符、

  • 字符常量是用单引号括起来的单个字符

    1
    char c = 'A'
  • Java字符采用Unicode编码,每个字符占两个字节

    • 可用十六进制编码形式表示

      1
      char c1='\u0061';
  • Java语言中还允许使用转义字符’\‘来将其后的字符转变为其它的含义

    1
    char c2 = '\n';

整数类型

Java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证Java程序的可移植性

浮点型

Java浮点类型有固定的表数范围和字段长度

标识符

  • 名字就是标识符:任何一个变量、常量、方法、对象和类都需要名字

  • 标识符要满足如下的规定:

    • 标识符可以由字母、数字和下划线(_)、美元符号($)组合而成;

    • 标识符必须以字母、下划线或美元符号开头,不能以数字开头

  • 标识符最好与其意义相符,以增加程序的可读性

  • 应注意Java是大小写敏感的语言

    • 按惯例,类名首字母用大写(Pascal)
    • 其余的(包名、方法名、变量名)首字母都小写(camel)
    • 少用下划线
    • 常量随时用随定义

运算符

算术运算符

逻辑运算符

短路(short-circuit)逻辑运算符

  • &&——第一个操作数为假则不判断第二个操作数

  • ||——第一个操作数为真则不判断第二个操作数

  • //MyDate d;
    if ((d!=null)&&(d.day>31)){
        //DO SOMETHING with d
    }
    if (i<0||i>31){
        System.out.println("非法赋值");
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35



    ### 位运算符

    ![](image-20240129215727420.png)

    ### 移位运算符

    ![](image-20240129215825578.png)

    ![](image-20240129215939385.png)

    ```java
    public class BitwiseOperators {
    public static void main( String args[]){
    int a = 0b1100;
    int b = 0b1010;
    print("a ",a);
    print("b ",b);
    print("a&b",a&b);
    print("a|b",a|b);
    print("a^b",a^b);
    print("~a",~a);
    print("a<<2",a<<2);
    print("a>>2",a>>2);
    print("a>>>2",a>>>2);
    }
    static void print(String prefix,int n){
    String s = Integer.toBinaryString(n);
    while(s.length() < 4) s = "0"+s;
    System.out.println(prefix + " " + s);
    }
    }

赋值运算符

字符串连接运算符+

表达式

表达式中的类型转换

  • 当有不同种类的混合运算时:int->long->float->double
  • 整型提升
    • 所有的byte,short,char参与算术运算等转为int

反汇编的代码

1
javap -c 类名
 Comments
Comment plugin failed to load
Loading comment plugin
Powered by Hexo & Theme Keep
This site is deployed on
Total words 75.1k Unique Visitor Page View