自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TinnnnnnY

假如生活撂倒了你,表墨迹,表叽歪,表咋呼,表吱声,也表起来,你奏趴着,一直坚定不移地往前故应…故应…

  • 博客(103)
  • 收藏
  • 关注

原创 学习笔记 08 --- JUC线程池

学习笔记 08 --- JUC线程池ThreadPoolExecutor

2017-01-23 15:37:14 748

原创 学习笔记 07 --- JUC集合

学习笔记 07 --- JUC集合在讲JUC集合之前我们先总结一下Java的集合框架,主要包括Collection集合和Map类,Collection集合又可以划分为LIst和Set。1. List的实现类主要有: LinkedList, ArrayList, Vector, Stack。(01) LinkedList是双向链表实现的双端队列;它不是线程安全的,只适

2017-01-20 10:35:33 3517 1

原创 学习笔记 06 --- JUC锁

学习笔记 06 --- JUC锁ReadWriteLock和ReentrantReadWriteLock:JUC包中的锁包括“独占锁”和“共享锁”,ReentrantLock就是典型的独占锁。JUC包中的共享锁包括CountDownLatch, CyclicBarrier, Semaphore, ReentrantReadWriteLock等。ReentrantRead

2017-01-16 10:30:21 600

原创 学习笔记 05 --- JUC锁

