- 博客(106)
- 收藏
- 关注
转载 GluonJ
GluonJ是一个简单的面向切面编程(AOP)的java工具.GluonJ针对面向对象的语言(OOP)结构提供了一个极其简单的扩展方式实现了AOP的特性,非常独特:不同于其他流行的AOP框架,没有采用pointcut-advice,而是采用了revisers 和 within methods. Gluonj是较高级别的API,底层使用javassist进行java类文件处
2017-09-28 10:02:35
803
转载 hostswap dcevm
什么是dcevm dcevm(DynamicCode Evolution Virtual Machine)是java hostspot的补丁(严格上来说是修改),允许(并非无限制)在运行环境下修改加载的类文件.当前虚拟机只允许修改方法体(method bodies),decvm,可以增加 删除类属性、方法,甚至改变一个类的父类。原理参见Dynamic Code Evolut
2017-09-28 10:01:53
443
转载 classLoader卸载与jvm热部署
以下的相关介绍都是在未使用dcevm的情况classLoader的卸载机制 jvm中没有提供class及classloader的unload方法.那热部署及osgi中是通过什么机制来实现的呢?实现思路主要是通过更换classLoader进行重新加载.之前的classloader及加载的class类在没有实例引用的情况下,在perm区gc的情况下会被回收掉.
2017-09-28 10:01:17
558
转载 JVM系列五:JVM监测&工具[整理中]
前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案。正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置,每个参数的设置都需要对JVM进行长时间的监测,并不断进行调整才能找到最佳设置方案。本文将介绍如果通过工具及Java api来监测JVM的运行状态,并详细介绍各工具的使用方法。 需要监测的数据:(内存使用情况 谁使用了内存 GC的
2017-09-28 10:00:02
318
转载 JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
java application项目(非web项目)改进前:-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xloggc:logs/gc.log-Dsun.rmi.dgc
2017-09-28 09:59:25
275
转载 JVM系列三:JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同
2017-09-28 09:58:50
235
转载 JVM系列二:GC策略&内存申请、对象衰老
JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenu
2017-09-28 09:57:50
388
转载 JVM系列一:JVM内存组成及分配
java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发
2017-09-28 09:52:20
235
转载 Js apply方法详解
Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享.. 如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.apply和cal
2017-07-24 17:32:50
275
转载 crontab 详解
cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否在运行,使用 /sbi
2017-07-12 11:39:53
472
转载 centos7 firewall 防火墙 命令
centos7的系统 防火墙是 firewall 在这里总结一下。 如果你的系统上没有安装使用命令安装#yum install firewalld //安装firewalld 防火墙开启服务 # systemctl start firewalld.service关闭防火墙# systemctl stop firewalld.se
2017-07-05 16:57:05
679
转载 Systemd及service文件解析
Systemd及service文件解析 Systemd是Linux下的一款系统和服务管理器,兼容SysV和LSB的启动脚本。Systemd的特征有:支持并行化任务;同时采用socket式与D-Bus总线式激活服务;按需启动守护进程(daemon);利用linux的cgroups监视进程;支持快照和系统恢复;维护挂载点和自动挂载点;各服务间基于依赖关系进行精密控制。其中的监视和控制功能的
2017-07-05 16:00:35
5227
转载 (五)Docker镜像管理2之nginx镜像制作
下面我们来制作一个Nginx的镜像,通过编译安装方式来完成。重新制作一个基础镜像文件内容12345678910111213141516171819202122
2017-07-05 15:55:40
2748
转载 (五)Docker镜像管理2之镜像制作
构建一个自定义的Docker镜像必定离不开Dockerfile,有了这个文件我们就可以通过docker image build命令来构建我们自己的镜像,所以我们从先从制作一个简单的镜像开始。简单的Dockerfile:首先我们要先建立一个目录,用于存放Dockerfile,这个目录就是构建镜像的环境,该环境称作构建上下文,在构建镜像的时候会将该上下文和该上下文中的文件和
2017-07-05 14:27:27
632
转载 CentOS 7 系列(四)系统服务配置 服务(Service)
System.service:服务单元,你可以理解为系统服务和原来的init.d下面的服务一样,只是比它更加丰富。每一个服务都是以.service进行标识的,如下图:1systemctl list-unit-files --type=service我们看看一个服务包含哪些内容:
2017-07-05 14:25:26
6921
转载 CentOS 7 系列(三)系统服务配置 目标(Target)
Target(目标):在systemd中有一个叫做target的单元,也叫作目标单元。这个单元没有专用的配置选项,它只是以.target结尾的文件,它本身没有具体功能,你可以理解为类别,它的作用就是将一些单元汇聚在一起。通过下面的命令可以查看系统的target单元。1systemctl list-unit-file --type=
2017-07-05 14:24:33
3431
转载 CentOS 7 系列(二)系统服务配置--单元(Unit)
systemd.unit单元(Unit)Systemd由一个叫做单元(Unit)的概念,它保存了服务、设备、挂载点和操作系统其他信息的配置文件,并能够处理不同单元之间的依赖关系。大部分单元都静态的定义在单元文件中,也有一些是动态生成的。单元有多种状态:处于活动的则是(active),当前正在运行停止的则是(inactive),当前已经停止启动
2017-07-05 14:23:42
4435
转载 CentOS 7 系列(一)系统服务 systemd
Systemd:在CentOS 7中开始使用了Systemd,它取代了原来的SysVinit,我们在系统中查看,你会发现systemd这个进程的PID为1,而不是原来的init进程。systemd进程将作为所有进程的父进程运行,这就是在CentOS 7中的新的进程管理程序。这仅仅是一个名字的变化吗?答案是否定的。Systemd是Linux内核发起的第一个程序,通过上面的截图
2017-07-05 14:21:07
444
转载 Apache 配置虚拟主机三种方式
一、基于IP 1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP:[root@localhost root]# ifconfig eth0:1 192.168.1.11[root@localhost root]# ifconfig eth0:2 192.168.1.12[root@localhost root]#
2017-02-14 16:29:01
335
转载 TCP-IP
本文通过两个图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。图1 TCP 三次握手四次挥手图1主要包括三部分:建立连接、传输数据、断开连接。1)建立TCP连接很简单,通过三次握手便可建立连接。2)建立好连接后,开始传输数据。TCP数据传输牵涉到的概念很多
2016-12-12 14:38:05
312
转载 实用tcpdump命令
实用tcpdump命令 //查看本机与mysql的操作命令 注意 -i any表示监听所有网络接口,我们也根据自身情况选择网络接口 #tcpdump -i any -w - dst port 3306 |strings //查看本机58895上与mysql的命令 注意 -i any 表示监听所有网络接口,我们需要根据自身情况选择网络接口 #tcpdump -i any -
2016-11-27 20:02:07
4608
转载 tcpdump
简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tc
2016-11-27 19:36:47
322
转载 Linux Make 命令详解
无论是在linux 还是在Unix环境 中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每
2016-11-18 20:52:44
485
转载 Linux GCC常用命令
Linux GCC常用命令1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也
2016-11-18 20:14:42
295
转载 Java四种线程池的使用
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期
2016-08-01 10:33:16
267
转载 ed 命令简介
ed 命令简介:在 unix/linux 平台下,首先要学习的就是文本编辑,而 ed 编辑器是 unix/linux 操作系统下最简单、最典型的文本编辑器,因此,学习 ed 编辑器能够帮助你很好的理解一般的文本操作,而且还可以为你以后学习 unix/linux下的一些常用命令(如 grep,sed,...)打下基础。 ed 编辑器是以行为单位对文本进行操作的编辑器,
2016-06-23 13:53:09
831
转载 jQuery原型方法init的详解
先来了解几个jQuery方法:$("li") -> this -> jQuery对象 -> { 0 : "li", 1 : "li", 2 : "li", length : 3 }$("aaa") 的效果跟 $("")的效果是一样的。然后来看一下init方法,也就是新建jQuery对象调用的方法:jQuery.fn = jQuer
2016-05-04 18:01:32
2824
转载 ThreaLocal内存泄露的问题
在最近一个项目中,在项目发布之后,发现系统中有内存泄漏问题。表象是堆内存随着系统的运行时间缓慢增长,一直没有办法通过gc来回收,最终于导致堆内存耗尽,内存溢出。开始是怀疑ThreadLocal的问题,因为在项目中,大量使用了线程的ThreadLocal保存线程上下文信息,在正常情况下,在线程开始的时候设置线程变量,在线程结束的时候,需要清除线程上下文信息,如果线程变量没有清除,会导致线程中保存的对
2016-04-29 00:46:18
441
转载 Java内存模型-jsr133规范介绍
最近在看《深入理解Java虚拟机:JVM高级特性与最佳实践》讲到了线程相关的细节知识,里面讲述了关于java内存模型,也就是jsr 133定义的规范。系统的看了jsr 133规范的前面几个章节的内容,觉得受益匪浅。废话不说,简要的介绍一下java内存规范。什么是内存规范在jsr-133中是这么定义的A memory model describes, given a
2016-04-29 00:45:53
366
转载 java垃圾回收总结(2)
上一篇 介绍了jvm虚拟机运行时内存结构以及如何标识需要回收的对象,这一节主要讲解垃圾回收的基本算法。基本上 jvm内存回收有三种 基本算法标记-清除标记清除的算法最简单,主要是标记出来需要回收的对象,然后然后把这些对象在内存的信息清除。如何标记需要回收的对象,在上一篇文章里面已经有说明。 标记-清除-压缩这个算法是在标记-清除的算法
2016-04-29 00:43:14
365
转载 java 垃圾回收总结(1)
以前看过很多次关于垃圾回收相关的文章,都只是看过就忘记了,没有好好的整理一下,发现写文章可以强化自己的记忆。 java与C,c++有很大的不同就是java语言开发者不需要关注内存信息,不会显式的直接操作内存,而是通过jvm虚拟机来实现。java虚拟机运行的时候内存分配图如下图: jvm虚拟机栈:一个是线程独有的,每次启动一个线程,就创建一个jvm虚拟
2016-04-29 00:42:18
264
转载 深入源码分析TreeSet和TreeMap
类似于前面介绍的HashMap和HashSet之间的关系,HashSet底层依赖于HashMap实现,而TreeSet底层则采用一个NavigableMap来保存TreeSet集合的元素。但实际上,由于NavigableMap只是一个接口,因底层依然是使用TreeMap来包含Set集合中的所有元素。我们观察TreeSet的部分源码:package java.util; public c
2016-04-29 00:40:17
361
转载 JDK集合分析Set和Map的关系(自己实现Set到Map的扩展)
Set代表的是一种集合元素无序,集合元素不可重复的集合,Map则代表一种由多个Key-Value对组成的集合,Map集合类似于传统的关联数组。表面上看,Map和Set毫无关联,但其实Map和Set之间有莫大的关联,可以说,Map是Set的扩展。Set集合的继承体系Map集合的继承体系仔细观察上述两个集合的继承体系,发现Map和Set接口,实现类的类名几乎完全
2016-04-29 00:39:32
341
转载 HashMap和HashSet(深入HashMap源码分析HashMap元素的存储)
前面我们通过继承一个HaseSet把一个Set集合扩展为一个Map。其实我们扩展的Map本质上是一个HashMap。 HashMap和HashSet之间也有很多相似之处,HashSet采用Hash算法来决定集合元素的存储位置,这样可以保证快速的存,取集合元素。对于HashMap而已,系统仅将value作为key的附属物而已,系统采用Hash算法来决定key的存储位置,这样可以保证快速的存,取集
2016-04-29 00:39:09
258
转载 深入分析HaspMap源码
1.分析HaspMap的构造器前面分析HashMap的put(K key,V value)源码的时候发现,其中有两个特殊的变量:size:该变量保存了该HashMap中所包含的key-value对的数量。threshold:该变量包含了HashMap能容纳的key-value对的极限,它的值等于HashMap的容量乘以负载因子(load factor)。在HashM
2016-04-29 00:38:57
264
转载 深入源码分析HashSet
前面我们花了一定的篇幅学习了HashMap的一些底层原理,以及简单了解了HashSet和HashMap两种集合的渊源,现在我们从HashSet源码入手,来学习HashSet更细节的地方。对于HashSet而言,它是基于HashMap实现的。HashSet底层采用HashMap来保存元素,因此HashSet底层其实比较简单。package java.util;public class
2016-04-29 00:38:26
630
转载 DOM解析
DOM解析非官方,不在jdk中。使用步骤: 1)导入dom4j的核心包。 dom4j-1.6.1.jar 2)编写Dom4j读取xml文件代码示例:public static void main(String[] args) { try { //1.创建一个xml解析器对象 SAXReader re
2016-04-29 00:38:08
570
转载 java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synch
2016-04-29 00:37:02
241
转载 IceGrid负载均衡部署(转)
【IceGrid负载均衡部署步骤】1、环境主机1:IP=192.168.0.239,上面部署注册表服务器registry和节点node1,registry和node1运行在同一进程中;主机2:IP=192.168.0.25,上面部署节点node2;其中每个节点中包含一个服务程序,服务程序均在节点启动时启动。2、主机1配置(1)服务程序部署XML:app_rep.xml,
2016-04-26 01:42:54
475
转载 集合、泛型、IO流、多线程、Junit 、内省 、Properties、 路径问题
集合泛型IO流多线程JunitAssert注解内省Properties路径问题集合---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList: 数组实现, 查找快, 增删慢 由于是数组实现, 在增和删的时候会牵扯到数组
2016-04-25 13:04:45
454
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人