java基本数据类型

基础知识

机器数和真值

机器数

一个数在计算机中的二进制表示形式,叫做这个数的机器数

机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1

例如:

dec +3 = bit 00000011

dec -3 = bit 10000011

真值

将带符号位的机器数对应的真正数值称为机器数的真值

例如:

bit 00000011 真值 bit + 0000011 真值 dec +3(最高位代表符号位)

bit 10000011 真值 bit - 0000011 真值 dec -3(最高位代表符号位)

源码,返码,补码

机器存储一个具体数字的编码方式

源码

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值

例如:

dec +3 源码 bit 00000011 = bit +|0000011| = bit 00000011 = +|3| = dec +3

dec -3 源码 bit 10000011 = bit -|0000011| = bit 10000011 = -|3| = dec -3

反码

正数的反码是其本身

负数的反码是在其原码的基础上, 符号位不变,其余各个位取反

例如:

dec -3 源码 bit 10000011 符号位布标 bit -0000011 取反 bit -1111100 = bit 11111100

补码

负数以补码的形式存储在计算机中

正数的补码就是其本身

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

计算规则: 第一步取x的绝对值,第二步计算x的二进制,第三步对二进制取反,最后在加1

例如:

dec -3 源码 bit 10000011 符号位不变 bit -0000011 取反 bit - 1111100 +1 = bit 11111101

dec -3 = |dec -3| = dec 3 = bit 00000011 取反 bit 11111100 +1 bit 11111101

Java基础数据类型字节数

1 bit (一个字节) : 0/1 二进制数据

1 byte = 8 bit

1 Byte = 1 byte = 8 bit

1 Short = 2 byte = 16 bit

1 Integer = 4 byte = 32 bit

1 Long = 8 byte = 64 bit

1 Character = 2 byte = 16 bit

1 Float = 4 byte = 32 bit

1 Double = 8 byte = 64 bit

Boolean = false(没有)

基础数据类型范围

byte

byte:-128 ~ 127 = [10000000 ~ 00000001]

-128: |128| = bit 10000000 = bit 01111111 = bit 1000000

127: bit 011111111

Short

Short:

[0x8000 ~ 0x7fff] = [-215 ~ 215] = [-32768 ~ 32767]

[1000000000000000 ~ 111111111111111]

Integer

Integer:

[0x80000000 ~ 0x7fffffff] = [-2^31 ~ 2^31] = [-2147483648 ~ 2147483647] = 21亿

[10000000000000000000000000000000 ~ 1111111111111111111111111111111]

Long

[0x8000000000000000L ~ 0x7fffffffffffffffL] = [-263 ~ 263]

[-9223372036854775808 ~ 9,223,372,036,854,775,807] = 10^18

Character

‘\u0000’ ~ ‘\uffff’

常见操作

byte转换成int

&0xff

原因:

public static void main(String[] args) {

Byte b1 = 1;//00000001

Byte b2 = -1;//按位取反+1:00000001 -> 11111110 -> 11111111

System.out.println(b1);//00000000-00000000-00000000-00000001

System.out.println(b2);//11111111-11111111-11111111-11111111

// 因为byte只有8位,转换int,只保留8位,所以与上 0xff[00000000-00000000-00000000-11111111]

// 保留了后8位

System.out.println((int)b1 & 0xff);//00000000-00000000-00000000-00000001

System.out.println((int)b2 & 0xff);//00000000-00000000-00000000-11111111

}

java基本数据类型所占长度_java基本数据类型长度详解相关推荐

  1. java所使用的字符集是_Java常用字符集编码详解

    Java常用字符集编码详解 Web开发的时候经常会遇到一些字符编码的错误,如页面乱码等问题,所以有必要需对字符编码有所了解,以下是Ricki收集的一些资料(可能不是很全,但希望对你有所帮助) Java ...

  2. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

  3. filter java 是单例的吗_JAVA 设计模式之 单例模式详解

    单例模式:(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点.单例模式是创建型模式.单例模式在现实生活中应用也非常广泛. 在 J2EE 标准中,S ...

  4. java过滤器filter过滤某个包_Java过滤器Filter使用详解

    过滤器 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改.判断等,把不符合规则的请求在中途拦截或修改.也可以对响应进行过滤,拦截或修改响应. 如 ...

  5. java线程池的工作原理_JAVA线程池原理详解一

    线程池的优点 1.线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用. 2.可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃. 线 ...

  6. WEB后台--邮件和短信业务实现(包括Java一键实现、封装和异步)以及原理详解

    本来就打算针对一些固定的特别点的业务(QQ与网易邮件.拦截设计.短信.定时器等等)来进行记录以及解析原理,这些会比较零散记录在JavaWeb的分类里面,感兴趣的童鞋可以去看下. 有人问为什么要邮件短信 ...

  7. Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  8. Java中创建String的两道面试题及详解

    转载自 Java中创建String的两道面试题及详解 我们知道创建一个String类型的变量一般有以下两种方法: String str1 = "abcd";String str2 ...

  9. java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用

    java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用

  10. java显示参数,Java中的隐式参数和显示参数实例详解

    在学习java的过程中,我们会遇到许多的问题.下面我们就来看看什么是隐式参数和显示参数. 显式参数,就是平时见到的在方法名括号中间的参数,就是所谓能看得见的参数www.cppcns.com. 隐式参数 ...

最新文章

  1. 解决ASP网页乱码的问题
  2. mysql 连接数的最大数
  3. css怎么把横向菜单变纵向_CSS 布局模式 + 居中布局
  4. xss 表单劫持(from通用明文记录)
  5. linux嵌入式开发箱跑马灯,跑马灯实验(STM32F4开发板)
  6. Windows下svn服务器安装
  7. Matlab求解空间曲线的切线和法平面
  8. 字节 和 位 的关系
  9. 【实战】Django从零搭建个人网站
  10. APView500电能质量在线监测装置 谐波分析 电压不平衡
  11. Machine Learning读书会 面试算法讲座 创业活动 算法班 历届汇总
  12. 智能路由器要成功 该怎样修炼穿墙术?
  13. ​万邦医药在创业板过会:上半年收入约1亿元,陶春蕾母子为实控人​
  14. 超轻量级通用人脸检测模型
  15. CentOS 7.9 Xfce桌面安装中文输入法
  16. 7.26 3 教育的长久回报期
  17. python位运算用途_Python 位运算符与位运算
  18. 红帽Rhel7.6操作系统更换成Centos7.6的操作系统
  19. 手写Promisify函数
  20. 双系统苹果Mac笔记本如何切换windows系统?

热门文章

  1. aix磁盘挂载到linux,AIX下文件系统挂载点相互调换方案
  2. php通知多有人,PHP通知抑制;只有某些情况/方法
  3. python监控服务器信息,Python监控服务器实现邮件微信报警
  4. 什么是中国1号信令?
  5. 【渝粤教育】电大中专电子商务网站建设与维护 (27)作业 题库
  6. 【渝粤题库】陕西师范大学400006 公共关系学 作业(专升本)
  7. 5G三兄弟NB-IoT排老几?NB-IoT介绍
  8. nginx php 不能连接mysql_nginx配置php环境,并测试PHP是否可以连接mysql
  9. linux 我的世界 跨平台联机,我的世界跨平台联机 PC、手机等平台数据互通
  10. settimeout怎么用_怎么实现一个3d翻书效果