Java的八种基本数据类型+封装类+示例代码

news2024/10/5 14:56:43

Java的八种基本数据类型

在这里插入图片描述

一,介绍

为什么要使用数据类型

在Java中,基本数据类型是构建和操作程序的基础。这些基本类型有以下几个重要的理由为什么要使用:

  1. 效率:在Java中,八大基本数据类型是原始类型,它们的值直接存储在内存中,因此在访问和操作这些类型的值时,它们比引用类型(比如对象)有更高的效率。

  2. 精确的数据表示:每一种基本数据类型都有特定的用途和精度范围。例如,如果你要处理小数点后的数值,你可以使用floatdouble类型;如果你要处理大范围的整数,你可以使用intlong类型。这些基本数据类型可以帮助你以最准确的方式表示和处理数据。

  3. 内存占用:每种基本数据类型都有固定的内存大小,它能以更有效率的方式使用系统资源。比如,如果只需要表示一个’是’或’否’的值,使用boolean类型只需要一位内存,远少于一个对象所需要的内存。

  4. 便捷性:基本数据类型提供了一些内置的操作,如算数运算、关系运算、位运算等,使用这些类型可以方便地进行各种常见操作。

  5. 跨平台性:Java的基本数据类型在所有的Java平台上都有相同的数据大小和精确的行为,这使得Java代码具有很强的跨平台性。

总的来说,使用Java的八大基本数据类型能带来效率、精确性、内存占用优势、使用便利和良好的跨平台特性。

Java 有八种基本

二,八大数据类型+示例代码

数据类型,分别是四种整数型、两种浮点型、一种字符型和一种布尔型。以下是对这些基本数据类型的详细介绍:

  1. byte(字节型):最小的整数类型,占用1个字节(8位),取值范围是-128 ~ 127。通常用于处理原始二进制数据。

  2. short(短整型):占用2个字节(16位),取值范围是-32768 ~ 32767。比 byte 能表示更大的数,但仍然有限。

  3. int(整型):最常用的整数类型,占用4个字节(32位),取值范围是-2^31 ~ 2^31-1。

  4. long(长整型):最大的整数类型,占用8个字节(64位),取值范围是-2^63 ~ 2^63-1。当 int 类型无法满足需求时,可以使用 long 类型。

  5. float(单精度浮点型):单精度浮点数类型,占用4个字节(32位),取值范围大约是±3.40282347E+38F ~ ±1.4E-45F。可表示带小数点的数值,但精度有限。

  6. double(双精度浮点型):双精度浮点数类型,占用8个字节(64位),取值范围大约是±1.79769313486231570E+308 ~ ±4.9E-324。精度比 float 高,是表示浮点数的主要类型。

  7. char(字符型):用来表示单个字符,占用2个字节(16位),取值范围是0 ~ 65535。在 Java 中,char 类型使用 Unicode 编码表示字符。

  8. boolean(布尔型):只有两个值:true 和 false。用来进行逻辑判断。

每种基本数据类型都有相应的包装类,如 Integer、Long、Character 和 Boolean 等,这些包装类为基本数据类型提供了一系列的操作和处理的方法。
以下是Java语言中八种基本数据类型的示例代码:

public class Main {
    public static void main(String[] args) {
        byte sampleByte = 10; // byte 数据类型
        System.out.println("Byte Value: " + sampleByte);
        
        short sampleShort = 300;
        System.out.println("Short Value: " + sampleShort);
        
        int sampleInt = 20000; // int 数据类型
        System.out.println("Int Value: " + sampleInt);
        
        long sampleLong = 90000L; // long 数据类型,注意数字后面添加了"L"后缀
        System.out.println("Long Value: " + sampleLong);
        
        float sampleFloat = 20.5f; // float 数据类型,注意数字后面添加了"f"后缀
        System.out.println("Float Value: " + sampleFloat);
        
        double sampleDouble = 55.5; // double 数据类型
        System.out.println("Double Value: " + sampleDouble);
        
        char sampleChar = 'A'; // char 数据类型
        System.out.println("Char Value: " + sampleChar);
        
        boolean sampleBoolean = true; // boolean 数据类型
        System.out.println("Boolean Value: " + sampleBoolean);
    }
}

在上述代码中,首先定义了各种基本数据类型的变量,并为它们赋值。然后,通过 System.out.println() 打印他们的值。注意在定义 longfloat 类型变量时,数值后面需要带上"L"和"f"后缀,以区别 intdouble 类型。

三,封装类+示例代码

在Java中,每种基本数据类型都有对应的封装类(Wrapper class)。这些封装类在 object-oriented programming(面向对象编程)中非常有用,特别是在集合类中,因为集合类只能存储对象类型,不能直接存储基本数据类型。以下是Java八种基本数据类型及其对应的封装类:

  1. byte:Byte

  2. short:Short

  3. int:Integer

  4. long:Long

  5. float:Float

  6. double:Double

  7. char:Character

  8. boolean:Boolean

