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.rhkb.cn/news/250378.html

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

相关文章

华为数通方向HCIP-DataCom H12-821题库(单选题:401-420)

第401题 R1的配置如图所示,此时在R1查看FIB表时,关于目的网段192.168.1.0/24的下跳是以下哪一项? A、10.0.23.3 B、10.0.12.2 C、10.0.23.2 D、10.0.12.1 【答案】A 【答案解析】 该题目考查的是路由的递归查询和 RIB 以及 FIB 的关系。在 RIB 中,静态路由写的是什么,下…

PPT录屏功能在哪?一键快速找到它!

在现代办公环境中,ppt的录屏功能日益受到关注,它不仅能帮助我们记录演示文稿的播放过程,还能将操作过程、游戏等内容完美录制下来。可是很多人不知道ppt录屏功能在哪,本文将为您介绍ppt录屏的打开方法,以帮助读者更好地…

网络原理TCP/IP(2)

文章目录 TCP协议确认应答超时重传连接管理断开连接 TCP协议 TCP全称为"传输控制协议(Transmission Control Protocol").⼈如其名,要对数据的传输进⾏⼀个详细 的控制; TCP协议段格式 • 源/目的端口号:表⽰数据是从哪个进程来,到哪个进程去; • 32位序号/32位确认…

spring问题点

1.事务 1.1.事务传播 同一个类中 事务A调非事务B B抛异常 AB事务生效(具有传播性) 同一个类中 事务A调非事务B A抛异常 AB事务生效 也就是主方法加了事务注解 则方法内调用的其他本类方法无需加事务注解, 发生异常时可以保证事务的回滚 最常…

day07-CSS高级

01-定位 作用:灵活的改变盒子在网页中的位置 实现: 1.定位模式:position 2.边偏移:设置盒子的位置 left right top bottom 相对定位 position: relative 特点: 不脱标,占用自己原来位置 显示模…

跟着cherno手搓游戏引擎【14】封装opengl

本节先把代码粘上,后续会慢慢把注释都给加上,先看代码了解个大概(待更新) 前置: RendererAPI.h: #pragma once namespace YOTO {enum class RendererAPI {None 0,OpenGL1};class Renderer {public:inline static R…

(每日持续更新)jdk api之NotSerializableException基础、应用、实战

博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整理、总结、定稿&…

Flink 流式读取 Debezium CDC 数据写入 Hudi 表无法处理 -D / Delete 消息

问题场景是:使用 Kafka Connect 的 Debezium MySQL Source Connector 将 MySQL 的 CDC 数据 (Avro 格式)接入到 Kafka 之后,通过 Flink 读取并解析这些 CDC 数据,然后以流式方式写入到 Hudi 表中,测试中发现…

【爬虫专区】批量下载PDF (无反爬)

天命:只要没反爬,一切都简单 这次爬取的是绿盟的威胁情报的PDF 先看一下结构,很明显就是一个for循环渲染 burp抓包会发现第二次接口请求 接口请求一次就能获取到了所有的数据 然后一个循环批量下载数据即可,其实没啥难度的 imp…

如何安装MySQL

如何安装MySQL 前提条件下载MySQL在 Windows 上安装 MySQL验证 MySQL 安装 MySQL是当今工业界广泛使用的最流行的关系数据库管理软件之一。它通过各种存储引擎提供多用户访问支持。它得到了甲骨文公司的支持。在本节中,我们将学习如何为初学者下载和安装 MySQL。 前…

安卓相对布局RelativeLayout

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"150dp"><TextViewandroid…

在VM虚拟机搭建NFS服务器

NFS共享要求如下&#xff1a; &#xff08;1&#xff09;共享“/mnt/自已姓名的完整汉语拼音”目录&#xff0c;允许XXX网段的计算机访问该共享目录&#xff0c;可进行读写操作。&#xff08;说明&#xff1a;XXX网段&#xff0c;请根据你的规划&#xff0c;再具体指定&#xf…

完整的 HTTP 请求所经历的步骤及分布式事务解决方案

1. 对分布式事务的了解 分布式事务是企业集成中的一个技术难点&#xff0c;也是每一个分布式系统架构中都会涉及到的一个东西&#xff0c; 特别是在微服务架构中&#xff0c;几乎可以说是无法避免。 首先要搞清楚&#xff1a;ACID、CAP、BASE理论。 ACID 指数据库事务正确执行…

【C语言刷题系列】喝汽水问题

文章目录 一、文章简介 1.先买再换 1.1 代码逻辑&#xff1a; 1.2 完整代码 1.3 运行结果 1.4 根据方法一总结优化 2.边买边换 2.1 代码逻辑&#xff1a; 2.2 完整代码 2.3 运行结果 一、文章简介 本文所述专栏——C语言经典编程问题 C语言刷题_倔强的石头106的博客…

unity3d的海盗王白银城演示

这是一个外网上的下载的海盗王unity3d制作的白银城演示场景。 地图只含有白银城区&#xff0c;没有野外和怪物。 当然也没有服务器端的。 我对灯光、摄像头、天空背景等做过调整&#xff0c;使它显示起来比较鲜丽。 它的模型和贴图是直接拿了海盗的&#xff0c;没有做过优化调整…

【算法与数据结构】139、LeetCode单词拆分

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题可以看做一个动态规划问题。其中&#xff0c;字符串s是背包&#xff0c;而字典中的单词就是物品。…

指针的学习1

目录 什么是指针&#xff1f; 野指针 造成野指针的原因&#xff1a; 如何避免野指针&#xff1f; 内存和指针 如何理解编址&#xff1f; 指针变量和地址 取地址操作符& 指针变量和解引用操作符 指针变量 如何拆解指针类型&#xff1f; 指针变量的大小 指针变量…

麒麟系统—— openKylin 安装 Maven

麒麟系统—— openKylin 安装 Maven 一、准备工作1. 确保麒麟系统 openKylin 已经安装完毕。2. 确保 java 已经安装完毕 二、下载Maven三、解压 Maven 与环境配置解压配置环境变量验证 最终&#xff1a;介绍配置的其他参数使用 本文将分享如何在麒麟操作系统 openKylin 上安装…

【Spring源码分析】推断构造方法

推断构造方法源码解析 一、确认候选构造——AutowireAnnotationBeanPostProcessor#determineCandidateConstructors二、autowireConstructor 方法源码解析三、总结 阅读此需阅读下面这些博客先【Spring源码分析】Bean的元数据和一些Spring的工具【Spring源码分析】BeanFactory系…

【Java程序设计】【C00207】基于(JavaWeb+SSM)的宠物领养管理系统(论文+PPT)

基于&#xff08;JavaWebSSM&#xff09;的宠物领养管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的宠物领养系统 本系统分为前台系统、管理员、收养者和寄养者4个功能模块。 前台系统&#xff1a;游客打开系统…