Java基础01_变量

本文详细介绍了Java的基础数据类型,包括整型、浮点型、字符型、布尔类型及其转换规则。强调了Java中数据类型的固定范围和字段长度,以及自动和强制类型转换的原理和注意事项。此外,还探讨了String类型与基本数据类型的相互转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


变量就是可以变化的值,相当于内存中一个数据存储空间的表示。可以把变量看做一个房间的门牌号,通过门牌号可以找到对应房间。
变量三要素:🎉名称+值+类型🎉
注意:
1.变量必须先声明,后使用;(而Python中是直接使用)
2.变量在同一作用域内不能重名;
3.变量=数据类型+变量名+值

1.基本数据类型

1.1整型

类型占用存储空间范围
byte字节1字节-128~127
short短整型2字节-32768~32767
-215~215-1
int整型4字节-2147483648~2147483647
-231~231-1
long长整型8字节-263~263-1
  • 注意细节
  1. Java各整数类型有固定的范围和字段长度,不受os影响,以保证Java程序的可移植性。
  2. Java的整型常量默认int类型,声明long型要在常量后加’l’或’L’,前面的类型也要改成long。
  3. bit:计算机中最小存储单位。
  4. byte(字节):计算机中基本存储单位,1byte=8bit。

1.2浮点型

分类:

类型占用存储空间范围
float单精度4字节-3.403E38~3.403E38
double双精度8字节-1.798E308~1.798E308

浮点数在机器中存放形式:符号位+指数位+尾数
尾数部分可能丢失,造成精度损失(小数都是近似值)

  • 注意细节
  1. 与整数类型类似,Java浮点类型有固定范围和字段长度,不受OS影响
  2. Java浮点型常量默认为double型,声明float型常量须后加’f’或’F’
  3. 浮点型常量的两种表示方式:
    十进制:7.77 777.0f .777
    科学计数法:7.77e2( 7.77 × 1 0 2 7.77\times10^2 7.77×102) 7.77E-2( 7.77 × 1 0 − 2 7.77\times10^{-2} 7.77×102)
  4. 通常情况下,一般用double类型
  5. 小陷阱: 2.7 ≠ 8.1 / 3 2.7\neq 8.1/3 2.7=8.1/3;计算机舍入误差

1.3字符型

可以用来表示单个字符,字符类型是char,char是2个字节(可以存放汉字);多个字符存放用string

public class xiaoye{
    public static void main(String[] args){
        char c1='椰';
        char c2=97;
        char c3='a';
        System.out.println(c1);
        System.out.println(c2);
        System.out.println((int)c3);
        System.out.println('a'+97);

    }
}

output:
椰
a
97
194
  • 注意细节
  1. 字符常量用单引号(’ '),双引号表示的字符串
  2. Java中允许使用转义字符’'将其后面的字符变成特殊字符类型
  3. Java中char的本质是一个整数,输出的是Unicode码对应的字符
  4. char类型是可以进行运算的,因为它都对应有Unicode码

1.4布尔类型

  1. boolean类型只允许取值true/false,无null
  2. boolean类型只占用1个字节
  3. boolean类型适用于逻辑运算

1.5数据类型转换

1.5.1自动数据类型转换🤔

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

  • 注意细节
  1. (byte,short)与char之间不会自动转换
  2. byte,short,char三者之间可以运算,在计算时首先转换为int类型;哪怕是这三种中同类型之间的运算,结果都是int类型;
  3. boolean类型不参与转换
  4. 变量赋值判断类型;具体数赋值先判断该数是否在给定类型范围之内,在的话就没毛病
  5. 表达式结果的类型自动提升为操作数中最大类型

1.5.2强制数据类型转换

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

public class xiaoye{
    public static void main(String[] args){
        //精度损失
        int n1=(int)1.9;
        System.out.println("n1="+n1);
        //数据溢出
        int n2=2000;
        byte n3=(byte)n2;
        System.out.println("n3="+n3);
    }
}

->
n1=1
n3=-48
  • 强制转换的细节
  1. 当进行数据从大到小的转换就要用到强制转换
  2. 强转符号只对最近的操作数有效,往往会使用小括号提升优先级
  3. char,short,byte类型可以保存int的常量值,但不能保存int的变量值,需要强转
  4. byte,short,char类型在运算时,当做int类型处理

1.6String类型与基本数据类型的转换

  • 基本类型转String类型

基本类型的值+" "

public class xiaoye{
    public static void main(String[] args){
        int n1 = 10;
        String s1 = n1 + "";
        float n2 = 1.1f;
        String s2 = n2+"";
        System.out.println(s1+" "+s2);
    }
}

10 1.1
  • String类型转基本类型

通过基本类型的包装类调用parseXX方法;转字符是转不了的,直接取出字符串中某个字符

String s1 = "123";
int num1 = Integer.parseInt(s1);
double num2 = Double.parseDouble(s1);
short num3 = Short.parseShort(s1);
float num4 = Float.parseFloat(s1);
long num5 = Long.parseLong(s1);
byte num6 = Byte.parseByte(s1);
boolean b = Boolean.parseBoolean("true");
//string -/-> char
System.out.println(s1.charAt(0));
  • 注意细节
  1. 在将字符串转成基本数据类型时,要确保String类型能转换成有效的数据。
  2. 如果格式不正确,就会抛出异常,程序会终止。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值