请教一段java代码的意思,谢谢

pric 2008-03-06 12:22:31
protected byte[] pad(byte in[], int padLen)
{
if(padLen == 0)
return in;
int inlen = in.length;
int outlen = inlen;
int rem = inlen % padLen;
if(rem > 0)
outlen = inlen + (padLen - rem);
byte out[] = new byte[outlen];
for(int xx = 0; xx < inlen; xx++)
out[xx] = in[xx];

return out;
}
...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dan1980 2008-03-06
  • 打赏
  • 举报
回复
代码很好懂。不过代码具体体现的算法要认真读过才能明白。

貌似是一种byte数组的扩充算法。
接受一个byte数组和一个代表扩充长度的整数作为参数,返回一个包含原数组数据但长度可能会扩充的新数组。

算法的核心是确定新数组的长度,具体算法是:

如果扩充参数padLen为0,则不扩充,直接返回原数组;
否则,对原数组长度和扩充参数padLen求模,如果模大于0,则新数组的长度是原数组长度+扩充参数padLen-求得的模,否则和原数则相同。
最后将原数组的数据一次拷贝到新数组,并返回新数组。

不过这个算法值得改进,1. 模为0的情况和padLen参数为0的情况时相同的,可以作相同处理;2. 拷贝数组宜用System.arrayCopy;3. 可读性需加强。

我的改进版本是:

protected byte[] pad(byte in[], int padLen) {
if (padLen == 0 || in.length % padLen == 0)
return in;
byte[] out = new byte[in.length + padLen - in.length % padLen];
System.arraycopy(in, 0, out, 0, in.length);
return out;
}
pric 2008-03-06
  • 打赏
  • 举报
回复
我整个都看不懂呀 刚学不久 请指教一下 谢谢啦
xiaomaha 2008-03-06
  • 打赏
  • 举报
回复
什么地方不明白?你说出来撒!
pric 2008-03-06
  • 打赏
  • 举报
回复
谢谢 Dan1980
hengxxh 2008-03-06
  • 打赏
  • 举报
回复
所以说,写代码要养成良好的 注释 习惯,哈哈 !不然时间一久,自己写的都会忘记是干什么用的了 。。。。
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。 阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。 “微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。 购课请咨询qq2326321088

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