自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (6)
  • 收藏
  • 关注

原创 压测数据参考

8U 16G 100ms springbootwrk -t16 -c500 -d30s --latency http://localhost:8080/helloRunning 30s test @ http://localhost:8080/hello 16 threads and 500 connections Thread Stats Avg Stdev Max +/- Stdev Latency 255.52ms 128.35ms 1.31s

2023-05-21 19:30:26 476 1

原创 java zerocopy 原理

许多web应用都会向用户提供大量的静态内容,这意味着有很多data从硬盘读出之后,会原封不动的通过socket传输给用户。这种操作看起来可能不会怎么消耗CPU,但是实际上它是低效的:kernal把数据从disk读出来,然后把它传输给user级的application,然后application再次把同样的内容再传回给处于kernal级的socket。这种场景下,application实际上只是作为

2017-04-28 16:41:46 412

原创 jvm莫名启动被linux系统杀掉进程

出现一个奇怪的现象,一个应用运行会儿被linux进程杀掉了,jvm 错误也打开了,就是没有错误日志,初步想可能内存或者什么资源不足被干掉,但没有日志。但我对linux不是很熟,于是请教了jdk团队的伙伴,解决了。直接上图dmesg |grep javadmesg这个命令一看,嘿,发现内存不足,我用的jdk8 ,类对象会在metaspace,于是把这个最大空间大小

2017-03-10 20:52:06 5150 1

转载 java二叉树的非递归遍历

//===============采用非递归方式======================== public void theFirstTraversal_Stack(Node root) { //先序遍历 Stack stack = new Stack(); Node node = root; while (node != null || stack.size() > 0) {

2017-02-27 11:13:54 394

原创 java单链表reverse

