Java SE笔记: 数据类型和常量(字面量)和变量

数据类型

在java中 的数据类型分为两类数据类型

  • 基本数据类型(8种)
    • 整数:byte short int long
    • 小数: float double
    • 布尔: boolean
    • 字符: char
  • 引用数据类型
    • 字符串: String

整数

类型 占用内存 范围
byte(字节) 8位(bit) 2^8=256,-128~127 1111 1111~0111 1111
short(短整型) 16bit 2^16 = 65536 **~0111 1111 1111 1111
int(整型) 32bit 超出20亿 **~0111 1111 1111 1111 1111 1111 1111 1111
long(长整型) 64bit 2^64 *~

注意:

  • 如果一个整数没有加上任何的标识的时候,那么默认是int类型的数据。
  • 如果需要把该数据表示成一个long类型的数据,那么需要加数据后面加上L表示,L是不区分大小写的,但是建议使用大写。

疑惑:
存储整数可以使用四种数据类型,那么具体怎么选择使用呢?
选用数据类型的原则: 在能满足需求的情况下,能小就小。节省内存空间。

小数(浮点数)

小数的数据类型:

类型 占用内存
float(单精度浮点型) 32bit
double(双精度浮点型) 64bit

注意:
如果一个小数没有加上任何标识的时候,那么该小数默认是double类型的数据,如果需要表示成float类型,那么需要在小数的后面加上f表示。f不区分大小写的。
float数据类型不精确的问题:因小树部分转换为二进制时采用乘二取余法,所以小树部分不精确!

布尔类型

布尔类型只有两个值:true或者false。
boolean:1字节或者4个字节
如果使用boolean声明一个基本类型的变量时,那么该变量占4个字节, 如果使用boolean声明一个数组类型 的时候,那么每个数组的元素占 一个字节。

字符类型:

char 2字节(16bit)
字符串的数据类型是:String 引用数据类型,不属于基本数据类型。

常量(字面量)

变量

变量:变量就是在程序运行过程中其值可以发生变化的量,变量就是一个存储数据的容器。

容器具备什么特点:

  • 容量(大小)。
  • 存储一定格式的数据。
  • 名字.

    声明(定义)一个变量的格式:

    数据类型 变量名字 = 数据值;

    变量名的命名规范

    首单词小写,其他单词首字母大写,其他小写。

    java表示一个变量的容量多大是使用了数据类型描述的。

    注意:

  • 变量是必须先声明再使用。
  • 在一个作用域中不能声明同名 的变量。

    数据类型转换

    数据类型转换:

  • 小数据类型——–>大数据类型 自动类型转换
  • 大数据类型———>小数据类型 强制类型转换

    强制类型转换的格式:

    小数据类型 变量名 = (小数据类型)大数据类型;

    数据类型转换要注意的细节:

  • 凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。(包括赋值运算!)
  • 两个不同数据类型的数据在运算的时候,结果取决于大的数据类型。
  • char类型的一个字符可以看做无符号的short类型的数!
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class Demo{
    public static void main(String[] args){
    /*
    System.out.println(12); //整数常量
    System.out.println(3.14); //小数常量
    System.out.println(false); //布尔常量
    System.out.println('1'); //字符常量
    System.out.println("hello world"); //字符串常量

    如果一个数据没有加上任何的标识之前,默认就是十进制的数据。
    */
    System.out.println(10);// 十进制
    System.out.println(0b10); //二进制 , 如果一个数据要表示二进制,那么要在该数据的前面加上0b开头。
    System.out.println(010); //八进制数据, 八进制的数据需要以0开头
    System.out.println(0x10); //十六进制数据, 十六进制的数据需要以0x开头
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    class Demo5
    {
    public static void main(String[] args)
    {
    //需求1: 定义一个变量存储一个正常人的年龄。
    byte age = 120; //声明了一个byte类型的变量,该变量的名字叫age,把120存储到了age变量中。
    //改变变量的值
    age = 121;
    //需求2: 定义一个变量存储老师口袋钱。
    short money = 128;
    //需求3: 定义一个变量存储老黎的钱。
    int bossMoney = 1000000000;
    //需求4: 定义一个变量存储周小川老板
    long allMoney = 10000000000000000L;
    //存储小数
    float f = 3.14f;
    double d = 3.1415926537;
    boolean b = false;
    char c = 'a';
    String str = "hello world";
    System.out.println(str); //需要获取一个变量存储的数据,只需要使用变量名即可。
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class Demo 
    {
    public static void main(String[] args)
    {
    //int age = 12; //声明一个变量
    int age ,height ; //声明了变量
    //给变量赋值
    age = 10;
    height = 175;
    System.out.println(age);
    System.out.println(height);
    }
    }
    1
    2
    3
    4
    5
    6
    7
    class Demo1 
    {
    public static void main(String[] args) {
    String str = ""; //字符串还是字符呢? ""字符串没有内容是属于一个空字符串。
    System.out.println(str);
    }
    }
    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
    class Demo2
    {
    public static void main(String[] args) {
    /*
    byte b= 11; // 一个字节
    short s = b; // 把b变量存储的值赋予给s变量。
    int i = s; // i是4字节
    long l = i; // l 是8个字节。
    System.out.println(l);
    int i = 128; //4个字节
    byte b =(byte) i; // 1个字节
    System.out.println(b); // -128
    //如果是负数,那么最高位肯定是1, 正数的二进制位的最高位是0。
    System.out.println(Integer.toBinaryString(-7)); //sun给我们提供一个功能 Integer.tobinaryString() 查看一个数据的二进制数据形式的。
    // 11111001(补码)
    凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。
    byte b1 =1;
    byte b2 = 2;
    byte b3 = (byte)(b1+b2);
    System.out.println(b3); //3
    System.out.println('a'+1); //98
    两个不同数据类型的数据在运算的时候,结果取决于大的数据类型
    int i =10;
    long l = 20;
    i = (int)(i+l);
    System.out.println(i);
    */
    int i = 10; //
    byte b = i; // 一个整数没有加上任何标识的时候,默认是int类型的数据。
    //10 是一个常量, 编译器在编译的时候就能够确认常量的值了,byte b = 10,在编译到的时候
    //java编译器就会检查到10并没有超出byte的表示范围,所以允许赋值。
    //java编译器在编译的时候并不能确认变量所存储的值,变量存储的值是在运行的时候才在内存中分配空间的
    System.out.println(b);
    }
    }
文章目录
  1. 1. 数据类型
    1. 1.1. 整数
    2. 1.2. 小数(浮点数)
    3. 1.3. 布尔类型
    4. 1.4. 字符类型:
  2. 2. 常量(字面量)
  3. 3. 变量
    1. 3.1. 容器具备什么特点:
    2. 3.2. 声明(定义)一个变量的格式:
    3. 3.3. 变量名的命名规范
    4. 3.4. java表示一个变量的容量多大是使用了数据类型描述的。
    5. 3.5. 注意:
  4. 4. 数据类型转换
    1. 4.1. 数据类型转换:
    2. 4.2. 强制类型转换的格式:
    3. 4.3. 数据类型转换要注意的细节: