java
文章平均质量分 75
春风十里不及你
一个初入职场的程序猿
展开
-
java线程池核心线程不被摧毁的原理
为什么要用线程池?减少了创建和销毁线程的次数,每个工作线程都可以被重复利用 可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因线程过多消耗内存,也避免了因线程过少,浪费系统资源如何做到每个工作线程都可以被重复利用呢?先看下线程池的工作原理原理如上图,线程池有七个核心参数corePoolSize 线程池核心线程数 maximumPoolSize 线程池最大线程数量 keepAliveTime 空闲线程存活时间 unit 空闲线程存活时间单位 workQueue 工.原创 2021-03-01 10:50:03 · 2517 阅读 · 3 评论 -
JVM调优步骤
JVM调优主要调整两个指标:停顿时间:垃圾回收器gc中断应用执行的时间。 -XX:MaxGCPauseMillis 吞吐量:垃圾收集的时间和总时间的占比:1/(1+n),吞吐量为1-1/(1+n)。 -XX:GCTimeRatio=n垃圾回收器选择:优先调整堆大小让服务器自己选择 如果内存小于100m,使用串行收集器 如果是单核,并且没有时间停顿要求,选择串行或者JVM自己选择 如果允许停顿时间超过1秒,选择并行或者JVM自己选择 如果相应时间最重要,并且不能超过1秒,使用并发收.原创 2020-06-10 13:31:24 · 313 阅读 · 0 评论 -
java垃圾回收器GC日志说明
日志输出格式:1.159: [GC (System.gc()) [PSYoungGen: 17132K->2080K(75776K)] 17132K->2088K(249344K), 0.0019415 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 1.161: [Full GC (System.gc()) [PSYoungGen: 2080K->0K(75776K)] [ParOldGen: 8K->1979K(1735原创 2020-06-09 17:05:36 · 373 阅读 · 0 评论 -
spring cloud架构简介
Spring Cloud 核心组件,在微服务架构中,分别扮演的角色:Eureka:各个服务启动时,Eureka Client 都会将服务注册到 Eureka Server,并且 Eureka Client 还可以反过来从 Eureka Server 拉取注册表,从而知道其他服务在哪里。 Ribbon:服务间发起请求的时候,基于 Ribbon 做负载均衡,从一个服务的多台机器中选择一台。...转载 2019-08-13 09:32:25 · 118 阅读 · 0 评论 -
zookeeper实现master选举
master选举 随着分布式系统的流行,现在许多服务都需要24小时工作,如果机器挂了的话,我们希望能有其他机器顶替他继续工作。这种问题通常采用master-slave模式,即是正常情况下主机提供服务,备用机器监听主机状态,当主机发生异常时,会选取一个备用机器代替主机器提供服务,这个选举过程即是master选举。 由于zookeeper能保证同一时刻只能具有一个主节点,即使...原创 2018-07-20 11:28:18 · 2087 阅读 · 0 评论 -
Docker命令
基本命令仓库相关操作docker pull #从远程仓库拉取镜像到本地docker push #推送本地镜像到远程仓库docker search #在仓库搜索镜像docker login #登录到官方仓库Docker Hubdocker logout #退出登录镜像相关操作docker build #从Dockerfile构建镜像...原创 2018-07-19 16:56:20 · 361 阅读 · 0 评论 -
CountDownLatch用法详解
概念CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。CountDownLatch的用法CountDownLatch典型用法1:某一线程在开始运行前等待n个线程执行完毕。将CountDownLatch的计数器初始化为n new CountDownLatc...原创 2018-07-19 11:28:42 · 63387 阅读 · 11 评论 -
hashCode笔记---------------------------------
hashCode()方法的作用1、查找的快捷性,hashCode用来在散列存储结构中确定对象的存储地址。2、配合散列集合的正常运行,如HashSet、HashMap、HashTable,提高程序运行效率。* 当一个集合中已经有大量的数据,向集合中放入数据时,如果采用equals方法逐一比较,效率会特别低,这时* hashCode方法起到了作用,在存入对象时,首先计算出hashCode值原创 2017-07-05 15:00:46 · 208 阅读 · 0 评论 -
java web 过滤器的执行先后顺序
关于过滤器的执行顺序,今天做个小实验定义三个过滤器FirstFilter、SecondFilter、ThirdFilterweb.xml配置信息执行结果:可见过滤器的执行顺序是按照web.xml配置文件从上往下执行的原创 2015-11-11 09:51:04 · 2241 阅读 · 0 评论 -
java WEB项目中的异常处理(好文章链接)
java web项目异常之思考http://blog.csdn.net/luqin1988/article/details/7970455Java EE项目中异常设计及处理总结http://blog.csdn.net/luqin1988/article/details/7970782Java EE项目中的异常处理 (实在写的太好了,导致我非法转载!!!)http原创 2016-08-05 10:54:51 · 552 阅读 · 0 评论 -
Spring定时框架Quartz的使用
Spring提供了简单方便的的Quartz定时任务框架使用时除了导入spring基础jar包,还需要quartz jar包 org.quartz-scheduler quartz 1.8.5新建一个任务类,里面包含执行的方法public class TaskJob { private static final Logger logger =原创 2016-08-10 08:48:36 · 1423 阅读 · 0 评论 -
springMVC异常处理
springMVC为我们提供了简单的异常处理方式,这样我们在项目中对一些不必要处理异常直接抛出,并且还可以知道是什么异常首先定义一个自定义异常,也可以不创建,直接使用jdk异常public class BusinessException extends Exception { public BusinessException() { super("业务异常")原创 2016-08-22 17:18:17 · 236 阅读 · 0 评论 -
dubbo和zookeeper的使用
网上下载zookeeper下载链接http://download.csdn.net/detail/u013286716/7167881下载完成后解压到D盘或其他地方打开把文件名改成图上所示,进入bin文件夹运行zkServer.cmd启动成功后,修改dubbo配置文件xml version="1.0" encoding="UTF-8"?>原创 2016-08-22 18:32:33 · 4915 阅读 · 0 评论 -
velocity根据模板导出word并下载工具方法
maven pom文件引入jar org.apache.velocity velocity org.apache.velocity velocity-tools版本号,任意导出方法如下/** * 导出word并下载 * * @author wangdongdong * * @param response原创 2016-08-22 18:48:18 · 680 阅读 · 0 评论 -
mybatis拦截器的使用(输出日志或sql语句)
拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。mybatis拦截器一般用于分页插件、输出日志、sql等。使用的方法如下:首先要实现mybatis的Intercep原创 2016-08-28 14:52:48 · 11127 阅读 · 0 评论