自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

转载 JVM类加载机制

概述虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象

2017-04-21 11:09:37 262

转载 MySQL:索引工作原理

为什么需要索引(Why is it needed)?当数据保存在磁盘类存储介质上时,它是作为数据块存放。这些数据块是被当作一个整体来访问的,这样可以保证操作的原子性。硬盘数据块存储结构类似于链表,都包含数据部分,以及一个指向下一个节点(或数据块)的指针,不需要连续存储。记录集只能在某个关键字段上进行排序,所以如果需要在一个无序字段上进行搜索,就要执行一个线性搜索(Linear Sear

2017-04-21 10:50:06 256

原创 图解TCP/IP(四)——TCP通信之发送数据基本点

前言上一篇笔记中分析了TCP/IP分层模型与OSI7层模型的对应关系,下面介绍一下数据传递过程中,各层对数据的操作。1、TCP/IP分层模型与通信示例如上图所示,每个分层中,都会对所 发送的数据附加一个首部,这个首部中,通常包含了当前层的必要信息。在此之前,必须先介绍几个表示数据单位的基本概念。包:全能性术语,泛指数据分组传递中的组的单位。帧:用于标识数据链路层中包

2017-04-20 10:57:56 2850

转载 数据结构--图 的JAVA实现(下)

在上一篇文章中记录了如何实现图的邻接表。本文借助上一篇文章实现的邻接表来表示一个有向无环图。1,概述图的实现与邻接表的实现最大的不同就是,图的实现需要定义一个数据结构来存储所有的顶点以及能够对图进行什么操作,而邻接表的实现重点关注的图中顶点的实现,即怎么定义JAVA类来表示顶点,以及能够对顶点进行什么操作。为了存储图中所有的顶点,定义了一个Map,实际实现为LinkedHa

2017-04-19 16:50:58 400

转载 数据结构--图 的JAVA实现(上)

1,摘要:本系列文章主要学习如何使用JAVA语言以邻接表的方式实现了数据结构---图(Graph),这是第一篇文章,学习如何用JAVA来表示图的顶点。从数据的表示方法来说,有二种表示图的方式:一种是邻接矩阵,其实是一个二维数组;一种是邻接表,其实是一个顶点表,每个顶点又拥有一个边列表。下图是图的邻接表表示。从图中可以看出,图的实现需要能够表示顶点表,能够表示边表。邻接表指是

2017-04-19 16:50:10 556

转载 数据结构-图的基本概念

线性表和树两类数据结构,线性表中的元素是“一对一”的关系,树中的元素是“一对多”的关系,本章所述的图结构中的元素则是“多对多”的关系。图(Graph)是一种复杂的非线性结构,在图结构中,每个元素都可以有零个或多个前驱,也可以有零个或多个后继,也就是说,元素之间的关系是任意的。一、图的定义与术语定义:图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G

2017-04-19 16:48:37 522

原创 图解TCP/IP笔记(二)

1、互联网与TCP/IP的关系互联网进行通信时,需要相应的网络协议,TCP/IP原本就是为了使用互联网而开发指导的协议族,因此,互联网的协议就是TCP/IP,TCP/IP就是互联网的协议。2、互联网结构互联网中的每个网络都是由骨干网(BackBone)和末端网(Stub)组成的。每个网络通过NOC(NetWork Operation Center,网络操作中心)相连。如果网络的

2017-04-19 10:53:29 547

转载 MySQL 主从复制 + MySQL Router 部署测试

4个节点1、MySQLDB1  192.168.1.41  (MySQL 主节点)2、MySQLDB2  192.168.1.42  (MySQL从节点)3、MySQLDB3  192.168.1.43  (MySQL从节点)4、MySQLRouter  192.168.1.47  (MySQLRouter服务节点)软件版本说明:1、操作

2017-04-19 10:25:14 7951 1

转载 Java并发编程:并发容器之CopyOnWriteArrayList(转载)

Java并发编程:并发容器之CopyOnWriteArrayList(转载)Java并发编程:并发容器之CopyOnWriteArrayList(转载)  原文链接:  http://ifeve.com/java-copy-on-write/    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个

2017-04-17 20:40:42 281

转载 Java集合---ConcurrentHashMap原理分析

Java集合---ConcurrentHashMap原理分析 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的Concurr

2017-04-17 17:45:13 228

转载 程序杂谈

今日头条|张一鸣:我遇到的优秀年轻人的5个特质头条招聘 2016-08-17 12:11文| 张一鸣文章整理自今日头条张一鸣8月12日在“2016今日头条Bootcamp”上对研发&产品部门应届毕业生的寄语。------------------------------------------------------------------------

2017-04-13 17:39:48 217

转载 “J.U.C”:ReentrantLock之三unlock方法分析

前篇博客LZ已经分析了ReentrantLock的lock()实现过程,我们了解到lock实现机制有公平锁和非公平锁,两者的主要区别在于公平锁要按照CLH队列等待获取锁,而非公平锁无视CLH队列直接获取锁。但是对于unlock()而已,它是不分为公平锁和非公平锁的。[java] view plain copypublic void unlock() 

2017-04-12 09:34:32 275

转载 二分查找(Java实现)

二分查找算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。实现: 1.非递归代码public static int biSearch(int []ar

2017-04-10 09:12:10 270

原创 图解TCP/IP笔记(三)

TCP/IP协议分层模型上图所示,即OSI参考模型与TCP/IP分层模型的对应关系。OSI参考模型更注重“通信协议必要的功能是什么”而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序”。硬件(物理层):相当于以太网或者电话线路等物理层设备。因人们在物理层上使用的传输媒介不同(使用网线或无线),因此对于它的内容一直无法统一定义网络接口层(数据链路层):将该层当做让NI

2017-04-08 16:25:42 389

转载 “J.U.C”:ReentrantLock之一简介

注:由于要介绍ReentrantLock的东西太多了,免得各位客官看累,所以分三篇博客来阐述。本篇博客介绍ReentrantLock基本内容,后两篇博客从源码级别分别阐述ReentrantLock的lock、unlock实现机制。ReentrantLock,可重入的互斥锁,是一种递归无阻塞的同步机制。它可以等同于synchronized的使用,但是ReentrantLock提供了比sync

2017-04-08 11:51:26 270

转载 线程基本概念

线程和进程的区别是什么下面细说背景:CPU+RAM+各种资源(比如显卡,光驱,键盘,GPS, 等等外设)构成我们的电脑,但是电脑的运行,实际就是CPU和相关寄存器以及RAM之间的事情。一个最最基础的事实:CPU太快,太快,太快了,寄存器仅仅能够追的上他的脚步,RAM和别的挂在各总线上的设备完全是望其项背。那当多个任务要执行的时候怎么办呢?轮流着来?或者谁优先级高谁来?不管怎么样的策略,一句话就是在...

2017-04-06 17:19:43 281

转载 Java多线程——关键字synchronized

在我们的实际应用当中可能经常会遇到这样一个场景:多个线程读或者、写相同的数据,访问相同的文件等等。对于这种情况如果我们不加以控制,是非常容易导致错误的。在java中,为了解决这个问题,引入临界区概念。所谓临界区是指一个访问共用资源的程序片段,而这些共用资源又无法同时被多个线程访问。在java中为了实现临界区提供了同步机制。当一个线程试图访问一个临界区时,他将使用一种同步机制来查看是不是已经

2017-04-05 20:40:49 354

转载 深入分析volatile的实现原理

通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和

2017-04-05 17:08:51 321

转载 JAVA多线程之volatile 与 synchronized 的比较

一,volatile关键字的可见性要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下:从图中可以看出:①每个线程都有一个自己的本地内存空间--线程栈空间???线程执行时,先把变量从主内存读取到线程自己的本地内存空间,然后再对该变量进行操作②对该变量操作完后,在某个时间再把变量刷新回主内存关于JAVA内存模型

2017-04-02 16:42:55 231

Java与模式

本书介绍了23种设计模式,并以Java语言进行实现,菜鸟与老手均可将其作为工具书查阅和学习

2019-02-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除