上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 85 下一页
摘要: Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的,除非我们有特殊的用法,像是反射,就需要显式的加载所需要的类。 类装载方式,有两种 : 1.隐式装载 阅读全文
posted @ 2019-07-11 09:14 割肉机 阅读(8575) 评论(0) 推荐(0) 编辑
摘要: Class的生命周期 一个Class在虚拟机中的完整生命周期如下图所示: 需要说明的是,上述的流程只是描述了逻辑上各个阶段的开始顺序,实际过程中,各个阶段可能是交错进行,并不是一个阶段等到另一个阶段完全完成才开始执行。 加载 加载一个Class需要完成以下3件事: 通过Class的全限定名获取Cla 阅读全文
posted @ 2019-07-11 09:10 割肉机 阅读(10659) 评论(0) 推荐(0) 编辑
摘要: 前言 首先,最想说的是,当你要学习一套最新的技术时,官网的英文文档是学习的最佳渠道。因为网上流传的多数资料是官网翻译而来,很多描述的重点也都偏向于作者自身碰到的问题,这样就很容易让你理解和操作出现偏差,最开始我就进入了这样误区。官网的技术导读真的描述的很详细,虽然对于我们看英文很费劲,但如果英文不是 阅读全文
posted @ 2019-07-11 08:57 割肉机 阅读(3442) 评论(0) 推荐(0) 编辑
摘要: 去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer。想着可以总结一下经验,分享一下自己这一段”骑驴找马”过的心路历程。当然,一家之言,难免粗浅,如有不妥,敬请指正。 全文有点长,假如只对一家公司感兴趣的话可以直接跳过去: 准备 阅读全文
posted @ 2019-07-11 08:52 割肉机 阅读(1887) 评论(1) 推荐(3) 编辑
摘要: 用过Redis的都知道,Redis有两种持久化方式:RDB和AOF,他们的区别大家应该都清楚,所以今天主要想分享一下这两种持久化方式的底层原理以及实现。 如果让你手写一个持久化(架构级)的功能,你没有思路的话,那希望这个文章可以给你灵感。 1. RDB持久化 1.1 创建 简单回顾下RDB文件的创建 阅读全文
posted @ 2019-07-11 08:18 割肉机 阅读(521) 评论(0) 推荐(0) 编辑
摘要: Callable和Future出现的原因 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从 阅读全文
posted @ 2019-07-10 16:22 割肉机 阅读(538) 评论(0) 推荐(0) 编辑
摘要: 1. Java 堆空间 2. GC 开销超过限制 3. 请求的数组大小超过虚拟机限制 发生频率:2颗星 4. Perm gen 空间 5. Metaspace 6. 无法新建本机线程 7. 杀死进程或子进程 8. 发生 stack_trace_with_native_method 1. Java 堆 阅读全文
posted @ 2019-07-10 16:03 割肉机 阅读(3454) 评论(0) 推荐(0) 编辑
摘要: 什么是阻塞队列? 阻塞队列是一个在队列基础上又支持了两个附加操作的队列。 2个附加操作: 支持阻塞的插入方法:队列满时,队列会阻塞插入元素的线程,直到队列不满。 支持阻塞的移除方法:队列空时,获取元素的线程会等待队列变为非空。 阻塞队列的应用场景 阻塞队列常用于生产者和消费者的场景,生产者是向队列里 阅读全文
posted @ 2019-07-10 15:54 割肉机 阅读(1436) 评论(0) 推荐(0) 编辑
摘要: 早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本, 阅读全文
posted @ 2019-07-10 15:50 割肉机 阅读(1547) 评论(0) 推荐(0) 编辑
摘要: 【线程让步yield()方法】 yield()方法可以让当前正在执行的线程暂停,但它不会阻塞该线程,它只是将该线程从运行状态转入就绪状态。 只是让当前的线程暂停一下,让系统的线程调度器重新调度一次。 很有可能,当某个线程调用了yield()方法暂停之后进入就绪状态,它又马上抢占了CPU的执行权,继续 阅读全文
posted @ 2019-07-10 15:48 割肉机 阅读(556) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 85 下一页