- 博客(19)
- 资源 (5)
- 收藏
- 关注
原创 java垃圾回收算法及收集器
java内存回收算法及收集器java目前常用有4中回收算法,7种垃圾回收器。为什么要进行垃圾回收?如果不进行垃圾回收,jvm就无法给新创建的对象分配对象了,系统无法长时间运行,如果不进行垃圾回收,我们的java服务将每隔一段时间就需要重启一次?这样你能接受吗?什么时候进行垃圾回收?在无法分配内存的时候进行垃圾回收,已目前普遍使用的分代回收方法为例,在Eden区无法为创建新的区域给...
2019-03-12 13:40:34 359
原创 线程池浅析
线程池的种类ThreadPoolExector 自定义线程池参数ThreadPoolExector的参数参数名称说明其他核心线程数线程池核心线程数量,核心线程不会被回收,即使没有任务执行,也会保持空闲状态最大线程数池允许最大的线程数,当线程数量达到corePoolSize,且workQueue队列塞满任务了之后,继续创建线程。“Isn’t this fu...
2019-05-05 17:44:26 167 1
原创 mysql索引原理
mysql索引及实现原理什么是索引段落引用索引(在MySQL中也叫做”键(key)“)是存储引擎用户快速找到记录的一种数据结构。这是索引的基本功能。索引优化应该是对查询性能优化的最有效手段了。索引能够轻易将查询性能提高几个数量级,”最优“的索引有时比一个”好的“索引性能要好两个数量级。创建一个真正”最优“的索引经常需要重写查询。索引的类型B-TREE索引优点:1、首先B+树的中间...
2019-03-14 14:55:29 150
原创 spring boot 发送kafka消息队列
在工作中碰到问题,需要通过springboot想kafka发送消息,但是之前没有发送过,因此尝试发送一下试试,给大家做一个参考。1 、准备kafka消息队列address:...:9092topic:test2 、jar包引用 <dependency> <groupId>org.apache.kafka</groupId> <artifa
2017-06-23 11:24:31 3389
原创 SpringBoot中如何监听两个不同源的RabbitMQ消息队列
spring-boot如何配置监听两个不同的RabbitMQ由于前段时间在公司开发过程中碰到了一个问题,需要同时监听两个不同的rabbitMq,但是之前没有同时监听两个RabbitMq的情况,因此在同事的帮助下,成功实现了监听多个MQ。下面我给大家一步一步讲解下,也为自己做个笔记;详细步骤:1. application.properties 文件配置:” u.rabbitmq.addresses=
2017-01-19 17:43:56 13863 4
原创 设计模式--Builder模式
Buider模式的优势:保证像重叠构造器模式那样的安全性。javaBeans模式的可读性。能够适应不同参数的构造。重叠构造器实现:public class Person { private String name; private int sex; public Person(String name) { this.name = name; }
2016-11-10 14:29:47 232
原创 maven依赖传递问题处理方式
碰到maven包依赖传递问题怎么办1、通过查看maven的依赖树查看有哪些不必要的包命令为:mvn dependency:tree [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'dependency'. [INFO] --------------------------
2016-09-09 14:31:52 1267
原创 spring-boot 初学一
spring boot 学习由于工作原因开始使用spring-boot这个框架,spring-boot与spring比较之下能够非常快速的搭建项目并进行开发。下面是我开始简历的一个简单Demo:spring-boot-demo1、创建maven项目,并修改pom.xml文件`2、在代码中新建Main执行的类 Application.java`package com.hhp; import org.
2016-04-25 19:42:35 268
原创 多线程开发之线程的超时
今天在上班的时候,同事突然遇到一个问题,就是他写的一个线程池,里面执行的线程没办法超时,因此导致程序在一直等待执行。但是对很多程序来说,如果一个线程如果运行时间太长的话,最好能够抛弃掉,但是一般的线程并没有超时设置。对于这个问题我想到通过Future与Callable来实现这个功能Future与Callable接口Callable接口类似于Runnable,从名字就可以看出来了,但是Runnabl
2016-01-20 21:29:09 1993
原创 多线程开发之减少竞争
优化多线程优化线程多线程程序时,我们可以通过减少竞争的方式来优化多线程程序的运行。发生锁竞争的主要原因1、锁的请求频率2、持有锁的时间过长如果两者的乘积很小,那么大多数获取锁的操作都不会发生竞争。对可升缩性不会造成影响。如果锁的请求量很频繁,持有锁的时间一旦较长,其他线程进入线程阻塞等待获取锁,会有大量的任务等待完成。在极端情况下会出现大量工作等待完成而处理器闲置的情况。优化方法有三种减少线程竞争
2016-01-19 14:01:48 1155
原创 多线程开发之Semaphore
Semaphore介绍Semaphore是java并发编程中出现的一个工具,其具体的作用是用来控制java中对资源的使用。比如我们常用的数据库连接,加入我们希望能够限制同一时间持有数据库连接的数量,我们就可以使用到Semaphore这个工具。Semaphore介绍信号量的特性如下:信号量是一个非负整数(车位数),所有通过它的线程(车辆)都会将该整数减一(通过它当然是为了使用资源),当该整数值为零时
2016-01-18 21:51:19 575
原创 Linux crontab处理定时任务-------执行java程序
Linux crontab处理定时任务——-执行java程序前提linux服务器必须是安装好jdk什么是crontab?crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρνο),原意是时间。常,crontab储存的指令被守护进程激
2015-12-29 12:06:26 4077
原创 在eclipse中调试服务器中的项目
在很多时候我们许多项目的代码环境与真实的项目环境存在着差异,导致我们很难对真实环境中的项目进行调试,以下是在eclipse环境中调试代码的一个小方法:第一步:进入服务器中tomcat的bin目录下,找到startup.sh;加入如下一行代码,端口为eclipse 中debug监听的端口declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_s
2015-12-25 09:17:30 628
原创 Mybatis自动代码生成插件MybatisGenerator使用
Mybatis自动代码生成插件MybatisGenerator使用MybatisGenerator介绍MyBatis Generator (MBG) 是一个Mybatis的代码生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各个版本的代码,和iBATIS 2.2.0版本以后的代码。 他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象。 这样和数据库表进行交互
2015-12-24 09:13:34 1003
原创 单例模式实现总结及代码实现
什么是单例模式?1、一个类仅生成一个实例,作为大家共有的资源。2、单例模式限制类的实例化和保证类只有一个实例存在于Java虚拟机。单例类必须提供获得该类的实例的全局访问点。单例模式用于测井,驱动对象,缓存和线程池。3、Singleton设计模式也被用在其他的设计模式,抽象工厂,生成器,原型,立面等单件设计模式是用于核心Java类也,例如java.lang.runtime,j
2015-06-08 10:37:17 372
原创 java静态模块及构造器初始化顺序
对于java来说,一个生成对象的过程中需要调用那些方法呢?回答是静态模块以及构造方法。那对于一个类以及自己的父类来说,具体的构造顺序为?public class InitSon extends InitFather{ static{ System.out.println("子类静态模块初始化"); } public InitSon(){ System.out.println(
2015-05-15 09:54:24 481
原创 Tomcat建立虚拟目录
1、新建***.xml文件,文件中添加一下内容为:<Context path="/test" docBase="/home/ftp" reloadable="true" debug="0"/>path:访问的虚拟路径docBase:物理路径 2、新建xml文件的名称最好与path名称一致,方便维护。3、将新建好的xml文件防止在Tomcat目录下Cat
2015-05-07 13:49:34 361
原创 通过触发器实现数据监控上报数据插件
由于我们公司的需要,需要对我们公司的产品数字法庭上报数据到资源管理中心,由于数字法庭产品经历了多个小版本和大版本,因此对于统一的上报数据插件代码编写起来没办法很好的兼容。因此我们采取了通过触发器的方式来监控需要上报的数据。目前我们公司在数字法庭上主要有两个大版本:4.0以及6.0现在以用户为例:1、新建表,用来存储监控到的信息。zjidintmk
2015-04-13 10:20:55 832
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人