Java 数据类型
数据类型用于对数据归类,以便开发者理解和操作。
基本数据类型
Java 确定了每种基本数据类型所占存储空间的大小,不会像其它语言那样随机器硬件架构的变化而变化,这使 Java 程序更具可移植性。
Java 中定义了如下的基本数据类型。
byte
表示整数,取值范围 -2 ^ 7 ~ 2 ^ 7 - 1,占 8 个 bit 位,1 个字节。
byte beVar = 100;
short
表示整数,取值范围 -2 ^ 15 ~ 2 ^ 15 - 1,占 16 个 bit 位,2 个字节。
short stVar = 200;
int
表示整数,取值范围 -2 ^ 31 ~ 2 ^ 31 - 1,占 32 个 bit 位,4 个字节,整数字面量的默认类型。
int itVar = 300;
long
表示整数,取值范围 -2 ^ 63 ~ 2 ^ 63 - 1,占 64 个 bit 位,8 个字节。赋值时,如果超过了 int
类型的取值范围,需要在数值后面加 L
或 l
。
// 在 int 型的取值范围内时可用,不建议,最好加上 L
long lgVar1 = 400; // 赋值时,字面量后面要加 L 或 l
long lgVar2 = 400L;
float
表示单精度浮点数,取值范围 -3.4E ^ 38 ~ -1.4E ^ -45、1.4E ^ -45 ~ 3.4E ^ 38,E 表示以 10 为底的指数,占 32 个 bit 位,4 个字节。赋值时,需要在数值后面加 F
或 f
,因为浮点数字面量的默认类型是 double
。
不能用于表示精确值,如货币等,此时应该使用 BigDecimal
对象类型。
float ftVar = 3.14F; // 浮点数默认类型是 double,必须加 F
double
表示双精度浮点数,取值范围 -1.7E ^ 308 ~ -4.9E ^ -324、4.9E ^ -324 ~ 1.7E ^ 308,E 表示以 10 为底的指数,占 64 个 bit 位,8 个字节,浮点数字面量的默认类型。
不能用于表示精确值,如货币等,此时应该使用 BigDecimal
对象类型。
double deVar1 = 3.14;
double deVar2 = 3.14E2; // 314.0
double deVar3 = 3.14E-2; // 0.0314
char
表示单个字符,可以是中文字符,Java 内部进行字符处理时,采用 unicode 编码方式,具体编码格式是 UTF-16BE(2 或 4 个字节),取值范围 0 ~ 65535,占 16 个 bit 位,2 个字节,本质是一个无符号正整数(没有符号位),对应 unicode 编号。
char 只能表示 unicode 编号在 0 ~ 65535 的字符,超出范围的字符将使用两个 char 表示。
char 的字面量使用单引号 ''
括起来。
char crVar1 = 'A';
char crVar2 = '光';
char crVar3 = 97; // char 的本质就是无符号正整数
char crVar5 = 0x9a6c;
char crVar5 = '\u0000'; // unicode 编码
转义字符
在字符前面 \
可以改变字符原来的含义,比如 ‘\0’、‘\t’ 等。
转义字符 | 含义 |
---|---|
\n | 换行 |
\r | 回车 |
\0 | 结束字符 |
\s | 空格 |
\’ | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
\b | 退格符 |
boolean
表示真假值,取值为 true
、false
,至于占用的空间,得看 JVM 的具体实现。
void
表示无数据,用在方法上,表示没有返回值。
⭐基本数据类型转换
在 Java 中,声明变量时需要指定数据类型,JVM 会根据数据类型申请相应的内存空间,分配的空间只能存储该类型的数据。如果赋值的数据类型和声明的数据类型不一致,则需要进行数据类型转换。
boolean 类型与其他7种类型的数据都不能进行转换,char 类型不支持自动转换成它,只支持强制转换。
自动转换
自动转换是隐式的,取值范围从小到大,可以直接转换,转换时会进行扩宽(widening conversion)。因为较大的类型(如 int)要保存较小的类型(如 byte),取值范围是足够的,不需要强制转换。
强制转换
强制转换是显式的,取值范围从大到小,必须强制转换,转换时会进行缩小(narrowing conversion)。
强制转换可能会损失精度。整数类型之间相互转换,如果整数超出目标类型范围,会对目标类型的范围取余数;从浮点类型转成整数类型,会发生截尾(truncation),也就是把小数部分去掉,只留下整数部分,且如果整数部分超出目标类型范围,一样将对目标类型的范围取余数。
// 实例
long lo = 99;
int i = (int) lo;
隐式转换
/*1、多类型混合运算时,会自动转成容量最大的数据类型,再进行计算,并返回相应类型的结果对于整数来说,如果没有 long 型,则提升至 int 型(不管有没有 int 型变量参与)2、在取值范围内时,整数字面量(int 型)赋值给 byte、short、char 时会自动转换3、在取值范围内时,常量和字面量的运算结果赋值给 byte、short、char 时会自动转换,有变量时就要强转4、赋值运算(+=、-=、...)会自动进行强转5、`char` 的运算是按 Unicode 编号进行的,在进行算术运算时会转换为 `int` 类型*/byte a = 100;
// a + 1 运算提升至 int 型,值在 byte 的取值范围内,但由于是变量和字面量运算,编译时不会优化,需要手动强转
byte b = a + 1; final byte c = 100;
// c + 1 运算提升至 int 型,值在 byte 的取值范围内,且是常量和字面量运算,编译时会优化,不需要手动强转
byte d = c + 1; // 100 + 1 运算提升至 int 型,值在 byte 的取值范围内,且是字面量和字面量运算,编译时会优化,不需要手动强转
byte f = 100 + 1;
对象数据类型
Java 是面向对象的语言,除了基本数据类型,其他都是对象数据类型,比如字符串、数组等。
- 类:class
- 接口:interface
- 数组:[](数组有个类 Array)
对象是什么?简单来说,对象可以理解为基本数据、其它对象数据的组合。比如一个人,他的姓名是一个字符串,年龄是一个整数。
对象数据类型同样存在类型转换。
相关文章:
Java 数据类型
数据类型用于对数据归类,以便开发者理解和操作。 基本数据类型 Java 确定了每种基本数据类型所占存储空间的大小,不会像其它语言那样随机器硬件架构的变化而变化,这使 Java 程序更具可移植性。 Java 中定义了如下的基本数据类型。 byte …...
Prometheus 监控云Mysql和自建Mysql(多实例)
本文您将了解到 Prometheus如何配置才能监控云Mysql(包括阿里云、腾讯云、华为云)和自建Mysql。 Prometheus 提供了很多种Exporter,用于监控第三方系统指标,如果没有提供也可以根据Exporter规范自定义Exporter。 本文将通过MySQL server exporter 来监控…...
Vue3中的h函数
文章目录简介简单使用参数使用计数器进阶使用函数组件插槽专栏目录请点击 简介 众所周知,vue内部构建的其实是虚拟DOM,而虚拟DOM是由虚拟节点生成的,实质上虚拟节点也就是一个js对象事实上,我们在vue中写的template,最终也是经过…...
阿尔法开发板 IMX6ULL 说明
一. IMX6ULL开发板 IMX6ULL开发板即正点原子的阿尔法(ALPHA)开发板,采用恩智浦芯片,cortex-A7架构的。 二. IM6ULL开发板说明 1. IO说明 对于IMX6ULL芯片,一个IO对应两个寄存器,第一个寄存器负责配置其复用功能,…...
Altium Designer19 #学习笔记# | 基础应用技巧汇总
全文目录一.元件符号库二.元件封装库1.AD09 集成元件库/封装库三.电路原理图1. 巧用查找"相似对象功能"1.1 查找相同元件1.2. 查找相同文本1.3. 查找相同网络 :E - S - C四.PCB原理图【AD PCB模式下的常用快捷键】PCB视图放大/缩小PCB视图左/右移动PCB切换…...
Python 元类编程实现一个简单的 ORM
概述 什么是ORM? ORM全称“Object Relational Mapping”,即对象-关系映射,就是把关系数据库的一行映射为一个对象,也就是一个类对应一个表,这样,写代码更简单,不用直接操作SQL语句。 现在我们就要实…...
《C++ Primer Plus》第18章:探讨 C++ 新标准(7)
C11 新增的其他功能 C11 增加了很多功能,本书无法全面介绍;另外,本书编写期间,其中很多功能还未得到广泛实现。然而,有些功能有必要简要地介绍一下。 并行编程 当前,为提高计算机性能,增加处…...
Redis学习(二):Redis安装测试
概述 Redis是什么 Redis, Remote Dictionary Server, 即远程字典服务。免费开源的数据库。 由C语言编写,支持网络,可基于内存亦可持久化的日志型、KV数据库,并提供所种语言的API。 Redis能干嘛 用于内存存储,持久化。rdb、ao…...
Vector - CAPL - 简介及数据结构
对于想进入车载行业或者已经在车载行业工作的朋友对于CAPL这个词都会相当的熟悉,都知道他是做车载网络测试脚本的语言,并且跟C有点类似,但是它到底是什么呢?CAPL全称(Communication Access Programming Language&#…...
20230304英语学习
What Would Happen if the Moon Disappeared Tomorrow? 如果明天月球消失了会怎样? The closest object to our planet, the Moon, may seem like Earth’s little sibling.Since its birth, the satellite has mostly just hung around, playing gravitational t…...
【基础算法】单链表的OJ练习(3) # 移除链表元素 # 相交链表 #
文章目录前言移除链表元素相交链表写在最后前言 本章的OJ练习也是相对简单的,只要能够理解解题的思路,并且依照这个思路能够快速的写出代码,我相信,你的链表水平已经足够了。 对于OJ练习(2) : ->传送门…...
【自用】SpringBoot项目通用类整理
文章目录全局Json序列化Controller日志切面全局异常拦截GlobalExceptionHandlerApiResultBusinessExceptionResponseEntityUtil全局返回体包装MP自动填充接口文档配置类自定义Async异步线程池本文主要整理各类项目中通用的配置类、工具类,便于复查自用。 全局Json序…...
动态规划法(总述)多阶段决策最优化问题
动态规划: 研究最优控制问题提出的 该问题有n个输入,问题的解由这n个输入组成,这个子集必须满足事先给定的条件,这些条件称为约束条件,满足约束条件的可行解可能不只有一个为了衡量可行解的优劣,通常以一些函数的形式&…...
MySQL跨服务器数据映射
MySQL跨服务器数据映射环境准备1. 首先是要查看数据库的federated引擎 开启/关闭 状态2. 打开任务管理器,并重启mysql服务3. 再次查看FEDERATED引擎状态,引擎已启动映射实现问题总结在日常的开发中经常进行跨数据库进行查询数据。 同服务器下跨数据库进…...
利用反射实现通过读取配置文件对类进行实例化-课后程序(JAVA基础案例教程-黑马程序员编著-第十二章-课后作业)
【案例12-3】:利用反射实现通过读取配置文件对类进行实例化 【案例介绍】 1.案例描述 现在有一个项目,项目中创建了一个Person类,在Person类中定义了一个sleep()方法。在工程中还定义了一个Student类继承Person类,在Student类中…...
1.2 CSS文本属性
CSS Text(文本)属性: 定义文本外观,颜色,装饰,缩进,行间距来修饰文本 文本样式 文本缩进 text-indent文本水平对齐方式:text-align文本修饰:text-decoration行高 line-height CSS文本颜色属性…...
SpringCloud之认识微服务
文章目录一、传统项目转型二、走进 SpringCloud三、微服务项目搭建3.1 创建一个 SpringBoot 项目3.2 创建三个 Maven 子工程3.3 为子工程创建 application.yml3.4 引入依赖3.5 数据库 建库建表3.6 编写业务提示:以下是本篇文章正文内容,SpringCloud系列学…...
【go语言之thrift协议二之server端分析】
go语言之thrift协议二serverthrift.TProtocolFactoryTTransportReadWriteCloserContextFlusherReadSizeProviderTProtocolrunServerNewTServerSocketNewCalculatorHandlerNewCalculatorProcessorNewTSimpleServer4server.ServeListenAcceptLoopprocessRequests在上一篇文章分析…...
【办公类05-03】Python批量修改文件名前面的序号(已有的序号错了,需要改成正确的号码)
背景需求下载教程,手动输入编号,有一个编号错误,导致后面所有编号都错了。30实际是29,以此类推怎样才能快速修改编号数字?前期考虑到可能要改编号,所以在每个编号后面加“ ”(空格)&…...
定向模糊测试工具Beacon基本用法
Beacon是一个定向模糊测试工具,给定行号,能够定向探索行号附近的代码区域。主要思想是采用静态分析的方法获取到与目标有关的变量的最弱前置条件(weakest precondition)的信息,并在相关位置插入断言,来提前…...
《程序员面试金典(第6版)》面试题 02.01. 移除重复节点
题目描述 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] -示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2] 提示: 链表长度在[0, 20000]范…...
如何对web系统开展无障碍测试
Accessibility test(无障碍测试)是一种测试方法,旨在评估软件、网站或其他数字产品的可访问性,以确保它们能够被身体残障或其他特殊需求的用户使用。这些测试通常包括使用辅助技术,如屏幕阅读器和放大器,以…...
使用vite+vue3.0 创建一个cesium基础应用 ----01 项目搭建
使用vitevue3.0 创建一个cesium基础应用 ----01 项目搭建 1.使用yarn创建一个vite项目 我们可以在vite官网找到vite创建项目的命令 https://cn.vitejs.dev/ 可以使用yarn创建项目选择使用vue3.0框架,语言使用js 创建完成后结构如下: 2.找到vite社区中的…...
【Python学习笔记】第二十七节 Python 多线程
一、进程和线程进程:是程序的一次执行,每个进程都有自己的地址空间、内存、数据栈及其他记录运行轨迹的辅助数据。线程:所有的线程都运行在同一个进程当中,共享相同的运行环境。线程有开始、顺序执行和结束三个部分, …...
【id:18】【20分】B. DS顺序表--连续操作
题目描述建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为1000)该类具有以下成员函数:构造函数:实现顺序表的初始化。插入多个数据的multiinsert(int i, int n, int item[])函数,实现在…...
vi编辑器操作指令分享
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方…...
OSPF与BFD联动配置
13.1.1BFD概念 BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制,有以下两大优点: 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。 用单一的机制对任何介质、任何协议层进行实时检测。 BFD是一个简单的“Hello”协议。两个系统之间建立BFD会…...
jQuery基础
> 🥲 🥸 🤌 🫀 🫁 🥷 🐻❄️🦤 🪶 🦭 🪲 🪳 🪰 🪱 🪴 🫐 🫒 …...
day39|139.单词拆分 背包问题ending
139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s "leetcode",…...
Shell脚本编程
Shell编程 视频地址https://www.bilibili.com/video/BV1hW41167NW/?p1&vd_source977d52a6b92ce8b6ae67c16fc61f0428 第一章 Shell概述 大数据程序员为什么要学习Shell呢? 需要看懂运维人员编写的Shell程序偶尔会编写一些简单的Shell程序来管理集群…...
vs可以做网站吗/十大中文网站排名
在真实部署环境中,很难将dist生成的内容直接部署到服务器根目录。直接按默认配置build的项目无法在子文件夹中正常运行,需要进行如下配置: 例如: 将项目部署到服务器根目录下的project文件夹下: 修改Router index.js…...
网站建设的培训/东莞seo建站如何推广
前言 这是我听老师讲课做的笔记,考试要看的。 这是视频地址 作者:RodmaChen 关注我的csdn博客,更多Linux笔记知识还在更新 文件权限一. 查看文件的权限与归属1.1 介绍1.2 修改文件的权限——chmod命令1.3 修改文件的归属——chown命令二.文件的特殊权限2…...
一级a做爰网站中国/如何注册域名网站
把数据库从oracle迁移到PPASPPAS有两个迁移工具,一个图形界面的,一个命令行的,下面以图形界面为例。1首先需要在目标数据库系统PPAS上建立和源库对应的用户和对等的权限,再建立目标数据库。create user " USERNAMEXXX "…...
网站 备案号查询/北京出大大事了
tar常用选项-c(create) 表示创建用来生成文件包-x:表示提取,从文件包中提取文件-t可以查看压缩的文件。-z使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。-j使用bzip2方式进行处理,它与”c“…...
网站建设维护需要作假吗/中国国际新闻
传送门(不用再辛苦百度实验报告啦,一键直达呦) oracle实验1 oracle 基本操作 oracle实验2 oracle数据体系结构 oracle实验3 用户、方案的创建与管理 oracle实验4 表的创建与管理 oracle实验5 sql基本查询 oracle实验6 sql高级查询 ora…...
北京市住房和城乡建设委员门户网站/2023年小学生简短小新闻
在微服务架构中,调用链是漫长而复杂的,要了解其中的每个环节及其性能,你需要全链路跟踪。 它的原理很简单,你可以在每个请求开始时生成一个唯一的ID,并将其传递到整个调用链。 该ID称为CorrelationID,你可以…...