Java基础入门篇——数据类型(六)

news2024/10/6 0:27:55

目录

一、基本数据类型

1.1整型类型变量

1.2浮点型

1.3字符型

1.4布尔型

二、引用数据类型


Java是一个强类型语言,Java中的数据必须明确数据类型。数据类型的作用就是约束变量存储数据的形式。例如,定义为int类型存储整数,定义为double类型存储小数。

Java的数据类型分为两大类:基本数据类型和引用数据类型。

一、基本数据类型

基本数据类型直接存储值。Java有8个基本数据类型:

  1. byte:8位整数,范围从-128到127。
  2. short:16位整数,范围从-32,768到32,767。
  3. int:32位整数,范围从-2^31到2^31 - 1。
  4. long:64位整数,范围从-2^63到2^63 - 1。
  5. float:32位单精度浮点数。
  6. double:64位双精度浮点数。
  7. char:16位Unicode字符。
  8. boolean:只有两个值,true或false。

1.1整型类型变量

整型类型变量用来存储整数数值,也就是没有小数部分的值。整型类型分为4种不同类型:

字节型(byte)、短整型(short)、整型(int)、长整型(long),这4种类型所占的存储空间大小和取值范围如下所示:

以上这个表,列出了4种不同类型的所占空间和取值范围。占用空间表示不同类型的变量分别占用的内存大小。字节表示的是byte类型,1个字节,在需要逐字节处理数据时(如图像处理),使用byte类型。如果表示整数,就可以表示-127~128的整数。取值范围表示的是不能超出这个范围。 

需要注意的一个long类型,变量赋值的时候需要在后面加个L,说明赋值为long类型。

如下所示:


long a=9999999999999;  //错误,9999999999999超出了默认的int型的取值范围。
Long a=9999999999999L; //正确,后面加上L或l表示long型。

byte类型变量赋值


byte a = 56;   //正确,允许byte或short范围内的直接赋值给byte或short。

1.2浮点型

在Java中,浮点型数据类型用于表示带有小数点的数字。Java提供了两种浮点型数据类型:

 float

  • 32位宽度。
  • 精度约为7位小数。
  • 使用fF后缀来表示float字面量,例如:3.14f
  • 默认值为0.0f。 

double

  • 64位宽度。
  • 精度约为15位小数。
  • 不需要特定的后缀,但可以使用dD,例如:3.143.14d
  • 默认值为0.0d

注意

  • 浮点数在计算机中的表示并不总是完全精确的。例如,0.1 + 0.2可能不会精确地等于0.3。这是因为计算机使用二进制系统来表示浮点数,而某些十进制小数在二进制中不能精确表示。
  • 对于需要精确计算的场景(如金融应用),建议使用BigDecimal类而不是基本的浮点类型。

示例

声明和初始化浮点型变量:

float myFloat = 5.6f;
double myDouble = 5.6;

总的来说,除非有特定的内存或性能要求,通常建议使用double类型,因为它提供了更高的精度。

1.3字符型

1、Java中采用Unicode编码的16位字符类型,表示范围为0~65536。ASCII字符集是Unicode的子集,其取值范围为0~127。

 

