Java宝典-数据类型

目录

  • 1.变量与常量
  • 2.Java中的数据类型
  • 3.整型
    • 3.1 字节型byte
    • 3.2 短整型short
    • 3.3 整型int
    • 3.4 长整型long
  • 4.浮点型
    • 4.1 单精度浮点型float
    • 4.2 双精度浮点型double
  • 5.字符型
  • 6.布尔型
  • 7.类型转换
    • 7.1 隐式类型转换
    • 7.2 显示类型转换(强制类型转换)
  • 8.类型提升

大家好,我是你们的Vampire-wpre(也可以叫我鬼鬼!),是一位正在努力学习编程的大学生,为了能够让自己巩固知识,也为了能让大家更好地理解Java相关知识,我开了这个Java宝典的新坑~今天我们要学习的是Java当中的数据类型话不多说我们直接开始吧!

1.变量与常量

在程序当中,有些数据可能会发生改变,例如年龄/身高等,这些经常发生改变的内容,在Java中称为变量;在程序中也会有固定不变的量,不管程序运行到何处,它都是固定不变的量,例如一周有7天/一年有12个月等,这些称之为常量,也叫字面常量.
字面常量可以分为以下几类:

  • 字符串常 量:用双引号" " 括起来的,如"123"和"abcd"
  • 整型常量:在程序中直接写的数字,如1,100
  • 浮点数常量:程序中直接写的小数,如1.1,0.2
  • 字符常量:用单引号括起来的,如 ‘a’
  • 布尔常量:ture和false
  • 空常量:null

2.Java中的数据类型

Java中数据类型分为基本数据类型和引用数据类型.
基本数据类型包括:

  1. 整数类型:
    整数类型包含:字节型(byte),短整型(short),整型(int),长整型(long)
  2. 浮点数类型:
    浮点数类型包含:单精度浮点型(float),双精度浮点型(double)
  3. 布尔类型
    布尔类型表示真或假,关键字是boolean,true表示真,false表示假
  4. 字符类型:
    字符型关键字为char,用于表示一个字符

以下是这些数据类型的特点
在这里插入图片描述

划重点:
1.数据类型所占字节数与操作系统无关
2.整型和浮点型是带符号的,没有所谓的无符号数(与C语言不同!)
3.在程序中,一个整数默认是int型,小数默认是double型
4.定义变量时,使用前如果没有赋值,编译器会报错

3.整型

3.1 字节型byte

byte类型的变量占1个字节(与操作系统无关),byte的取值范围是:-128~127;包装类型为Byte,可以用包装类中的MAX_VALUE和MIN_VALUE输出byte类型的最大值和最小值

byte b = 1;
System.out.println(b);
//输出byte类型的最大值
System.out.println(Byte.MAX_VALUE);
//输出byte类型的最小值
System.out.println(Byte.MIN_VALUE);

3.2 短整型short

short类型的变量占2个字节(与操作系统无关),short取值范围是:-32768~32767;包装类型为Short,可以用包装类中的MAX_VALUE和MIN_VALUE输出short类型的最大值和最小值

short s = 10;
System.out.println(s);
//输出short类型的最大值
System.out.println(Short.MAX_VALUE);
//输出short类型的最小值
System.out.println(Short.MIN_VALUE);

3.3 整型int

int类型的变量占4个字节(与操作系统无关),int取值范围是:-2147483648~2147483647;包装类型为Integer,可以用包装类中的MAX_VALUE和MIN_VALUE输出int类型的最大值和最小值

int i = 20;
System.out.println(i);
//输出int类型的最大值
System.out.println(Integer.MAX_VALUE);
//输出int类型的最小值
System.out.println(Integer.MIN_VALUE);

3.4 长整型long

long类型的变量占8个字节(与操作系统无关),long取值范围是:-2^ 63~2 ^63-1;包装类型为Long,可以用包装类中的MAX_VALUE和MIN_VALUE输出long类型的最大值和最小值

long l = 100;
System.out.println(l);
//输出long类型的最大值
System.out.println(Long.MAX_VALUE);
//输出long类型的最小值
System.out.println(Long.MIN_VALUE);

4.浮点型

4.1 单精度浮点型float

float类型的变量占4个字节,包装类型为Float

4.2 双精度浮点型double

double类型的变量占8个字节,包装类型为Double

浮点型平时使用较多的是double,浮点数在内存中存储方式与整型不一样,浮点数的存储准寻IEE754标准,如果不了解可以看我之前写的文章:整数与浮点数在内存中的存储

5.字符型

字符型关键字为char,字符型变量占2个字节,我们学习过C语言知道,字符可以用ASCII码表示,而在Java中使用的是Unicode表示字符,两个字节能表示的字符数量更多,char的包装类型为Character

6.布尔型

布尔类型(boolean)是用来表示真假的,它的取值只有true和false,Java中,真假只能用布尔类型表示,不存在1表示真,0表示假这种说法.Java虚拟机规范中没有明确规定boolean占多少字节

7.类型转换

在Java中,如果参与运算的数据不是同一类型,则会进行类型转换,包括隐式类型转换(自动)和显示类型转换(强制)

7.1 隐式类型转换

隐式类型转换意味着:代码编译时,编译器会自动进行类型转换处理.看下面的例子

