JVM 之类文件结构
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 无关性的基石实现语言无关性的基础是虚拟机和字节码存储格式。Java 虚拟机不和包括 Java 在内的任何语言绑定,它只与“Class 文件”这种特定的二进制文件格式所关联,Class 文件中包含了 Jav ...
阅读更多
JVM 之垃圾收集器与内存分配策略
Java 与 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 对象死活垃圾收集器在对堆进行回收前,第一件事就是要确认这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象) 引用计数法给对象中添加一个引用计数器,每当 ...
阅读更多
LeetCode 之 n 个数之和(Sum n)
LeetCode 中有好几道题是求数字之和的,有 Sum 2、Sum 3 和 Sum 4 等。求和这种情况在我们实际开发中也是经常会遇到的,在这不妨拿出来我们把这归并到一起来说说。 无非就是数组中几个数字求和比较是否为目标值。且大多结果中是不能有重复的值。 大致我说下这个题意:12345678910 ...
阅读更多
LeetCode 之回文数(Palindrome Number)
回文数想必大家都不陌生吧。什么?你居然不知道何谓“回文数”? 回文数:“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。 OK,来看题:1234567891 ...
阅读更多
JVM 之 Java 内存区域与内存溢出异常
Java 与 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 运行时数据区域Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。根据《Java 虚拟机规范(Java SE 7 版)》的规定,包括如下几 ...
阅读更多
LeetCode 之最长公共前缀(Longest Common Prefix)
潜意识还没养成的我在思考问题方面总会出点岔子,老是走一些弯路。虽说结果可能是一样的,过程却是复杂许多,这也是我为什么决定要好好刷一遍 leetcode 中的题目的原因。数学就在于简单之美,一些看似异常复杂的问题可以巧妙地通过分治从而完美解决,很能锻炼人的逻辑思维能力,这也是我想要的。 下面来看问题的 ...
阅读更多
LeetCode 之组合总和系列(Combination Sum)
LeetCode 中有多道组合总和(Combination Sum)的题,这些题目都是比较经典的,面试很可能会问到。我这一想,还真是。今天就来简单总结下这一系列题目,总结很重要,还要时而回顾! Combination Sum I第一道题的描述如下:12345678910111213141516171 ...
阅读更多
使用 ssh 反向隧道穿透 NAT 访问 Linux 内网主机
前言由于公司经常会有项目需要去业主那边搭建服务器,基本不需要什么流量所以就准备用 4G 网卡搭建。而该网卡无固定公网 ip,只有内网 ip,我们目的就是为了可以远程操控以避免有时因业务需要往业主那边跑,要是地方比较远来回一趟也得花个把星期,不划算。所以就研究了下 ssh 隧道穿透来满足我们的需求。 ...
阅读更多
科幻十月(2018)
近些日子里差不多都在看《三体》,专业书籍都抛到脑后了,甚是着迷。 《三体》中每本序言都说了“基石”二字。刘慈欣先生真是可谓中国科幻届领军人物!其脑洞之大,学术之广,思维之严谨。书中大量出现了数学、物理等知识,众多专业术语,还将中外古今大多名人汇聚一起,展开“搏斗”,来回穿梭于时光长廊。 这几周每 ...
阅读更多
链表找环方法证明(拒绝误人子弟)
前言今天又想起来了这个问题,之前最开始是在其他论坛中看到有人说起了这个面试题。 当时只是翻了下,大致了解了如何判断链表中是否有闭环,用两个快慢指针解决,但是没有了解如何去找到闭环开始的节点。 刚上网搜了下,一群垃圾博主乱七八糟胡说八道,就知道从其他地方复制粘贴,都不过脑子的。谁说较快指针一定就是第二 ...
阅读更多