2、在Java中,字符型(char)是一种基本数据类型,用于表示单个字符。以下是有关字符型的一些关键信息: 

  1. 大小char类型占用16位(2字节)的内存空间。

  2. 范围:它可以表示Unicode字符集中的任何字符,范围从\u0000(即0)到\uffff(即65,535)。

  3. 字面量:字符字面量用单引号括起来,例如:'A''9''-'等。

  4. 转义序列:某些特殊字符可以使用转义序列表示,例如换行符(\n)、制表符(\t)、单引号(\')、双引号(\")等。

  5. 默认值:未初始化的字符变量的默认值为\u0000

  6. 用途char类型通常用于表示单个字符,但也可以用于表示Unicode编码的字符。

示例

声明和初始化字符型变量:

char letter = 'A';
char digit = '9';
char symbol = '-';
char unicodeChar = '\u0041'; // 表示字符'A'

字符型变量也可以用于数值计算,因为它们实际上存储的是字符的Unicode编码值。

例如:

char letter = 'A';
int letterValue = letter + 1; // letterValue的值为66

总的来说,char类型在Java中提供了一种方便的方式来表示和操作单个字符。

1.4布尔型

 在Java中,布尔型(boolean)是一种基本数据类型,用于表示逻辑值。布尔型只有两个可能的取值:true(真)和false(假)。布尔型用于条件判断和控制程序的流程。

  1. 取值:布尔类型只能取两个值:true或false。它们是Java中的关键字,不区分大小写。

  2. 默认值:未初始化的布尔型变量的默认值是false。

  3. 用途:布尔类型常用于判断条件和控制流程,例如在if语句、while循环、逻辑运算等中用于条件判断。

示例

boolean isTrue = true;
boolean isFalse = false;

if (isTrue) {
    System.out.println("This is true.");
} else {
    System.out.println("This is false.");
}

在Java中,布尔类型是用于表示真假值的最基本的数据类型。它在很多情况下是非常有用的,例如在条件判断、循环控制和逻辑运算中。

二、引用数据类型

 引用数据类型用于存储对对象的引用。引用数据类型包括:

  1. 类(Class):自定义的数据类型。
  2. 接口(Interface):定义了一组方法的契约。
  3. 数组(Array):存储固定大小的同一类型的元素集合。
  4. 枚举(Enum):一组预定义的常量值。

此外,Java还提供了一些特殊的引用类型,如字符串(String)和包装类(如Integer、Double等),用于封装基本数据类型的对象。

选择合适的数据类型有助于确保代码的效率和准确性。例如,如果你知道一个整数变量的值不会超过127,你可以使用byte类型来节省内存。如果你需要存储一个大的浮点数,你可以使用double类型来获得更高的精度。

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

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

相关文章

【分布式流控组件 Sentinel 快速入门】——图文详解操作流程

💧 分布式流控组件 S e n t i n e l 快速入门 \color{#FF1493}{分布式流控组件 Sentinel 快速入门} 分布式流控组件Sentinel快速入门💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客&#…

ThreadPoolExecutor线程池详解

ThreadPoolExecutor线程池详解 1. 背景 项目最近的迭代中使用到了ThreadPoolExecutor线程池,之前都只是知道怎么用,没有了解过线程池的底层原理,项目刚上线,有时间整理一下线程池的用法,学习一下线程池的底层实现与工…

Stable Diffusion - Style Editor 和 Easy Prompt Selector 提示词插件配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132122450 Stable Diffusion 的 Prompt 的功能,可以用文字来描述想要生成的图像,根据输入来创造出逼真的图像。Prompt 支持…

Mysql面试题(查询重复数据删除重复数据)

Create table A (id int) 注意:id列非自增,由代码产生并输入,但代码可能产生重复id 1.业务定义中,id列不允许重复,用什么方式保证重复的id不会被输入表中? 2.若已经发生数据重复,请写出SQL语…

【C++进阶之路】继承与多态的概念考察

文章目录 一、问答题二、概念题三、答案与解析问答题概念题 一、问答题 什么是菱形继承?菱形继承的问题是什么?什么是菱形虚拟继承?如何解决数据冗余和二义性的。继承和组合的区别?什么时候用继承?什么时候用组合&…

9:00开始面试,9:08就出来了,这问题问的实在是····

外包工作3年,今年裸辞跳槽,很幸运的是找到了下家,不过 自从加入到这家公司,每天不是在加班就是在加班的路上,薪资倒是给的不少,所以我也就忍了。没想到6月一纸通知,所有人都不许加班&#xff0…

网络防御(9)

.一、SSL工作过程是什么? SSL位于应用层和传输层之间,它能够为基于TCP等可靠连接的应用层协议提供安全性保证。SSL协议本身分为两层: 上层为SSL握手协议(SSL handshake protocol)、SSLpassword变化协议(S…

【locust】使用locust + boomer实现对接口的压测

目录 背景 环境安装 脚本编写 master slave节点(golang/boomer) 问题 资料获取方法 背景 很早之前,考虑单机执行能力,使用locust做过公司短信网关的压测工作,后来发现了一个golang版本的locust,性能…

HTML

HTML 1. 块级标签 标题&#xff1a; <h1>一级标题</h1> div: <div>这是一个div标签</div> p&#xff1a; <p>这是一个p标签&#xff0c;段落标签</p> <!DOCTYPE html> <html lang"en"> <head><meta charse…

使用 ESP32 Arduino 和机器学习实现WIFI室内定位

在这个 Arduino 机器学习项目中,我们将使用附近的 WiFi 接入点来定位我们所在的位置。为了使该项目正常运行,您需要一块配备 WiFi 的板,例如 ESP8266、ESP32 或 MKR WiFI 1010。 什么是室内定位? 我们都习惯了 GPS 定位,我们的设备将使用卫星来跟踪我们在地球上的位置。GP…

SOLIDWORKS Simulation的功能到底有多强大

说到知己知彼&#xff0c;这是一个老生常谈的问题&#xff0c;对于SOLIDWORKS Simulation来说&#xff0c;很多朋友经常问我&#xff0c;我要算一个某某问题&#xff0c;SOLIDWORKS Simulation能算么&#xff1f;其实&#xff0c;这个就是一个典型的不了解SOLIDWORKS Simulatio…

虚拟世界探索:科技之下的未来可能性

随着科技的飞速发展&#xff0c;人们对于虚拟世界的憧憬和探索也日益加深。虚拟世界&#xff0c;那是一个超越现实的概念&#xff0c;一个充满想象力和创造力的领域。然而&#xff0c;虚拟世界究竟有可能实现吗&#xff1f;这是一个引人深思的问题。 虚拟世界&#xff0c;首先让…

多格式兼容,PDM系统与BOM系统格式转换

在现代制造业的产品开发过程中&#xff0c;PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;和BOM系统&#xff08;Bill of Materials&#xff0c;物料清单管理&#xff09;是不可或缺的重要工具。PDM系统负责管理产品的图文档、规格参数等信息…

Python之多重继承

一、多重继承 Python支持多重继承&#xff0c;一个子类可以有多个“直接父类”。这样&#xff0c;就具备了“多个父类”的特点。但是由于&#xff0c;这样会被“类的整体层次”搞的异常复杂&#xff0c;尽量避免使用。 class A:def aa(self):print("aa") ​ class B…

VMware虚拟机NAT模式Ubuntu无法上网解决方案

发现只要NAT模式&#xff0c;ping地址时就报网络不可达&#xff0c;且右上方网络图标消失&#xff0c;但是外部USB网络设备又只能在NAT模式下使用。。。 博主的解决方案如下&#xff1a; 按WinR键入services.msc&#xff0c; 找到VMware DHCP Service、VMware NAT Service和V…

震惊!赴日IT程序员工作卷到开始卡学历了?

我想先问问哪个国家不卷呢&#xff1f;现在优秀的IT人才那么多&#xff0c;竞争激烈很正常&#xff0c;但是&#xff0c;如果你的学历和技能都很优秀&#xff0c;那么你就有很大的机会获得一份满意的IT工作。而对于想要去日本从事IT工作的人来说&#xff0c;日语可以算是一个加…

@想提高经济、管理效益的企业,是时候“种草”电子会计档案了

上海国家会计学院近期发布了一项评选报告——《2023年影响中国会计行业的十大信息技术》&#xff0c;它们分别是&#xff1a;数电发票、会计大数据分析与处理技术、财务云、流程自动化、电子会计档案、中台技术、新一代ERP、数据治理技术、商业智能&#xff08;BI&#xff09;、…

MySQL系列---分区表实验

目录 通用核心range分区分区表达式结果必须为整数必须连续递增区间插入区间必须存在 list分区分区表达式结果必须为整数分区枚举不可以重复插入区间必须存在 hash分区分区表达式结果必须为整数分区数量必须为正整数余数取摸决定分区 key分区分区表达式可以是任意类型分区表达式…

ChatGPT发展到了什么程度?代码生成,程序员将被取代?

前言 ChatGPT 是一个基于人工智能的聊天机器人&#xff0c;由 OpenAI 开发。ChatGPT 的历史可以追溯到早期的语言模型&#xff0c;例如循环神经网络 (RNN) 和长短时记忆网络 (LSTM)。如今的 ChatGPT-3 则是最新的版本。 ChatGPT发展到了什么程度&#xff1f;代码生成&#xff0…

文件或目录损坏且无法读取

如上图报错&#xff0c;我们直接用cmd命令输入【CHKDSK C: /F】然后回车 电脑重启后可以了&#xff0c;希望能帮助各位小伙伴