System.out.println(10);//10默认是Int
System.out.println(3.14);//默认是doubleint a = 10;
long b = a;//a是int类型,范围小,long类型范围大,范围小的类型(a)赋值给范围大的类型(b)时,编译器会自动将a转换成long类型double d = 3.14;
// float f = d;代码无法编译,d是double类型的变量,范围比float大,将范围大的赋值给范围小的,不安全

7.2 显示类型转换(强制类型转换)

当范围小的变量赋给范围大的变量时,编译器无法通过,此时我们可以进行强制类型转换.
转换语法:

(转换后的类型)变量;:
long a = 10;
int b =(int)a;
double d = 3.14;
float f = (float)d;

注意事项:

  • 如果不进行强制类型转换,数据类型不同的变量进行赋值时,范围大的变量不能赋值给范围小的变量
  • 范围大的变量赋值给范围小的变量时,需要强制类型转换,但是可能会丢失精度
  • 类型不相干的不能相互转化,如:布尔类型不能转换成其他类型

8.类型提升

一般情况下,不同类型的数据进行运算时,类型小的数据会提升为类型大的,小于4字节的类型(short,byte)会提升为int

int a = 10;
long b =20;
long c =a+b;//编译成功
int d =a+b;//编译失败
//a+b的值会提示为long类型,将long类型的值赋给int类型的变量无法编译成功
byte a =10;
byte b =20;
byte c =a+b;//编译失败
int d =a+b;//编译成功
//虽然a和b类型一样,都是byte,但是byte小于4字节,所以运算时,a和b会先提升为int,结果为int,将范围大的值赋值给范围小的变量,编译无法通过

以上就是关于Java数据类型的全部内容啦,如果老铁们认为文章对你有帮助的话别忘了一键三连~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/448964.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三款精选数字孪生产品大比拼

作为一名数据可视化领域的资深用户,我接触过众多数据可视化产品。本文将介绍三款备受关注的数据可视化工具,并对它们进行详细的比较。 首先,让我们了解一下数据可视化产品的核心价值。在信息爆炸的时代,数据可视化成为快速理解复…

Maven dependency中的scope

Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile。 scope的分类 compile(默认) 含义: compile 是默认值,如果没有指定 scope 值,该元素…

高宇辰:打造“π”型人才 | 提升之路系列(七)

导读 为了发挥清华大学多学科优势,搭建跨学科交叉融合平台,创新跨学科交叉培养模式,培养具有大数据思维和应用创新的“π”型人才,由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

由浅至深谈谈线程、锁

并发编程 一、线程的基础概念 一、基础概念 1.1 进程与线程A 什么是进程? 进程是指运行中的程序。 比如我们使用钉钉,浏览器,需要启动这个程序,操作系统会给这个程序分配一定的资源(占用内存资源)。 …

网络原理TCP/IP(1)

文章目录 端口号UDP协议 在网络通信中,协议非常重要 协议进行了分层 应用层就是对应着应用程序,是程序员打交道最多的这一层,调用系统提供的网络api写出来的代码都是属于应用层的 应用层有很多现成的协议,但是更多的还是程序员需要…

【论文阅读笔记】Taming Transformers for High-Resolution Image Synthesis

Taming Transformers for High-Resolution Image Synthesis 记录前置知识AbstractIntroductionRelated WorkMethodLearning an Effective Codebook of Image Constituents for Use in TransformersLearning the Composition of Images with Transformers条件合成合成高分辨率图…

k8s中cert-manager管理https证书

前言 目前https是刚需,但证书又很贵,虽然阿里云有免费的,但没有泛域名证书,每有一个子域名就要申请一个证书,有效期1年,1年一到全都的更换,太麻烦了。经过搜索,发现了自动更新证书神器cert-manager;当然cert-manager是基于k8s的。 安装采用Helm方式 Chart地址: ht…

AI-数学-高中-12-对数定义和基本运算规则、对数换底公式

原作者视频:初等函数】4对数定义基本运算规则(基础)_哔哩哔哩_bilibili 初等函数】5对数换底公式练习(基础)_哔哩哔哩_bilibili 对数读法:以a为底,b的对数,a为底数,b为…

Cookie,Session,Token的区别是什么?

概念 Cookie、Session和Token是用于在Web应用程序中管理用户状态和身份验证的技术。因为在Web应用中,HTTP的通信是无状态的,每个请求都是完全独立的,所以服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次…

图解Vue组件通讯【一图胜千言】

Vue的每个组件都有独自的作用域,组件间的数据是无法共享的,但实际开发工作中我们常常需要让组件之间共享数据,今天我们来学习下面三种组件通信方式: 父子组件之间的通信 兄弟组件之间的通信 祖先与后代组件之间的通信 1. 父子组件…

2024年混合云:趋势和预测

混合云环境对于 DevOps 团队变得越来越重要,主要是因为它们能够弥合公共云资源的快速部署与私有云基础设施的安全和控制之间的差距。这种环境的混合为 DevOps 团队提供了灵活性和可扩展性,这对于大型企业中的持续集成和持续部署 (CI/CD) 至关重要。 在混…

PPT母版页码设置

PPT母版页码设置 一、需求介绍二、达到效果三、具体操作1. 插入页码2. 设置起始页码为03. 进入母版编辑页面4. 内容格式调整5. 删去最后一个板式的三个模块信息6. 尾页处理7. 最终效果 一、需求介绍 PPT的母版可以设定PPT的基调,且在非母版页面不会误改PPT中的固定…