自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (3)
  • 收藏
  • 关注

原创 变才是不变

今天看到一个55岁左右面容慈祥的老设计师,用手工画了一整副园林设计图,用很大的纸纯手工画的,还有细致的素描和插图,感觉画这么整套设计方案需要好长的时间。给一个30多岁的女甲方讲图,看图,女甲方说现在都电脑了,手工图缺少比例和地形高度,缺少实际具体的模型图。说了老设计师一大通。时代在变,设计也在变,唯有应变才能适应不变。

2017-08-29 21:28:02 255

原创 JSP四种页面跳转的分析和总结

1、静态编译指令include 2、jsp forward指令 3、动态jsp 编译指令 4、response重定向区别:1、静态include导入是把整个页面都完全融入一个整体servlet,动态导入是用Servlet的include方法来引入的导入页面内容(body部分)。静态导入时被导入的页面的编译指令会起作用。2、forword是替代原理的界面,in

2017-08-26 17:38:19 399

原创 并发编程-synchronized的实现原理和应用

synchronized称为重量级锁,在JDK1.6后对它进行了多种优化,引入了偏向锁和轻量级锁。原理:在JVM中基于进入和退出Monitor(监视器)对象来实现的,编译后monitorenter指令插入到同步代码块的开始位置,而monitorexit是插入到结束和异常处。在内存里的存储结构和升级过程:HotSpot对象头分为两部分:第一部分存储类如哈希码、GC分代年龄、锁标志,第二部

2017-08-24 22:55:03 218

原创 并发编程-volatile原理和应用

volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的可见性。原理:1)、volatile变量在写操作指令编译为汇编指令时在后面会添加Lock前缀指令引起处理器缓存写回到内存。           2)、一个处理器的缓存写回到内存会导致其他处理器的缓存无效。缓存一致性:多处理器下每个处理器通过嗅探在总线上传播的数据来检查自己的数据缓存的值是不是过期了,当处理

2017-08-24 20:27:07 170

原创 并发编程1-线程池实现原理解析

1、线程池的实现原理:1)、当线程池初始化时,线程池里没有线程,当提交一个任务到线程池后,判断核心线程池里的线程数是否达到corePoolSize,如果没有则进行创建一个新的工作线程来执行任务。2)、如果核心线程池已经满,则把任务准备添加到工作队列,判断工作队列是否已经满,如果没有满添加到工作队列等待线程来取;工作中的线程完成工作后会从工作队列取新的任务进行执行;3)、如果工作队列满了

2017-08-24 16:57:20 280

转载 JVM调优总结 -Xms -Xmx -Xmn -Xss

堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms355

2017-08-23 23:00:40 185

转载 JVM系列一:JVM内存组成及分配

java内存组成介绍:堆(Heap)和非堆(Non-heap)内存       按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发

2017-08-23 22:30:24 162

转载 JVM系列二:GC策略&内存申请、对象衰老

JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类       现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenu

2017-08-23 22:10:21 225

转载 JVM7、8详解及优化

1. JVM堆内存划分这两天看到下面这篇文章的图不错。一图读懂JVM架构解析1.1 JDK7及以前的版本其中最上一层是Nursery内存,一个对象被创建以后首先被放到Nursery中的Eden内 存中,如果存活期超两个Survivor之后就会被转移到长时内存中(Old Generation)中。永久内存中存放着对象的方法、变量等元数据信息

2017-08-23 21:33:02 399

转载 Java Hotspot G1 GC的一些关键技术

转载:https://tech.meituan.com/g1.html前言G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生。在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 248

2017-08-23 21:03:38 390

转载 JVM参数设置、分析

转载:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程

2017-08-23 18:39:45 199

转载 Linux与JVM的内存关系分析

转自: http://tech.meituan.com/linux-jvm-memory.html葛吒2014-08-29 10:00引言在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m。从表面上,物理内存应该是足够使用的;但实际运行的情

2017-08-23 18:19:03 234

原创 Linux(Centos)之安装tomcat并且部署Java Web项目

