自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (2)
  • 收藏
  • 关注

转载 linux top命令查看内存及多核CPU的使用讲述

特别标注:转载linux top命令查看内存及多核CPU的使用讲述查看多核CPU命令mpstat-PALL和sar-PALL说明:sar-PALL>aaa.txt重定向输出内容到文件aaa.txttop命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图...

2019-04-13 09:44:55 406

转载 JAVA安全模型

作为一种诞生于互联网兴起时代的语言,Java 从一开始就带有安全上的考虑,如何保证通过互联网下载到本地的 Java 程序是安全的,如何对 Java 程序访问本地资源权限进行有限授权,这些安全角度的考虑一开始就影响到 Java 语言的设计与实现。可以说 Java 在这些方面的探索与经验,对后来的一些语言与产品都带来了积极影响。本篇文章中将介绍 Java 中安全模型,以及如何利用安全访问控制机制来...

2018-07-22 11:43:54 221

原创 Spring 源码: SingletonBeanRegistry 接口

在开始阅读 SingletonBeanRegistry 类源码前,先来思考下:在对象维度上,每一个实例都有唯一标识符,就类似我们的身份证号码,一一绑定。 在实例工厂维度上,每一个工厂都有唯一标识符,可以通过该唯一标识符来使用工厂生产制定的对象。 在对象关系维度上,对象间存在包含与被包含、依赖与被依赖的关系。先来了解下什么是 spring bean,Spring Bean是什么解释很清楚了...

2019-05-03 22:34:18 703

原创 Spring 源码:Alias

