自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 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

转载 《Thinking In Algorithm》06.Binary search tree(二叉查找树)

The search tree data structure supports many dynamic-set operations, includingSEARCH,MINIMUM,MAXIMUM,PREDECESSOR,SUCCESSOR,INSERT, andDELETE. Thus, we can use a search tree both as a dictionary and

2017-07-31 21:10:07 270

转载 java synchronized类锁,对象锁详解(转载)

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。     一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。     二、然而,当一个线程访问object的一个synch

2017-07-31 00:22:05 499

转载 Java并发集合操作中对锁的应用

摘要: 通过锁解决在不同线程读取和修改集合引发的问题。下面以List结合为例子,先来看以下代码:public static ArrayListdatas=new ArrayList();//初始化数据 public static void initData(){ for(int i=0;i20;i++){ datas.add(""+i); } } //线

2017-07-30 23:40:10 584

转载 【荐读】我观察14年才发现,那些很努力却没成就的人都有一个特点

来源:知识管理中心KMCenter(ID:KMCenter)作者:田志刚1  一个段子,虽然今天看起来有点老,但却仍然形象:  你用小米手机,穿凡客T恤,泡贝塔咖啡听创业讲座,宅家看哈佛公开课,知乎果壳关注无数,36氪每日必读,BAT大格局了如指掌,张小龙贪嗔痴如数家珍。肉夹馍只吃西少爷,约饭局去雕爷,喜欢罗永

2017-07-30 20:53:24 465

转载 JVM 的类初始化机制

文章目录1. Loading, Linking, and Initialization1.1. Loading1.2. Linking1.2.1. Verification1.2.2. Preparation1.2.3. Resolution1.3. Initialization2. 示例2.1. 属性在不同时期的赋值2.2. 主动调用 vs. 被动

2017-07-30 12:13:10 357

转载 深入类加载器----线程上下文类加载器

深入类加载器(四)----线程上下文切换类加载器                      线程上下文类加载器 我们知道在Java中的加载器的加载模式是双亲委托模式,这种模式是遵从父类优先的原则。但是在一些场合中,这种双亲委托机制反而是行不通的。最典型的是JDBCApi:其实JDBCApi包括俩部分:一部分是oragle公司提供的接口类,一部分是

2017-07-23 19:44:16 275

转载 用Java实现非阻塞通信

用ServerSocket和Socket来编写服务器程序和客户程序,是Java网络编程的最基本的方式。这些服务器程序或客户程序在运行过程中常常会阻塞。例如当一个线程执行ServerSocket的accept()方法时,假如没有客户连接,该线程就会一直等到有了客户连接才从accept()方法返回。再例如当线程执行Socket的read()方法时,如果输入流中没有数据,该线程就会一直等到读入了足够的数

2017-07-13 15:56:28 2283

转载 JAVA并发编程学习笔记之CAS操作

CAS操作CAS是单词compare and set的缩写,意思是指在set之前先比较该值有没有变化,只有在没变的情况下才对其赋值。我们常常做这样的操作[java] view plain copy print?if(a==b) {      a++;  }  if(a==b) { a++;}试想一下如果在做a++之前a的值被改变了怎

2017-07-06 11:35:07 201

转载 java.lang.OutOfMemoryError: PermGen space及其解决方法

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同

2017-07-06 11:23:10 257

转载 【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17348313happen—before规则介绍    Java语言中有一个“先行发生”(happen—before)的规则,它是Java内存模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,其意思就是说,在发生操作B之前,操作A产生的影响都能被操作B观察到,“

2017-07-04 00:17:11 233

转载 Java中CAS详解

在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制

2017-07-03 14:12:13 250

转载 SQL的四种连接-左外连接、右外连接、内连接、全连接

SQL的四种连接-左外连接、右外连接、内连接、全连接 今天在看一个遗留系统的数据表的时候发现平时查找的视图是FULL OUT JOIN的,导致平时的数据记录要进行一些限制性处理,其实也可以设置视图各表为右外连接并在视图上设置各列的排序和筛选条件就可以达到效果。 联接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定联接条件。WHERE和HAVING子句也可

2017-06-21 11:15:50 208

转载 sql: where条件中AND、OR运算符的组合使用

AND、OR运算符的组合使用在WHERE子句中,通过AND、OR运算符可以同时连接多个条件,当然AND、OR运算符也可以同时使用。但是当AND、OR运算符同时存在时,其优先级如何确定呢?与大多数语言一样,SQL语言认为AND运算符的运算级别要高于OR运算符。即当出现condition1OR   condition2 AND   condition3

2017-06-21 11:14:55 62024 1

转载 Java 防SQL注入方法

Java 防SQL注入方法

2017-06-21 10:38:39 2492

