- 博客(217)
- 资源 (11)
- 问答 (1)
- 收藏
- 关注
原创 线程池参数设计
public class ThreadPoolSelfDefinition2Test { private static final ExecutorService threadPool = new ThreadPoolExecutor( 20, 200, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(200.
2021-12-01 16:03:21 507
原创 演示线程池的执行过程
public class ThreadPoolSelfDefinitionTest { private static List<Object> objects = new Vector<>(); public static void main(String[] args) { ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("demo-pool.
2021-11-30 12:09:45 386
原创 XlsOrXlsxUtil
两种读写 Xls Or Xlsx 的方式:1.方式一:package com.ting.xls;import com.google.common.collect.Maps;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.userm
2021-10-06 11:00:43 210
原创 mvn deploy:deploy-file with status code 401
第三方jar <dependency> <groupId>com.abc</groupId> <artifactId>abc-openapi-sdk</artifactId> <version>2.0</version> </dependency>mvn de.
2021-07-15 14:31:48 3887 1
原创 模板模式使用匿名内部类扩展
模板模式的定义:它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现,这样子类才可以不改变算法结构的前提下重新定义改算法的某些特定步骤。模板模式的核心:处理的步骤父类中早已定义好,具体的实现延迟到子类中去完成。模板方法的角色:1.抽象模板角色:它一般是一个抽象类或者接口,它抽象出操作算法骨架。2.具体抽象模板角色:...
2020-03-10 12:16:06 318
原创 Spring AOP 中 @Aspect 简单用法
package com.ximalaya.business.pay.fee.query.tool.p2.anotationtest;import org.springframework.stereotype.Component;/** * @author * @date 2019/10/22 下午7:07 */@Componentpublic class NoBug {...
2019-10-23 14:29:01 379 2
原创 自定义注解使用
1.定义注解package com.tool.p2;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * ...
2019-09-28 17:50:31 217
原创 用lambda表达式如何写多线程
话不多说,直接贴代码,简单的令人发指。两种方式:一种不带返回结果,一种带返回结果。public class lambdaThread { public static void main(String[] args) { List<Callable<Integer>> taskList = new ArrayList<>();...
2019-08-27 18:01:40 602
转载 linux下如何查询jdk的安装路径
linux下如何查询jdk的安装路径, 有的人说用whereis或者which, 这是多么扯淡啊。还有人说, 直接echo $JAVA_HOME就行, 这是典型的只copy不思考。 使用echo $JAVA_HOME的前提条件是设置了JAVA_HOME, 如果没设置, 就什么也查不到:ubuntu@VM-0-15-ubuntu:~/taoge$ echo $JAVA_HOMEubuntu@...
2019-07-22 15:00:25 251
转载 HBase最佳实践-CMS GC调优
HBase发展到当下,对其进行的各种优化从未停止,而GC优化更是其中的重中之重。从0.94版本提出MemStoreLAB策略、Memstore Chuck Pool策略对写缓存Memstore进行优化开始,到0.96版本提出BucketCache以及堆外内存方案对读缓存BlockCache进行优化,再到后续2.0版本宣称会引入更多堆外内存,可见HBase会将堆外内存的使用作为优化GC的一个战略方向...
2019-07-16 14:53:09 175
转载 Optional和Stream的map与flatMap
Optional的map和flatMapOptional存在map和flatMap方法。map源码如下 public<U> Optional<U> map(Function<? super T, ? extends U> mapper) { Objects.requireNonNull(mapper); if (!...
2019-07-15 19:08:34 1430
转载 腾讯云使用并发布war包
买了一个腾讯云,想发布下自己的东西。废话不多说,首先腾讯云你得买一个,我买的服务器是centos,默认的用户名是root.如果你想发布一个项目,首先你得安装jdk, tomcat(或jboss之类的) ,最后一个就是数据库了,本文用的是mysql。一、安装JDK1、首先看看你的服务器是否联网,可以直接登陆腾讯云,或者用putty 之类的登陆你的服务器,如果有数据返回,说明网是O...
2019-04-09 21:49:23 446
转载 CountDownLatch线程阻塞用法实例
在编写多线程的工作中,有个常见的问题:主线程(main)启动好几个子线程(task)来完成并发任务,主线程要等待所有的子线程完成之后才继续执行main的其它任务。默认主线程退出时其它子线程不会停,如果想让main退出时其它子线程终止,可以用subThread.setDaemon(true)设置子线程为“守护线程”。如果要在主线程等待所有子线程完成后,还要执行其它操作(比如:结果合并)....
2019-03-15 16:29:00 607
原创 枚举类要注意的问题
public enum PayMode{ POS(1, "POS支付"), ONLINE_PAY(2, "网银支付"), BALANCE_PAY(3, "资金余额支付"), OTHER(4, "其他支付"); private int code; private String value; private static Map<...
2019-03-10 09:56:55 885
原创 重写equals时为什么要重写hashCode
首先看Object对象中是如何定义equals 和 hashcode:public boolean equals(Object obj) { return (this == obj); }/*@return a hash code value for this object.*/public native int hashCode();可以看出,equa...
2019-03-06 23:06:09 1962 2
转载 什么是微服务
一、微服务介绍1. 什么是微服务在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务", 微 狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就够了 )。 而所谓服务,...
2019-03-06 11:02:21 144
转载 熔断,限流,降级
1 写在前面1.1 名词解释consumer表示服务调用方provider标示服务提供方,dubbo里面一般就这么讲。下面的A调用B服务,一般是泛指调用B服务里面的一个接口。1.2 拓扑图大写字母表示不同的服务,后面的序号表示同一个服务部署在不同机器的实例。2 从微观角度思考2.1 超时(timeout)在接口调用过程中,consu...
2019-03-06 10:56:46 225
转载 maven profile切换正式环境和测试环境
有时候,我们在开发和部署的时候,有很多配置文件数据是不一样的,比如连接mysql,连接redis,一些properties文件等等每次部署或者开发都要改配置文件太麻烦了,这个时候,就需要用到maven的profile配置了1,在项目下pom.xml的project节点下创建了开发环境和线上环境的profile <profiles> <p...
2019-01-24 15:36:21 223
转载 int和Integer的区别
1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null,int的默认值是0延伸: 关于Integer和int的比较 1、由于Integer变...
2018-11-08 16:23:13 192 2
转载 mysql联合索引
mysql联合索引命名规则:表名_字段名1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则https://segmentfault.com/q/1010000003984016/a-1020000003984281联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个...
2018-09-18 22:14:33 165
原创 Redis知识点
1.keys的模糊匹配功能很方便也很强大,但是在生产环境需要慎用!开发中使用keys的模糊匹配却发现redis的CPU使用率极高,所以公司的redis生产环境将keys命令禁用了!那怎么解决这种类似的keys模糊匹配问题呢?其中常见的方法就是设置一个set,将需要使用的keys存储在set中。 2.每个数据库对外都是一个从0开始的递增数字命名,Redis默认支持16个数据库。Red...
2018-08-13 18:32:36 178
转载 redis单主机多实例,主备机制
假设我们服务器上面已经安装好了redis;可参看:http://www.cnblogs.com/super-d2/p/3819385.html下面我们来配置redis单主机多实例:我们首先拷贝两份文件:[root@infa redis-2.8.12]# cp /etc/redis.conf /etc/redis6380.conf[root@infa redis-2.8.12]#...
2018-08-13 18:30:56 506
原创 分库分表策略
使用Zdal进行分库分表,分库分表策略:以支付业务为例,从前到后有 交易系统、支付前置系统、支付核心系统表结构(为了突出只标示部分字段):交易系统 :Id ,tradeNo;支付前置系统:id,payOrderNo,tradeNo;支付核心系统:id,kernalNo,payOrderNo,tradeNo;也就是每个系统都保留前一个系统的唯一索引编号No,同时都存储trad...
2018-08-08 15:39:49 322
转载 mac下安装 rabbitmq 及 rabbitmq知识点
rabbitmq基本原理:https://blog.csdn.net/yingfeng612/article/details/80150592安装过程:https://blog.csdn.net/u010046908/article/details/54773323https://blog.csdn.net/u010442302/article/details/73189152...
2018-07-16 19:24:47 4559
转载 JAVA基础知识之Collections工具类
排序操作Collections提供以下方法对List进行排序操作void reverse(List list):反转void shuffle(List list),随机排序void sort(List list),按自然排序的升序排序void sort(List list, Comparator c);定制排序,由Comparator控制排序逻辑void swap(List list, int i...
2018-07-03 11:25:40 178
转载 简单工厂+反射+配置文件 进行解耦
解耦具体依赖的方法:配置文件+反射+简单工厂(完全可以替代工厂模式)表驱动法解耦依赖注入解耦(spring使用的就是这种方式)惯例优于配置 下面使用第一种方式进行解耦: 通常我们在使用简单工厂模式的时候会由创建方法create通过传入的参数来判断要实例化哪个对象,就像下面这样: public static class ImageSelectFact...
2018-07-02 20:03:40 650
原创 Mac 、IntelliJ IDEA 各种快捷键总结
Mac 操作命令:⌘+w是关闭标签刷新,网页是Command+R插销:command+z反向撤回:shift+command+z文件返回的上一级:Command + 方向上mac电脑窗口最大化默认的快捷键为:Command + control + F,但是这个窗口最大化快捷键也不是通用的,对于某些应用程序无效。IntelliJ IDEA 操作命令:comm...
2018-06-27 13:50:45 6437
原创 深度解析hashcode
1.hashcode的取值范围?2.hashcode和equals的区别?对于第一个问题,hashcode返回类型为int,则知取值范围为: Integer.MIN_VALUE ---- Integer.MAX_VALUEint最大值最小值,根据编译器类型不同而变化:public static void main(String[] args) { ...
2018-06-21 13:31:19 3818
转载 Spring整合Junit4进行单元测试
一.加入依赖包使用spring的测试框架需要加入以下依赖包:JUnit 4 (官方下载:http://www.junit.org/)Spring Test (Spring框架中的test包)Spring 相关其他依赖包(不再赘述了,就是context等包)如果使用maven,在基于spring的项目中添加如下依赖:[html] view plain copy<dependency> ...
2018-06-03 18:30:25 583
转载 RabbitMQ的几种典型使用场景
RabbitMQ主页:https://www.rabbitmq.com/AMQPAMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现。它主要包括以下组件:1.Server(broker): 接受客户端连接,实现AMQP消息队列和路由功能的进程。2.Virtual Host:其实是一个虚拟概念,类似于权限控制组,一个Virtual Host里面可以有若干个Exchange和...
2018-04-30 17:38:24 262
转载 Rabbitmq基本原理
MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列中的消息。RabbitMQ是MQ产品的典型代表,是一款基于AMQP协议可复用的企业消息系统。业务上,可以实现服务提供者和消费者之间的数据解耦,提供高可用性的消息传输机制,在实际生产中应用相当广泛。本文...
2018-04-30 17:19:18 583
原创 对象锁和类锁---模拟实现Hashtable
核心思想:java中的任何对象都是一把锁,有且只有一把钥匙。多个线程必须共享同一把锁才能互斥。普通方法的锁是当前对象this,静态方法的锁跟当前对象没有关系,它的锁是该类的类类型*.class。public class TestSychoronized { static Hashtable<String,String> a = new Hashtable<>(); ...
2018-04-25 22:20:40 785
转载 JVM调优命令-jmap
jmapJVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件。 jmap不仅能生成dump文件,还可以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等。【内存分析】1234567891011121...
2018-04-25 15:58:48 200
转载 jvm 性能调优工具之 jps
概述jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。如果在 linux 中想查看 java 的进程,一般我们都需要 ps -ef | grep java 来获取进程 ID。如果只想获取 Java 程序的进程,可以直接使用 jps 命令来直接查看。jps ...
2018-04-25 15:54:32 440
转载 (入门贴)JVM堆内存相关的启动参数:年轻代、老年代和永久代的内存分配
如果想观察JVM进程占用的堆内存,可以通过命令工具jmap或者可视化工具jvisualvm.exe。JVM这些启动参数都拥有默认值,如果想了解JVM的内存分配策略,最好手动设置这些启动参数。再通过JDK提供的工具的统计结果,进行对比,就比较容易理解这些内存分配的理论知识。运行环境是win7 32位操作系统,JDK1.7.0_60版本。测试代码和JVM启动参数如下:[java] view plain...
2018-04-25 15:01:51 299
转载 “-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java运行参数(转)
年轻代 年老代概念 http://jefferent.iteye.com/blog/1123677 JVM的堆的内存, 是通过下面面两个参数控制的 -Xms 最小堆的大小, 也就是当你的虚拟机启动后, 就会分配这么大的堆内存给你 -Xmx 是最大堆的大小 当最小堆占满后,会尝试进行GC,如果GC之后还不能得到足够的内存(GC未必会收集到所有当前可用内存),分配新的对象,那么就会扩展堆,如果-Xmx...
2018-04-25 14:02:30 1675 1
转载 使用无限大小线程池 newCachedThreadPool 可能遇到的问题
看一段测试代码: [java] view plain copypackage com.wenniuwuren.concurrent; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * Created by zhuyb on 16/6/16. */ p...
2018-04-18 16:15:10 1285
转载 ExecutorService中submit和execute的区别
Java5 并发学习 在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。 一、创建任务 任务就是一个实现了Runnable接口的类。创建的时候实run方法即可。 二、执行任务 ...
2018-04-18 16:11:55 380
转载 Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Overridepublic void run() {// TODO Auto-generated method stub...
2018-04-18 16:08:06 178 3
转载 Java大白话讲解享元模式(Flyweight)
一、概念一个系统中若存在大量相同或相似的对象(比如26个英文字母),则只共享一份就可以了(并非单例模式),没有必要为每份相同的东西还都单独实例化出一个对象,浪费性能。(有点缓存的意思)二、例如比如26个英文字母,一个文本中有10MB的26个英文字母,那你解析出来的时候需要为每一个字母都创建一个对象的话(10M那么大,对象数不可直视。。。),内存肯定扛不住。所以可以用享元模式,只创建26个对象进行共...
2018-04-13 08:50:53 1765
slf4j jar包
2018-07-22
KeyStore Explorer
2018-04-02
hibernate-distribution-3.3.2.GA-dist.zip
2013-10-11
hibernate-annotations-3.4.0.GA.zip
2013-10-11
sun/security/x509/X509CertImpl
2017-01-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人