假如我是一个诗人

等我再高级有趣一点,陪你坐宇宙飞船去探索浪漫诗人的内心世界。

阅读全文

计算机网络基础

在浏览器中输入一个网址,按下回车后,发生了什么? 域名解析 浏览器通过浏览器缓存、系统缓存、路由器缓存、域名服务器搜索该域名的ip地址。 发起TCP3次握手,建立TCP连接 拿到域名对应的IP地址之后,User-Agent(一般是指浏览器)会以一个随机端口(1024 < 端口 < 65535)向服务器的WEB程序的80端口发起TCP的连接请求。...

阅读全文

深入理解JVM——12.4java与线程

阅读全文

深入理解JVM——12.3java内存模型

计算机内存模型、缓存一致性、MESI 协议计算机内存模型由于计算机的存储设备与运算器的运算速度之间有着几个数量级的差距,所以现代计算机系统不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(cache)来作为内存与处理器之间的缓冲。将运算需要用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写...

阅读全文

深入理解JVM——8虚拟机字节码执行引擎

阅读全文

深入理解JVM——7虚拟机类加载机制

7.1概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。 在java语言里面,类型的加载和连接过程都是在程序运行期间完成的,这样会在类加载时稍微增加一些性能开销,但是却能为java应用程序提供高度的灵活性。java中天生可以动态扩展的语言特性就是依赖运...

阅读全文

深入理解JVM——6类文件结构

阅读全文

数据结构与算法——排序

一、排序(上):为什么插入排序比冒泡排序更受欢迎?分析一个排序算法,从哪几方面入手: 1.排序算法的执行效率1)最好情况、最坏情况、平均情况时间复杂度。2)时间复杂度的系数、常数、低阶。3)比较次数和交换(或移动)次数。基于比较的排序算法会涉及两种操作,一种是元素比较大小,另一种是元素交换或移动。 2.排序算法的内存消耗算法的内存消耗可以通过空间复杂度来衡...

阅读全文

设计模式

关于模式在讨论模式之前,必须对“模式”这个词加以界定,以规范后面的讨论和研究。简而言之,人们在自己的环境中不断发现问题和寻找问题的解决方案的时候,发现有一些问题及其解决方案不断变换面孔反复出现,但在这些不同的面孔后面有着共同的本质,这些共同的本质就是模式。一个围棋下得好的人知道,好的“形”对于围棋非常重要。形是棋子在棋盘上的几何形状的抽象化。形就是模式(pa...

阅读全文

数据结构与算法——递归

推荐注册返佣金——现在很多App都有这个功能。用户A推荐用户B来注册,用户B又推荐了用户C来注册。可以说,用户C的“最终推荐人”为用户A,用户B的“最终推荐人”也为用户A,用户A没有“最终推荐人”。一般来说,会通过数据库来记录这种推荐关系。在数据库表中,可以记录两行数据,其中actor_id表示用户id,referrer_id表示推荐人id。基于这个背景,给...

阅读全文