转载 Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误。其实sql注入漏洞就是一个。作为一个菜鸟小程序员,我对sql注入的东西了解的也不深入,所以抽出时间专门学习了一下。现在把学习成果分享给大家,希望可以帮助大家学习。下面我们就来看一下。一、什么是sql注入呢?        所

2017-06-20 23:47:21 282

原创 java异常处理总结

1、Java异常分为两种:Checked异常和Runtime异常;java认为Checked异常都是可以在编译阶段被处理的异常,所以它强制进行处理;Runtime异常无须处理、2、Exception {1、SQLException  //常用异常结构                        2、IOEException                        3、Runti

2017-06-18 19:14:36 272

转载 浮点数在计算机中存储方式

作者: jillzhang    联系方式:jillzhang@126.com    本文为原创,转载请保留出处以及作者, 谢谢    C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,

2017-06-18 12:19:51 264

原创 java运行环境总结

1、main参数的args 数组接受外界的输入:例如:Java Test xue xi "Java spring";如果参数本身包含空格用""括起来。2、String str = "java"+"struts"+"spring";会生成额外的javastruts和strutsspring额外的两个字符串变量;这个共在内存生成6个变量。3、string so="hello"; 存储在常量池中

2017-06-18 10:26:23 334

原创 泛型总结

1、泛型:就是允许在定义类和接口时指定类型参数,这个类型形参将在生命变量、创建对象时确定。2、从泛型派生子类:被派生的父类和接口不能再包含类型形参,必须指明父类的泛型类型或者不指定默认为object类型。3、静态修饰地方不允许使用泛型形参。

2017-06-12 21:47:25 177

原创 java集合总结

1、set是一个罐子记不住放入元素的顺序,不允许元素重复;list集合像个数组可以记住元素的顺序;map只能存储键值对;queue表示队列。2、itretrator接口进行迭代时不可以修改集合里的元素,否则将引起运行异常。foreach遵循同样。3、hashset不是同步的,它的判断元素是否相等是通过equal方法和对象的hashCode方法判断的。

2017-06-10 22:37:27 210

原创 java对象(下)

1、final修饰的变量的值不可以重赋值,注意区分基本类型和引用类型,对引用类型来说可以改变引用型变量所引用对象的内容。2、final修饰的方法不可以重写。

2017-06-08 12:35:31 170

原创 Java单例模式例子

Java 单例模式的实例代码

2017-06-08 12:16:34 1078

原创 java对象总结(上)

1、面向对象方法的三个基本特征:封装、继承、多态,继承是面向对象实现软件的复用,封装是将对象的细节隐藏提升类的内部安全,多态是子类对象可以直接赋值给父类变量但运行时依然保存子类的行为特征。2、类是具有共同属性、方法的对象的集合,类是对象的抽象,对象是类的实例。3、Static 修饰成员表明它是属于这个类共有的方法;静态成员不能访问非静态成员。4、构造器不能定义返回值类型,编译时会通不过

2017-06-05 07:02:29 227

原创 深入数组

1、实际的数组元素存储在堆(heap)内存中,数组引用变量是一个引用性类型的变量,被存储在栈(stack)内存中。2、当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会被逐个放入这块内存中,随着方法的执行结束,这个方法的内存栈也将销毁。因此所有方法中定义的变量都是放到内存中的;当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用,这个运行时数据区

2017-06-04 12:20:28 178

原创 Linux tar.gz文件不全时解压错误现象

hadoop-2.6.0-cdh5.6.0/share/doc/hadoop-sls/images/maven-logo-2.gifhadoop-2.6.0-cdh5.6.0/share/doc/hadoop-sls/images/logo_apache.jpggzip: stdin: unexpected end of filehadoop-2.6.0-cdh5.6.0/share/

2017-05-31 16:56:13 4236

转载 Centos 6.5下的OPENJDK卸载和SUN的JDK安装、环境变量配置

Centos 6.5下的OPENJDK卸载和SUN的JDK安装、环境变量配置 说明  图形界面安装,会自带有Centos6.5自带的OPRNJDK!!!     *********************************自带的OPENJDK的卸载*********************************第一步:查看Centos6.5自

2017-05-31 16:02:50 391

原创 linux 软件安装命令

1、yum 命令可以自动解决安装过程中的依赖包问题,但要求网络通。2、tar.gz 通过tar -xzvf XXX  安装3、rpm 是红帽(RedHat)软件包管理工具,具体命令如下: rpm -ivh 软件包名   安装软件包并显示安装进度。rpm -qa        查询已经安装哪些软件包,可以带 | grep 进行输出过滤。rpm -Uvh  软件包名    

2017-05-31 15:11:22 446

JavaEE7-api

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

2018-01-24

oracle11g客户端

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

2018-01-24

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

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

2010-03-15

空空如也

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

TA关注的人

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