学习笔记 05 --- JUC锁LockSupport:LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport通过unsafe函数中的接口来实现阻塞和解除阻塞的,AQS和其他的lock都会使用到这个基础类。LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程(park()---获取许可,u

2017-01-13 09:55:50 1046

原创 学习笔记 04 --- JUC锁

学习笔记 04 --- JUC包之锁同步锁:通过synchronized关键字来进行同步,实现竞争资源的互斥访问的锁。同步锁的原理是对于每一个对象,有且仅有一个同步锁,不同的线程能共同访问该同步锁,但是在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能进行CPU调度;而没有获取到同步锁的线程,必须进行等待,知道获取到同步锁之后才能继续运行。

2017-01-12 10:23:03 553

原创 学习笔记 03 --- JUC原子类

学习笔记 03 --- JUC包JUC ------- Java.util.concurrent包:Java 5 之后添加了一个新的包JUC 包到Java平台,JUC包包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建JUC 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提

2017-01-11 09:48:40 631

原创 学习笔记 02 --- Java多线程

学习笔记(20170106)--- Java多线程 02学习笔记(20170105)---Java多线程 01synchronized关键字:脏读:在多线程中,难免会出现多个线程对同一个对象的实例变量进行并发操作的情况,如果没有同步处理,那么就会造成脏读,最后的结果是不正确的。synchronized获取的锁都是对象锁,而不是把一段代码或者方法当

2017-01-10 10:14:25 551

转载 Java中Unsafe类详解

java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。2、可以定位对象某字段的内存位置,也可

2017-01-09 15:07:54 550

转载 Java并发编程与技术内幕:线程池深入理解

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka         摘要: 本文主要讲了Java当中的线程池的使用方法、注意事项及其实现源码实现原理,并辅以实例加以说明,对加深Java线程池的理解有很大的帮助。         首先,讲讲什么是线程池?照笔者的简单理解,其实就是一组线程实时处理休眠状态,等待唤醒执行。那么为什么要

2017-01-06 19:50:18 384

原创 学习笔记 01 --- Java多线程

新建状态(New) : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。运行状态(Running) : 线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。阻塞状态(Blocked) : 阻塞状态是线程因为某种原

2017-01-05 16:14:55 412

原创 HTTP Get和Post请求设置超时

HTTP Get和Post请求设置超时Post请求:private Runnable runnable = new Runnable() { @Override public void run() { String url = BaseServicesInfo.SERVER_BASE_PATH + fileName;

2017-01-04 19:38:36 16979 1

原创 Git 命令整理

1、常用的Git命令命令简要说明git add添加至暂存区git add–interactive交互式添加git apply应用补丁git am应用邮件格式补丁git annotate同义词,等同于 git blamegit archive文件归档打包git bisect

2017-01-04 17:04:17 355

转载 POI Excel导出样式设置

POI Excel导出样式设置[java] view plain copy HSSFSheet sheet = workbook.createSheet("sheetName");    //创建sheet  sheet.setVerticallyCenter(true);    //下面样式可作为导出左右分栏的表

2017-01-04 16:57:17 745

原创 Jquery使用attr("checked")返回checked或undefined导致获取是否选中失效

Jquery中使用$('#cb').attr('checked')获取checkbox是否被选中, 返回的是checked或者是undefined,不是原来的true和false了,有关此问题的解决方法如下:发现问题:页面上有一个checkbox,我们期望通过Jquery来获得它是否选中,或者通过Jquery来让它被选中。 在JQ1.6之前的版本,我们会这样写我们的代码:

2017-01-04 16:44:24 2273

转载 Dubbo学习小记

前言周一入职的新公司,到了公司第一件事自然是要熟悉新公司使用的各种技术,搭建本地的环境。熟悉新公司技术的过程中,首先就是Maven,这个前面已经写过文章了,然后就是Dubbo----公司的服务都是通过Dubbo来治理的。其实之前我就对SOA、RPC等分布式服务的概念有所了解,Dubbo也多多少少知道一些,不过能亲身使用那是再好不过的了。此文就对我的Dubbo学习做一个小的总

2017-01-03 13:13:53 684

转载 对一致性Hash算法,Java代码实现的深入研究

致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放

2017-01-03 13:13:13 475

转载 集群监控

集群监控大型互联网企业的背后,依靠的是成千上万台服务器日夜不停的运转,以支撑其业务的运转。宕机对于互联网企业来说,代价是沉重的,轻则影响用户体验,重则直接影响交易,导致交易下跌,并且给企业声誉造成不可挽回的损失。对于这些机器对应的开发和运维人员来说,即便是每台机器登陆一次,登陆那么多台机器也够呛,何况还需要进行系统指标的检查。因此,依靠人力是不可能完成24小时不间断监控服务器的任务的。

2017-01-03 13:12:34 495

转载 几种简单的负载均衡算法及其Java代码实现

什么是负载均衡负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题

2017-01-03 13:11:57 269

转载 一致性协议

2PC与3PC在分布式系统中,每一个机器节点虽然都能够明确地知道自己在进行事务操作过程中的结果是成功或失败,但却无法直接获取到其他分布式节点的操作结果。因此,当一个事务操作需要跨越多个分布式节点的时候,为了保持事务处理的ACID特性,就需要引入一个称为"协调者(Coordinator)"的组件来统一调度所有分布式节点的执行逻辑,这些被调度的分布式节点则被称为"参与者(Participant

2017-01-03 13:11:20 348

转载 消息中间件与JMS标准

初识消息中间件维基百科上对于消息中间件的定义是"Message-oriented middleware(MOM) is software infrastructure focused on sending and receiving messages between distrubuted systems"。解释起来就是消息中间件是在分布式系统中完成消息的发送和传递的基础软件。看张图来更直

2017-01-03 13:10:46 317

转载 MemCache超详细解读

MemCache是什么MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结

2017-01-03 13:10:03 789

转载 大型网站架构学习笔记

前言最近一直在拜读两本书:1、李智慧老师的《大型网站技术架构 核心原理与案例分析》2、曾宪杰老师的《大型网站系统与Java中间件实践》看了并结合自己目前的工作进行了思考,感觉获益匪浅、受益良多,自己对大型网站的理解又有了不少的加深,下面分享一下自己的学习笔记。 学习笔记1、大型网站架构的发展史(红字就是每一步发展历程的关键)(1)从一

2017-01-03 13:09:21 330

转载 NoSQL:从关系型数据库到非关系型数据库

关系型数据库所谓关系型数据库,,就是指采用了关系模型来组织数据的数据库。什么是关系模型,简单说,关系模型就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。关系模型中常用的概念:1、关系可以理解为一张二维表,每个关系都有一个关系名,在数据库中被称为表名2、元组可以理解为二维表中的一行,在数据库中被称为记录

2017-01-03 13:08:40 273

转载 从分布式一致性谈到CAP理论、BASE理论

问题的提出在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景。1、火车站售票假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐。想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车只剩下最后一张车票,可能在同一时刻,不同售票

2017-01-03 13:08:01 297

转载 从集中式到分布式

前言随着计算机系统规模变得越来越大,将所有业务单元集中部署在一个或者若干个大型机上的体系结构物,已经越来越不能满足当今计算机系统,尤其是大型互联网系统的快速发展,各种灵活多变的系统架构模型层出不穷。同时,随着微型计算机的出现,越来越多廉价的PC机成为了各大IT企业架构的首选,分布式的处理方式越来越受到业界的青睐----计算机系统正在经历一场前所未有的从集中式到分布式架构的变革。 

2017-01-03 13:07:19 518

转载 Java虚拟机13:互斥同步、锁优化及synchronized和volatile

互斥同步互斥同步(Mutual Exclusion & Synchronization)是常见的一种并发正确性保证手段。同步是指子啊多个线程并发访问共享数据时,保证共享数据在同一时刻只能被一个(或者是一些,使用信号量的时候)线程使用。而互斥是实现同步的一种手段,临界区(Critial Section)、互斥量(Mutex)和信号量(Semaphore)都是主要的互斥实现方式。因此,在这四个

2017-01-03 13:05:14 640

转载 Java虚拟机12:Java内存模型

什么是Java内存模型Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。在此之前,主流程序语言(如C/C++等)直接使用物理硬件和操作系统的内存模型,因此,会由于不同平台上内存模型的差异,有可能导致程序在一套平台上并发完全正常,而在另外一套平台上并发

2017-01-03 13:04:45 238

转载 Java虚拟机11:运行期优化

前言http://www.cnblogs.com/xrq730/p/4839245.html,HotSpot采用的是解释器+编译器并存的架构,之前的这篇文章里面已经讲过了,本文只是把即时编译器这块再讲得具体一点而已。当然,其实本文的内容也没多大意义,90%都是概念上的东西,对于实际开发、实际解决项目里面的疑难问题并没有什么太大的帮助,只要看过就好了。 编译对象与触发条件

2017-01-03 13:04:15 293

转载 Java虚拟机10:类加载器

类与类加载器虚拟机设计团队把类加载阶段张的"通过一个类的全限定名来获取此类的二进制字节流"这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为"类加载器"。类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远远不限定于类加载阶段。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性

2017-01-03 13:03:39 313

转载 Java虚拟机9:Java类加载机制

前言我们知道我们写的程序经过编译后成为了.class文件,.class文件中描述了类的各种信息,最终都需要加载到虚拟机之后才能运行和使用。而虚拟机如何加载这些.class文件?.class文件的信息进入到虚拟机后会发生什么变化?这些都是本文要讲的内容,文章将会讲解加载类加载的每个阶段Java虚拟机需要做什么事(加粗标红)。 类使用的7个阶段类从被加载到虚拟机内存中开

2017-01-03 13:03:07 339

转载 Java虚拟机8:虚拟机性能监控与故障处理工具

前言定位系统问题的时候,知识、经验是基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照、堆转储快照等。经常使用适当的虚拟机监控和分析的工具可以加快分析数据、定位解决问题的速度。 jps:虚拟机进程状况工具首先约定一下运行的代码都是以下这段 1 public class TestMain 2 {

2017-01-03 13:02:28 449

转载 Java虚拟机7:内存分配原则

前言对象的内存分配,往大的方向上讲,就是在堆上分配,少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节决定于当前使用的是哪种垃圾收集器组合,当然还有虚拟机中与内存相关的参数。垃圾收集器组合一般就是Serial+Serial Old和Parallel+Serial Old,前者是Client模式下的默认垃圾收集器组合,后者是Server模式下的默认垃圾收集器组合,文

2017-01-03 13:01:54 332

转载 Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别

前言之前的文章尤其是讲解GC的时候提到了很多的概念,比如内存溢出和内存泄露、并行与并发、Client模式和Server模式、Minor GC和Full GC,本文详细讲解下这些概念的区别。 内存溢出和内存泄露的区别1、内存溢出内存溢出指的是程序在申请内存的时候,没有足够大的空间可以分配了。2、内存泄露内存泄露指的是程序在申请内存之后,没有办法

2017-01-03 13:01:20 415

转载 Java虚拟机5:Java垃圾回收(GC)机制详解

哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象。那么如何找到这些对象?1、引用计数法这个算法的实现是,给对象中添加一个引用计数器,每当一个地方引用这个对象时,计数器值+1;当引用失效时,计数器值-1。任何时刻计数值为0的对象就是不可能再被使用的。这种算法使用场景很多,但是,Java中却没有使用

2017-01-03 13:00:29 326

转载 Java虚拟机4:内存溢出

Java堆唯一的作用就是存储对象实例,只要保证不断创建对象并且对象不被回收,那么对象数量达到最大堆容量限制后就会产生内存溢出异常了。所以测试的时候把堆的大小固定住并且让堆不可扩展即可。测试代码如下 1 package com.xrq.test; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /**

2017-01-03 12:59:47 315

转载 Java虚拟机3:常用JVM命令参数

之后写的东西就会用到虚拟机参数了,现在这里汇个总自己平时用到的、看到的一些虚拟机参数。现在看不懂没关系,反正之后都会用到的:(1)-Xms20M表示设置堆容量的最小值为20M,必须以M为单位(2)-Xmx20M表示设置堆容量的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免堆自动扩展。大的项目-Xmx和-Xms一般都要设置到10G、20G甚至还

2017-01-03 12:59:09 279

转载 Java虚拟机2:Java内存区域及对象

几个计算机的概念为以后写文章考虑,也为巩固自己的知识和一些基本概念,这里要理清楚几个计算机中的概念。1、计算机存储单位从小到大依次为位Bit、字节Byte、千字节KB、兆M、千兆GB、TB,相邻单位之间都是1024倍,1024为2的10次方,即1Byte = 8bit,1K = 1024Byte,1M = 1024K,1G = 1024M,1T = 1024G

2017-01-03 12:58:27 287

转载 Java虚拟机1:什么是Java

前言让我们来看一下Java的广告词,来自http://www.java.com/zh_CN/about/:97%的企业桌面运行Java美国有89%的桌面(或计算机)运行Java全球有900万Java开发人员开发人员的头号选择排名第一的部署平台有30亿部移动电话运行Java100%的蓝光盘播放器附带了Java有50亿张Java卡在使用1.25亿台TV设备运行Java前5个原始设备制造

2017-01-03 12:57:49 963

转载 Java设计模式12:装饰器模式

装饰器模式装饰器模式又称为包装(Wrapper)模式。装饰器模式以多客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰器模式的结构通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类的方式并不可取,在面向对象的设计中,我们应该尽量使用组合对象而不是继承对象来扩展和复用功能,装饰器模式就

2017-01-03 12:11:16 441

转载 Java设计模式11:外观模式

外观模式外观模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的外观对象进行。外观模式是一个高层次的接口,使得子系统更易于使用。 医院的例子现代的软件系统都是比较复杂的。假如把医院比作一个子系统,按照部门职能,这个系统划分为挂号、门诊、划价、化验、收费、取药等。看病的人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易

2017-01-03 12:10:38 237

空空如也

空空如也

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

TA关注的人

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