韩顺平java学习日记1 变量 (自用)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


注:本文是对视频P35-P61内容的梳理

一、变量介绍

  • 变量概念:
    变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。

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

  • 变量有三个基本要素(类型+名称+值

  • 变量使用的注意事项

    1.变量表示内存中的一个存储区域(不同的变量,类型不同,占用的空间大小就不同)
    2.该区域有自己的名称(变量名)和类型(数据类型)
    3.变量必须先声,后使用,即有顺序
    4.该区域的数据可以在同一类型范围内不断变化
    5.变量在同一个作用域内不能重名
    6.变量 = 变量名 + 值 + 数据类型

  • 程序中“+”号的使用
    1.当左右两边都是数值型时,则做加法运算
    2.当左右两边有一方为字符串,则做拼接运算
    3.运算顺序是从左到右


二、数据类型

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

在这里插入图片描述

上图说明,Java数据类型分为两大类,分别是基本数据类型引用数据类型
ps:字符串不属于基本数据类型, 而是属于引用数据类型中的类


1.整数类型

1.1 基本介绍

整数类型即用于存放整数数值的。

在这里插入图片描述


1.2 整型的使用细节

在这里插入图片描述

byte n1 = 3 ;
short n2 = 3 ;
//内存中如下图所示

在这里插入图片描述


2.浮点类型

2.1 基本介绍

浮点类型可以表示一个小数。

在这里插入图片描述

几点说明:

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

2.2 浮点类型使用细节

  1. 与整数类型类似,浮点类型也有固定的范围和字段长度,不受具体OS的影响。
  2. 浮点型常量(具体值)默认为double型(8个字节),所以在声明float型常量的时候,需在后面加“f"或者“F”,以防止double型转float型时的精度丢失。但是相反,声明double型变量时带f是可以的。
float num1 = 1.1;    //错误
float num2 = 1.1f;   //正确
double num3 = 1.1;   //正确
double num4 = 1.1f;  //正确
  1. 浮点型常量两种表示形式
    十进制数形式,如 5.12 512.0f .512 (可以省略0,但必须有小数点)
    科学计数法形式,如 5.12e2【相当于5.12*10的2次方】 5.12E-2
  2. 通常情况下,使用double,因为精度更高(未知变量精度)
  3. 浮点数的使用陷阱:2.7和8.1/3 的比较,所以当对运算结果是小数的进行相等判断的时候要小心,应该是以两个数的差值的绝对值,在某个精度范围内判断。
double num1 = 2.7;
double num2 = 8.1 / 3;
System.out.println(num1); //输出2.7
System.out.println(num2); //计算得到输出的是一个接近2.7的小数,而不是2.7
if(Math.abs(num1 - num2) < 0.000001){
}

3. API文档

中文在线文档:https://www.matools.com/api
中文在线文档链接

在这里插入图片描述

在这里插入图片描述


4.字符类型(char)

4.1 基本介绍

字符类型可以表示单个字符,字符类型是char, 两个字节(可以存放汉字),多个字符用字符串String。
字符类型可以直接存放一个数字,在输出时输出的是这个数字所表示的字符(涉及到编码的概念)。


4.2 字符类型使用细节

在这里插入图片描述

在Java中,char的本质是一个整数,在默认输出时,是unicode码对应的字符,要输出对应的数字,可以(int)字符,如下

char c2 = 'a';     
System.out.println((int)c2);   //输出'a'对应的数字
char c3 = '韩'; 
System.out.println((int)c3);   //输出结果是38889
char c4 = 38889;
System.out.println(c4);      //输出结果是韩

4.3 字符类型本质探讨

在这里插入图片描述


1.ASCII码介绍

在这里插入图片描述


2.Unicode编码介绍

在这里插入图片描述


3.UTF-8编码介绍

可以理解为对Unicode码的一个改进

在这里插入图片描述


5.布尔类型(boolean)

5.1 基本介绍

  1. 布尔类型数据只允许取值true和false,无null
  2. 占1个字节
  3. 适用于逻辑运算,一般用于程序流程控制

5.2 布尔类型使用细节

不可以用0或非0的整数来替代false和true,这点和c语言不同。(无法将int类型转换为布尔类型)


6.基本数据类型的转换

6.1 基本介绍

在这里插入图片描述


6.2 自动类型转换注意细节

在这里插入图片描述

有多种类型进行混合运算时,系统首先自动将所有数据类型转换成容量最大的那种数据类型,然后再进行计算。

int n1 = 10;      //ok
float d1 = n1 + 1.1;    //错误,n1 + 1.1 => 类型结果是double,将double转换为float时可能会有精度损失
double d1 = n1 + 1.1;   //正确
float d1 = n1 + 1.1f;    //正确,n1 + 1.1 => 类型结果是float

byte,short,char 他们三者可以计算,在计算时首先转换为int类型

byte b4 = b2 + b3;    //错误,运算过后类型为int

6.3 强制类型转换

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

在这里插入图片描述


6.4 强制类型转换细节

在这里插入图片描述


6.5 基本数据类型和字符串类型的转换

在这里插入图片描述


6.6 基本数据类型和字符串类型的转换细节

  1. 将字符串类型转换为基础数据类型的时候,要确保字符串类型能转成有效的数据,比如,将“123”转换成一个整数,但不能把“hello”转换成一个整数。
  2. 如果格式不正确,就会抛出异常,程序就会终止,这个问题在异常处理章节中会处理。

7.章节练习

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值