java
傻大喵
一个年轻人的奋斗历程
展开
-
Retrofit2
原文:Retrofit 2.0: The biggest update yet on the best HTTP Client Library for Android不熟悉Retrofit的同学可以先参考这篇文章: Retrofit – Java(Android) 的REST 接口封装类库 ,很适合入门。因为其简单与出色的性能,Retrofit 是安卓上最流行的HTTP Client库之一。不过它的转载 2017-07-14 17:11:57 · 2234 阅读 · 0 评论 -
spring boot+RabbitMQ
前言本篇主要讲述spring Boot与RabbitMQ的整合,内容非常简单,纯API的调用操作。 操作之间需要加入依赖Jar[html] view plain copydependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-sta转载 2017-07-05 17:48:06 · 585 阅读 · 0 评论 -
kafka中partition和消费者对应关系
1个partition只能被同组的一个consumer消费,同组的consumer则起到均衡效果消费者多于partitiontopic: test 只有一个partition创建一个topic——test,bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitio转载 2017-07-13 14:49:32 · 2906 阅读 · 0 评论 -
使用JMAP dump及分析dump文件
其中jmap是java自带的工具查看整个JVM内存状态 jmap -heap [pid]要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起查看JVM堆中对象详细占用情况jmap -histo [pid]导出整个JVM 中内存信息jmap -dump:format=b,file=文件名 [pid]jhat是sun 1.6及以转载 2017-07-12 15:59:10 · 1489 阅读 · 0 评论 -
Spring中@Async用法总结
引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法。1. 何为异步调用? 在解释异步调用之前,我们先来看同步调用的定义;同步就是整个处理过程顺序执行,转载 2017-07-01 17:22:44 · 624 阅读 · 0 评论 -
Guava Cache使用笔记
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。 实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。 2.Guava Cache的load方法不能返回null,否则抛异常 Guava Cache的get方法先在本转载 2017-06-06 12:05:12 · 1381 阅读 · 0 评论 -
LocalDate简介
看看新的LocalDate怎么用:// 取当前日期:LocalDate today = LocalDate.now(); // -> 2014-12-24// 根据年月日取日期,12月就是12:LocalDate crischristmas = LocalDate.of(2014, 12, 25); // -> 2014-12-25// 根据字符串取:LocalDate e转载 2017-06-16 18:35:38 · 804 阅读 · 0 评论 -
java中的匿名内部类总结
匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法123456789101112131转载 2017-10-11 15:03:04 · 1135 阅读 · 0 评论 -
CompletableFuture详解
目录 [−]主动完成计算创建CompletableFuture对象计算结果完成时处理转换纯消费(执行action)组合either辅助方法 allOf 和 anyOf更进一步参考文档Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回转载 2018-01-08 14:42:21 · 1231 阅读 · 0 评论 -
java后端技术栈
https://github.com/xingshaocheng/architect-awesome原创 2018-06-04 19:32:13 · 1003 阅读 · 0 评论 -
第一章 y-base开发初心,致所有迷茫的技术同伴
项目初心: 不知不觉工作已经三年了,从混日子的大学毕业时对技术的懵懂,到后来的工作中一次次发现自己的能力不足,逐渐明白技术的道路并不好走。努力的人,一直都走在你的前面,而知难而退的人也能看到他们在别的领域有所收获。回观自己,既没有走出技术圈子,却也没有拿得出手的积累。这样的日子循环往复,心情也日渐焦虑。作为一个做技术的人,其实就是电脑前的民工,怎么样才能把握自己的方向,找到正确的路...原创 2019-01-18 10:48:00 · 186 阅读 · 0 评论 -
创建线程需要带线程名
3.9 创建线程以及线程池时候要指定与业务相关的名字,以便于追溯问题日常开发中当一个应用中需要创建多个线程或者线程池时候最好给每个线程或者线程池根据业务类型设置具体的名字,以便在出现问题时候方便进行定位,下面就通过实例来说明不设置时候为何难以定位问题,以及如何进行设置。3.9.1创建线程需要带线程名下面通过简单的代码来说明不指定线程名称为何难定位问题,代码如下: publi...转载 2019-02-18 09:12:52 · 1386 阅读 · 0 评论 -
通过反射,动态修改注解属性值
昨晚看到一条问题,大意是楼主希望可以动态得建立多个Spring 的定时任务。这个题目我并不是很熟悉,不过根据题目描述和查阅相关 Spring 创建定时任务 的资料,发现这也许涉及到通过Java代码动态修改注解的属性值。今天对此尝试了一番,发现通过反射来动态修改注解的属性值是可以做到的:众所周知,java/lang/reflect 这个包下面都是Java的反射类和工具。Annotat...转载 2019-02-18 14:34:41 · 1817 阅读 · 2 评论 -
@KafkaListener通过配置加载多个topic
接到领导的一个需求,希望封装一下kafka的消费者,可以从配置读取topic进行消费;一开始首先想到的是用java kafka的高阶api手工根据topic创建消费者,一个topic创建一个消费者,依赖zookeeper完成kafka内部的balance和其他管理。后来领导又提出不要依赖zookeeper,之前老是rebalance失败。 调研了一下,手工实现类似sp...原创 2019-02-19 15:38:32 · 15221 阅读 · 15 评论 -
rsa加解密,签名
一、公钥加密 假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,来解密。这样我就可以保护数据了。我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了...转载 2019-02-14 12:14:47 · 320 阅读 · 0 评论 -
elastic-job-lite运维管理界面
下载编译$ git clone https://github.com/elasticjob/elastic-job-lite.git$ cd elastic-job-lite$ mvn clean install -Dmaven.test.skip=true编译完毕后会生成一个压缩包,这里的版本是以3.0.0.M1为例。$ ls -lrt elastic-job-lite-c...转载 2019-04-26 09:43:14 · 3914 阅读 · 0 评论 -
基于Event Sourcing和DSL的积分规则引擎设计实现案例
架构设计模式(Architecture Patterns),是“从特殊到普遍”的、基于各种实际问题的解决方案而总结归纳出来的架构设计最佳实践,是一种对典型的、局部的架构逻辑的高度抽象思维;在合理的场景下恰当使用它们,避免“重新发明车轮”,对技术解决方案有指导性作用,往往事半功倍。广发证券IT研发团队作为架构设计模式的坚定践行者,在各类证券业务中经常运用。Event Sourcing就是这么一个比较转载 2017-04-24 12:46:10 · 4185 阅读 · 0 评论 -
spring-mvc注解式格式化属性数据
因为后端使用的是spring-mvc框架,自己开发一个标注实现数据绑定。(不采用java.util.Date,依赖joda-time.jar)model: Java代码 package com.ztgame.me.ext.model.datetimerange; import java.io.Serializable; import org.joda.ti转载 2017-04-19 16:25:23 · 696 阅读 · 0 评论 -
Spring Boot之基于注解的数据格式化
spring Boot来开发Web应用,大部分使用的是Spring MVC的一些功能及特性。Spring MVC在对数据格式化时,提供了很多内部格式化工具来方便开发人员来对数据进行处理。具体可以参考:http://blog.csdn.net/jrainbow/article/details/46709543。同样Spring MVC也提供了一些接口让我们方便的扩展,自定义一些方法来处理转载 2017-04-19 16:18:42 · 2069 阅读 · 0 评论 -
java技术栈梳理
Java语言基础, 基本类型, 操作符, 运算符, 表达式面向对象, 类, 继承, 多态, 重写, 重载String, Object, Array, Enum 集合, List, ArrayList, Set, HashSet, Map, HashMap, HashTableFile, IO, NIO, InputStream, OutputStream, Reader, Writer,转载 2017-02-23 16:56:21 · 781 阅读 · 0 评论 -
一名3年工作经验的程序员应该具备的技能(写得很好,果断转)
因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Java程序员的。简单先说一下,LZ坐标杭州,13届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有6家公司(因为LZ不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少),其中成功转载 2017-02-23 16:53:02 · 31795 阅读 · 19 评论 -
AOP如何对自定义注解进行切面编程
spring AOP需要的jar包 org.aspectj aspectjrt 1.7.3 org.aspectj aspectjweaver 1.7.3 cglib cglib-nodep 2.1_3主要配置信息:设置切面代理注入切面的类在servi转载 2017-01-22 18:17:38 · 2407 阅读 · 0 评论 -
一种简单的加密算法
//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package javax.crypto.spec;import java.security.spec.KeySpec;import java.util.Arrays;import转载 2017-01-20 15:23:25 · 1380 阅读 · 1 评论 -
java注解知识
Java用 @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。@Override,@Deprecated,@SuppressWarnings为常见的3个注解。注解相当于一种标记,在程序中加上了注解就等于为程序加上了某种标记,以后,JAVAC编译器,开发工具和其他程序可以用反射来了解你的类以及各种元素上有无任何标记,看你有什么标转载 2017-01-20 13:55:07 · 225 阅读 · 0 评论 -
ConcurrentHashMap小知识
ConcurrentHashMap融合了Hashtable和HashMap二者的优势。 Hashtable是做了线程同步,HashMap未考虑同步。所以HashMap在单线程下效率较高,Hashtable在多线程下同步操作能保证程序的正确性。 但是Hashtable每次执行同步操作都需要锁住整个结构。 ConcurrentHashMap的出现就是为了解决Hashtable原创 2017-02-10 14:38:21 · 301 阅读 · 0 评论 -
forEach实现原理
Java.util.List实现了java.lang.Iterable接口.jdk api文档中是这样描述Iterable接口的:实现这个接口允许对象成为 "foreach" 语句的目标。不过咋一看Iterable接口并没啥特别之处,只是定义了一个迭代器而已。[java] view plaincopypublic interface Iterable {转载 2017-02-28 13:54:07 · 4317 阅读 · 0 评论 -
Http请求post方法,请求和响应中文乱码问题的一点解决方法
请求的解决方法: 把封装好的json数据,通过new一个ByteArrayEntity的方式,在post的entity里设置UTF-8格式的byte类型的json数据,保证中文的正确传输。 String json = JacksonUtil.toJson(postMap); HttpEntity entity =原创 2016-12-19 20:39:29 · 20453 阅读 · 1 评论 -
java本地缓存实现
在java web 项目中对频繁读取且相对稳定的数据一般都是用了缓存,这样可以极大地减少数据库的压力且提高的响应的速度。 一般都是,通过key 从缓存中读取value 如果value 为空则读取DB,将DB读取的数据再放入缓存这样的一个过程。一个简易的本地缓存实现。 首先数据一般都是有时效性的,不是放入缓存就一直存在,如果超过一定时间没有被使用则应当被清空,使其系统中不会转载 2017-03-11 17:44:55 · 7128 阅读 · 1 评论 -
springboot + mybatis + 多数据源
在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一个数据源。代码结构:简要原理:1)DatabaseType列出所有的数据源的key---key2)DatabaseContextHolder是一个线程安全的DatabaseType容器,并提供了向其中设置和获取DatabaseType的方法3)DynamicDataSource继承A转载 2017-03-21 16:21:03 · 383 阅读 · 0 评论 -
JavaWeb 并发:FOR UPDATE 实战,监测并解决。
一、前言针对并发,老生常谈了。目前一个通用的做法有两种:锁机制:1.悲观锁;2.乐观锁。但是这篇我主要用于记录我这次处理的经历,另外希望能看的大神,大牛,技师者,学长,兄长,大哥们能在评论中发表自己的看法和解决技巧等。 二、故事是这样的一个表,暂且叫 wallet,其中3个字段是 金额。初始值为0,如下图所示: 然后我们写了一个极为简单的转载 2017-04-28 11:37:30 · 662 阅读 · 0 评论 -
java中四大基本加密算法
简单的java加密算法有:BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Code,散列消息鉴别码)1.BASE64Base64是网络上最常见的用于转载 2017-04-10 17:12:21 · 1323 阅读 · 0 评论 -
apache MD5加密
Java代码 import org.apache.commons.codec.digest.DigestUtils; public final class MD5Encrypt { private static final String MD5_PREFIX = "http://yuanyong.iteye.com"; p转载 2017-03-27 20:01:03 · 3761 阅读 · 0 评论 -
volatile关键字详解
一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存转载 2017-04-10 16:36:47 · 387 阅读 · 0 评论 -
java线程安全问题之静态成员变量、实例成员变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《java并发编程实践》中所说:写道给线程安全下定义比较困难。存在很多种定义,如:“一个类在可以被多个线程安全调用时就是线程安全的”。此处不赘述了,首先给出静态变量、实例变量、局部变量在多线程环境下的线程安全问题结论,然后用示例验证,请大家擦亮眼睛,有错必究,否则误人转载 2017-04-10 16:27:45 · 429 阅读 · 0 评论 -
java批量处理数组中元素后,返回处理结果的元素集合
假设ConfigDOConverter是处理的工具类,parse是处理方法,且parse返回的就是数组中某个元素的对象,那么处理方法如下:'数组'.stream.map('工具类'::'方法名').collect(Collectors.toList());例子如下:public static List parse(final List configs) { if (原创 2017-03-13 10:39:31 · 866 阅读 · 0 评论 -
【Restful接口】restful接口的两种使用方式
小编最近的项目是好几个团队的一块合作,由于项目大,功能多,各个团队负责的东西不同,我的团队除了自己的开发前端和后端外,还负责给别的团队提供后端支持,在这里就用上了restful接口. 小编刚开始都是本本分分的做着自己的dubbo接口,后来被分了几个restful接口,之前没有写过restful接口,别人给讲了讲以后开始写dobbo接口的旅程.为什么用restful接转载 2017-03-12 18:43:46 · 13328 阅读 · 0 评论 -
springboot + mybatis + 多数据源 (AOP实现)
1、ShopDao 1 package com.xxx.firstboot.dao; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.stereotype.Repository; 5 6 import com.xxx.fi转载 2017-03-21 16:27:58 · 1061 阅读 · 0 评论 -
注意java内存泄漏
对于有语言编译基础的同志,要注意了,如果你是刚学java的.那么下面你必须要看.当然本人也是一样,也会出现下面某些错误。所以本人总结了一些。当然都是个人看法.不代表就是对的.也许有些是错的.同时也希望熟悉JAVA的高高手指出.或者有更好的看法或建议.都可以和我沟通.大家一齐来学习。同时这也是对自己的一种提高。在项目应用中.往往都是面临复杂的业务.而且用户量增加.内存使用自然就会增大.还转载 2016-12-08 16:15:29 · 225 阅读 · 0 评论