别名在现实世界处处存在,更有着取个英文名,什么 wiket、sophy 等,叫起来也挺顺耳的。不仅仅在姓名上取别名,连编程上都使用了,嘿,把 "wiket" 地址给我,Spring 查找了一遍,在别名模块找了指定的对象....别名是对象标识的另一个称呼,与对象一一对应。AliasRegistry:制定别名的管理规则:public interface AliasRegistry { ...

2019-04-21 18:34:21 871

原创 Java 学习:Reference 和 ReferenceQueue 类

Reference 类对象的引用句柄,主要是负责内存的一个状态,当然它还和 java 虚拟机,垃圾回收器打交道。referent 指代 reference 引用的对象,如果 referent 已经被程序或者垃圾回收器清理,则为 null。它直接被 GC 程序处理。private T referent; /* Treated specially by GC */引用...

2019-03-18 19:13:43 959

原创 Java 学习:WeakCache 类

WeakCache 的作用看名字就知道,是一个缓存类,那它到底缓存什么类型的对象呢? 先从 WeakCache 注解开始:它是一个具有二级缓存的弱引用类,一级缓存的 key 和 value 都是弱引用,二级缓存都是强引用。其中 key 是根据入参直接传入的,二级缓存的 key 和v alue 都是是根据一级缓存的 key 和 value 通过各自的工厂方法(subKeyFactory 和 va...

2019-03-18 18:09:10 1591

原创 Spring 学习:SerializableTypeWrapper 类

Type 来历我们知道,Type 是 JDK5 开始引入的,其引入主要是为了泛型,没有泛型的之前,只有所谓的原始类型。此时,所有的原始类型都通过字节码文件类 Class 类进行抽象。Class 类的一个具体对象就代表一个指定的原始类型。泛型出现之后,也就扩充了数据类型。从只有原始类型扩充了参数化类型、类型变量类型、泛型数组类型,也就是 Type 的子接口。那为什么没有统一到 Class...

2019-03-16 11:07:12 865

原创 Java 学习:ConcurrentHashMap

HashMap 不是线程安全的,多个线程同时操作会抛出 ConcurrentModificationException 异常。ConcurrentHashMap 是 HashMap 线程安全的一个实现版本。1.8中放弃了 Segment  臃肿的设计,取而代之的是采用 Node + CAS + Synchronized 来保证并发安全进行实现,结构如下:成员变量:private tr...

2018-09-15 09:48:45 594

原创 Java 学习:HashMap

 HashMap 底层是基于散列算法实现,散列算法分为散列再探测和拉链式。HashMap 则使用了拉链式的散列算法,并在 JDK 1.8 中引入了红黑树优化过长的链表。HashMap 的红黑树满足下面条件: 每个结点非黑即红;  根结点是黑的; 每个叶结点(叶结点即指树尾端NIL指针或NULL结点)都是黑的; 如果一个结点是红的,那么它的两个儿子都是黑的; 该树是完美黑色平...

2018-09-10 22:51:05 194

原创 java学习:Object 类 equals 和 hashCode 方法

在开始编写文章前,有几个问题需要思考一下:equals 和 hashCode 方法是什么? equals 方法具有哪些特性? equals 和 hashCode 间的通用约定1. equals 和 hashCode 方法是什么?equal 方法用于检测一个对象是否等于另一个对象。在 Object 类中,这个方法将判断两个对象是否具有相同的引用。如果两个对象具有相同的引用,它们一定是相...

2018-08-27 14:38:52 1417

原创 数据库:mysql 数据库主从搭建

在编写文章前,有几个问题需要思考一下:为什么要实现主从数据库? 主从数据库同步原理 如何实现主从数据库?1. 为什么要实现主从数据库?从所周知,随着用户量的增多,数据库操作往往会成为一个系统的瓶颈所在,而且一般的系统 "读" 的压力远远大于 "写",因此我们可以通过实现数据库的读写分离提高系统的性能。通过设置主从数据库实现读写分离,主数据库负责 "写操作",从数据库负责 "读操作...

2018-08-04 11:16:13 297

原创 数据库:关系型数据库

在开始编写文章前,有几个问题需要思考一下:数据字典和系统目录 码 完整性规则 索引 关系集合操作 关系数据库表联系 数据冗余数据之间的联系也可使用关系来表示增强了关系数据库逻辑视图的应用。关系是一种数学上的结构,但对于用户而言,将其看作“  "表" 则更容易理解。表是由行和列构成的二维结构。由于关系模型的创建者 E.F.Codd 使用关系作为表的同义词,因此表也被称为关系。表是逻...

2018-08-02 10:18:20 1071

原创 数据库:结构化查询语言

在开始编写文章前,有几个问题需要思考一下:什么是结构化查询语言 结构化查询语言分类1. 什么是结构化查询语言SQL 是非过程化语言:只需要知道要做什么,不必担心如何去做。美国国家标准学会(ANSI)制定了一个标准 SQL——最新版本是 SQL-99 或 SQL3。ANSI 的 SQL 标准也被国际标准化组织(ISO),即一个由超过 150 个国家的标准体组成的团体所认可。SQL 的...

2018-07-31 19:07:43 7102

原创 数据库:事务

在开始编写文章前,有几个问题需要思考一下:什么是事务? 事务有哪些性质? 如何实现事务? 如何管理事务?1. 什么是事务?事务是一个工作的逻辑单元,这个单元必须是全部运行或者全部取消,不能接受中间状态。在事务中所有的 SQL 语句必须成功完成。如果 SQL 语句中的任何一个失败,那么整个事务必须回滚到原始的数据库状态,这个状态也就是该事务开始之前的状态。一个成功事务是将数据库从一个...

2018-07-31 11:18:42 2973

原创 计算机操作系统原理:线程

在开始编写文章前,有几个问题需要思考一下:线程的由来? 线程的概念 线程有哪些状态? 线程由哪几部分组成?1. 线程的由来自 20 世纪 60 年代引入进程以来,它已是操作系统中最重要、最基本的概念。随着计算机技术的发展和应用的深入,传统的进程概念已经越来越不适应新的需要了,特别是计算机网络、数据库以及并行技术的发展,使进程的局限性越来越明显。20 世纪 80 年代,人们又提出了比...

2018-07-19 10:12:54 2766

原创 Java并发编程:Unsafe类

在开始编写文章前,有几个问题需要思考一下:Unsafe 类到底是什么? Unsafe 具有哪些职责? 如何使用 Unsafe 类?1. Unsafe 类到底是什么?Java 语言不像 C、C++那样可以直接访问底层操作系统,但是 JVM 为我们提供了一个后门,这个后门就是 Unsafe。Unsafe 为我们提供了硬件级别的原子操作。2. Unsafe 类具有哪些职责?2.1 ...

2018-07-18 15:11:39 228

原创 设计模式:依赖倒置原则

在开始编写文章前,有几个问题需要思考一下:什么是依赖倒置原则(what)?为什么要使用依赖倒置原则(why)?如何使用依赖倒置原则(how)?1. 什么是依赖倒置原则(what)?依赖倒置原则的原始定义:High level modules should not depend upon low level modules.Both should depend upoon abstractions....

2018-07-13 14:40:31 173

原创 设计模式:里氏替换原则

在开始编写文章前,有几个问题需要思考一下:里氏替换原则的庐山真面目里氏替换原则蕴含的规则1. 里氏替换原则的庐山真面目Java 使用 extends 关键字来实现继承,它采用了单一继承的规则,从整体上来看,利大于弊,怎样才能让“利”的因素发挥最大的作用,同时减少“弊”带来的麻烦呢?解决方案是引入里氏替换原则,什么是里氏替换原则呢?它有两种定义:第一种定义,也是最正宗的定义:If for each ...

2018-07-10 18:44:29 628

原创 计算机操作系统原理:进程

前言多道程序环境下,程序的执行是动态变化的,在系统中处于“走走停停、停停走走”的运行状态。为了使程序能够并发执行,并能够如实反映程序活动的动态特征,操作系统引入了进程,以对并发执行的程序加以控制和描述。计算机系统中 CPU 是以进程为单位进行分配和管理的。正题在开始编写文章前,有几个问题需要思考一下:什么是进程?进程具有哪些状态?进程由哪几部分组成?什么是进程?进程的概念是 20 世纪 60 年代...

2018-07-01 11:57:21 3494

原创 Java基础:继承

前言继承是所有OOP语言和Java语言不可缺少的组成部分。当创建一个类时,总是在继承,因此,除非已明确指出要从其他类中继承,否则就是在隐式地从Java的标准根类Object进行继承。正题继承涉及到基类和导出类这两个类,而不是只有一个类,但从外部看来,它就像是一个和基类具有相同接口的新类,或许还会有额外的方法和域。但继承并不只是复制基类的接口。当创建了一个导出类的一个对象时,这个子对象和

2018-06-14 14:11:38 17616

原创 数据库学习:数据模型

前言正题在开始编写文章前,有几个问题需要思考一下:什么数据模型生成数据模型的业务规则数据模型构成数据模型的类别1. 什么是数据模型数据模型(data model)是对复杂现实世界数据结构的一种简单表达,如采用图形方式。广而言之,模型是对复杂现实世界对象或事件的抽象,它能帮助我们理解现实世界的复杂性。而在数据库环境中,数据模型则是表示数据结构及其特征、关系、约束、变换以及为特定问题域提供支持的其他组...

2018-05-30 14:31:59 19343

原创 Java 学习:ReentrantLock

前言正题公平锁static final class FairSync extends Sync { private static final long serialVersionUID = -3000897897090466540L; final void lock() { acquire(1); } .....

2018-05-13 11:04:46 115

原创 Java并发并发编程:基础构建模块

前言Java 平台类库包含了丰富的并发基础构建模块,例如线程安全的容器类以及各种用于协调多个相互协作的线程控制流的同步工具类(Synchronizer)。本节介绍一些最有用的并发构建模块,以及在使用这些模块来构建并发应用程序时的一些常用模式。正题开始编写文章前,有几个问题需要思考一下:容器有哪几大类同步容器类并发容器阻塞队列和生产者消费者队列阻塞方法和中断方法同步工具类1. 容器有哪几大类按照并发...

2018-04-25 13:05:14 167

原创 Java并发编程:线程安全性

前言“共享”意味着变量可以由多个线程同时访问,而“可变”则意味着变量的值在其生命周期内可以发生变化。一个对象是否需要是线程安全,取决于它是否被多个线程访问。这指的是在程序中访问对象的方式,而不是对象要实现的功能。要使得对象是线程安全的,需要采用同步机制来协同对象可变状态的访问。如果无法实现协同,那么可能会导致数据破坏以及其他不该出现的结果。正题在开始编写文章前,有几个问题需要思考一下:什么是线程安...

2018-04-20 17:26:55 866

原创 Java并发编程:任务的取消和关闭

前言任务和线程的启动很容易。在大多数时候,我们都会让它们运行直到结束,或者让它们自行停止。然而,有时候我们希望提前结束任务或线程,或许是因为用户取消了操作,或者应用程序需要被快速关闭。要使任务和线程能安全、快速、可靠地停止下来,并不是一件容易的事。Java 没有提供任何机制来安全的终止线程。但它提供了中断,这是一种协作机制,能够使一个线程终止另一个线程的当前工作。这种协作式的方法是必要的,我们很少...

2018-03-31 13:08:19 1677

原创 Java基础:异常处理程序

前言假设在一个Java程序运行期间出现一个错误。这个错误可能是由于文件包含了错误信息或者网络连接出现问题造成的,也有可能是因为使用无效的数组下标,或者试图使用一个没有被赋值的对象引用造成的。用户希望在出现错误时,程序能够采用一些理智的行为。如果由于出现错误而使得某些操作没有完成,程序应该:返回到一种安全状态,并能够让用户执行一些其他的命令。 允许用户保存所有操作的结果,并以适当的方式终止...

2018-03-24 21:49:25 2673

原创 HTTP基础:URL

前言URL 在我们的开发过程中经常用到,很多情况下可能就知道它很表面的含义,接下来详细说说 URL 相关的知识点。正题在开始文章前,有几个问题需要思考一下:URL 语法格式URL 访问资源协议有哪些URL 字符集1. URL 语法格式URL 提供了一种定位因特网上任意资源的手段,但这些资源时可以通过各种不同的方案(比如 HTTP、FTP、SMTP)来访问,因此 URL 语法会随方案的不同而有所不同...

2018-03-07 13:55:42 1639

原创 Spring基础:切面

前言在之前的文章中总结了 AOP 在 Spring 中的作用及地位,在分析 AOP 时涉及到切面的内容,这一节详细的分析切面的知识点。正题在开始文章前,有几个问题需要思考一下:切面到底是神马切面的构成切面有哪些实现类切面有哪些类型1. 切面到底是神马在 AOP 一文中提到什么是 AOP? AOP 可以使用 “面向切面编程”的译法。那切面就是把非业务逻辑相关的代码抽取出来定位到具体的连接点上的一种实...

2018-03-01 11:16:28 15774

原创 Spring基础:AOP基础

前言       Spring AOP 是 AO P技术在 Spring 中的具体实现,它是构成 Spring 框架的另一个重要基石。(本文通过阅读《精通 Spring+4.x++ 企业应用开发实战》一书的总结)正题在开始文章前,有几个问题需要思考一下:AOP 到底是何方神圣AOP 到底能干什么AOP 组成部分AOP 通过什么技术实现AOP 增强有哪些类型1. AOP 到底是何方神圣       ...

2018-02-27 20:55:10 468

原创 Spring基础:依赖注入

前言在平常的开发过程中通常使用的属性初始化方法有构造函数初始化和 setXxx 方法初始化,接下来让我们看看 Spring 容器属性的初始化过程。正题在开始文章前,有几个问题需要思考一下:Spring 支持的依赖注入有哪几种如何选择适合自己的注入方式1. Spring 支持的依赖注入有哪几种Spring支持两种依赖注入方式,分别是属性注入和构造函数注入。除此之外,Spring还支持工厂方法注入方式...

2018-02-26 20:43:43 338

原创 Spring基础:使用外部属性文件

前言在进行数据源或邮件服务器等资源的配置时,用户可以直接在Spring配置文件中配置用户名/密码、链接地址等信息。但一种更好地做法是将这些配置信息独立到一个外部属性文件中,并在Spring配置文件中通过形如${user}、${passwrod}的占位符引用属性文件中的属性项。这种配置方式拥有两个明显的好处。减少维护的工作量:资源的配置信息可以被多个应用共享,在多个应用使用同一资源的情况

2017-12-04 16:29:55 502

原创 Java基础:JDK动态代理源码分析

前言在《设计模式之:代理模式》一文中介绍了代理的设计架构,其中提到了代理模式的两种分类:普通代理和动态代理。动态代理的实现流程:创建一个被代理对象、创建一个基础InvocationHandler的接口类对象、创建一个代理对象。这一个过程是如何实现的?接下来这一节介绍动态代理在源码层面上实现原理。正题Subject接口public interface Subject { //业务操作 ...

2017-12-04 14:18:36 254

原创 设计模式之:代理模式

前言在平时的开发过程中,常看到代理模式身影,下面是通过阅读《设计模式之禅(第二版)》的代理模式章节后的读后感。正题代理模式(Proxy Pattern)是一个使用率非常高的模式,其定义如下:Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。)代理...

2017-12-04 11:53:37 173

原创 Java基础:注解

前言正题注解的语法比较简单,除了@符号的使用之外,它基本与Java固有的语法一致。Java SE5内置了三种,定义在Java.lang中的注解:1、@Override,表示当前的方法定义将覆盖超类中的方法。2、@Deprecated,如果程序员使用了注解为它的元素,那么编译器会发出警告信息。3、@SuppressWarnings,关闭不当的编译器警告信息。在Java SE5之前

2017-10-25 14:28:42 235

原创 JVM 学习:类加载器

前言在之前的文章中提过,一个对象包括三个部分:对象头、实例数据和对齐填充(非必须)。对象头包括标志位(Mark Word)、类型指针、数组长度(只针对数组类型)。其中的类型指针指向它的类元数据的指针,虚拟机通过这个指针确定这个对象是哪个类的实例。正题在开始文章前,有几个问题需要思考一下:类加载器的作用是什么类加载器的重要接口方法有哪些如何自定义加载器不同加载器加载同一资源文件是否相等JVM 哪些有...

2017-10-21 14:55:27 312

原创 JVM对象的创建

前言Java 是一门面向对象的编程语言,在 Java 程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象(例如克隆、发序列化)通常仅仅是一个 new 关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通 Java 对象,不包括数组和 Class 对象等)的创建又是怎样一个过程呢?正题虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并...

2017-10-18 11:07:24 224

原创 JVM基础:永久代(PernGem)和元空间(Metaspace)

前言在之前的文章中提到过方法区存放的是虚拟机已经加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。同时运行时常量池也是方法区的一部分。但是在不同的JDK版本中对方法区的实现方式存在一定的差异。正题下面通过对 JDK 1.6、JDK 1.7、JDK 1.8 的运行时常量池的对比来看看各自的实现方式。JDK 1.6在 JDK 1.6 及之前的版本中(针对 HotSpot ...

2017-10-16 10:25:41 1835

原创 Java基础:容器

前言通常,程序总是根据运行时才知道的某些条件去创建新对象。在此之前,不会知道所需对象的数量,甚至不知道确切的类型。为了解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象。正题Java 使用类库提供了一套相当完善的容器类,其中基本的类型是 List、Set、Queue 和 Map。这些对象类型也称为集合类,但由于 Java 的类库使用了 Collection 这个名字来指定该类库的一...

2017-10-06 20:45:06 181

原创 Java基础:访问权限控制

前言正题Java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的。访问权限控制的等级,从最大权限到最小权限依次为:public、protectd、包访问权限(没有关键字)和private。根据前述内容,读者可能会认为:作为一名类库设计者,你会尽可能将一切方法都定位private,而仅向客户端程序员公开你愿意让他们使用的方法。这样做是完全正确的,尽管对于那

2017-10-02 14:13:20 407

原创 Java基础:内部类

前言在开发过程中不想创建类文件或者想把逻辑相关的类放在一起,就在类中创建类,这就是本节要讨论——内部类。正题在开始编写文章前,有几个问题需要思考一下:什么是内部类? 内部类的作用 如何创建内部类对象 内部类的其他特性1. 什么是内部类?将一个类的定义放在另一个类的定义内部,这就是内部类。2. 内部类的作用内部类方法可以访问该类定义所在的外围类作用域中的数据,包括...

2017-09-24 16:00:50 236

Java基础/进阶书籍

该下载包括《Java编程思想》、《Java核心技术》、《JAVA并发编程实战》,其中讲解的都是跟 Java 基础和进阶相关的书籍,值得深入了解。

2018-05-02

设计模式之禅

在平常的开发或面试中,都会涉及到设计模式,很多都只是知其然不知其所以然。<<设计模式之禅(第2版)>>可以帮助你在设计模式中畅游

2018-04-04

空空如也

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

TA关注的人

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