1,iBatis源码中DefaultSqlSession.java,下面这个方法中匿名类的使用比较有意思,我对这个语法不熟悉,师兄说这是匿名类的初始化,
privateObject wrapCollection(finalObject object) {
if(objectinstanceofList) {
returnnewHashMap() {{
put("list", object);
}};
}elseif(object !=null&& object.getClass().isArray()) {
returnnewHashMap() {{
put("array", object);
}};
}
returnobject;
}
2,BufferedInputStream类的实现是其内部有一个字节数组作为缓冲区,默认大小为8K字节,还有一个AtomicReferenceFieldUpdater用来对这个缓冲区进行比较和赋值,这主要是防止在赋值时,其他调用者调用了close方法,导致缓冲区为null,因此将这个赋值动作做成原子化操作。读数据的时候,如果缓存区是空的,一种特别的情况就是要读的字节数大于或等于缓冲区长度,并且没有mark和set操作过,那么就直接从底层的输入流中读取,否则就重新填充缓冲区,再从缓冲区中读取数据。填充缓冲区时,主要要考虑有没有mark标志的,对其分别进行处理,当然最主要的操作还是对缓冲区扩容,重新从底层输入流中读取数据,
publicvoidclose()throwsIOException
{
byte[]buffer;
while((buffer=buf)!=null){
if(bufUpdater.compareAndSet(this,buffer,null)){
InputStreaminput=in;
in=null;
if(input!=null)
input.close();
return;
}
}
}
分享到:
相关推荐
每日学习笔记11111111111111
JS学习笔记
已整理好基础版和高级版笔记 导出为pdf 和html 格式 界面清晰美观,均有详细目录
每日更新机器学习笔记、代码及其它内容。.zip
Study Notes日常学习笔记记录推荐使用打开Markdown简单Markdown语法整理初版日期:2021-3-28Allegro creat Gerber filesCreated date:2021-4-4GitCreated date:2021-4-4
spring学习笔记 很详细的学习笔记分享给大家,大家可以看看,绝对物有所值
stone的终身学习笔记 前言 09年 渣3本毕业,金融危机 09~10年 跑业务打杂工养活自己 10~12年 私企,企业资源管理ERP(VF、VB) 12~17年 国企,企业办公自动化OA(.NET、JavaScript) 17~20年 阿里影业,影城售票系统...
MLDL 研究生预备知识学习笔记,包含李宏毅深度学习与数字图像处理。 深度学习笔记在基础上添加自己的理解,纯自用。 MLDnotes 深度学习笔记 papernotes 论文笔记与相关知识 plans 每日计划
javascript_study 每日代码汇总,学习笔记及页面仓库
机器学习课程笔记完整版 机器学习 目录 机器学习算法课程定位、目标 定位 课程以算法、案例为驱动的学习,伴随浅显易懂的数学知识 作为人工智能领域(数据挖掘/机器学习方向)的提升课程,掌握更深更有效的解决...
此笔记为作者在有java基础的前提下,自学B站马士兵python视频所记,内容简洁方便看完视频后日后回顾,也适合自学B站马士兵python视频每日回顾。
学习英语需要积累每日一句,多多练习,多多积累,多多交流
每日英语词典 1-3期知识点 笔记 《Daily English Dictation》第1-3期知识点 1、(无听力讲解) 2、(讲解看截图)
这本书在我学习seo的过程中帮助很大,学到了很多的有用信息
算法学习笔记 通过leetcode的每日打卡,熟悉的分类算法;记录下学习过的算法题,整理成markdwn文本;并根据打卡情况制定计划,着重学习自己很难甚至没有理解的算法。习惯用Jupyter Notebook进行学习,刚好notebook...
Collection学习笔记Collection集合概述Collection集合常用方法Collection集合的遍历(迭代器)集合的使用样例 Collection集合概述 是单例集合的顶层接口 它提供了更具体的子接口的实现,如set和list. Collection集合...
每日一学 字典查找类似hash表,速度远超过for遍历列表。 for index,value in enumerate(s): .get函数两个参数时,第二个应重新字典引用,见下面使用方法 arabic += ara_rom_dict.get(s[index-1:index+1],ara_rom_...
目录 算法 每日更新 计算机操作系统 数据结构 前端工具 组件库 功能库 javascript React 打字稿 实用程序 emacs 吉特 多路复用器
在Hacktiv8的全栈新手训练营期间,进行个人学习笔记(每日挑战,实时代码等)。 工具: 文本编辑器:Visual Studio Code 终端机:Git bash,MacOS终端机,iTerm 版本控制:Git 回购经理:Github 包管理器:NPM...
已经很久都没有更新过这个仓库了,由于中间经历过一些事情变的懒惰了,之后会继续更新这个仓库,会添加一些自己学习的笔记以及每日的简短日记,跟随 Kiprey 的脚步,向 Kiprey 学习,近期应该不会更新与虚拟化和二...