JavaSE基础——第二章 变量

本专题主要为观看韩顺平老师《零基础30天学会Java》课程笔记,同时也会阅读其他书籍、学习其他视频课程进行学习笔记总结。如有雷同,不是巧合!

⚠️注意事项:

  1. 变量相当于内存中一个数据存储空间的表示
  2. +左右两边有一方为字符串(而非字符),则进行拼接运算,例如:”hello”+3结果为”hello3”
  3. String并非基本数据类型,而是类

一、数据类型

每种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(用字节进行衡量)。

整数类型

  • 各整数类型有固定的范围和字段长度,不受具体OS的影响,以确保java程序的可移植性。
  • 整型常量默认为int类型,声明long型常量需要在其后加lL,例如long a = 1L

浮点类型

  • 浮点数在机器中的存放形式:浮点数=符号位+指数位+尾数位。

  • 尾数部分可能丢失,造成精度损失。

  • Java的浮点型常量默认为double型,声明float常量,需要在其后加fFdouble num = 1.1f正确。

  • 浮点型常量的两种表示形式:①十进制数形式:0.512,512.0f,.512;②科学计数法:5.12e2【=5.12*10^2】,5.12E-2。

  • 通常情况下应该使用double类型(BigDecimal更好),因为精度更高。

  • 浮点数除法陷阱,由于计算机认为浮点数8.1的精度可能为8.10000000…:

    不要比较两个运算后的浮点数!应该用两个数差值的绝对值在某个范围内进行判断。

字符类型

  • 字符常量用单引号引用,如果用双引号则表示字符串。

  • 在Java中,char类型数据的本质是一个整数(存储字符对应的码值的二进制形式),在输出时输出Unicode码对应的字符。

  • char类型可以进行运算。

  • 字符和码值的对应关系由字符编码表决定。

  • 常用的字符编码表:

    观察方法:在java文件中以utf-8编码形式保存abc张,观察属性,文件大小为6字节。

布尔类型boolean

  • 只允许取值truefalse
  • ⚠不可以使用0或非0的整数代替false和true!

二、基本数据类型转换

(1)自动类型转换

⭐当java程序进行赋值或者运算时,精度小的类型自动转化为精度大的类型。

数据类型按照精度大小排序(从小到大)👇

例如:int a = ‘c’; double b = 80;

  • 当多种类型的数据进行混合运算时,系统首先自动将所有的数据转换为容量最大的数据类型再进行计算。
  • byteshortchar类型之间不会进行自动转换。
  • byteshortchar类型数据之间可以进行计算,在计算时首先转换为int类型。例如:byte a1 = 1; byte a2 = 2; a1+a2结果为int类型!
  • boolean不参与转换。

(2)强制类型转换

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

  • 强转符号只对最近的操作数有效。
  • char类型可以保存int类型常量值,但不能保存变量值,需要强制类型转换。

三、基本数据类型和String类型的转换

  • 基本数据类型→String:将基本数据类型的值+ ””

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

    将字符串转换为字符的含义是获取字符串的第一个字符!使用字符串索引获得!

    String s = “abc”;
    char c = s.charAt(0);  // a
    
    • 需要确保String类型转为有效的数据,例如不能将”hello”转换成整数,编译不报错,会在执行时抛出异常:

练习题: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值