Try with resources这个所谓的try-with-resources,是个语法糖。实际上就是自动调用资源的close()函数。和Python里的with语句差不多。 例如: static String readFirstLineFromFile(String path) throws ...
Java中异常Exception的实现的一些分析
前言最近发现一个很有用的Eclipse插件:http://andrei.gmxhome.de/bytecode/,可以在Eclipse直接查看,调试Java的字节码。 顺带研究了下Java里异常的实现机制,还有JDK7里的mutil catch的实现原理。 athrow指令在JVM里实现异常的指令是 ...
详细解析boost中bind的实现
写在前面的话在C++11之后,std::bind是C++标准库的一个组件了。一开始想弄个C++11的实现来研究下,发现里面用到了可变参数模板(代码变得非常神奇). http://llvm.org/svn/llvm-project/libcxx/trunk/include/functional 还是弄 ...
移动App该如何保存用户密码
更新update 2018-06-04 2015年出的一个规范 JSON Web Token (JWT) https://tools.ietf.org/html/rfc7519 JWT 官网: https://jwt.io/ 八幅漫画理解使用JSON Web Token设计单点登录系统: h ...
Kryo简介及代码阅读笔记
更新更新:2012-08-01 版本 2.16长时间运行可能会导致OOM,版本2.18有bug,不能正确序列化map和collection。 真是悲剧,所用的每一个版本都有bug。不过从代码来看,作者有时的确比较随便。。测试用例也少。。(比起msgpack少多了) 简介Kryo官方网站:https: ...
C++中虚函数(virtual function)到底有多慢
前言虚函数为什么慢,cpu分支预测技术,虚函数到底要调用哪些汇编,虚函数实现的简单图示,虚函数不能内联, 印象中经常看到有人批评C++的虚函数很慢,但是虚函数为什么慢,虚函数到底有多慢呢? 理论分析虚函数慢的原因主要有三个: 多了几条汇编指令(运行时得到对应类的函数的地址) 影响cpu流水线 编译 ...
C++编译器到底能帮我们把代码优化到什么程度?
TODO: 用while写法的程序会不会循环展开? 一个简单的累加求和程序: TYPE S=0; for(int i = 0;i < SIZE; i++) { S += a[i]; } 很多人都觉得这个程序写得不好,编译器不能生成很好的汇编代码。于是有了以下的几种“ ...