一.变量

一.变量

1.什么是变量?

变量是程序的基本组成单位。

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为“变量”。你可以把变量看作成一个房间的门牌号,通过门牌号我们可以找到房 间,而通过变量名可以访问到变量(值)。

2.变量使用的基本步骤

1) 声明变量 int a;

2) 赋值

a = 60; //应该这么说: 把 60 赋给 a

3)使用 System.out.println(a)

3.数据类型

由于变量记录的数据内容大小不同, 导致所需的存储单元大小不同,在 Java 语言中使用数据类型的概念加以 描述 .

Java的数据类型分为基本数据类型和引用数据类型

基本数据类型有 8 中 数值型 [byte , short , int , long , float ,double] char , boole

引用类型 [类,接口,数组]

 

4.数据类型的转换

1)自动类型转换

当Java程序在进行赋值或者运算时,精度小的 类型自动转换为精度大的数据类型。

char->int->long->float->double

byte->short->int->long->float->double

//自动类型转换细节
public class AutoConvertDetail {
    //编写一个 main 方法
    public static void main(String[] args) {
    //细节 1: 有多种类型的数据混合运算时,
    //系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
    int n1 = 10; //ok
    //float d1 = n1 + 1.1;//错误 n1 + 1.1 => 结果类型是 double
    //double d1 = n1 + 1.1;//对 n1 + 1.1 => 结果类型是 double
    float d1 = n1 + 1.1F;//对 n1 + 1.1 => 结果类型是 float
    //细节 2: 当我们把精度(容量)大 的数据类型赋值给精度(容量)小 的数据类型时,
    //就会报错,反之就会进行自动类型转换。
    //
    //int n2 = 1.1;//错误 double -> int
    //细节 3: (byte, short) 和 char 之间不会相互自动转换
    //当把具体数赋给 byte 时,(1)先判断该数是否在 byte 范围内,如果是就可以
    byte b1 = 10; //对 , -128-127
    // int n2 = 1; //n2 是 int
    // byte b2 = n2; //错误,原因: 如果是变量赋值,判断类型
    //
    // char c1 = b1; //错误, 原因 byte 不能自动转成 char
    //
    //细节 4: byte,short,char 他们三者可以计算,在计算时首先转换为 int 类型
    byte b2 = 1;
    byte b3 = 2;
    short s1 = 1;
    //short s2 = b2 + s1;//错, b2 + s1 => int
    int s2 = b2 + s1;//对, b2 + s1 => int
    //byte b4 = b2 + b3; //错误: b2 + b3 => int
    //
    //boolean 不参与转换
    boolean pass = true;
    //int num100 = pass;// boolean 不参与类型的自动转换
    //自动提升原则: 表达式结果的类型自动提升为 操作数中最大的类型
    }
}

2)强制类型转换

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成 精度降低或溢出,格外要注意。

public class ForceConvertDetail {
    //编写一个 main 方法
    public static void main(String[] args) {
    //演示强制类型转换
    //强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
    //int x = (int)10*3.5+6*1.5;//编译错误: double -> int
    int x = (int)(10*3.5+6*1.5);// (int)44.0 -> 44
    System.out.println(x);//44
    char c1 = 100; //ok
    int m = 100; //ok
    //char c2 = m; //错误
    char c3 = (char)m; //ok
    System.out.println(c3);//100 对应的字符, d 字符
    }
}

5.基本数据类型和 String 类型的转换

基本数据转String类型:将基本类型的值+""即可

String类型转基本数据类型:通过基本类型的包装类调用parseXX方法。

public static void main(String[] args) {
    //基本数据类型->String
    int n1 = 100;
    float f1 = 1.1F;
    double d1 = 4.5;
    boolean b1 = true;
    String s1 = n1 + "";
    String s2 = f1 + "";
    String s3 = d1 + "";
    String s4 = b1 + "";
    System.out.println(s1 + " " + s2 + " " + s3 + " " + s4);
    //String->对应的基本数据类型
    String s5 = "123";
    //会在 OOP 讲对象和方法的时候回详细
    //解读 使用 基本数据类型对应的包装类,的相应方法,得到基本数据类型
    int num1 = Integer.parseInt(s5);
    double num2 = Double.parseDouble(s5);
    float num3 = Float.parseFloat(s5);
    long num4 = Long.parseLong(s5);
    byte num5 = Byte.parseByte(s5);
    boolean b = Boolean.parseBoolean("true");
    short num6 = Short.parseShort(s5);
    System.out.println("===================");
    System.out.println(num1);//123
    System.out.println(num2);//123.0
    System.out.println(num3);//123.0
    System.out.println(num4);//123
    System.out.println(num5);//123
    System.out.println(num6);//123
    System.out.println(b);//true
}
posted @ 2021-10-26 12:25  brysjs  阅读(145)  评论(0)    收藏  举报