这些封装类都是不可变的,即一旦一个封装类对象被创建,其内部存储的值就不能改变。如果需要改变值,Java会创建一个新的封装类对象。

封装类还有一些其他的功能。例如,它们有一些方法可以将值转换为不同的类型,也可以将封装类对象转换回相应的基本类型的值(unboxing),或将基本类型的值转换为封装类对象(boxing)。Auto-boxing 和 auto-unboxing 功能在 Java 5 中引入,允许程序员在需要时自动进行封装类对象和基本类型之间的转换。例如:

Integer integer = 10;  // 自动装箱
int i = integer;       // 自动拆箱

在上述代码中,当把 int 类型的值赋值给 Integer 类型的变量时,Java自动把基本类型包装成封装类对象;当把 Integer 类型的对象赋值给 int 类型的变量时,Java 自动把封装类对象转为基本类型值。
以下是八大基本数据类型的封装类示例代码:

  1. Byte 的示例代码:
Byte b = 10;
System.out.println(b);  // 输出:10

// 转换为基本数据类型
byte primitiveByte = b.byteValue();
System.out.println(primitiveByte);  // 输出:10
  1. Short 的示例代码:
Short s = 100;
System.out.println(s);  // 输出:100

// 转换为基本数据类型
short primitiveShort = s.shortValue();
System.out.println(primitiveShort);  // 输出:100
  1. Integer 的示例代码:
Integer i = 1000;
System.out.println(i);  // 输出:1000

// 转换为基本数据类型
int primitiveInt = i.intValue();
System.out.println(primitiveInt);  // 输出:1000

// 使用 parseInt 方法将字符串转换为 Integer 对象
String str = "500";
Integer parsedInt = Integer.parseInt(str);
System.out.println(parsedInt);  // 输出:500
  1. Long 的示例代码:
Long l = 1000000L;
System.out.println(l);  // 输出:1000000

// 转换为基本数据类型
long primitiveLong = l.longValue();
System.out.println(primitiveLong);  // 输出:1000000
  1. Float 的示例代码:
Float f = 3.14f;
System.out.println(f);  // 输出:3.14

// 转换为基本数据类型
float primitiveFloat = f.floatValue();
System.out.println(primitiveFloat);  // 输出:3.14
  1. Double 的示例代码:
Double d = 3.14159;
System.out.println(d);  // 输出:3.14159

// 转换为基本数据类型
double primitiveDouble = d.doubleValue();
System.out.println(primitiveDouble);  // 输出:3.14159
  1. Character 的示例代码:
Character c = 'A';
System.out.println(c);  // 输出:A

// 转换为基本数据类型
char primitiveChar = c.charValue();
System.out.println(primitiveChar);  // 输出:A
  1. Boolean 的示例代码:
Boolean bool = true;
System.out.println(bool);  // 输出:true

// 转换为基本数据类型
boolean primitiveBoolean = bool.booleanValue();
System.out.println(primitiveBoolean);  // 输出:true

这些示例展示了每个基本数据类型的封装类的用法,包括创建对象、获取值以及将封装类对象转换为对应的基本数据类型。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodejs+wasm+rust debug及性能分析

文章目录 背景v8引擎自带的profilelinux的perf采集wasm三方库性能分析编译debug版本wasmrust程序debug调试异常模型正常模型结论优化 参考 Node使用火焰图优化CPU爆涨 - 掘金 【Node.js丨主题周】理解perf 与火焰图-腾讯云开发者社区-腾讯云 Easy profiling for Node.js Applic…

Nature子刊|3D视角看肠道菌群空间结构

人肠道菌群不仅种类复杂,且在肠道中有特异的组织结构,这些组织结构对肠道菌群的功能和宿主的健康具有重要的作用。目前对肠道菌群组成的研究已经比较多,但菌群的空间组织结构研究尚浅。今天给大家分享一篇发表在Nature Communications的最新研…

哪些洗地机比较好?清洁力强的洗地机

洗地机是当代先进的科技清洁产品,拥有出色的清洁效果,无论是家庭使用还是商业场所,洗地机都能轻松应对各种地面类型和污渍。不仅如此,洗地机经过不断的迭代,还具有人性化的设计,使操作更加便捷和舒适。无论…

osg实现物体沿着控制点生成的Cardinal样条轨迹曲线运动

目录 1. 前言 2. 预备知识 3. 用osg实现三维Cardinal曲线 3.1. 工具/ 原料 3.2. 代码实现 4. 说明 1. 前言 在设计矢量图案的时候,我们常常需要用到曲线来表达物体造型,单纯用鼠标轨迹绘制显然是不足的。于是我们希望能够实现这样的方法:…

ChatGPT AIGC 人工智能Excel计算业绩提成