阅读目录1.准备工作2.在Linux下安装Tomcat8.03.Linux中设置tomcat的服务器启动和关闭4.Linux中设置tomcat的开机启动5.给tomcat设置用户名和密码登录6.使用MyEclipse打包Java Web项目7.将Java Web项目发布到Tomcat8.0下面并且访问展示回到顶部1.准备工作  a.下载tomcat linux的包,地址

2017-08-22 19:17:49 438

转载 Web开发环境搭建 Eclipse-Java EE 篇

Web开发环境搭建 Eclipse-Java EE 篇【原创内容,转载注名出处】1. 下载和安装1.1 下载JDK在Java官方网站下载最新版本的 Java SE:  http://www.oracle.com/technetwork/java/javase/downloads/index.html如今电脑基本上都是64位,所以后续所有提到下载的资源,如果有

2017-08-21 21:54:59 16939 1

转载 一次使用Eclipse Memory Analyzer分析Tomcat内存溢出

前言在平时开发、测试过程中、甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定解决方案;2、内存溢出,内存中的对象都还必须存活着,这说明Java堆分

2017-08-21 17:57:33 215

转载 Java程序内存分析:使用mat工具分析内存占用

摘要: 在工作中可能会遇到内存溢出这种灾难性的问题,那么程序肯定是存在问题,找出问题至关重要,上一篇文章讲了jmap命令的使用方法,当然用jmap导出的文件我们也看不懂啊,那就交给memory analyzer(mat)这个工具,让他帮助我们来观察程序的内存分布情况吧。    MAT 不是一个万能工具,它并不能处理所有类型的堆存储文件。但是比较主流的厂家和格式,例如 Sun, HP

2017-08-21 17:24:03 264

转载 jvm内存GC详解

一、相关概念 a. 基本回收算法 1. 引用计数(Reference Counting) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 2. 标记-清除(Mark-Sweep) 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对

2017-08-21 09:20:38 194

转载 JVM(Java虚拟机)优化大全和案例实战

堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),Ne

2017-08-21 09:04:32 168

转载 秒杀系统的架构解决之道

秒杀 架构2017-04-24 朱超 10203 阅读本文将会从三个方面来分别探讨如何设计应用架构以更好的支持“秒杀”类需求,包括秒杀带来的问题和挑战、产品架构解决之道、流量控制解决方案。秒杀场景下带来的海量用户所造成的流量突增对系统冲击力可想而知,瞬时流量之高一方面造成的读写冲突,数据库锁会非常严重,另一方面应用服务器能否撑住也是一个问题。同时由于秒杀业务一般是各

2017-08-20 17:01:14 256

转载 DB主从一致性架构优化4种方法

DB 主从2016-08-24 马如林 5167 阅读需求缘起大部分互联网的业务都是“读多写少”的场景,数据库层面,读性能往往成为瓶颈。如下图:业界通常采用“一主多从,读写分离,冗余多个读库”的数据库架构来提升数据库的读性能。这种架构的一个潜在缺点是,业务方有可能读取到并不是最新的旧数据:(1)系统先对DB-master进行了一个写操

2017-08-19 18:26:22 201

转载 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)

第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库:可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失;负载均衡策略:可以降低单台机器的访

2017-08-17 11:08:14 177

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

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅...

2017-08-14 23:10:18 200

原创 Java ConCurrentHashMap原理总结

Java ConCurrentHashMap原理总结ConCurrentHashMap采用锁分段技术提高了并发访问效率。它由segment数组和HashEntry数组组成。segment是采用了可重入锁,在map里扮演锁的角色;HashEntry则存储键值对数据。存储结构图如下:get取数据操作:1)、定位segment:通过key的hash值进行再hash,取再hash值得高位与(segemen...

2017-08-14 22:09:47 337

转载 史上最清晰的红黑树讲解(上)

本文github地址本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。总体介绍Java TreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过其本身的自然顺序(natural ordering),也

2017-08-01 11:28:06 261

JavaEE7-api

JavaEE7-api, 可以直接打开查看API使用方法 。开发时以备查看。

2018-01-24

oracle11g客户端

oracle11g客户端,64位版。不用去官网注册账号下载了,这里直接下载吧。

2018-01-24

EXT学习笔记-项目应用实践

开发EXT的过程中总结的一些使用技巧。关于EXT对象封装的一些应用。

2010-03-15

空空如也

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

TA关注的人

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