当前位置: 首页 > article >正文

Java学习——数据类型

目录一、概述二、基本数据类型1、数值型2、字符型3、布尔型三、引用数据类后期补充1、类2、接口3、数组4、枚举5、注解四、数据类型转换1、概述2、隐式转换自动类型转换3、显式转换强制类型转换4、特殊类型转换场景五、获取用户端输入1、final关键字2、Scanner类一、概述Java 的数据类型分为两大类基本类型primitive type和引用类型reference type。基本类型包括 byte、short、int、long、float、double、char、boolean 共 8 种它们直接存储数值或布尔值效率高且内存占用固定引用类型包括类、接口、数组以及 null 字面量它们存储的是对象的引用内存地址可以动态创建并通过 new 关键字实例化。理解这两种类型的区别值传递 vs. 引用传递是掌握 Java 内存管理和编程基础的关键。二、基本数据类型1、数值型整数型变量Java 中整数型数据变量用于存储整数值共有 4 种不同的整数类型byte、short、int、long。它们的主要区别在于内存大小1字节8位和取值范围。类型占用空间取值范围用途byte1 字节-128 127节省内存处理小范围整数short2 字节-32768 32767较少使用适用于特定场景的整数存储int4 字节-2³¹ ~ 2³¹-1最常用的整数类型默认的整数字面量类型long8 字节-2⁶³ ~ 2⁶³-1存储大范围整数*在实际应用过程中应考虑内存占用选取合适的数据类型*程序中整数类型的数据一般默认为int型long型数据在表示时需要后缀加上 L 或 llong num1 12345678987L;浮点型变量在 Java 中浮点型变量用于存储小数或科学计算数值主要分为float单精度4 字节和double双精度8 字节两种。类型占用空间取值范围精度范围用途float4 字节1.4e-45 ~ 3.4028235e386 - 7 位小数节省内存的浮点数double8 字节4.9e-324 ~ 1.7976931348623157e30815 位小数适用于高精度计算float型数据在表示时需要后缀加上F 或 ffloat结构1 位符号位 8 位指数位 23 位尾数位float num01 3.14F;double型数据在表示时需要后缀加上D 或 d (选加可省略)double结构1 位符号位 11 位指数位 52 位尾数位注意事项浮点型支持常规数学运算加减乘除但不准确有误差浮点型数据之间也不宜直接进行比较补充浮点数中的 E 和 e 表示科学计数法的十进制指数负数范围与正数对称浮点类型还包含正无穷、负无穷、NaN非数值等特殊值实际存储遵循 IEEE 754 标准2、字符型在 Java 中字符型使用char关键字表示用于存储单个字符采用Unicode编码。链接Unicode编码表基本参数大小16 位2 字节取值范围\u00000到\uffff65535即 Unicode 字符集的 0~65535 编码默认值\u0000空字符赋值方式char ch1 A; // 直接赋值字符 char ch2 65; // 十进制ASCII值等价于A char ch3 \u0041; // Unicode编码等价于A字符与整型的转换字符型可隐式转换为整型如int反之需要显式类型转换int code A; // 结果为65 char ch (char) 66; // 结果为B注意事项不能为负数char是无符号类型赋值负数会编译错误不能表示单个字节如果需要 8 位字节使用byte类型与int兼容char可以自动提升为int如参与算术运算但int赋值给char需要强制类型转换除非是常量且范围合适转义字符Java支持常见转义字符如转义符含义Unicode值\n换行符LF\u000A\t水平制表符Tab\u0009\r回车符CR\u000D\b退格符\u0008\f换页符\u000C\\反斜杠自身\u005C\单引号\u0027\双引号\u0022\0空字符NULL\u0000字符串与字符字符可通过String类的方法处理String str Java; char firstChar str.charAt(0); // 获取第一个字符J字符的Unicode处理Java支持Unicode补充字符如emoji需注意某些方法可能不兼容char highSurrogate \uD83D; // 高代理项 char lowSurrogate \uDE00; // 低代理项 String emoji highSurrogate lowSurrogate; // 组合成注意事项字符型默认值\u0000空字符比较字符时直接使用关系运算符如处理多语言时需确保编码一致性如UTF-8字符串与字符的区别A是String类型引用类型A是char类型基本类型3、布尔型Java 中的布尔型使用boolean关键字表示用于逻辑运算和条件判断。基本参数取值仅两个字面量true真或false假存储大小Java 规范未明确定义通常虚拟机实现中boolean至少占 1 个字节或 1 位但数组时可能用 byte 模拟默认值false注意事项不能与整数互转Java 中boolean不参与任何数值类型转换不像 C 语言中用 0/1 代表 false/true包装类Boolean可自动装箱拆箱内存占用参考单个boolean变量在 HotSpot VM 中通常占用 1 字节boolean[]中每个元素占用 1 字节可通过-XX:UseCompressedOops等影响适用场景标志位、条件开关、逻辑运算结果三、引用数据类后期补充1、类2、接口3、数组4、枚举5、注解四、数据类型转换1、概述Java数据类型转换分为隐式转换自动类型转换和显式转换强制类型转换。隐式转换由编译器自动完成通常发生在小范围数据类型向大范围数据类型转换时显式转换需要手动指定可能伴随精度损失或数据溢出。2、隐式转换自动类型转换当满足以下条件时Java会自动进行类型转换数据类型兼容如整型与浮点型之间。目标类型范围更大例如int转longfloat转double。常见隐式转换顺序byte → short → int → long → float → doublechar → int字符可隐式转为整型示例代码int numInt 100; long numLong numInt; // 自动转换 double numDouble numLong; // 自动转换3、显式转换强制类型转换当需要将大范围数据类型转为小范围类型时需使用强制类型转换语法为(目标类型)值。注意事项精度损失如double转int会丢弃小数部分。数据溢出如long转int可能超出int范围。示例代码double numDouble 100.56; int numInt (int) numDouble; // 结果为100丢失小数部分 long bigNum 2147483648L; int smallNum (int) bigNum; // 可能溢出结果为-21474836484、特殊类型转换场景字符串与其他类型的转换字符串转数值String str 123; int num Integer.parseInt(str); double d Double.parseDouble(str);数值转字符串int num 456; String str String.valueOf(num); String str2 Integer.toString(num);字符与整型的转换char ch A; int ascii (int) ch; // 获取ASCII值65 int num 97; char ch2 (char) num; // 转为字符a注意事项布尔类型不参与转换boolean不能与数值类型互相转换。包装类与基本类型通过自动装箱/拆箱实现转换如Integer与int。精度控制浮点数转整型时建议结合Math.round()处理四舍五入。示例double pi 3.14159; int rounded (int) Math.round(pi); // 结果为3五、获取用户端输入1、final关键字修饰变量使其变为常量值不可修改、修饰方法不可被重写、修饰类不可被继承。double pi 3.1415926; //pi可以被修改此时为变量 final double PI 3.1415926 //PI不可被修改由变量改为常量注意事项final修饰后的变量最好改为大写字母以示区分final修饰后的变量不能读取键盘输入2、Scanner类Java 标准库中用于解析基本类型和字符串的简单文本扫描器最常用于从键盘读取输入。基本用法导入 Scanner 类创建 Scanner 对象绑定到标准输入流键盘读取不同类型的数据import java.util.Scanner; //导入Scanner类 public class Main { public static void main(String[] args) { Scanner scanner new Scanner(System.in); // 创建 Scanner 对象 System.out.print(请输入内容); String input scanner.nextLine(); // 用用户键盘输入的内容进行赋值 System.out.println(您输入的是 input); scanner.close(); // 关闭 Scanner } }常用的其他用法方法说明nextInt()读取一个int值nextDouble()读取一个double值nextBoolean()读取一个boolean值next()读取下一个以空白符分隔的字符串nextLine()读取整行包含空格直到换行符hasNextInt()判断是否还有对应类型的输入常用于循环注意事项混用nextXXX()与nextLine()时nextLine()可能会读取到遗留的换行符需要额外调用一次scanner.nextLine()来“吃掉”它。关闭Scanner后不能再使用且会关闭底层的System.in