公司业绩提成是一种激励措施,通常是指根据公司的业绩表现,对员工的绩效进行评估,然后给予相应的奖励或提成。 这种激励措施可以鼓励员工努力工作,提高团队的竞争力和生产效率,从而推动公司的业绩增长。 不过具体的提成计算方式和金额是根据公司政策和个人表现而定的。 …

[java进阶]——线程池的使用,自定义线程池

🌈键盘敲烂,年薪30万🌈 目录 一、线程池的存在意义 二、线程池的使用 2.1线程池的核心原理 2.2线程池的代码实现 三、自定义线程池 3.1线程池的参数详解 3.2线程池的执行原理 3.3灵魂两问 3.4线程池多大合适 3.5拒绝策略 一、线程池…

基于springboot实现分布式架构网上商城管理系统项目【项目源码+论文说明】计算机毕业设计

基于springcloud实现分布式架构网上商城演示 摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要…

linux进程管理,一个进程的一生(喂饭级教学)

这篇文章谈谈linux中的进程管理。 一周爆肝,创作不易,望支持! 希望对大家有所帮助!记得收藏! 要理解进程管理,重要的是周边问题,一定要知其然,知其所以然。看下方目录就知道都是干货…

AWTK实现汽车仪表Cluster/DashBoard嵌入式GUI开发(六):一个AWTK工程

一个AWTK工程基于C/C++编写,可以分为如下几步: 结合下图,看懂启动的部分。一般一个AWTK工程,需要实现哪些部分,就是其中开始之后白色的部分,比如调用main函数和gui_app_start时会做一些操作,比如asset_init和application_init时要做一些设置,还有退出的函数application…

《软件方法》2023版第1章(11)1.4.3 具体工作步骤

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 1.4 应用UML的建模工作流 1.4.3 使用UML建模的工作流步骤 图1-17中“工件形式”一列所列出的图就是本书推荐的在建模工作流ABCD中的UML用法,我用活动图进一步表示建模的步…

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行

文章目录 1. 驱动开发环境搭建2. 驱动开发新建项目及项目属性配置和编译3. 双机调试环境搭建3.1 安装虚拟机VMware3.2 配置Dbgview.exe工具3.3 基于Windbg的双机调试 4. 内核驱动的运行4.1 临时关闭系统驱动签名校验4.2 加载驱动 1. 驱动开发环境搭建 请参考另一篇:https://bl…

Mysql中MyISAM和InnoDB 引擎的区别

MyISAM 和 InnoDB 都是 Mysql 里面的两个存储引擎。 在 Mysql 里面,存储引擎是可以自己扩展的,它的本质其实是定义数据存储的方式以及数据读取的实现逻辑。而不同存储引擎本身的特性,使得我们可以针对性的选择合适的引擎来实现不同的业务场景…

初识Java 15-1 文件

目录 文件和目录路径 选择Path的片段 分析Path 添加或删除路径片段 目录 文件系统 监听Path 查找文件 读写文件 本笔记参考自: 《On Java 中文版》 更多详细内容请查看官方文档。 Java 7优化了Java的I/O编程,具体的表现就是java.nio.file。其中…

【王道代码】【2.3链表】d3

关键字: 奇偶序号拆分、a1,b1,a2,b2...an,bn拆分a1,a2...,bn,...b2,b1、删除相同元素

以人物画像谈测试员如何半道介入一个新项目

最近在带新人了解项目,这已经不是第一次带新人,由此引发了我关于新进项目的测试人员如何能够快速介入一个新项目的思考。这里我特指的是项目已经运行一段周期,新进员工或其他项目测试人员中途进入该项目的情况。对于项目一启动,测…

Apache Doris (四十六): Doris数据更新与删除 - 批量删除

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

分享一个python无人超市管理系统django项目实战源码调试 lw 开题

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

文件存储空间管理(空闲表法,空闲链表法,位示图法,成组链表法)

1.存储空间的划分与初始化 1.文件卷(逻辑卷)的概念 存储空间的划分:将物理磁盘划分为一个个文件卷(逻辑卷、逻辑盘). 2.目录区与文件区 存储空间的初始化:将各个文件卷划分为目录区、文件区。 目录区包含文件目录、空闲表、位示图、超级…

嵌入式养成计划-46----QT--简易版网络聊天室实现--QT如何连接数据库

一百一十九、简易版网络聊天室实现 119.1 QT实现连接TCP协议 119.1.1 基于TCP的通信流程 119.1.2 QT中实现服务器过程 使用QTcpServer实例化一个服务器对象设置监听状态,通过listen()函数,可以监听特定的主机,也可以监听所有客户端&#x…

Unity读取写入Excel

1.在Plugins中放入dll,118开头的dll在Unity安装目录下(C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity) 2.写Excel public void WriteExcel(){//文件地址FileInfo newFile new FileInfo(Application.dataPath "/test.xlsx…