在开发中,我们都知道序列化是将对象或数据结构转换为二进制序列,反序列化是二进制序列转换为对象或数据结构,最常用在需要进行通信的对象类中。通过回答三个问题去学习理解:

  1. 为什么要序列化和反序列化?

  2. 哪些场景下需要?

  3. 附加回答字节对齐、大小端对齐在(反)序列化中的运用?

    Read More

第一次知道上野千鹤子源于互联网上北大宿舍女生邀请上野千鹤子老师的一次对话,作为女性她们围绕《始于极限》这本书讨论女性主义,于是我也开始第一次接触女性主义读本,从零开始了解女性主义,粗读一遍,第二遍开始做笔记,好记性不如烂笔头,通过这本书我对女性主义有个浅显的印象,但仍有疑问,觉得还不止如此,比如“女性主义和女权主义”的区别是什么?性别传播是指哪些?对现代女性婚恋观有哪些影响?等等问题,接下来是自己对书中一些内容的理解与感想。

Read More

第一期培养计划主要由导师liwh制定,从业务线、技术线、创新线、个人成长线等维度展开,带着问题在工作中进行学习,力争在第一期截止前实现:

  • 熟练掌握常用业务,能独立排查相关问题;

  • 对业务有自己的一定理解,积极主动学习、查阅文献,提出优化idea;

  • 熟练掌握c++常用语法,常用设计模式,编写较高质量C++代码。

    Read More

C++, being a strongly-typed object-orientated language, makes callbacks a tricker subject to deal with than say, in C (non-object orientated) or Javascript (object orientated but NOT strongly typed). This is especially true for embedded systems where you cannot always rely on having newer C++ standard library header files such as at your disposal (it’s a mixed bag, some embedded C++ environments I’ve used do support, others do not).

开源案例:https://github.com/gbmhunter/MCallbacks

Read More

频繁地创建和销毁线程会大大降低系统的效率,有一个办法可以使得线程可以复用,即线程完成一个任务,并不会被销毁,而是可以执行其他的任务,这个方法就是线程池。

Read More

JVM加载class文件

  1. 当AppClassLoader加载一个class时,它首先不会自己去尝试加载这个类,而是把类加载请求委派给父类加载器ExtClassLoader去完成。
  2. 当ExtClassLoader加载一个class时,它首先也不会自己去尝试加载这个类,而是把类加载请求委派给BootStrapClassLoader去完成。
  3. 如果BootStrapClassLoader加载失败(例如在$JAVA_HOME/jre/lib里未查找到该class),会使用ExtClassLoader来尝试加载;
  4. 若ExtClassLoader也加载失败,则会使用AppClassLoader来加载
  5. 如果AppClassLoader也加载失败,则会报出异常ClassNotFoundException

Read More