相关文章:

Java学习——数据类型

目录 一、概述 二、基本数据类型 1、数值型 2、字符型 3、布尔型 三、引用数据类(后期补充) 1、类 2、接口 3、数组 4、枚举 5、注解 四、数据类型转换 1、概述 2、隐式转换(自动类型转换) 3、显式转换&#xff08…...

基于FireRedASR-AED-L的会议语音转写系统实战

基于FireRedASR-AED-L的会议语音转写系统实战 会议记录不再需要人工逐字整理,智能语音转写让会议纪要自动生成 1. 会议语音转写的痛点与解决方案 每次开完会,最头疼的就是整理会议纪要。人工记录不仅效率低下,还容易遗漏重要内容。特别是多人…...

Ostrakon-VL-8B终端部署详解:CSS像素级修复+终端打印效果实现原理

Ostrakon-VL-8B终端部署详解:CSS像素级修复终端打印效果实现原理 1. 项目概述与核心价值 Ostrakon-VL-8B是一款专为零售与餐饮场景优化的多模态大模型,我们将其能力封装成了一个具有独特像素艺术风格的Web交互终端。这个终端将复杂的图像识别任务转化为…...

JavaScript中类的装饰器提案在属性与方法上的应用

JavaScript类装饰器处于TC39 Stage 3提案阶段,未标准化但Babel/TS已实验支持;方法装饰器接收target、propertyKey、descriptor,可增强行为;属性装饰器无统一签名,TS常用Reflect元数据;装饰器静态执行、不可…...

