JAVA开发工程师知识点总结【基本数据类型篇】

JAVA开发工程师知识点总结

前言:本文撰写目的是为了给广大网友总结一份尽力涵盖所有常用的java知识点,用于笔试或面试,同时也是自己学习过程的一个记录,希望各位网友能够广开言路,各位大牛能够多给给指导。十分感谢!!

1、基本数据类型

最大值(长度)
byte字节一个字节-128至127
char字符两个字节0至2的16次方减一,就是65535
short短整型两个字节-32768至32767
int整型四个字节2147483648至-2147483647
long长整型八个字节-263 至 263-1
float浮点型四个字节1bit(符号位) 8bits(指数位) 23bits(尾数位)
double双精度浮点数八个字节1bit(符号位) 11bits(指数位) 52bits(尾数位)

这个老生常谈的表格为什么还要罗列出来呢?

1、不同系统的数据相互导入的时候就要考虑到数据源处,数据的长度,正确选择类型,否则导入的时候有可能有意想不到的问题出现。简单记为整型最大是正负2147483647左右,即9-10位的整数数值最合适。长整型是正负9223372036854775808左右,即18-19位在整数数值最合适。

2、浮点型位数差不多为啥会比整型的表示的数值大呢,因为其存在指数位,使得其能表达的数值变得非常大,但也存在精度问题,float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字。
double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

3、数据类型的转换(没卵用ide会告诉你)
int 转 float long double 安全转换
long 转 float double 安全转换
float 转 double 安全转换

4、包装类型(可自行查看源码)
int 对应 Integer,罗列了常用的包装类型对应的字段和方法

类型含义字段类型或返回类型
MIN_VALUE静态final变量最小值int
MAX_VALUE静态final变量最大值int
TYPE静态final变量包装类型对应基本类型的class对象Class<Integer>
toString静态方法数字转字符串,支持不同进制String
parseInt静态方法字符串转整型,支持2-36进制,必须是个正确的数字表达,默认以十进制解析int
valueOf静态方法支持字符串或者数字转为Integer,若字符串入参,则先调用parseInt,valueOf使用预设缓存IntegerCache.cacheInteger
IntegerCache.cache内部类IntegerCache的静态final变量Integer对象预设缓存,存了256个对象,-128到127(index+128)Integer数组
byteValue,shortValue,intValue等成员方法包装类型对应基本类型的强转值强转的目的类型
equals成员方法Override,本质上是基本类型值得比较,不是对象是否为同一个比较(地址)boolean
decode成员方法入参是string,本质上是valueOf,只不过是帮忙分析字符串前缀的进制boolean
compare静态方法对比两整型入参的打小int,-1、0或者1
compareTo成员方法入参是Integer,本质上是compare,比较基本类型不是包装类型boolean

long 对应 Long,罗列了常用的包装类型对应的字段和方法
基本与Integer类似,LongCache.cache长度也是一样

float 对应 Float,罗列了常用的包装类型对应的字段和方法

类型含义字段类型或返回类型
POSITIVE_INFINITY静态final变量正数无穷大 (定义1.0f / 0.0f)float
NEGATIVE_INFINITY静态final变量负数无穷大(定义-1.0f / 0.0f)float
NaN静态final变量非数字(定义0.0f / 0.0f)float
floatToIntBits静态final变量将浮点含义直转为整数对应的值(float的比较依赖于此)int
parseDouble静态final变量依赖于FloatingDecimal.parseFloatfloat
有一些关于浮点精度的常量尚未搞清其含义

double 对应 Double,罗列了常用的包装类型对应的字段和方法

类型含义字段类型或返回类型
POSITIVE_INFINITY静态final变量正数无穷大 (定义1.0f / 0.0f)double
NEGATIVE_INFINITY静态final变量负数无穷大(定义-1.0f / 0.0f)double
NaN静态final变量非数字(定义0.0f / 0.0f)double
doubleToLongBits静态final变量将浮点含义直转为整数对应的值(fdouble的比较依赖于此)long
parseDouble静态final变量依赖于FloatingDecimal.parseDoubledouble
有一些关于浮点精度的常量尚未搞清其含义

char 对应 Character,罗列了常用的包装类型对应的字段和方法
基本与Integer类似,CharacterCache.cache长度是128,取0-127值,但也有一些关于字符的操作

byte对应 Byte,罗列了常用的包装类型对应的字段和方法
基本与Integer类似,ByteCache.cache长度是256,即所有的byte相同对应Byte相同,除非你特意去new

类型含义字段类型或返回类型
parseByte静态final变量先尝试用Integer.parseInt转为int,接受string,默认是十进制byte
decode静态final变量先尝试用Integer.decode转为intByte
valueOf静态final变量取cache,若为字符串则通过parseByte转为byte,再查cacheByte

short对应 Short,罗列了常用的包装类型对应的字段和方法
基本与Integer类似,ShortCache.cache长度是256,-128到127

类型含义字段类型或返回类型
parseShort静态final变量先尝试用Integer.parseInt转为int,接受string,默认是十进制short
decode静态final变量先尝试用Integer.decode转为int,再调用valueOfShort
valueOf静态final变量取cache,若为字符串则通过parseShort转为byte,再查cacheByte

注意

1、Double与Float的静态变量虽然都叫非数字正负无穷大,但是他们不相等
2、Double与Float没有cache
3、其实就是valueOf的差异需要注意以及一些精度的处理罢了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值