自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 JVM GC相关概念

目前Java中可以作为GC ROOT的对象有:1、虚拟机栈中引用的对象(本地变量表)2、方法区中静态属性引用的对象3、方法区中常亮引用的对象4、本地方法栈中引用的对象(Native对象)回收算法:复制算法,标记清除算法(空间碎片问题),标记-整理算法;JVM为了优化内存的回收,使用了分代回收的方式,对于新生代内存的回收(Minor GC)主要采用复制算法。而对于老年代的回收(Major GC),大多采用标记-整理算法。垃圾回收器简介: 新生代串行回收器 Serial(-XX:+U...

2022-04-02 17:38:50 244

原创 Java 全排列算法

public static void main(String[] args) { Integer l[] = {1,5,2}; sort(l,0);}public static void sort(Integer[] l, int index) { if (index == l.length - 1) { System.out.println(Arrays.asList(l)); return; } for (int i = i.

2022-03-31 14:59:12 481

原创 二种JAVA快速排序算法比较

二种JAVA快速排序算法比较public class QCTest { public static void main(String[] args) { List<Integer> l1 = Arrays.asList(45,671,9,5,3,7,0,12,2000,34,56,45,21); l1 = QCTest.seq1(l1); System.out.println(l1); Integer[] l =

2021-11-25 11:37:44 146

原创 用guava的Queues.drain 解决 按数量和指定时间 弹出队列中的元素

import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.TimeUnit;import com.google.common.collect.Queues;public.

2021-04-06 17:58:17 3264

原创 DDD 总结

1战略层面UL,领域划分,动名词提取,命名2战术层面分层架构,entity/DTO划分,specification提取,factory,Repository

2020-09-15 16:38:35 410

转载 NIO Reactor模型 & Netty线程模型

一、NIO Reactor模型1、Reactor模式思想:分而治之+事件驱动1)分而治之一个连接里完整的网络处理过程一般分为accept、read、decode、process、encode、send这几步。Reactor模式将每个步骤映射为一个Task,服务端线程执行的最小逻辑单元不再是一次完整的网络请求,而是Task,且采用非阻塞方式执行。2)事件驱动每个Task对应特...

2020-04-01 22:02:32 340

原创 偏向所锁,轻量级锁及重量级锁

一个对象刚开始实例化的时候,没有任何线程来访问它的时候。它是可偏向的,意味着,它现在认为只可能有一个线程来访问它,所以当第一个线程来访问它的时候,它会偏向这个线程,此时,对象持有偏向锁。偏向第一个线程,这个线程在修改对象头成为偏向锁的时候使用CAS操作,并将对象头中的ThreadID改成自己的ID,之后再次访问这个对象时,只需要对比ID,不需要再使用CAS在进行操作。 ...

2020-03-30 17:32:42 148

原创 mysql 索引选择算法/原理详解(rows估算)

本文章假设读者已了解mysql的索引基础知识,如b+树,聚集索引,并对explain分析结果已了解。以下主要分析mysql的索引选择原理及算法。Mysql InnoDB的查询一般基于explian所获取的最小rows来选择使用哪一个索引。Rows是一个estimate的值,其估计算法(规则)如下:1.如果是select c from where a=***,a上有索引。Mysql大概率会使...

2019-10-31 11:41:56 1682

转载 CPU的load和使用率傻傻分不清

1. 什么是Cpu的Load使用uptime、top或者查看/proc/loadavg都可以看到CPU的load统计,这里有三个值,分别代表1分钟、5分钟和15分钟的CPU Load情况。大部分人认为这三个数值越小说明比较好,如果越高说明系统可能存在问题或负载过高了。那这个值处于什么状态是好什么又是不好?什么时候需要关注并检查高的原因?LOAD AVERAGE:一段时间内处于...

2019-07-17 09:01:36 352

转载 Java多线程:synchronized的可重入性

从Java多线程:线程间通信之volatile与sychronized这篇文章中我们了解了synchronized的基本特性,知道了一旦有一个线程访问某个对象的synchronized修饰的方法或代码区域时,该线程则获取这个对象的锁,其他线程不能再调用该对象被synchronized影响的任何方法。那么,如果这个线程自己调用该对象的其他synchronized方法,Java是如何判定的?这就涉及到...

2019-07-10 11:13:01 169

原创 PROPAGATION_REQUIRED,PROPAGATN_REQUIRES_NEW,PROPAGATION_NESTED区别

PROPAGATION_REQUIRED嵌套时,不管是否用try catch,只要里外二个事务有一个出错,都会因rollback。因为是同一个事务范围。PROPAGATN_REQUIRES_NEW被嵌套时,外面的事务不会影响里面的事务。如果里面的事务用了try catch,那么出错外面不会rollback,里面rollback。如果没用,里面的抛出错,会导致里外的事务都rollback。P...

2018-08-02 21:19:10 1229

转载 自定义java.policy配置(如何让你的类禁止读写文件?禁止创建Socket对象?)

最近做的项目有一个特殊的需求,由于系统是CS的,客户端需要自己编写JAVA类上传至服务器运行,整个流程如下:1.客户端编写JAVA类,并实现特定接口2.由客户端的JAVA编译器将其编译成class3.客户端通过socket将class文件上传至服务器4.服务器将class文件放至自己的classpath中,加载并执行问题出在最后一步上,服务器虽然由我们完全控制,客户端编写的类虽然需要实现特定的接口...

2018-04-02 15:04:55 449

转载 Docker 核心技术与实现原理

提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。同样,由于项目的发展、功能的拆分以及各种奇怪的改名 PR,让我们再次理解 Docker 的的整体架构变得更加困难。虽然 Docker 目...

2018-03-27 10:09:55 483

转载 LMAX Disruptor—多生产者多消费者中,消息复制分发的高性能实现

解决的问题当我们有多个消息的生产者线程,一个消费者线程时,他们之间如何进行高并发、线程安全的协调?很简单,用一个队列。 当我们有多个消息的生产者线程,多个消费者线程,并且每一条消息需要被所有的消费者都消费一次(这就不是一般队列,只消费一次的语义了),该怎么做?这时仍然需要一个队列。但是:1. 每个消费者需要自己维护一个指针,知道自己消费了队列中多少数据。这样同一条消息,可以

2018-02-01 14:30:52 804

原创 sql limit 查询优化

limit offset较大时,select * from user limit 10000,10 和select * from user limit 0,10 执行效率差别较大。原因是limit10000,10的意思扫描满足条件的10010行,扔掉前面的10000行,返回最后的10行(全表扫描)。优化:select * from (   select id f

2018-01-12 14:39:53 398

原创 包装类对象之间值的比较,全部使用 equals 方法比较

所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。说明: 对于 Integer var = ? 在-128 至 127 范围内的赋值, Integer 对象是在IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 e

2018-01-11 21:46:27 1953

原创 Spring 获取方法参数名

Spring 获取方法参数名

2017-12-06 19:43:52 512

原创 spring 多数据源事务

spring 3对多数据源的事务管理可以不依赖JTA

2017-12-05 17:36:45 361

原创 面向对象里类方法归属问题处理

网上一篇文章《十年之后再看“面向对象”》http://www.cnblogs.com/freeflying/p/7410167.html里面有讲到:我举一个例子:现在有两个类,一个用户类(User),一个博客类(Blog),现在有一个发布博客的方法(Publish)。那么,“发布博客”这个方法,究竟是应该放在用户的类里面,还是博客的类里面?即:究竟是User.Publish(B

2017-12-04 19:25:18 344 2

原创 windows 下安装tensorflow 和 python

windows tensorflow python

2017-11-22 18:59:35 332

原创 Mysql 优化

1 一张表二到三个索引。否则影响写入。2 索引上查询时类型要一致3 索引上不要运算4 字条串上索引考虑用前缀,不要全字段建索引5 select id VS select *。前者直接从索引表(聚集索引)里返回结果,不需要到磁盘上读叶子节点(分页去读整条记录)。6 不用外键。高并发导致死锁及其它开销。7 使用数字型索引VS字符串索引(空间占用少,查询快,更高效)8 Uni

2017-11-21 17:41:37 156

转载 linux之旅——关于虚拟内存

https://www.cnblogs.com/lyp3314/archive/2012/03/06/2380637.htmllinux之旅——关于虚拟内存  虚拟内存是个怎么强调也不过分的概念,它的存在极大地方便了程序设计任务,解放了程序员的手脚。下面看看虚拟内存的作用以及如何在存储管理机制的基础上实现它。什么是虚存?为什么需要它?  我们知道程序代码和数据必须驻留在

2017-11-21 11:02:25 249

原创 Java 线程优化

代码如下:public class MulThreadTest { public static void main(String[] args) { final int a[] = new int[1024]; final Long begin = new Date().getTime(); for (int i = 0; i < 4; i++) { //final int

2017-11-21 09:25:37 261

原创 http 学习笔记

1 应用型服务器一般Connection:close;资源型网站:Connection:keep-alive

2017-11-20 16:40:58 196

转载 Velocity UI for Eclipse

Velocity UI for EclipseThis project leverages theEclipse platform(v3.x) by adding support for the template/scripting engineVelocity.It provides the following plugins:org.apache.velocityVelocity

2017-11-15 10:45:36 308

转载 线上应用故障排查之一:高CPU占用

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。(友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen)以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。通过ps aux | g

2017-11-14 15:09:59 234

转载 Redis单线程

总体来说快速的原因如下: 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要的上下文切换和竞争条件 3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间这3个条件不是相互独立的,特别是第一条,如果请求都是耗时的,采

2017-11-07 13:02:11 193

原创 基于二乘法的数据预测算法

原理:根据最近8天的销售数据预测最近一天的销售数据开发工具:JetBrains PyCharm 2017.2.3代码:from numpy import *def standRegres(xArr,yArr): xMat = mat(xArr); yMat = mat(yArr).T xTx = xMat.T*xMat if linalg.det(x

2017-10-16 12:50:47 479

原创 nginx 缓存后,反向代理

location / {            #root   html;root d:/webroot;            index  index.html index.htm;if (!-e $request_filename) { proxy_pass http://localhost:8080; }        }

2015-10-30 13:37:47 435

原创 inputstream 转 string 转 outputstream

public static void main(String[] args) throws IOException {        File f = new File("E:"+File.separator+"1.doc");          InputStream in = new FileInputStream(f);          ByteArrayOutputStrea

2014-03-28 13:33:28 810

原创 zookeeper 实现 配置管理(Configuration Management)

1  Create a Demo Class and runimport java.io.IOException;import org.apache.zookeeper.KeeperException;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org

2013-07-01 23:21:23 2141

原创 ThreadLocal范例

import java.util.Random;/** *  *//** * @author Oct 19, 2009 * @createDate 2:01:42 PM */public class ThreadLocalTest { private static ThreadLocal seqNum = new ThreadLocal() ; public ThreadLocal

2009-10-19 15:04:00 682

转载 Java中对象序列化技术

 1、含义:将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。 2、编程要求:只有实现Serializable接口的类对象才可以被序列化。 Serializable接口没有定义任何成员,它只用来说明某个类可以被序列化。3、序列化的特点:(1)如果某个类能够被序列化,其子类也可以被序列化。(2)声明为static和transient类型的成员数据不能被序列化。因为s

2006-08-25 09:20:00 1008

转载 JAVA四种XML解析技术

 预 备测试环境:AMD 毒龙1.4G OC 1.5G、256M DDR333、Windows2000 Server SP4、Sun JDK 1.4.1+Eclipse 2.1+Resin 2.1.8,在 Debug 模式下测试。XML 文建格式如下:<?xml version="1.0" encoding="GB2312"?><RESULT> <VALUE>  <NO>A

2006-08-25 09:10:00 985

原创 Java学习笔记

 1.       队列:JMS 支持两种消息通信模型:点到点队列(point-to-point)(PTP)模型和发布/订阅(Pub/Sub)模型:PTP 模型规定了一个消息只能有一个接收者;Pub/Sub 模型允许一个消息可以有多个接收者。2.       int 转 Integer:Integer I = new Integer(0);3.       package的

2006-08-25 08:52:00 908

空空如也

空空如也

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

TA关注的人

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