[一]基础类型概述
原文地址:
[一]基础类型概述

本系列主要是针对于基础性常用的类型, 一个系统性的简介
本文为概述
基础性类型简介
官方关于数据类型的介绍
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
java中的8种基本数据类型
每种数据类型还有他对应的包装类
名称 | 字节 | 取值范围 | 默认值 |
byte | 1个字节 | -128 ~127 | 0 |
short | 2个字节 | -32,768 ~ 32,767 | 0 |
int | 4个字节 | -231 ~ 231-1 SE8以及之后,可以用int来表示无符号32位数 0~232-1 |
0 |
long | 8个字节 | -263 ~ 263-1 SE8以及之后,可以用long来表示无符号64位数
0~264-1
|
0L |
float | 4个字节 | 单精度 32-bit IEEE 754 浮点数 | 0.0f |
double | 8个字节 | 双精度 64-bit IEEE 754 浮点数 | 0.0d |
char | 2个字节 | 16位 Unicode 字符 '\u0000' (or 0) ~ '\uffff' (65,535 包括) |
'\u0000' |
boolean | 字节大小并未规定,由实现决定 虚拟机内部没有支持boolean的指令 boolean编译之后使用虚拟机中的int代替 oracle公司的虚拟机实现中boolean数组编码为byte数组 那就是一个boolean 一个字节 8位 |
true 或者 false | false |
另外为了方便还提供了 java.lang.String,他是不可变的,也不属于基本数据类型,默认值为 null |
为了支持大数据的计算,还提供了BigInteger 和 BigDecimal |
所以说常用到的,基础性的数据类型有: |
8种基本数据类型 byte short int long float double char boolean |
8种基本数据类型对应的包装类 Byte Short Integer Long Float Double Character Boolean |
java.lang.String |
java.math.BigInteger 和 java.math.BigDecimal |
8个基本类型
11个Object类型
类层次结构
共性特点
其他方法
二进制位数相关
计算机中整数是以二进制补码形式存放的 Integer和Long提供了bitCount 方法 用于获取二进制补码表示形式的 1 位的数量 |
数据翻转
数据为二进制表示形式,翻转就是完全的颠倒过来 ,形象点说就是旋转180度
最后一位变成了最先一位
Integer和Long提供了reverse 方法进行翻转
|
按照字节翻转,reverse是按照位翻转,最后一位变成最先一位
reverseBytes 是按照字节翻转,也就是最后一个字节变成了最先的一个字节
|
循环移位
最高1 位 和 最低 1位
前导零 后置零
无符号的求余取整运算
divideUnsigned(dividend, divisor) 求商,也就是取整 第一个参数除以第二个参数的商 remainderUnsigned(dividend,divisor)求余 第一个参数 除以 第二个参数的余数 |
Integer和Long 有提供 |
看得出来, 作为数值型的Integer 和 Long 提供了最多的方法支持
上面列出来的方法并不是每个类都有实现,但是至少出现在一个以上的类中
为了条理清晰,所以在此列出
注意点
getXXX系列
decode
接受通过以下语法给出的十进制、十六进制和八进制数字
Sign是可选的
|
Sign DecimalNumeral
Sign 0x HexDigits
Sign 0X HexDigits
Sign # HexDigits
Sign 0 OctalDigits
Sign:
-
+
|
decode 用于将字符串解码为包装类对象 不依赖于对象,所以是静态方法 valueOf也可以将字符串或者基本类型包装为对象 |
decode 不需要指定进制,可以识别前缀符号 0x 0X # 0
valueOf则不可以识别前缀,要么指定基数,要么就是默认十进制,而且他的参数只能是指定基础的有效字符,不能有前缀符号
|
valueOf 与 new 对象
valueOf系列方法内部都有缓存,所以除非必须要创建对象,尽量使用valueOf
会对范围内的数进行缓存,不在范围内的将会new
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 突破Excel百万数据导出瓶颈:全链路优化实战指南
· 如何把ASP.NET Core WebApi打造成Mcp Server
· Linux系列:如何用perf跟踪.NET程序的mmap泄露
· 日常问题排查-空闲一段时间再请求就超时
· Java虚拟机代码是如何一步一步变复杂且难以理解的?
· 在 .NET 中使用 Sqids 快速的为数字 ID 披上神秘短串,轻松隐藏敏感数字!
· c# 批量注入示例代码
· c#开发完整的Socks5代理客户端与服务端——客户端(已完结)
· 【Uber 面试真题】SQL :每个星期连续5星评价最多的司机
· .net core workflow流程定义