Qwen-Image-Edit保姆级教程:3步搭建本地修图神器,隐私安全有保障

Qwen-Image-Edit保姆级教程:3步搭建本地修图神器,隐私安全有保障 想要一款既能保护隐私又能快速修图的AI工具?今天给大家介绍基于阿里通义千问Qwen-Image-Edit模型的本地化修图方案,无需联网、数据不出本地,3步就能搭…...

如何在 React 中正确绑定 onClick 事件以避免类型错误

React 中 onClick 期望接收一个函数,若传入字符串或直接执行表达式(如 window.href...)会导致“Expected onclick listener to be a function”报错;正确做法是使用箭头函数包裹逻辑。 react 中 onclick 期望接收一个函数&am…...

蓝桥杯备赛:Day5-P1036 选数

&#x1f4da; 算法笔记&#xff1a;P1036 [NOIP 2002 普及组] 选数 1. 题目描述 [P1036 NOIP 2002 普及组] 选数 - 洛谷 从 nnn 个整数中任选 kkk 个数相加&#xff0c;统计有多少种选法的和为质数。 数据范围&#xff1a;n≤20,k<nn \le 20, k < nn≤20,k<n&…...

大创管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

摘要 随着高等教育改革的不断深入&#xff0c;大学生创新创业训练计划&#xff08;简称“大创”&#xff09;已成为培养创新型人才的重要途径。传统的大创项目管理多依赖手工操作或简单的电子表格&#xff0c;存在效率低下、数据易丢失、协作困难等问题。为提升大创项目管理的科…...

OpenClaw自动化测试:Phi-3-vision-128k-instruct验证UI设计稿与实现一致性

OpenClaw自动化测试&#xff1a;Phi-3-vision-128k-instruct验证UI设计稿与实现一致性 1. 为什么需要自动化UI一致性验证 作为独立开发者&#xff0c;我经常遇到这样的困境&#xff1a;当我在深夜完成某个页面的开发后&#xff0c;第二天对照设计稿检查时&#xff0c;总会发现…...

LFM2.5-1.2B-Thinking-GGUF效果展示:多语言混合prompt响应能力实测

LFM2.5-1.2B-Thinking-GGUF效果展示&#xff1a;多语言混合prompt响应能力实测 1. 模型核心能力概览 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。这个1.2B参数的模型采用GGUF格式&#xff0c;通过llama.cpp运行时实现高…...

DeepSeek-R1-Distill-Llama-8B行业落地:金融研报初稿生成与合规性校验辅助应用实践

DeepSeek-R1-Distill-Llama-8B行业落地&#xff1a;金融研报初稿生成与合规性校验辅助应用实践 1. 引言&#xff1a;金融分析师的新助手 如果你在金融行业工作&#xff0c;每天都要写各种研究报告&#xff0c;那你一定知道这个过程有多耗时耗力。从收集数据、分析趋势&#x…...

北京天文馆新馆玻璃幕墙及玻璃旋体设计与施工技术

