- 博客(270)
- 资源 (13)
- 收藏
- 关注
原创 49.安心技术梳理 - Guava计时器Stopwatch和apache.commons.lang3包下任务执行时间监视器类Stopwatch
1、一般我们检测某段代码执行的时间,都是以如下方式来进行的:public static void main(String[] args) { long startTime=System.currentTimeMillis(); //获取开始时间 //函数主体代码 long endTime=System.currentTimeMill...
2019-12-10 10:18:25 1077
原创 48.安心技术梳理 - 快速创建集合HashSet/ArrayList
1.快速创建Set方法:一、HashSet<String> set = new HashSet<String>() {{ add("a"); add("b"); add("c");}};二、import com.google.common.collect.Sets;HashSet<Integer> set = Sets.newHas...
2019-12-06 10:31:20 2381
原创 47.安心技术梳理 - Google guava工具类(com.google.common.base)
涉及的工具类有:String-related utilities (字符串处理)Ascii CaseFormat(大小写格式) CharMatcher(字符匹配器) Charsets(字符集) Joiner(连接器) Splitter(拆分器) StringsFunction typesFunction,Functions Predicate,Predic...
2019-12-05 15:03:22 899
转载 46.安心技术梳理 - Java多线程系列全集 和 join()
1.Java多线程系列目录(共43篇):https://www.cnblogs.com/skywang12345/p/java_threads_category.html1. join()介绍join() 定义在Thread.java中。join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行。这句话可能有点晦涩,我们还是通过例子去理解:// 主线程public ...
2019-12-05 14:09:58 81
原创 45.安心技术梳理 - Okhttp3,java.net.SocketTimeoutException: timeout
问题点:随着OkHttp,应用程序面临以下SocketTimeoutException问题。如果请求大小较小,则说明工作正常(小于1MB)。我会在10秒内收到此异常,即使我的套接字timeout(readTimeout)值也更高。持续失败的请求(大小为1.8MB)。当我执行请求时,HttpUrlConnection它工作正常。失败的可能原因是什么?解决方法:如果请求大小大于1MB...
2019-12-04 16:26:48 4089
转载 44.安心技术梳理 - Java TimeUnit使用
TimeUnitTimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段。常用的颗粒度TimeUnit.DAYS //天TimeUnit.HOURS //小时TimeUnit.MINUTES //分钟TimeUnit.SECONDS //秒TimeUnit.MILLISECON...
2019-12-02 10:18:53 108
原创 线程池和返回值线程
public static void main(String[] args) throws ExecutionException, InterruptedException { List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3")...
2019-11-19 11:29:34 176
原创 43.安心技术梳理 - java8中list转map,list转set,list转list,list 排序,list分组
一.使用java8对list操作 1.1list转map1 private Map<String, Member> getMemberMap() { 2 List<Member> members = mberMapper.selectMemberList(new Member());3 if(CollectionUtils.isEmp...
2019-11-06 10:49:39 329
转载 42.安心技术梳理 - Redis中set/del/get操作实例
转:http://doc.redisfans.com/key/(更多操作)删除给定的一个或多个key。不存在的key会被忽略。时间复杂度:O(N),N为被删除的key的数量。删除单个字符串类型的key,时间复杂度为O(1)。删除单个列表、集合、有序集合或哈希表类型的key,时间复杂度为O(M),M为以上数据结构内的元素数量。返回值:被删除...
2019-11-04 16:13:13 706
原创 41.安心技术梳理 - 线程池和多线程结合使用 - 直接上干货
线程池配置:spring: pool: corePoolSize: 4 maxPoolSize: 8 keepAliveSeconds: 60 queueCapacity: 1@ConfigurationProperties("spring.pool")@Component@Datapublic class ThreadPoolConfig {...
2019-10-31 10:13:29 156
原创 40.安心技术梳理 - 闭锁(CountDownLatch)进行多线程发送优惠券实现
1.满足多人并发,每人固定处里数的最终一致性public static int handle(Integer a){ System.out.println("发送优惠券"+a); return a; } public static void main(String[] args) throws InterruptedException ...
2019-10-22 19:52:17 312
转载 @Autowired @Resource @Qualifier的区别
参考博文:http://www.cnblogs.com/happyyang/articles/3553687.htmlhttp://blog.csdn.net/revent/article/details/49203619http://blog.csdn.net/ad921012/article/details/49679745spring不但支持自己定义的@Autowired注解...
2019-10-22 16:18:35 147
转载 Spring Boot使用@Async实现异步调用:自定义线程池
定义线程池第一步,先在Spring Boot主类中定义一个线程池,比如:(启动类加入注解@EnableAsync)@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application....
2019-10-22 13:55:42 106
转载 XXL-JOB分布式任务调度平台学习
XXL-JOB分布式任务调度平台学习地址:http://www.xuxueli.com/xxl-job/#/?id=
2019-10-21 14:09:40 201
转载 RPC框架Dubbo与JSF
背景 Dubbo是阿里巴巴开源的一个高性能优秀的服务框架现(已加入Apache项目中),使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。京东也有一个基于这样的框架做了定制和改进的JSF,那我们为什么要提出这样的一个RPC框架呢?互联网架构演变 孟子云:“颂其诗,读其书,不知其人可乎,是以论其世也。”讲的使我们要透...
2019-10-18 18:47:54 1210
转载 HashAlgorithm哈希算法信息
HashAlgorithm表示所有加密哈希算法实现均必须从中派生的基类继承层次结构System.Object System.Security.Cryptography.HashAlgorithm System.Security.Cryptography.KeyedHashAlgorithm System.Security.Cryptography.MD5 Sys...
2019-10-18 17:57:06 1682
转载 spring AOP源码赏析(@EnableAspectJAutoProxy注解说明)
在这个注解比较流行的年代里,当我们想要使用spring 的某些功能时只需要加上一行代码就可以了,比如:@EnableAspectJAutoProxy开启AOP,@EnableTransactionManagement开启spring事务管理,@EnableCaching开启spring缓存@EnableWebMvc 开启webMvc..... 对于我们使用者而言...
2019-10-18 17:08:35 404
原创 38.安心技术梳理 - 响应式页面控制
1,方案一:响应式来做,可以根据媒体查询,设定在不同屏幕宽度下div的高度和宽度,具体的设置看你响应式想怎么显示@media only screen and (min-width: 100px) and (max-width: 640px) { div{ width: 100px; height: 100px; }}@media only sc...
2019-10-08 11:52:08 116
原创 37.安心技术梳理 - tddl简介与使用
Atom层(可独立使用)–单个数据库的抽象–动态化的jboss数据源,ip port 用户名密码都可以动态修改。–TryLock模型–动态阻止某个sql执行–执行次数统计和限制GROUP 层(可独立使用)–读写分离–权重–写的HA切换–读的HA切换–允许动态添加新的slave节点Matrix 层–核心是规则引擎•可以单独抽取出来,放...
2019-10-08 11:51:38 842
原创 36.安心技术梳理 - nosql相关理论入门
分布式模型l 单机 l 分片 l 主从复制 l 点对点复制 l 混合分片与复制CAP理论(最终一致性)一致性(Consistency):任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的。可用性(Availability):每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的,并且读写操作响应快速。分区...
2019-09-25 20:28:51 91
原创 35.安心技术梳理 - mysql容灾及自动化切换
背景:mysql主库单点问题通过业务功能的写入主库通常只能有一个,故障时需要切换到备用主库结合TDDL的mysql主库的容灾切换方案共识:1.使用TDDL的业务通常将mysql配置信息放在diamond 2.TDDL group作用是读写分离部署步骤:1.mysql实例和mysql-agent比例1:1 2.增加和修改d...
2019-09-25 20:27:10 923
原创 34.安心技术梳理 - ID生成器使用
pom依赖<dependency> <groupId>com.gome.architect</groupId> <artifactId>idgenerator</artifactId> <version>0.0.2-SNAPSHOT</version></dependency>注意...
2019-09-25 20:25:09 169
原创 33.安心技术梳理 - HashMap引发死循环的原因
今天生产上发现了一个由于HashMap导致的死循环,是在对HashMap做put操作时引发的,代码在业务方面并没有错误, 主要是由于在多线程环境下使用了非线程安全的HashMap引起的.在网上找了一个帖子,很好的解释了在多线程环境下,HashMap引发死循环的原因, 发出来一起学习下.原帖地址:http://blog.csdn.net/xiaohui127/article...
2019-09-25 19:40:22 103
原创 32.安心技术梳理 - Rockmq介绍
一.版本 <dependency> <groupId>com.alibaba.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>3.2.6</version&...
2019-09-25 19:37:19 386
原创 31.安心技术梳理 - Zipprint dubbo服务追踪架构
领域模型zipprint中跟踪数据模型: Trace:一次服务调用追踪链路。 Span:追踪服务调基本结构,多span形成树形结构组合成一次Trace追踪记录。 Annotation:在span中的标注点,记录整个span时间段内发生的事件。 BinaryAnnotation:属于Annotation一种类型和普通Annotati...
2019-09-25 18:23:14 127
原创 30.安心技术梳理 - dubbo配置指南
Configuration ReferenceConfiguration Relation:SLA配置在此完成!Service Layer AgreementService Layer AgreementApplicationConfig 应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。 RegistryConfig 注册中心配置,用于配置连接注册中心相关信息...
2019-09-25 18:16:13 116
原创 29.安心技术梳理 - diamond使用介绍
diamond介绍diamond为应用系统提供了获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数据。diamond特点diamond的特点是简单、可靠、易用:简单:整体结构非常简单,从而减少了出错的可能性。可靠:应用方在任何情况下都可以启动,在承载阿里核心系统并正常运行多年来,没有出现过任何重大故障...
2019-09-25 18:14:07 821
原创 28.安心技术梳理 - Linux常用小命令
1.查看磁盘容量df -h2.文件中查找内容cat/more service.log | grep "小程序"3.查找文件find -name 'aa*'4.谷歌浏览器加密consoal中输入window.btoa("123456a")5.服务器查看进程命令ps aux | grep java6.先用ps查找进程,然后用kill杀掉ps -ef|grep...
2019-09-25 18:02:19 89
原创 27.安心技术梳理 - 常用Mongodb+Mysql语句整理
Mongodb1.创建普通索引db.mogOrderInfo.createIndex({"parentUserId":1});2.创建复合索引db.mogOrderInfo.createIndex({"orderId":1,"commerceId":1,"deliveryId":1});3.查询索引db.mogOrderInfo.getIndexes({})4.条件查询总数...
2019-09-25 17:43:50 166
转载 26.安心技术梳理 - JAVA线程状态、线程START方法源码、多线程、JAVA线程池、如何停止一个线程
下面将依次介绍:1. 线程状态2. start方法源码3.什么是线程池?4. 线程池的工作原理和使用线程池的好处5. ThreadPoolExecutor中的Worker,线程池底层实现原理6. 线程池工具类如Executors等7. 如何停止一个线程(含代码)8.如何合理的配置Java 线程池?如 CPU 密集型的任务,基本线程池 应该配置多大?IO 密集型...
2019-09-22 18:42:02 152
转载 Spring线程池ThreadPoolTaskExecutor配置及详情
1. ThreadPoolTaskExecutor配置 1 <!-- spring thread pool executor --> 2 <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">...
2019-09-20 19:57:38 220
原创 多线程实例代码 - 面向过程语言
#include <iostream> #include <windows.h> using namespace std;DWORD WINAPI Fun(LPVOID lpParamter){ for (int i = 0; i < 10; i++) cout << "A Thread Fun Displa...
2019-09-20 19:10:22 282
转载 全量异常扑捉注解:@SneakyThrows
@SneakyThrows大胆抛出已检查的异常,以前没有人抛出它们!Overview@SneakyThrows可以用来偷偷抛出已检查的异常而不在方法的throws子句中实际声明这一点。当然,应该谨慎使用这种有争议的能力。由lombok生成的代码不会忽略,包装,替换或以其他方式修改抛出的已检查异常; 它只是伪造了编译器。在JVM(类文件)级别,无论方法的throws子句如何,都可以抛出所...
2019-09-19 19:25:19 7720 1
原创 25.安心技术梳理 - Spring事件异步处理业务(解耦)
现在用户下单需要处理的业务太多,为了不影响客户下单体验,我们对付完款之后的业务需要做一个事件异步发布到Spring提供的ApplicationContext中,被监听器侦测到,就会执行对应的业务方法,直接上干货!项目基于springboot做的:1.创建自定义监听事件import org.springframework.context.ApplicationListener;publi...
2019-09-19 18:00:13 233
转载 Spring事件机制实现异步的方法
这篇文章主要介绍了使用Spring事件机制实现异步的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧当把一个事件发布到Spring提供的ApplicationContext中,被监听器侦测到,就会执行对应的处理方法。事件本身事件是一个自定义的类,需要继承Spring提供的ApplicationEvent。? 1 2 3 ...
2019-09-19 16:22:41 816
转载 Java三大器之拦截器(Interceptor)的实现原理及代码示例
1,拦截器的概念 java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截然后再之前或者之后加入某些操作。目前,我们需要掌握的主要是Spring的拦截器,S...
2019-09-18 02:13:49 350
转载 基于Mycat实现读写分离
mycat实现读写分离/分库分表/分片原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL 语句,首先对SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户https://www.jianshu.com/p/37d79af54fac...
2019-09-18 01:56:09 97
转载 24.安心技术梳理 - 分布式事务解决方案
一、分布式事务前奏事务:事务是由一组操作构成的可靠的独立的工作单元,事务具备ACID的特性,即原子性、一致性、隔离性和持久性。 本地事务:当事务由资源管理器本地管理时被称作本地事务。本地事务的优点就是支持严格的ACID特性,高效,可靠,状态可以只在资源管理器中维护,而且应用编程模型简单。但是本地事务不具备分布式事务的处理能力,隔离的最小单位受限于资源管理器。 全局事务:当事务由全局事务管理...
2019-09-16 18:44:02 136
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人