JDK的OutputStream为什么方法write(int b)的入参类型是int呢?
文档里是这么解释的:
将指定的字节写入此输出流。write 的常规协定是:向输出流写入一个字节。要写入的字节是参数 b 的八个低位。b 的 24 个高位将被忽略。
我怎么觉得这个方法有些奇怪呢。参数是一个int类型的整数,为啥不直接是一个字节呢?
今天在群里有小伙伴提到这个问题,知乎上也有人问起这个问题,
就这个问题说说我的理解:
typedef
unsigned
char
BYTE
);
Java中定义了3类8种基本数据类型:①数值型——byte、short、int、long、float、double②文本型——char③逻辑型——boolean
typecast问题,高低位问题,符号问题,32位对齐问题
你还需要知道为什么用32bit不是64bit的bigint,因为java允许64bit非原子操作
32位对齐是编译原理,因为主板总线是32位传输数据,所以所有低于32位的数据在传输时都要按照32位传输,因此内存中也是保存32位,地址都是以4为单位的
相关参考:
C语言基本数据类型简介
C语言文件操作详解
JDK的OutputStream为什么方法write(int b)的入参类型是int呢?相关推荐
- 字节码编程,Byte-buddy篇二《监控方法执行耗时动态获取出入参类型和值》
作者:小傅哥 博客:https://bugstack.cn - 汇总系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 案例是剥去外衣包装展示出核心功能的最佳学习方式! 就像是我们研 ...
- IntelliJ IDEA设置方法注释模板并解决入参和返回值为空问题
## 简介 网上讲解设置方法注释模板的文章很多,尝试了很多方法后,发现在方法体外生成的模板入参值和返回值都是null,而放到方法体内的入参值和返回值就可以自动生成.苦试N次,终于发现诀窍.Idea的这 ...
- aop 获取方法入参出参_ASM字节码编程 | JavaAgent+ASM字节码插桩采集方法名称及入参和出参结果并记录方法耗时...
作者:小傅哥 博客:bugstack.cn ❝ 沉淀.分享.成长,让自己和他人都能有所收获! ❞ 一.前言 在我们实际的业务开发到上线的过程中,中间都会经过测试.那么怎么来保证测试质量呢?比如:提交了 ...
- 根据WebService地址展示方法列表、入参和返回值(解析wsdl)
项目源码:https://gitee.com/xuchuruo/parsing_wsdl(有些jar包Maven上无法下载) ------------------------------------- ...
- ASM字节码编程 | JavaAgent+ASM字节码插桩采集方法名称以及入参和出参结果并记录方法耗时
作者:小傅哥 博客:bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 在我们实际的业务开发到上线的过程中,中间都会经过测试.那么怎么来保证测试质量呢?比如:提交了多少代码 ...
- 运用aop做日志,实现请求方法的入参、返回结果日志统一打印,避免日志打印格式杂乱,同时减少重复代码
文章目录 一.自定义注解 二.切面类 三.应用 一.自定义注解 自定义切面注解@PrintlnLog 用来输出日志,注解权限 @Target({ElementType.METHOD}) 限制只在方法上 ...
- AOP注解@Before、@AfterReturning拦截单个方法的入参和出参,纯注解方式(附源码下载),解决单个方法不生效问题(一)
AOP注解@Before.@AfterReturning拦截单个方法的入参和出参,纯注解方式(附源码下载),解决单个方法不生效问题(一) 问题背景 AOP注解@Before.@AfterReturni ...
- 在JDK 6和JDK 7的substring()方法的区别?
原文链接:https://www.programcreek.com/2013/09/the-substring-method-in-jdk-6-and-jdk-7/ 在JDK 6和JDK 7中subs ...
- Spring的aspect无法拦截有注解的jdk代理的接口方法的原因
Spring的aspect无法拦截有注解的jdk代理的接口方法的原因 我github博客地址 背景 项目A中需要多数据源的实现,比如UserDao.getAllUserList() 需要从readon ...
最新文章
- 【哲学百科】文艺复兴及唯理主义时期(公元1500~公元1750)
- 窥见人工智能四十年 2019 CCF-GAIR全球人工智能与机器人峰会今日开幕
- 【Android 逆向】修改 Android 的 apk 安装包内的文件并重新打包 ( apktool_2.6.0.jar 下载和使用 | zipalign 文件对齐 | apksigner 签名 )
- 预训练模型:BERT深度解析《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》
- java系列7:构造方法
- 计算机算法设计与分析 工作安排问题
- 工厂模式 java 电脑配件_1.Java设计模式-工厂模式
- 使用paramiko在eNSP的交换机中批量创建VLAN
- android脚本,安卓好用的脚本程序—Gscript
- catia切割红色框框_如何在CATIA中对零件的实体进行切割,详细始末
- 机器学习笔记(八):强化学习
- DEV 报表设计分组
- 天津大学计算机软件技术基础试题答案,天津大学网络学院计算机软件技术基础-1试题b卷.doc...
- 深度学习使用sketch-code 草图、手稿自动生成HTML前端页面
- 图片镜像翻转 Java
- android OTG (USB读写,U盘读写)最全使用相关总结
- 培养气质的98个好习惯
- 拼多多店铺被投诉出现降权怎么办?【淘宝erp、打单发货接口】
- PW2312A输入55V,输出0.6A降压IC
- 静态资源优化:图片优化
热门文章
- vue.js初识(一)
- 安卓开源项目周报1220
- AsyncTask的理解
- Babelfish (STL)
- 第十二节 VMware View 6.0 菜鸟入门 部署和安装2008 R2 RDS服务
- chrome下input[type=text]的placeholder不垂直居中的问题解决
- Install ruby on rails in Ubuntu 12.04
- 链内容百度新算法怎样判断高质量外链和原创内容
- Oracle 根据一张发票的供应商,取供应商所有符合条件的发票的总额
- 怎么取消html的原始属性,回归原始,尽量使用XHTML标签默认属性