直接代码如下: public static void main(String[] args) { SingleNode A = new SingleNode("A"); SingleNode B = new SingleNode("B"); SingleNode C = new SingleNode("C"); Singl

2017-02-14 20:31:09 385

转载 高并发下数据写入与过期

1.高效的数据写入(put)    在研究写入机制之前,我们先来回顾下上一节的内容。ConcurrentHashMap之所以读取很快,很大一部分原因归功于它的数据分割设计,就像是把书的内容划分为很多章,章下面又分了许多小节。同样的原理,写入过程也可以按这个规则把数据分为很多独立的块,也就是前一节提到的Segment。另一方面为了解决并发问题,加锁是一个不错的选择。再回头看看Segment类图(

2017-01-26 15:59:36 786

转载 jvm dup

http://blog.csdn.net/axman/article/details/2393621为什么对象被new 以后在执行dup操作?今天有个朋友问我,为什么一个new一个对象的指令在new后面紧跟的是dup操作?他说搜了可能找到的搜索引擎都找不到答案,包括翻了Java虚拟机指令>>这本书也没有任何说明.我们先来看看为dup指令的作用,dup指令可以复制栈顶的一个字再压入栈

2017-01-23 20:13:15 2630 1

原创 Asm实现静态AOP的两种方式-在进入方法和限出方法时注入代码实现aop代码增强

AOP常见的动态生成和静态生成   动态AOP是通过java动态代理或者字节码增强技术在runtime期间进行增强。   静态AOP在这儿定义为在应用启动完成之前,就通过字节码生成技术对代码进行增加。   缺点:动态AOP对原生不能aop ,且遇到USER user = new USER(),user.test()这种方法时无法对其test在不更改代码时进行拦截,静态AOP是可以这样做

2016-11-09 21:38:06 3378 1

原创 Asm实现静态AOP的两种方式-生成java-proxy类

AOP静态生成Java proxy 静态AOP基于java agent方式加载java-javaagent:myagent.jar   动态AOP是通过java动态代理或者字节码增强技术在runtime期间进行增强。   静态AOP在这儿定义为在应用启动完成之前,就通过字节码生成技术对代码进行增加。   缺点:动态AOP对原生不能aop ,且遇到USER use

2016-11-09 21:33:12 3505 1

原创 JAVA方法链路跟踪实现思路

背景   为了掌握链路中方法的执行情况,通过链路分析可以知道代码逻辑实现。技术   显然,为了需要跟踪方法的执行情况,需要对方法进行aop拦截   AOP常见的动态生成和静态生成。   动态AOP是通过java动态代理或者字节码增强技术在runtime期间进行增强。   静态AOP在这儿定义为在应用启动完成之前,就通过字节码生成技术对代码进行增加。   缺点:动态AOP

2016-11-09 20:37:44 17964 3

原创 记录一次LinkError排错:

记录一次LinkError排错:发现:通常有两个环境,一个日常,一个灰度。于是,日常测试好了,上灰度了,可怕的问题来了,访问某一功能,就报类linkerror错误了过程:       根据以往的经验,这种错误必定是类冲突了,那么类冲突一般通过排除类的加载去解决,但是我们这种情却不是这样,有一个中间件团队的插件(pandoda),另外应用里面一般也会有中间件相关的包,为了统一的管理,pa

2016-11-01 19:29:46 1845

原创 关于mock或者aop classloader思路描述

1.利用classfileTransform机制,premain()方式启动做。2、实现其transform方法@Overridepublic byte[] transform(final ClassLoader loader, String className, Class classBeingRedefined, Protectio

2016-07-27 23:24:47 1057

转载 领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同。于是我经常听到这样一个问题:怎么才能保证建模的正确性?

领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同。于是我经常听到这样一个问题:怎么才能保证建模的正确性?这听起来是个合理的质疑,但实际上却不是那么有道理。首先我们需要明白建模的目的是什么?如果仅仅是为了描画问题,那么并没有什么对错之分——仅仅是立场和角度的差别;而如果是为了企业业务系统而进行建模,那么这个问题应该变为:如何保证模型能够支撑企业的运营?

2016-07-10 21:11:04 1365

转载 java8新特性

Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Versus Inte

2016-07-09 17:27:56 411 1

转载 AbstractQueuedSynchronizer

AbstractQueuedSynchronizer如果不读源码,我不会知道AbstractQueuedSynchronizer,更不会认识到它使整个java.util.concurrent包中众多并发工具类的灵魂。AbstractQueuedSynchronizer官方的推荐用法是,在并发工具类内部使用一个同步器sync实现来继承AbstractQueuedSynchronizer,并把预留

2016-02-04 14:46:39 848

转载 G1垃圾收集器

文介绍如何使用G1,及在 Hotspot JVM 中怎么使用G1垃圾收集器。 您将了解 G1 收集器的内部原理, 切换为 G1 收集器的命令行参数, 以及让其记录GC日志的选项。需要的时间大约 1 个小时简介本文涵盖了Java虚拟机(JVM, Java Virtual Machine)中 G1 的基础知识。第一部分, 简单概述JVM的同时介绍了垃圾收集和性能

2016-01-16 15:54:18 963

转载 √ ORDER BY x OFFSET 10000 LIMIT 4;

需求:ORDER BY x OFFSET 10000 LIMIT 4; 如何在分库下实现(假设分3库)步骤一、查询改写: ORDER BY x OFFSET3333LIMIT 4[4,7,9,10] [3,5,6,7] [6,8,9,11] 步骤二、找到步骤一返回的min和max,即3和11步骤三、通过min和max二次查询:ORDER BY x

2015-12-12 19:53:37 373

原创 spring beanPostProcesser

The BeanPostProcessor interface defines callback methods that you can implement to provide your own instantiation logic, dependency-resolution logic etc. You can also implement some custom logic after

2015-01-29 17:19:48 617

转载 MYSQL数据库隔离级别

:按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ)。MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔离级别。你可以在命令行用--transaction-isolation选项,或在选项文件里,为所有连接设置默认隔离级别。例如,你可以在my.inf文件的[mysqld]节里类似如下设置该选项:transaction-

2015-01-08 14:14:18 466

转载 java 并发包重要类源码分析

ConcurrentHashMapConcurrentHashMap是线程安全的HashMap的实现。1)添加put(Object key , Object value)ConcurrentHashMap并没有采用synchronized进行控制,而是使用了ReentrantLock。public V put(K key, V value

2014-10-28 15:34:38 727

转载 常见JVM异常报错解决方案

第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出:那什么样的情况就是堆栈溢出呢?当你看到下面的关键字的时候它就是堆栈溢出了:java.lang.OutOfMemoryError: ......java heap space.....也就是当你看到heap相关的时候就肯定是堆栈溢出了,此时如果代码没有问题的情况下,适当调整-Xmx和-Xms是可以避免的,不过一定是

2014-10-23 11:34:44 2964

转载 sleep (1000),sleep(0)

我操作系统中,CPU竞争有很多种策略。Unix系统使用的是时间片算法,而Windows则属于抢占式的。在时间片算法中,所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程允许运行的时间。如果在 时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程 序所要做的就是维护一张就绪进程列表,,当

2014-08-27 11:44:56 563

转载 String s = "a" + "b" + "c" + "d" + "e"对象问题

问题1: String s = "a" + "b" + "c" + "d" + "e"; 问此语句共创建了几个对象, 答案是 就创建了一个 String s = "a" + "b" + "c" + "d" + "e"; 赋值符号右边的"a"、"b"、"c"、"d"、"e"都是常量 对于常量,编译时就直接存储它们的字面值而不是它们的引用 在编译时就直接讲它们连接的结果

2014-07-16 13:23:20 785

转载 Spring事务机制

Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考。Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。我们在使用Spring声明式事务时,有一个非常重要的概

2014-07-03 16:36:26 350

原创 springMVC+mybatis多数据源配置(dao扫描版本)

原理图如下我们通过改变dao的session就可以达到数据库的切换,读写分离,多数据源就方便起来。以下是主要配置代码applicationContext.xml<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta

2014-06-20 21:19:49 4358 2

转载 linux常用命令

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpui

2014-06-18 22:42:13 339

原创 nginx的反向代理缓存

假设有两台物理机,他们分属于不同的域名,以webgame的游戏运营商和开发商为例,运营商需要获取游戏中的排行数据,开发商为了过多对游戏服务器的请求,会在发起请求的机器上设置缓存(或是让运营商定时过来抓取一次数据) nginx设置web缓存,需要用到的相关指令:1、proxy_cache2、proxy_cache_path3、proxy_cache_valid 需要注意的

2014-06-12 23:18:10 468

转载 Java 8的元空间

本文我们将会介绍JVM的一个更新,这就是持久代的移除。我们会介绍为什么需要移除持久代,以及它的替代者,元空间(metaspace)。这是上一篇文章内存管理之垃圾回收的续集。Java 6中的堆结构是这样的:持久代持久代中包含了虚拟机中所有可通过反射获取到的数据,比如Class和Method对象。不同的Java虚拟机之间可能会进行类共享,因此持久代又分为只读区和读写

2014-05-14 22:14:52 896

原创 ie 盒子模型和标准 w3c 盒子模型

盒子模型是css中一个重要的概念,理解了盒子模型才能更好的排版。其实盒子模型有两种,分别是 ie 盒子模型和标准 w3c 盒子模型。他们对盒子模型的解释各不相同,先来看看我们熟知的标准盒子模型:    从上图可以看到标准 w3c 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。  ie 盒子模型

2014-05-14 18:50:40 616

转载 hashmap的内部实现机制,hash是怎样实现的,什么时候rehash

1.HashMap的内部实现机制HashMap是对数据结构中哈希表(Hash Table)的实现,Hash表又叫散列表。Hash表是根据关键码Key来访问其对应的值Value的数据结构,它通过一个映射函数把关键码映射到表中一个位置来访问该位置的值,从而加快查找的速度。这个映射函数叫做Hash函数,存放记录的数组叫做Hash表。在Java中,HashMap的内部实现结合了链表和数组的

2014-05-14 12:27:59 679

原创 java各种排序集合

1.冒泡排序package com.holo.test;public class BuddleSort {public static void sort(int[] data){ for(int i=0;i<data.length;i++) { //比较的次数 for(int j=0;j<data.length-1-i;j++) { if(data[

2014-05-06 22:44:09 2751

原创 java堆排序

堆排序是一种利用完全二叉树来解决问题的高效算法,合法的最大堆树要满足一个条件就是每一个结点值都要大于或等于它的孩子结点值。在一个数组中那专业法表示为:arrays[i]>=arrays[2*i+1] && arrays[i]>=arrays[2*i+2]; 最小堆类似,只要改为冒最小值即可。堆排序树的构造过程找最大值过程由下图,数组arrays[0....n]为:17,8,45,84,2,

2014-05-06 22:38:36 408

原创 HashMap hash碰撞分析

HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置。当程序执行 map.put(String,Obect)方法 时,系统将调用String的 hashCode() 方法得到其 hashCode 值——每个 Java 对象都有 hashCode() 方法,都可通过该方法获得它的 hashCode 值。得到这个对象的 hashCode 值之后,系统会根据该 hashCode

2014-05-06 14:53:41 2178

原创 ssh应用 来自想哥整理

ssh -CfNgL 2001:192.168.1.87:8904 th.srv ssh -CfNgL 2001:192.168.1.87:8904 th.srv 端口转发* 参数说明* -C:压缩数据传输。* -f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。* -N :不执行脚本或命令,通常与-f连用。* -g :在-L/-R/-D参数中,允许远程主机

2014-05-05 18:47:38 592

转载 mysql5.1 event概念

mysql5.1版本开始引进event概念。event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程。2、使用权限 单独使用event调用SQL语句时,查看和创建需要用户具有event权限,调用该SQL语句时,需要用户具有执行该SQL的权

2014-04-19 10:56:43 279

转载 ValueStack(值栈)

在这一切的背后,是因为有了ValueStack(值栈)! ValueStack基础:OGNL 要了解ValueStack,必须先理解OGNL(Object Graphic Navigatino Language)! OGNL是Struts2中使用的一种表达式语言,它可以用于JSP的标签库中,以便能够方便的访问各种对象的属性;它用于界面将参数传递到Action(并进行类型转换)中;它还可

2014-04-10 09:33:58 592

转载 linux tail命令

查看文件的命令有:cat、more、less、head、sed和tail等。例: 查看文件的前5行:  head -5 test.log 查看文件的后2行: tail -2 test.log  或 tail -n 2 test.log查看文件中间一段:sed -n '5,10p' test.log这样你就可以只查看文件的第5行到第10行。另外有个比较常用的效果是实时

2014-03-04 11:43:04 353

原创 spring注解注入properties属性值

1 首先在applicationContext.xml中加入:        xsi:schemaLocation="http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">      的命名空间,然后 2 注意:

2014-02-24 15:26:33 849

原创 JAVA一个简单自定义类加载器

package classloader;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;/** * * 一、ClassLoader加载类的顺序 * 1.调用 findLoadedClass(String) 来检查是否已经加载类。 * 2.在父类加

2013-12-22 11:54:08 589

原创 mysql批量插入语句

CREATE DEFINER = `root`@`192.168.2.%` PROCEDURE `NewProc`()BEGINDECLARE a INT;set a=0;WHILE aDOINSERT INTO sdkuser(userId,loginName) VALUES(100000001+a,100000001+a);set a=a+1;END WHILE

2013-12-11 19:05:08 470

多域名单点登录JAVA版

实现JSP多域名单点登录,目前部分代码已用在我自己的实际项目中,这只是个DEMO,供大家参考

2013-04-24

httpclient和RestfuL风格上传下载文件

httpclient和RestfuL服务风格上传下载文件,可改为JAVA分布式系统进行交互,具体用法和改法详见代码里的注释

2012-12-21

fckecitord源码及文档

fckecitord源码及文档,想要的就可以下载,适合网页中编辑一些Hml文档

2011-03-20

Jquery+struts2上传图片,制作进度条,以及Jquery+Json+Struts交互等示例

Jquery+struts2上传图片,制作进度条等示例,还有Jquery+Json+Struts实现Ajax技术,还有图形处理技术等,虽然很少,但都有重点突出,由于我也是学习,所以代码不是很简洁,对想学习交流的朋友非常合适

2011-03-04

JavaScript快速查询手册

jquery 一个轻量级javascript框架,可以简化你的操作

2010-12-08

\spring.pdf

\spring.pdf\spring.pdf\spring.pdf\spring.pdf\spring.pdf

2010-10-16

空空如也

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

TA关注的人

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