编程基础2

  1. 变量 p23
  • 变量的理解:

​ 内存中的一个存储区域,该区域中的数据可以在同一类型范围内不断变化

  • 变量的构成:

​ 三要素: 数据类型 ;变量名 ;存储的值

  • Java中变量声明的格式:

​ 数据类型 变量名 = 变量值

  • 变量的数据类型

    1. 基本数据类型:8种
    • 整型 byte | short | int | long
    • 浮点型 float | double
    • 字符型 char
    • 布尔型 boolean
    1. 引用数据类型
    • 类 class
    • 数组 array
    • 接口 interface
    • 枚举 enum
    • 注解 annotation
    • 记录 record

定义变量时:变量需要遵循标识符命名的规则和规范

变量的作用:用于在内存中保存数据

变量都有作用域 变量只在作用域内才发挥作用

4.1 变量 数据类型的应用 p24~p29

4.1.1 变量的介绍

class VariableTest1{
    public static void main(String[] args){
        //整型:byte占用存储空间1字节,short占用2字节,int占用4字节,long占用8字节
        //开发中,没有特殊情况,整型通常都声明为int类型
        byte b1 = 12;
        byte b2 = 127;
        int i1 = 123long l1 = 123L//需要加L/l

        //浮点类型:单精度float占用4字节,双精度double占用8字节
        //开发中,没有特殊情况,浮点型通常都声明为double类型
        float f1 = 12.3f//需要加f/F,否则认为是double类型
        double d1 = 12.3f;
        System.out.println("f1="+ f1);
        System.out.println(0.1+0.2);//为什么结果不等于0.3     
       
        //char型:占用2字节
        //表示形式1:使用一对''表示,内部有且仅有一个字符(可以是一个字母或者一个汉字、符号)
        char c1 = 'a';
        char c2 = '中';
        //表示形式2:使用Unicode表示字符型常量 '\uXXXX' XXXX代表一个十六进制整数
        char c3 = '\u';
        //表示形式3:使用转义字符
        char c4 = '\n';
        char c5 = '\t';
        System.out.println("hello"+ c4 +"world") // +为连接符
        //表示形式4:使用ASCII码
        char c6 = 97//表示a,A为65
            
        //布尔类型:判断逻辑条件,只有两个值;true 和 false; 常使用在流程控制语句中
        boolean bo1 = true;
        boolean bo2 = false;
        
    }
}

4.1.2 变量之间的运算规则

//测试基本数据类型变量之间的运算规则,不包含boolean类型
//运算规则包含:自动类型提升:小容量可以赋值大容量,反之不可 byte、short、char->int->long->float->double
//                       特别地,byte、short、char之间运算,需要赋值给int类型
                         规定:整型常量,为int型;浮点型常量,为double型
//            强制类型转换:需要使用强转浮:(),将容量大的转换为容量小的,可能会发生精度损失

class VariableTest2{
     public static void main(String[] args){
         double d1 = 12;  // 自动类型提升
         int i1 = (int)d1;// 强制类型转换
         long l1 = 123;
         short s1 = (short)l1;
     }
}

long 和 float 的相同点在于都需要加后缀,否则 long 型会被认为是 int ,float 会被认为是 double

问题1:为什么float占用4个字节的内存,long占用8个字节,但是float的范围比long更广呢?

解答:从值域的角度,long最大值是要大于float类型;从范围的角度,float可以表示浮点数,表示的数的范围更广,但是会有精度缺失

问题2:为什么float会存在精度缺失的问题呢?

解答:因为浮点数采用二进制表示,而许多十进制小数无法精确地转换为二进制表示。这种转换会导致某些小数的精度损失,特别是在进行多次浮点数计算时。例如十进制中的0.1,用二进制表示是一个无限循环的小数,在 Java 中,float 类型可以保留大约 7 位有效数字。

4.2 String类型的运算 p30~p31

  • String是一个类,在变量中属于引用数据类型,而不是基本数据类型
  • 通过 “ ” 来表示一个字符串,内部可以包含 0 个、1个或多个字符
  • 声明方式:String str = “ lyh ”

运算规则:

  • String类型的数据 与 8 种 基本数据类型 的数据只能进行连接 “+” 运算,结果为String类型的数据

  • String类型的数据 不能通过强制类型 () 转换,转为其他的类型

  • String类型的数据 与 8 种 基本数据类型 的数据的相加顺序很重要,有时需要加括号才能使得编译通过

System.out.println("" + 3 + 5);//输出35

int num = 10;
boolean b1 = true;
String s1 = "abc";

String s2 = s1 + num + b1;//s1 + num 拼接得到字符串,再次与 b1 拼接得到最终结果
System.out.println(s2);//abc10true

//String s3 = num + b1 + s1;//编译不通过,因为int类型不能与boolean运算
String s4 = num + (b1 + s1);//编译通过
  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值