Java
文章平均质量分 60
清风追梦enjoy
无论什么时候,都要清醒地认识自己,并始终不忘努力。
展开
-
JSON.toJSONString中空字符串不参与序列化问题
String jsonStr = JSON.toJSONString(cfPayNotifyVo); //空值和空字符串不参与序列化JSON.toJSONString(cfPayNotifyVo, SerializerFeature.WriteMapNullValue); //有空值的字段也参与序列化------------参考:https://www.cnblogs.com/wa...原创 2019-12-18 17:39:48 · 1420 阅读 · 0 评论 -
Java必备知识总结(2020版)
一、Java基础1.== 和 equals 的区别是什么?== 解读基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.ou...原创 2019-12-05 18:14:44 · 921 阅读 · 0 评论 -
Java8中StreamAPI总结and示例
目录1.Stream简介2.为什么要使用Stream3.示例数据源 4.Filter5.Map6.FlatMap7.Reduce8.Collect9.Optional10.并发11.调试----------------------------------------------------------------------1...原创 2019-12-03 20:37:50 · 607 阅读 · 0 评论 -
在Java8中为什么要使用红黑树来实现的HashMap?
一、前言在jdk1.8版本后,Java对HashMap做了改进,在链表长度大于8的时候,将后面的数据存在红黑树中,以加快检索速度。二、红黑树回顾红黑树的英文是“Red-Black Tree",简称R-B Tree。它是一种不严格的平衡二叉查找树,我前面说了,它的定义是不严格符合平衡二叉查找树的定义的。那红黑树空间是怎么定义的呢?顾名思义,红黑树中的节点,一类被标记为黑色,一类被标记...原创 2019-11-29 12:03:30 · 14759 阅读 · 2 评论 -
Java开发面试知识点梳理(含答案)
出于篇幅考虑,这篇文章给出了10个专题。Java面试宝典产生自我7月份准备社招跳槽的过程,当时网上找了些试题,但是没答案,然后一边梳理自己的知识,一般结合自己平时钻研的知识和工作经验,自己对试题进行了整理,解答。也凭借着这次梳理,社招一路过关斩将,offer收割率100%。面了头条,和美团的3个事业部,均收获offer。也预祝各位校招和社招的朋友,斩获满意的offer。悄悄告诉你,外面...原创 2019-11-27 16:31:29 · 527 阅读 · 0 评论 -
限流(Rate limit)算法总结
一、前言保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。今天和大家谈谈限流算法的几种实现方式,本文所说的限流并非是Nginx层面的限流,而是业务代码中的逻辑限流。那么为什么需要限流呢?按照服务的调用方,可以分为以下几种类型服务1、与用户打交道的服务比如web服务、对外API,这种类型的服务有以下几种可能导致机器被拖垮:用户增长过快(这是好事)因为某个热点事件(微博热...原创 2019-11-22 11:24:58 · 905 阅读 · 0 评论 -
CountDownLatch(闭锁)、Semaphore(信号量)、CyclicBarrier(回环栅栏)
一、CountDowLatch(闭锁)(倒计数锁存器) CountDownLatch类位于java.util.concurrent包下,在完成某些运算时,只有其他所有线程的运算全部完成,当前运算才继续执行。 利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能。final CountD...原创 2019-11-21 20:38:35 · 423 阅读 · 0 评论 -
UTF-8中文一个汉字占几个字节?
英文字母和中文汉字在不同字符集编码下的字节数英文字母:字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 : 2;编码:UTF-16LE中文汉字:字节...原创 2019-10-12 11:28:51 · 8909 阅读 · 1 评论 -
MySQL开发规范
MySQL开发规范主要内容命名规范 数据库基本设计规范 数据库字段设计规范 数据库索引设计规范 数据库SQL开发规范命名规范所有的数据库对象名称(包括库名、表名、列名等等)必须以小写字母命名,每个单词之间用下划线分割,禁用中划线,请勿使用驼峰规则给表或者字段命名。 所有的数据库对象名称禁止使用 MySQL 保留关键字。 数据库对象的命名要能做到见名知意,并且不要超过 32...原创 2019-08-01 10:05:25 · 177 阅读 · 0 评论 -
HttpMessageNotReadableException: Required request body is missing
解决方案:重启项目nohup java -jar fact-web-0.0.1-SNAPSHOT.jar&原创 2019-07-30 16:52:35 · 1444 阅读 · 0 评论 -
常用正则
座机和手机号:/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/座机:/0\d{2}-\d{7,8}/手机号:/^(1[0-9])(\d{9})$/身份证号:/^(^[1-9]\d{5}[1-9]\d{3}(((0[2])([0|1|2][0-8])|(([0-1][1|4|6|9])([0|1|2][0-9]|[3][0]))|(((0[1|3|5|7|8...原创 2019-07-30 10:13:58 · 423 阅读 · 0 评论 -
Ali代码规约 --IDE插件
安装打开Eclipse,Help -> Install New Software-->add 地址:https://p3c.alibaba.com/plugin/eclipse/update回车,然后勾选Ali-CodeAnalysis,一路Next Next。 重启Eclipse。 取消阿里编码规约插件扫描出来的警告及错误虽然阿里规约有限制,但偶尔会有并不赞同的...原创 2019-05-07 10:04:55 · 511 阅读 · 0 评论 -
SpringCloud-通过Zuul上传文件
官档地址:https://cloud.spring.io/spring-cloud-static/Greenwich.RELEASE/single/spring-cloud.html#_router_and_filter_zuul1.普通微服务实现上传功能application.ymlserver: port: 8050eureka: client: servi...原创 2019-04-05 01:46:02 · 784 阅读 · 0 评论 -
哪些情况会导致索引失效
索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:-------------------------------简单归纳,如下:1--条件有or2--联合索引【复合索引】不适用第一部分3--like 以%开头4--字符串不加引号5--where条件有数学运算或函数--------------------------------详细如下:如果条件中有...原创 2019-08-15 17:18:06 · 2489 阅读 · 0 评论 -
SpringCloud-使用Zuul反向代理微服务
1.除了用户之外,所有服务都被忽略。application.yml. zuul: ignoredServices: '*' routes: users: /myusers/**2.Zuul指定path+serviceid前面的示例意味着对/myusers的HTTP调用被转发到用户服务(例如/myusers/101被转发到/101)。要获得对路由的更细粒度控...原创 2019-04-05 00:39:42 · 639 阅读 · 0 评论 -
SystemProperty
package bhz.utils;public class TestSystemProperty { public static void main(String[] args) { System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号 System.out.prin...原创 2019-08-18 17:59:59 · 711 阅读 · 0 评论 -
为什么Map桶【链表】中个数超过8才转为红黑树
要弄明白这个问题,我们首先要明白为什么要转换,这个问题比较简单,因为Map中桶的元素初始化是链表保存的,其查找性能是O(n),而树结构能将查找性能提升到O(log(n))。当链表长度很小的时候,即使遍历,速度也非常快,但是当链表长度不断变长,肯定会对查询性能有一定的影响,所以才需要转成树。至于为什么阈值是8,我想,去源码中找寻答案应该是最可靠的途径。--------------------...原创 2019-08-19 16:27:26 · 2785 阅读 · 1 评论 -
JDK1.8中HashMap在出现hash碰撞时链表长度超过8一定会变成红黑树?
JDK1.8中HashMap在出现hash碰撞时链表长度超过8就一定会变成红黑树吗答案是:否.实际上转换红黑树有个大前提,就是当前hash table的长度也就是HashMap的capacity(不是size)不能小于64.小于64就只是做个扩容.看HashMap源码核心代码如下(大体上调用关系就是put->putVal->treeifyBin):put()...原创 2019-08-23 16:50:59 · 5689 阅读 · 1 评论 -
日志关键词查找--常用Linux命令
tail【常用】tail -1000f nohup.outtail -n 100 nohup.outgrep【常用】grep -A10 -B20 '资金方' nohup.out --color多关键词 或grep -E "资金方|核心企业|供应商" nohup.out --color多关键词 与grep '2019-08-16 10:00' nohup.out | ...原创 2019-08-16 16:09:34 · 898 阅读 · 0 评论 -
JRebel热部署插件【亲测】
1. JRebel简介JRebel是一种热部署生产力工具,修改代码后不用重新启动程序,所有的更改便可以生效。它跳过了Java开发中常见的重建、重新启动和重新部署周期。2. 相关工具下载地址【对应自己电脑版本】:https://github.com/ilanyu/ReverseProxy/releases/tag/v1.4下载后双击启动;tom 换成UUI...原创 2019-08-31 16:15:06 · 1164 阅读 · 1 评论 -
QuickSort快排算法
QuickSort快排算法:如 6 1 2 7 9 3 4 5 10 8基准数:最左的数:6规则:最左的哨兵i, 最右的哨兵j;先从最右往左找一个小于基准的数,再从左往右找一个大于基准的数,交换[i] 和 [j];当i==j 时,交换基准数和[i], 则基准数归位(找到自己正确的位置)。本质:每一轮会使一个基准数归位。开始: 6 1 2 7 9 3 4 5 ...原创 2019-09-04 15:42:26 · 216 阅读 · 0 评论 -
ThreadLocal简析-高并发
ThreadLocal 线程局部变量ThreadLocal就是用空间换时间,synchronized是用时间换空间比如在hibernate中session就是存在于Thread中,避免synchronized的使用,提高了效率1.package threadlocal_test;import java.util.concurrent.TimeUnit;public cla...原创 2018-11-09 00:44:14 · 510 阅读 · 0 评论 -
SpringCloud--Zuul简介及代码示例
Zuul官档地址:https://cloud.spring.io/spring-cloud-static/Greenwich.RELEASE/single/spring-cloud.html#_router_and_filter_zuul 路由(Routing)是微服务体系结构的一个组成部分。例如,/可以映射到web应用程序,/api/users映射到用户服务,/api/shop映射到...原创 2019-02-18 00:44:43 · 444 阅读 · 0 评论 -
何为正向代理和反向代理
1. 为什么使用代理服务器?提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门网站能明显提高访问速度。防火墙作用 由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可以在代理服务器上设限,过滤掉某些不安全信息。同时正向代理中上网者可以隐藏自己的IP,...原创 2019-02-17 17:54:39 · 448 阅读 · 0 评论 -
「Chris Richardson 微服务系列」使用 API 网关构建微服务
编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨:微服务架构是如何影响客户端到服务端的通信,并提出一种使用 API 网关的方法。 作者介绍:Chris Richardson,是世界著名的软件大师,经典技术著作《POJOS IN ACTION》一书的作者,也是 cloudfoundry.com 最初的创始人,Chris Richardson 与 Martin...原创 2019-02-16 15:34:48 · 209 阅读 · 1 评论 -
SpringCloud之Feign-声明式REST客户端
1.Feign是什么?Feign是一个声明式的web服务客户端。它使编写web服务变得更容易。要使用Feign创建一个接口interface和注解(annotate)便可以实现。它具有可插拔的的注解(annotation)支持,包括feitn自身的注解和JAX-RS注解。Feign还支持可插拔的编码器(encoders)和解码器(decoders)。Spring Cloud增加...原创 2018-12-02 23:13:42 · 254 阅读 · 0 评论 -
Java StreamAPI简析及示例
Java StreamAPIStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对...原创 2018-11-17 20:35:15 · 275 阅读 · 0 评论 -
线程池原理-高并发
1.FixedThreadPool 2.CachedThreadPool 弹性有任务就会开启新线程 默认线程等待时间60s3.SingleThreadPool 单线程只有一个线程 保证线程执行先后顺序4.ScheduledThreadPool 定时任务5.WorkStealingPool 工作窃取6. ForkJoinPool fork分叉 join合并-----...原创 2018-11-17 00:55:30 · 412 阅读 · 0 评论 -
JAVA线程池-高并发
ExecutorExecutorService接口 execute 执行无返回值的任务 submit 执行有返回值的任务Callable 约等于 RunnableExecutorsThreadPool 任务队列 结束任务队列Future parallelComputing线程池并行计算1.FixedThreadPool2.CachedThreadPool...原创 2018-11-15 01:03:01 · 526 阅读 · 0 评论 -
java实现火车票售卖-高并发
实现1: * 售卖火车票实现1: * 用ArrayList * * 产生的问题: * 重复销售 * 超量销售 * * 原因: * 1.size不是原子的 * 2.remove不是原子的 * 3.判断+操作 不是原子的 package sell_ticket_test;/** * 售卖火车票实现1: * 用ArrayList * * 产生的问题:...原创 2018-11-11 18:50:14 · 4755 阅读 · 0 评论 -
单例模式-5种实现方式
单例模式就是说系统中对于某类的只能有一个对象,不可能出来第二个。单例模式也是23中设计模式中在面试时少数几个会要求写代码的模式之一。主要考察的是多线程下面单例模式的线程安全性问题。1.多线程安全-单例模式实例一(不使用同步锁) package singleton_test;/** * 1.多线程安全单例模式实例一(不使用同步锁) * @author x1c * *...原创 2018-11-10 19:00:42 · 536 阅读 · 0 评论 -
微服务架构的介绍
单体架构--->微服务架构what:以一组小型服务来开发一个独立的应用系统1.每个微服务可以独立运行在自己的进程里;2.一系列独立运行的微服务共同构建起了整个系统3.一个微服务一般完成某个特定的功能;4.微服务通过一些轻量的通信机制进行通信,例如REST API或者RPC方式进行调用优点:1.易于开发和维护2. 单个微服务启动较快3.局部修改容易部署...原创 2018-11-04 18:31:44 · 233 阅读 · 0 评论 -
高并发编程-synchronized的使用
淘宝面试题:实现一个容器,提供两个方法,add,size写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束-------------------------------------------------------------------------------------------------------1.一般写法...原创 2018-10-31 01:35:20 · 224 阅读 · 0 评论 -
高并发编程
高并发需掌握点第一部分:synchronizer 同步器第二部分:jdk的同步容器 concurrentMap concurrentList CopyOnWriteArrayList blockingQueue 等第三部分:ThreadPool executor ...原创 2018-11-01 00:44:52 · 267 阅读 · 1 评论 -
使用Hystrix保护应用
要解决的问题: 现在我们假设一下,服务提供者响应非常缓慢,那么消费者对提供者的请求就会被强制等待,直到服务返回。在高负载场景下,如果不做任何处理,这种问题很可能造成所有处理用户请求的线程都被耗竭,而不能响应用户的进一步请求。雪崩效应在微服务架构中通常会有多个服务层调用,大量的微服务通过网络进行通信,从而支撑起整个系统。各个微服务之间也难免存在大量的依赖关系。然而任何服务都不是100...原创 2018-12-08 00:46:12 · 205 阅读 · 0 评论 -
SpringCloud之Hystrix简介及示例
官档地址:https://cloud.spring.io/spring-cloud-static/Finchley.SR2/single/spring-cloud.html#_circuit_breaker_hystrix_clientsCircuit Breaker: Hystrix Clients断路器:Hystrix客户端Netflix创建了一个名为Hystrix的库,它实现了断...原创 2018-12-08 17:01:02 · 434 阅读 · 0 评论 -
SpringCloud之Eureka HA
1. High Availability, Zones and Regions 高可用Eureka服务器没有后端存储,但是注册表中的服务实例都必须发送心跳来保持它们的注册是最新的(因此这可以在内存中完成)。客户端还有一个Eureka注册的内存缓存(这样他们就不必每次向服务请求时都去注册中心)。默认情况下,每个Eureka服务器也是一个Eureka客户机,需要(至少一个)服务URL来定位...原创 2018-12-06 00:26:54 · 293 阅读 · 0 评论 -
Spring 面试问题 TOP 50
Spring Framework 现在几乎已成为 Java Web 开发的标配框架。那么,作为 Java 程序员,你对 Spring 的主要技术点又掌握了多少呢?不妨用本文的问题来检测一下。本文内容主要翻译自 Top 50 Spring Interview Questions You Must Prepare In 20181. 一般问题1.1. 不同版本的 Spring Framew...原创 2019-01-05 17:27:18 · 203 阅读 · 0 评论 -
Java SE 11 新特性
美国当地时间9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用!这是自 Java 8 后的首个长期支持版本,非常值得大家的关注,可以通过下面的地址进行下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.htmlJava 11...原创 2018-12-24 15:44:31 · 1894 阅读 · 0 评论 -
Cannot format given Object as a Number
报错:java.lang.IllegalArgumentException: Cannot format given Object as a Number at java.text.DecimalFormat.format(DecimalFormat.java:507) at java.text.Format.format(Format.java:157)代码:Deci...原创 2018-12-24 13:16:59 · 40927 阅读 · 0 评论