摘要: java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就会先通过类的全限定名来加载。加载并初始化类完成后,再进行对象的创建工作。 我们先假设是第一次使用该类,这样的话new一个对象就可以分为两个过程:加载并初始化类和创建对象。 一、类加载过程(第一次使用该类) jav 阅读全文
posted @ 2018-07-29 18:19 沉默哥 阅读(40901) 评论(1) 推荐(16) 编辑
摘要: 先看斐波那契数列的定义: 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数 阅读全文
posted @ 2018-07-28 21:11 沉默哥 阅读(1788) 评论(0) 推荐(0) 编辑
摘要: switch的转换和具体系统实现有关,如果分支比较少,可能会转换为跳转指令(条件跳转指令和无条件跳转指令)。但如果分支比较多,使用条件跳转会进行很多次的比较运算,效率比较低,可能会使用一种更为高效的方式,叫跳转表。跳转表是一个映射表,存储了可能的值以及要跳转到的地址,形如: 跳转表为什么会更为高效呢 阅读全文
posted @ 2018-07-28 18:02 沉默哥 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 第一阶段 盘古开天辟地——ASCII码 计算机大家都知道,本质是二进制运算和存储。在计算机中人类的几乎所有文字和字符都没法直接表示,所以美国人在发明计算机的时候为了让计算机可以用于保存和传输文字,就发明了ASCII码(American Standard Code for Information In 阅读全文
posted @ 2018-07-28 17:17 沉默哥 阅读(1187) 评论(2) 推荐(5) 编辑
摘要: 众所周知,计算机底层是二进制。而java作为一门计算机编程语言,也对二进制的位运算提供了完整的支持。 在java中,int是32位的,也就是说可以用来实现32位的位运算。方便起见,我们一般用16进制对它赋值,比如: 0011表示成16进制是 0x3, 110111表示成16进制是 0x37。 那么什 阅读全文
posted @ 2018-07-27 20:58 沉默哥 阅读(4558) 评论(1) 推荐(2) 编辑