北京天文馆新馆玻璃幕墙及玻璃旋体设计与施工技术 摘要:本文对北京天文馆新馆异形玻璃幕墙及采光顶、马鞍形玻璃通道和 四个体形各异的玻璃旋体,在设计和施工中碰到的技术难题及解决方案作了详细的介绍,特别是对异形钢结构和不规则双曲面玻璃的加工制作以及特殊节点的外观…...

保温vs隔热

保温vs隔热 什么是保温,什么是隔热?保的什么温,隔的什么热? 1 保温vs隔热 保温vs隔热是门窗幕墙行业耳熟能详的两个词:比如门窗保温性能,隔热铝合金窗等等。那么什么是保温,什么是隔热呢? GB/T 8478-2020《铝合金门窗》中给出了门窗保温性能和隔热性能的定义。 门…...

零基础入门:5分钟用Xinference部署gte-base-zh,开启文本向量化之旅

零基础入门&#xff1a;5分钟用Xinference部署gte-base-zh&#xff0c;开启文本向量化之旅 1. 准备工作&#xff1a;认识gte-base-zh 1.1 什么是文本向量化 想象一下&#xff0c;当你看到"苹果"这个词时&#xff0c;脑海中会浮现什么&#xff1f;可能是水果&#…...

LVGL8实战:打造个性化数字密码键盘界面

1. 为什么需要自定义密码键盘 在智能家居控制面板、金融支付终端这类对安全性要求较高的场景中&#xff0c;系统自带的软键盘往往存在两个致命问题&#xff1a;一是界面风格与产品整体设计语言不协调&#xff0c;二是可能存在输入轨迹泄露的风险。去年我给某智能门锁厂商做方案…...

Highlight.js在Vue3中的性能优化指南:按需加载 vs 全量引入

Highlight.js在Vue3中的性能优化实战&#xff1a;从全量引入到精准加载 当你的Vue3项目需要展示代码片段时&#xff0c;Highlight.js无疑是语法高亮的首选方案。但在大型应用中&#xff0c;直接全量引入这个强大的工具可能会让你的打包体积意外膨胀——完整的Highlight.js包含超…...

MogFace人脸检测工具实测:16GB显存下支持最高4096×2160分辨率单图检测

MogFace人脸检测工具实测&#xff1a;16GB显存下支持最高40962160分辨率单图检测 1. 引言&#xff1a;当高清图片遇上精准人脸检测 你有没有遇到过这样的场景&#xff1f;拿到一张几千人合影的高清大图&#xff0c;想快速找出某个特定人物&#xff0c;或者需要从监控录像的4K…...

Phi-4-mini-reasoning轻量模型选型指南:何时该用Phi-4-mini而非Qwen3

Phi-4-mini-reasoning轻量模型选型指南&#xff1a;何时该用Phi-4-mini而非Qwen3 1. 模型概述与核心优势 Phi-4-mini-reasoning是一个基于合成数据构建的轻量级开源模型&#xff0c;专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族成员&#xff0c;它特别适合需要高…...

Zynq PS端I2C避坑指南:为什么你的读操作总是失败?

Zynq PS端I2C读操作失败排查手册&#xff1a;从时序分析到实战修复 在嵌入式系统开发中&#xff0c;I2C总线因其简单性和多设备支持能力而广受欢迎。然而&#xff0c;当我们在Zynq SoC的PS端实现I2C通信时&#xff0c;特别是进行读操作时&#xff0c;经常会遇到各种意料之外的失…...

OpenClaw技能市场盘点:10个适配Phi-3-mini-128k-instruct的实用工具

OpenClaw技能市场盘点&#xff1a;10个适配Phi-3-mini-128k-instruct的实用工具 1. 为什么需要关注技能市场&#xff1f; 当我第一次在本地部署OpenClaw时&#xff0c;最让我惊喜的不是框架本身&#xff0c;而是它背后那个充满可能性的技能市场。作为一个长期与命令行打交道的…...

网站SEO优化有哪些技巧

网站SEO优化有哪些技巧 在当前数字化时代&#xff0c;拥有一个高效的网站SEO优化策略至关重要。无论你是新手还是资深网站管理者&#xff0c;了解网站SEO优化的技巧都能帮助你在百度等搜索引擎上获得更高的排名&#xff0c;从而吸引更多的流量。本文将详细探讨网站SEO优化的一…...

