hooyantsing's Blog

hooyantsing's Blog

问君何不随风起,扶摇直上九万里

0x0011-是金子总会发光
长风破浪会有时,直挂云帆济沧海。 今年 9 月初,我从 东信北邮 离职了,届时刚刚工作满一年半。在经济下行的当下,这是一个十分需要勇气的决定,甚至都做好了失业至少半年的心理准备,在这段时间休息、学习和求职。 是否要从一个公司离职,主要评价以下几点,我将其称为 跳槽成本,成本越高,跳槽风险也就越高,更需要深思熟虑。 工作强度是否和薪资待遇匹配,或者与同行的平均薪资比较; 同事关系是否和谐,是否能够成为你学习的榜样; 工作内容是否有价值,持续探索新领域保持技术热情; 领导是否作为,公司文化和发展前景如何。 从以上几点分析,前司显然不是好的归宿,我的跳槽成本无限接近于零。再见,东信北邮...
0x0010-重构局域网服务
从杭州回来后,为解决日益增长的服务实例需求,耗费 5 天时间,将局域网服务彻彻底底的重构了一遍。 现局域网涉及以下设备:联通光猫、HS8145V5-华为路由器、3215U-软路由工控机 和 DS218j-群晖NAS。 3215U-软路由工控机工控机安装 EXSi 7(vSphere) 操作系统,EXSi 是 VMware 公司开发的一款承载虚拟机的操作系统级产品,和 VMware 公司开发的另一款桌面应用级产品 Workstation 完美兼容,能够将 Workstation 打包的 VOF 格式文件轻松地上传至服务器并运行在 EXSi 当中。 下载 EXSi 镜像文件,通过 Rufu...
0x000F-ThreadLocal实战经验
问题详解ThreadLocalMap 底层结构 每个线程 Thread 都维护了自己的 threadLocals 变量,所以在每个线程创建 ThreadLocal 的时候,实际上数据是存在自己线程 Thread 的 threadLocals 变量里面的,别人没办法拿到,从而实现了隔离。 ThreadLocalMap 是由 数组 实现。 ThreadLocalMap 如何解决哈希冲突 解决哈希冲突:开放定址法。 新思路使线程不安全的资源对象线程安全 为每一个对象分配一个线程不安全对象,但会生成大量重复资源对象; 用锁保证某一时刻仅有一个线程可对线程不安全对象操作,但锁会影响性能。 为...
0x000E-了解SpringMVC的处理流程吗
面试回答 请求首先进入 DispatcherServlet, DispatcherServlet 转发给 HandlerMapping,其匹配对应的 Handler,封装成执行链返回给 DispatcherServlet; DispatcherServlet 收到执行链,找到对应的 HandlerAdaper 执行,封装成 ModelAndView 对象返回给 DispatcherServlet; DispatcherServlet 收到 ModelAndView 对象,转交给 ViewResolver 解析,封装成 Model 对象返回给 DispatcherServlet; Dis...
0x000D-揭秘NPK文件数据结构
前言欢迎 ⭐️star 我使用 Java 开发的开源项目 npk-api,提供对《地下城与勇士》(DNF、DFO)游戏资源 NPK 文件基础操作能力。 分析 NPK 数据结构 魔数通常用于判断文件类型,占用 16 字节。在 NPK 文件中,固定值:NeoplePack_Bill\0(最后一字节是 0x00)。 IMG 数量占用 4 字节,用于描述 NPK 文件承载了多少数量的 IMG 文件。 IMG 索引表每个 IMG 文件索引占用 264 字节,包括 4 字节地址偏移、4 字节数据长度和 256 字节加密后的 IMG 文件名。 IMG 文件名加解密加密是将原 IMG 文件名转换为 25...
0x000C-JVM内存结构
面试回答 JVM 内存结构主要分 5 块,线程隔离的有程序计数器、虚拟机栈和本地方法栈,线程共享的有方法区和堆。 程序计数器用于记录程序当前执行的位置;虚拟机栈用于保存方法调用关系;本地方法栈用于保存本地方法调用关系,与虚拟机栈类似;方法区用于存放类信息、字段信息、方法信息、常量、静态变量、即时编译器编译后的代码缓存等数据;堆用于存放对象实例。 问题详解JVM 内存结构 程序计数器:程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器,程序计数器记录着某个线程当前执行指令的位置; 虚拟机栈:每调用一个方法都会生成一个新的栈帧,调用方法的过程就是一个压栈...
0x000B-BIO、NIO、AIO的区别
面试回答 同步阻塞BIO:服务器实现模式为 一个连接一个线程,即客户端有连接请求时服务器就需要启动一个线程进行处理。如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制来改善; 同步非阻塞NIO:服务器实现模式为 一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器 轮询 到某个连接上有IO请求时才启动一个线程进行处理。 异步非阻塞AIO(NIO2):服务器实现模式为 一个有效请求一个线程,即客户端的IO请求都是由操作系统先处理,再 通知 服务器启动线程进行处理。 问题详解名词解释 同步:Java 自己处理 IO 读写; 异步:Java 将 IO ...
0x000A-Java 中的锁概念
问题详解 悲观锁和乐观锁 悲观锁:所以每次操作前都会上锁,其他线程阻塞。在 Java 语言中 synchronized 和 ReentrantLock 等就是典型的悲观锁,还有一些使用了 synchronized 关键字的容器类如 HashTable 等也是悲观锁的应用。适用于读少写多; 乐观锁:乐观锁操作数据时不会上锁,在更新的时候会判断一下在此期间是否有其他线程去更新这个数据。乐观锁可以使用版本号机制和 CAS 算法实现。在 Java 语言中 java.util.concurrent.atomic 包下的原子类就是使用 CAS 乐观锁实现的。适用于读多写少。 独占锁和共享锁 独占锁...
0x0009-ApacheDoris城市行-杭州站
机缘闲来无事,在工位上摸鱼。 从 阿里云瑶池数据库 微信公众号随手刷到一则 免费报名|7月22日杭州城市行,解锁Apache Doris高效实时数据分析密码! 的消息推文。既然 Apache 的活动都开到了家门口,没有不参加的理由,爽快的报了名。我肯定不会告诉你们,我连 Doris 是什么、怎么用都不知道。 赴会杭州的夏季十分炎热,太阳毒辣的挂在天上。与我一行参会的还有我女友,她当天上午还要参加 华为2012实验室 举办的校招宣讲会。 Doris 线下会在 杭州电魂大厦 举办,于下午 14:00 开始。实际主办方是 SelectDB,是一家从事 Doris 开源和商业化的公司。参会人员...
0x0008-由硬盘掉盘引起的Win10蓝屏故障
结论先说结论,如果你的电脑出现以下症状: 开机一分钟左右硬盘占用率100%,鼠标拖动缓慢甚至无法移动。 Win10蓝屏,并且恢复进度始终为零,只能强制重启电脑。包括但不限于以下蓝屏代码: critical process died system service expection critical service failed 解决方案很可能是由硬盘掉盘引起的故障,有以下两种方案可选: 将硬盘拆下,使用酒精擦拭硬盘“金手指”,然后装回去(可以考虑换一个插槽)。 直接更换硬盘。 我的经历最近一段时间,我的笔记本蓝屏是越来越频繁,令人恼火。根据蓝屏代码查询相关资料,也没一个靠谱的...
avatar
hooy
witness me
FRIENDS
hooy