自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (5)
  • 收藏
  • 关注

原创 负载均衡算法的种类

1、HTTP重定向负载均衡利用HTTP重定向协议实现负载均衡。HTTP重定向服务器是一台普通的应用服务器,其唯一的功能就是根据用户的HTTP请求计算得到一台真是的web服务器地址,并将该web服务器地址写入HTTP重定向响应中(响应状态码302)返回给用户浏览器。优点:比较简单缺点:浏览器需要两次请求服务器才能完成一次访问;性能较差,重定向服务器自身的处理能力可能成为瓶

2015-10-27 09:10:18 745

原创 负载均衡算法

负载均衡算法的实现可以分成两部分:1、根据负载均衡算法和Web服务器列表计算得到集群中一台Web服务器的地址2、将请求数据发送到该地址对应的Web服务器上负载均衡算法通常有以下几种:1、轮询(Round Robin RR)所有请求被依次分发到每台应用服务器上,即每台应用服务器要处理的请求数目都相同,适合于所有服务器硬件都相同的场景2、加权轮询(Weighted Round

2015-10-27 08:58:16 236

原创 mysql表锁定

通过下面的查询, 来查询当前数据库, 有哪些事务,都锁定哪些资源。 select    trx_id AS  `事务id`,    trx_state AS `事务状态`,    trx_requested_lock_id  AS  `事务需要等待的资源`,    trx_wait_started    AS  `事务开始等待时间`,

2015-10-23 09:57:01 309

原创 死锁的必要条件及如何处理死锁

死锁的必要条件1.互斥条件:一个资源每次只能被一个进程使用2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放3.不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺4.循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系如何处理死锁只要打破死锁必要条件中的任意一个,就能够解决死锁问题。

2015-10-20 08:59:11 468

转载 50道Java线程面试题

下面是Java线程相关的热门面试题,你可以用它来好好准备面试。1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点

2015-10-20 08:49:48 273

原创 wait(),notify(),notifyAll()用来操作线程为什么定义在Object类中

a、这些方法用于同步中b、使用这些方法时必须要标识所属的同步的锁c、锁可以是任意对象,所以任意对象调用的方法一定是定义在Object类中

2015-10-19 15:46:10 2010

原创 JDK并发数据结构

一、并发List1、Collections.synchronizedList(List list);2、CopyOnWriteArrayList   望文生义,当对象进行写操作时,复制该对象;若进行读操作,则直接返回结果,操作过程不需要同步。       核心思想:减少锁竞争。从而提高在高并发时的读取性能,但是它却在一定程度上牺牲了写性能。适用场合:读多写少的高并发场合。二

2015-10-19 15:15:48 383

原创 并发控制的方法

一、volatile使用volatile标识变量,将迫使所有线程均读写主内存中的对应变量,从而使得volatile变量在多线程间可见。二、同步关键字synchronized它是最常用的同步方法之一,简洁明了,代码可读性和维护性好。jdk6中,性能也有很大 的改进。为了有效地控制线程间的协作,需要配合使用synchronized以及notify()和wait()等方法。三、Ree

2015-10-19 14:56:13 2513

原创 垃圾收集器的类型

一、串行垃圾收集器特点:1、单线程进行垃圾回收   2、独占式(Stop the World)二、并行垃圾收集器并行垃圾收集器只是简单地将串行回收器多线程化。它也是独占式的。三、CMS(Concurrent Mark Sweep译为并发标记清除)多线程、非独占式的垃圾回收器。CMS回收器不会等待堆内存饱和时才进行垃圾回收,而是当堆内存使用率达到某一阀值时便开始进行回收,

2015-10-19 14:17:50 269

原创 堆分配参数总结

-Xms:初始堆大小-Xmx:最大堆大小-Xss:线程栈的大小-XX:NewSize:设置新生代大小-XX:PermSize:永久区的初始值-XX:MaxPermSize:永久区的最大值-XX:MinHeapFreeRatio:设置堆空间最小空闲比例-XX:MaxHeapFreeRatio:设置堆空间最大空闲比例-XX:NewRatio:设置老年代与新生代的比例

2015-10-19 14:15:54 378

原创 引用类型的种类

一、强引用特点:1、强引用可以直接访问目标对象   2、强引用所指向的对象在任何时候都不会被系统回收。JVM宁愿抛出OOM异常,也不回收强引用所指向的对象   3、强引用可导致内存泄露二、软引用除强引用外最强的引用类型,可通过java.lang.ref.SoftReference使用软件引用。一个软引用的对象,不会被JVM很快回收,JVM会根据当前堆的使用情况来判断何时回收。当

2015-10-19 13:35:37 514

转载 大型网站的灵魂——性能

前言    在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。所以我打算写一个系列,从理论到实践讲述大型网站的点滴,这也是一个共同学习的过程,希望自己能坚持下去。系列大概会分为两部分,理论和实践,理论部分尽量通俗易懂,也要讲一些细节。实践部分会抽取一

2015-10-16 13:46:56 297

转载 java程序性能优化

一、避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。 例子: import java.util.vector;class cel { void method (vector vector) { for (int i = 0; i < vector.

2015-10-16 13:17:21 185

转载 大型网站系统架构的演化

前言    一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海

2015-10-16 13:01:40 250

原创 java内存模型

在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式进行,整个通信过程对程序员完全透明。如果编写多线程程序的Java程序员不理解隐式进行的线程之间通信的工作机制,很可能会遇到各种奇怪的内存可见性问题。Java内存模型的抽象示意图如下:从上图来看,线程A与线程B之间如要通信

2015-10-13 11:42:43 251

原创 锁在java虚拟机中的实现和优化

偏向锁思想:若某一锁被线程获取后,便进入偏向模式,当线程再次请求这个锁是,无需再进行相关的同步操作,从而节省了操作时间。偏向锁使用于竞争不激烈的情况,在竞争激烈的情况下,会导致持有锁的线程不停地切换,锁也很难一直保持在偏向模式,此时,不仅得不到性能的优化,反而有可能降低系统性能。轻量级锁如果偏向锁失败,Java虚拟机会让线程申请轻量级锁。锁膨胀当轻量级锁失败,虚拟机就会使用重量级锁

2015-10-12 15:47:41 408

原创 锁在应用层的优化思路

减少锁的持有时间减小锁粒度比如:ConcurrentHashMap中增加一个表项,并不是将整个HashMap加锁,而是首先根据hashcode得到该表项应该被存放到哪个段中,然后对该段加锁,并完成put()操作。在多线程环境中,如果多个线程同时进行put()操作,只要被加入的表项不存放在同一个段中,则线程间便可以做到真正的并发。锁分离依据应用程序的功能特点,将一个独占锁分成多个锁。如:Li

2015-10-12 15:38:33 486

原创 常用的垃圾回收算法

引用计数法(Reference Counting)java垃圾回收器中,没有使用这种算法。缺点:a. 无法处理循环引用的情况   b. 引用计数器在每次因引用和消除的时候,需要伴随一个加法和减法操作,对系统性能有一定的影响标记清除法(Mark-Sweep)            标记所有从根节点开始的可达对象。所以未被标记的对象就是未被引用的垃圾对象,然后就会在清除阶段清除所有

2015-10-12 13:42:58 1195

原创 mysql备份

方式一:mysqldump命令mysqldump –u root –p 数据库名>备份文件名.sql 优点:简单,可针对单表备份,在全量导出表结构的时候尤其有用。 缺点:简单粗暴,单线程,备份慢而且恢复慢,跨IDC有可能遇到时区问题。 mydumper是mysqldump的加强版。相比mysqldump: 内置支持压缩,可以节省2-4倍的存储空间。

2015-10-10 09:07:23 267

原创 DNS域名解析过程

浏览器检查缓存中有没有这个域名对应的解析过的IP地址,如果有,结束如果用户浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。前两个过程都无法解析,操作系统会把这个域名发送给这里设置的LDNS,也就是本地区的域名服务器如果LDNS仍然没有命中,就直接到Root Server域名服务器请求解析。根域名服务器返回给本地域名服务器一个所查询域的主域名服务器地址(gTLD)本地

2015-10-09 16:46:05 519

浏览器json插件

推荐一款比较好用的google浏览器json插件。。。。。。

2018-06-06

这就是搜索引擎-核心技术详解

关于搜索引擎的一本好书,强烈推荐,都是做搜索引擎的核心技术

2018-06-06

各种各样的java API

各种各样的java API,应有尽有。html,javascript,jquery,ajax,struts1,struts2,hibernate,spring.

2013-11-26

空空如也

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

TA关注的人

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