【Java入门】数据类型、常量、变量、基本数据类型转换


学习目标

  • 掌握常量的定义和分类
  • 重点掌握八大基本数据类型
  • 必须掌握变量的定义和赋值
  • 掌握基本数据类型的自动转换
  • 掌握基本数据类型的自动提升
  • 掌握基本数据类型的强制转换

提示:以下是本篇文章正文内容,下面案例可供参考

一、常量

常量,程序运行过程中固定不变化的值。

常量分类:

  • 字面量: 就表示直接给出的一个值(可以是整数、小数等),也有人称之为直接量。如整数常量1,2,3,小数常量3.14等。
  • 使用final定义的变量 用final修饰的成员变量表示常量,只能被赋值一次,赋值后值无法改变

二、数据类型

数据类型分为基本数据类型和引用数据类型,注意:String是引用类型,不是基本数据类型
在这里插入图片描述

人为地把8个二进制位称为1个字节。(1 byte = 8 二进制位)

		1个二进制位 可以存储 0  或者  1
		2个二进制位 可以存储 00 或者 01 或者 10 或者 11
		3个二进制位 可以存储  000 / 001 / 010 / 011 / 100 / 101 /  110 / 111
		...
		1字节 = 8 个二进制位  可以存储2的8次方个数, 范围是[0,255] , 共256个数,
		如果都是表示整数,范围是[0,255],如果也可以表示负数,那么把256个数均分,
		一半是[-128,-1] ,一半是[0,127] 

8种基本数据数据类型的范围和占内存大小(了解):

NO数据类型栈内存字节数所能表示的数据范围
1byte1-128 ~ 127
2short2-32768 ~ 32767
3int4-231 ~ 231-1 约21亿
4long8-263 ~ -263 - 1
5float4-3.4 x 1038 ~ 3.4 x 1038
6double8-1.7 x 10308 ~ 1.7 x 10308
7char20 ~ 216 - 1
8boolean1位true 、 false
提醒:开发者需要明确记住每个类型所占字节数(内存大小)。

整数类型常量

在 java 中,没有被定义的整数类型的常量JVM默认使用 int 类型来存储 。

public class IntType {
    public static void main (String[] args) {
        // 控制台输出10,这个10是一个常量,默认使用int存储。
        System.out.println(10);
        
        // 控制台输出20,这个20如果想以long类型存储,需要加L
        System.out.println(20L);
    }
}

所以,如果要存储long类型常量,要加L或者l,建议加L。常用的整数类型是int和long,byte和short基本不用。

小数类型常量

在 java 中,没有被定义的小数类型的常量JVM默认使用 double 类型来存储 。

public class DoubleType {
    public static void main (String[] args) {
		// 控制台输出3.14,这个3.14是一个小数常量,默认使用double存储。
		System.out.println(3.14);
        
        // float类型常量,使用F/f后缀
		System.out.println(3.14f);
    }
}

如果要存储 float 类型常量,要加f或者F。

float类型又被称作单精度类型,尾数可以精确到6-7位有效数字,在很多情况下,float类型的精度很难满足需求,double更常用,double表示小数的数值精度是float类型的两倍,又被称作双精度,绝大部分应用程序都采用double类型。尾数可以精确到15-16位有效数字.

不管是float 类型和double类型在有效数字内都存在精确问题。

// float 类型只能精确到6-7,
// 其中第六位是一定可以精确到的,第7可能精确到,也可能精确不到。
System.out.println(3.141592653f); // 其结果为 3.1415927

所以,实际开发过程中,小数类型一定要在有限数字范围内使用。

字符类型常量

字符表示Unicode(万国码)编码表中的每一个符号,每个符号使用单引号引起来,其中前128个符号和ASCII表相同,如下图。
在这里插入图片描述
这张表要记住的几个符号,A在码表的顺序是65,a在码表的顺序是97。

public class CharType {
    public static void main(String[] args) {
        char x = 65;
        char y = 97;
        System.out.println(x); // 结果是 A
        System.out.println(y); // 结果是 a
    }
}

布尔类型常量

boolean 类型只有两个值,true 和 false , 在未来的开发中用于逻辑判断。

字符串类型

所谓字符串就是多个字符合在一起,使用双引号引起来。例如 : 我们在开发中要输出一个用户的名字就可以使用字符串了,因为一个用户的名字是由多个字符构成的。

public class _05_Operation {
    public static void main(String[] args) {
        String name = "张三";
        System.out.println(name);
    }
}

注意:字符串类型不是八大基本类型

不同数据类型的常量

  • 整数常量,所有整数,如1、2、3、100、200等
  • 小数常量,所有小数,如1.2、2.7、3.14等
  • 字符常量,0~65535之间的整数或用单引号括起来的符号如,‘A’、‘a’、‘龙’ 等
  • 布尔常量,只有true和false,分别表示对与错
  • 字符串常量,使用双引号括起来的内容如:“HelloWorld”、“张三”等

三、变量

变量指在程序运行过程中,值可以发生变化的量。

变量表示一个存储空间,可用来存放某一类型的常量,没有固定值,并可以重复使用。变量是内存中一块区域,可以往该区域存储数据,修改里面的数据,也可以获取里面的数据。

在这里插入图片描述
变量声明的语法:

数据类型 变量名 [= 初始值];

变量的特点

  • 占据着内存中的某一块存储区域

  • 该区域有自己的名称(变量名)和类型(数据类型)

  • 可以被重复使用

  • 该区域的数据可以在同一类型范围内不断变化

使用变量注意:

  • 变量必须先声明,并且初始化后才能使用

  • 定义变量必须有数据类型

  • 变量从开始定义到所在的花括号结束之内可以使用,离开花括号就不能使用了

  • 同一作用域内,变量名不能重复定义

四、基本数据类型转换

自动类型转换

自动类型转换,也称为“隐式类型转换,就是把范围小的数据类型直接转换成范围大的数据类型。

  • 转换规则:byte、short、char—>int—>long—>float—>double
  • 注意事项:byte、short、char相互之间不转换,他们参与运算首先转换为int类型

自动类型提升

当一个算术表达式中,包含多个基本数据类型的常量或变量(boolean除外)时,整个算术表达式的结果类型将在出现自动提升,其最后的结果就是内存占用大的数据类型

规则:

  • 所有的byte、short、char类型被自动提升到int类型,再参与运算

  • 整个表达式的最终结果类型,被提升到表达式中类型最高的类型

强转类型转换

强制类型转换,也称为“显式类型转换”,就是把范围大的数据类型强制转换成范围小的数据类型。

注意: 一般情况下不建议使用强转,因为强转有可能损失精度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值