Ming Blog

我干了什么 究竟拿了时间换了什么

Java中的原子操作类

"Atomic包详解"

“I don’t let myself down, because I have met you in my most gorgeous age.” 引言 Java从JDK 1.5开始提供了java.util.concurrent.atomic包(后面简称为Atomic包),这个包中的原子操作类提供了一种用法简单、性能高效、线程安全地更新一个变量的方式。 因为变量的类型有很多种...

面试必问的CAS详解

"CAS详解"

“If you think you can, you can. And if you think you can’t, you’re right.” 前言 CAS(Compare and Swap),即比较并替换,实现并发算法时常用到的一种技术,Doug lea大神在java同步器中大量使用了CAS技术,鬼斧神工的实现了多线程执行的安全性。 CAS的思想很简单:三个参数,一个当...

sun.misc.Unsafe详解

"魔法类之Unsafe"

“If you think you can, you can. And if you think you can’t, you’re right.” 1.Unsafe类了解 我们会发现在看源码的过程,有很多地方都用到了sun.misc.Unsafe这个类,为此,下面对这个类做一个详细的了解: java 生态圈。 几乎每个使用 java开发的工具、软件基础设施、高性能开发库...

Lock锁的使用

"Lock锁"

“If you think you can, you can. And if you think you can’t, you’re right.” 1.Lock接口介绍 锁是用于通过多个线程控制对共享资源的访问的工具。通常,锁提供对共享资源的独占访问:一次只能有一个线程可以获取锁,并且对共享资源的所有访问都要求首先获取锁。但是,一些锁可能允许并发访问共享资源,如ReadWrit...

Synchronized关键字

"Java core knowledge"

“There are no secrets to success. It is the result of preparation, hard work and learning from failure.” 1. 基本概述 在开始讲synchronized关键字之前,先补充一下关于Thread的几个重要方法: start()方法:调用该方法开始执行该线程; stop...

AVL树

"AVL树总结"

“No pain, no palm; no thorns, no throne; no gall, no glory; no cross, no crown.” AVL树 首先,给出关于平衡因子的定义,它是指树中某结点其左子树的高度和右子树的高度之差。 AVL树是高度平衡的二叉树,它的特点是:AVL树中的任何节点的两个子树的高度最大差别为1。(即平衡因子的绝对值小于2)AVL的...

笔试算法题整理

"算法题解析"

“Begin challeging your own assumptions. Your assumptions are your windows on the world. Scrub them off every once in a while, or the light won’t come in.” 1. 小米笔试 1.打印二叉树 题目描述: 在某个存储介质以如下形式...

MySQL必知必会

"MySQL数据库"

“Every new day begins with possibilities. It’s up to us to fill it with the things that move us toward progress and peace.” 1. 基本概念 数据库(database):保存有组织的数据的容器。 表(table):某种特定类型数据的结构化清单。 ...

Java常量池

"方法区与常量池"

“Ordinary people merely think how they shall spend their time; a man of talent tries to use it.” 在Java的内存分配中,我们经常会听到很多关于常量池的描述,为此,下面来尝试分析和区分一下这几个概念: 1.全局字符串池(String Pool) 全局字符串池里的内容是在类加载完成,经...

JVM

"java 虚拟机"

“Some things are not to see to insist, but insisted the will sees hope.” 1. Java内存区域 对于Java程序员来说,在虚拟机自动内存管理的机制下,不需要像C/C++程序开发这样为一个new操作去写对应的delete/free操作,不容易出现内存泄漏和内存溢出问题。正是因为Java程序员把内存控制权利交给...