揭秘宇树科技G1人形机器人:消费级市场的破局者与挑战

1. G1人形机器人&#xff1a;消费级市场的颠覆者 当身高1.3米的G1人形机器人站在我面前时&#xff0c;第一感觉是"这玩意儿居然不到10万"。作为宇树科技进军消费级市场的首款产品&#xff0c;G1确实在价格和体积上做了精准定位。相比那些动辄几十万的工业级机器人&am…...

Intv_ai_mk11 C++高性能集成开发教程

Intv_ai_mk11 C高性能集成开发教程 1. 为什么需要高性能C集成方案 在AI应用开发中&#xff0c;性能往往是关键瓶颈。当你的C应用需要频繁调用AI模型API时&#xff0c;一个高效的集成方案能带来显著差异。想象一下&#xff0c;你正在开发一个实时视频分析系统&#xff0c;每秒…...

ADG实时同步失效的深层原因:从MRP0的WAIT_FOR_LOG状态看standby redolog设计要点

ADG实时同步失效的深层解析&#xff1a;从WAIT_FOR_LOG状态看SRL设计关键点 当Oracle Data Guard环境中MRP0进程陷入WAIT_FOR_LOG状态时&#xff0c;这就像高速公路上的应急车道被占用——整个容灾系统的实时同步能力将陷入瘫痪。本文将带您穿透现象看本质&#xff0c;从存储结…...

用Logisim从零搭建一个数字秒表:手把手教你理解计数器、比较器和数码管驱动

用Logisim从零搭建数字秒表&#xff1a;模块化设计与实战解析 数字逻辑设计是计算机科学和电子工程的基础课程&#xff0c;但很多初学者在学习过程中常常陷入"知道原理却不会动手"的困境。Logisim作为一款开源的数字电路仿真工具&#xff0c;为我们提供了将抽象理论转…...

OpenClaw学术利器:Qwen3.5-9B辅助论文阅读与笔记整理

OpenClaw学术利器&#xff1a;Qwen3.5-9B辅助论文阅读与笔记整理 1. 为什么需要AI辅助学术研究 作为一名经常需要阅读大量文献的研究者&#xff0c;我长期被三个问题困扰&#xff1a;文献管理混乱、关键信息提取效率低下、笔记难以结构化。传统工具如Zotero或EndNote虽然能解…...

阿里开源万物识别镜像实战:3步完成图片识别环境配置与调用

阿里开源万物识别镜像实战&#xff1a;3步完成图片识别环境配置与调用 1. 引言&#xff1a;让图片识别变得简单 想象一下&#xff0c;你刚拍了一张照片&#xff0c;里面有各种物品&#xff1a;手机、水杯、笔记本电脑、宠物狗...如果有一个工具能自动识别出照片里的所有物体&…...

全志A40I Android7.1系统开机自启动实现与优化指南

1. 全志A40I Android7.1开机自启动基础原理 全志A40I作为一款广泛应用于嵌入式设备的芯片&#xff0c;在Android7.1系统下实现开机自启动有其特殊性。与传统的Linux系统不同&#xff0c;Android的自启动机制更复杂&#xff0c;需要同时考虑内核层和应用层的配合。我曾在多个A40…...

别再死记硬背了!用Codesys可视化玩转按钮和指示灯:5个工业场景实战案例拆解(含配方管理思路)

Codesys可视化实战&#xff1a;5个工业场景下的按钮与指示灯高阶应用 在工业自动化领域&#xff0c;人机界面(HMI)的设计直接影响操作效率和系统可靠性。传统PLC编程往往过于关注功能实现而忽视交互体验&#xff0c;导致许多工业现场的操作面板充斥着杂乱无章的按钮和难以理解的…...

深入Linux 0.11内核:从_syscall1宏到系统调用表的完整链路拆解

深入Linux 0.11内核&#xff1a;从_syscall1宏到系统调用表的完整链路拆解 在操作系统的演进历程中&#xff0c;系统调用机制始终扮演着用户程序与内核服务之间的关键桥梁角色。对于希望真正理解计算机系统底层运作的开发者而言&#xff0c;掌握系统调用的完整实现链路不仅是提…...