自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

转载 GraalVM:微服务时代的Java

网上每隔一段时间就能见到几条“未来X语言将会取代Java”的新闻,此处“X”可以用Kotlin、Golang、Dart、JavaScript、Python……等各种编程语言来代入。这大概就是长期占据编程语言榜单第一位的烦恼,天下第一总避免不了挑战者相伴。如果Java有拟人化的思维,它应该从来没有惧怕过被哪一门语言所取代,Java“天下第一”的底气不在于语法多么先进好用,而是来自它庞大的用户群和极其成熟的软件生态,这在朝夕之间难以撼动。不过,既然有那么多新、旧编程语言的兴起躁动,说明必然有其需求动力所在,譬

2021-02-02 13:32:35 1795 3

原创 springboot2.1.8+springcloud-Greenwich.SR3+seata-server1.3.0+nacos-server1.3.0 实现分布式事务

前言由于seata是目前主流的分布式事务解决方案,所以下面来讲述下如何基于seata实现分布式事务控制。前期准备本文基于seata的 AT模式实现分布式版本控制,AT的好处是配置开发简单、对业务无侵入,是seata主推的分布式事务解决方案。Nacos 依赖 Java 环境来运行。前期先安装好java运行环境。这里安装的版本是JDK8。相关版本springboot版本:2.1.8springcloud版本:Greenwich.SR3spring-cloud-alibaba版本:2.1.0.RE

2020-08-27 14:05:48 1100

转载 python写入文件时,encoding=‘utf-8‘格式,打开生成的csv文件,中文是乱码。

写入文件时,encoding='utf-8’格式,打开生成的csv文件时,写入的中文是乱码。encoding='utf-8-sig’格式写入,生成的csv文件打开后,中文是正常的。这个是什么原因啊?----已得到解释:python3的版本在写入文件时,编码当时如果用的utf-8,中文其实是可以读得。用普通的文本编译器就行比如notepad++,但是用excel打开csv文件会出现中文乱码得情况,是因为python编码方式为utf-8,但是是无BOM格式的,excel软件,其对于utf-8编程方式,只支持有

2020-08-06 16:06:04 2291 1

转载 mysql-installer-web-community和mysql-installer-communityl两个版本的区别

mysql的官网上提供了两个mysql共享版本的安装,一个20M,一个373.4M。二者的区别是前者是联网安装,当安装时必须能访问互联网,后者是离线安装使用的,一般建议下载离线安装使用的版本。

2020-08-05 12:05:31 2655

原创 爬虫技术必会技能,不知道ssl-pinning是啥?那你Out了!

导航发现问题HTTPS中间人攻击ssl-pinning突破ssl-pinning总结发现问题在使用charles对FaceBook/Twitter进行抓包时,所有的请求最终都失败了。第一感觉是手机上安装的HTTPS证书被删除了,到设置中检查发现证书没有问题,手机上其它APP的https请求也能够正常抓取。看来应该是碰到新情况了,Google了下,了解到FaceBook/Twitter等应用使用了一种名叫ssl-pinning的技术来防止中间人攻击。HTTPS这张图比较形象地道出了HTTPS实际上是

2020-07-30 19:09:27 1778

原创 JVM常用调优方法

一、常用调优方法1、将新对象预留在新生代由于 Full GC 的成本要远远高于 Minor GC ,因此尽可能将对象分配在新生代,在JVM 调优中,可以为应用程序分配一个合理的新生代空间,以最大限度避免新对象直接进去老年代。注意:由于新生代垃圾回收的速度高于老年代回收,因此,将年轻对象预留在新生代有利于提高整体的 GC 效率2、大对象进入老年代大对象占用空间多,直接放入新生代中会扰乱新生...

2020-04-30 20:27:21 2717

原创 五种IO模型详解,看完再也不愁面试了!

在《Unix网络编程》一书中提到了五种IO模型,分别是:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO。下面就分别来介绍一下这5种IO模型的异同。1.阻塞IO模型最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据...

2020-04-26 20:39:08 688

转载 分布式唯一ID生成器

在应用程序中,经常需要全局唯一的ID作为数据库主键。如何生成全局唯一ID?首先,需要确定全局唯一ID是整型还是字符串?如果是字符串,那么现有的UUID就完全满足需求,不需要额外的工作。缺点是字符串作为ID占用空间大,索引效率比整型低。如果采用整型作为ID,那么首先排除掉32位int类型,因为范围太小,必须使用64位long型。采用整型作为ID时,如何生成自增、全局唯一且不重复的ID?方案...

2020-04-25 23:55:45 248

原创 如何获取java sun包的源码?,速看这里!!!

前言由于JDK的src.zip里面没有sun包的源码,所以要在IDEA里面查看sun包下的源码的时候只能看到通过反编译得到的代码,反编译得到的代码没有注释,而且很多局部变量名都变成了var1,var2这样子,看起来不太舒适。如果只是想随便看一看,可以直接在github或者OpenJDK上查看,但是这样看还是比较麻烦的,因为这样在网页上看不能像在IDE一样点击某个类然后跳转到某个类的源码。那么有没...

2020-04-16 20:44:10 1537

原创 外行人都能看得懂的WebFlux,错过了血亏!

本文知识点架构:我之前也说过,学习一项技术之前,先要了解为什么要学这项技术。一、什么是WebFlux?我们从Spring的官网拉下一点点就可以看到介绍WebFlux的地方了从官网的简介中我们能得出什么样的信息?我们程序员往往根据不同的应用场景选择不同的技术,有的场景适合用于同步阻塞的,有的场景适合用于异步非阻塞的。而Spring5提供了一整套响应式(非阻塞)的技术栈供我们使用(包括...

2020-04-12 13:48:48 748

转载 老大说:谁要再用double定义商品金额,就自己收拾东西走

先看现象涉及诸如float或者double这两种浮点型数据的处理时,偶尔总会有一些怪怪的现象,不知道大家注意过没,举几个常见的栗子:典型现象(一):条件判断超预期System.out.println( 1f == 0.9999999f ); // 打印:falseSystem.out.println( 1f == 0.99999999f ); // 打印:true 纳尼?...

2020-04-11 13:26:56 159

转载 ACTIVITI 研究系列 —— 源码研究之命令、责任链和模板模式

一、Activit 源码的命令、责任链和模板模式类图二、命令模式Activiti以命令模式为基本开发形式,业务操作均封装为一个Command实现类。Command 是基础的命令接口CommandContext 命令上下文该CommandContext的实例从Context获得,使用本地线程(ThreadLocal)保存(堆栈形式)CommandExecutor 命令执行者提供两...

2020-04-08 17:09:50 658

转载 说一说activiti中的排他网关和并行网关

activiti工作流中我们经常用到的网关有两种:1. Exclusive Gateway 排他网关排他网关(也叫异或(XOR)网关,或更技术性的叫法 基于数据的排他网关), 用来在流程中实现决策。 当流程执行到这个网关,所有外出顺序流都会被处理一遍。 其中条件解析为true的顺序流(或者没有设置条件,概念上在顺序流上定义了一个'true') 会被选中,让流程继续运行。注意这里的外出...

2020-04-04 19:53:30 1352

转载 Activiti中的同步节点和异步节点

同步节点和异步节点service task和 user task中都会有一个Asynchronous的复选框,这个Async有什么区别呢?参考Synchronous vs. Asynchronous Service Invocations - BPMN Service Task,可以理解为,同步节点:类似同步调用,调用者都是流程引擎,服务提供方是userTask, serviceTask,...

2020-04-04 19:45:31 3082

原创 达梦关键字(如:XML,EXCHANGE,DOMAIN,link等)配置忽略

背景:在使用达梦数据库时,查询SQL中涉及XML,EXCHANGE,DOMAIN,link字段,在达梦中是关键字,SQL报关键词不能使用的错误。解决办法:配置达梦安装文件E:\MyJava\dmdbms\data\DAMENG\dm.ini 忽略这些关键词,EXCLUDE_RESERVED_WORDS = XML,EXCHANGE,DOMAIN,link ...

2020-04-03 16:47:42 4255

原创 docker-ce-v18.09.0+kubernetes-v1.15.1(k8s)集群环境+dashboard-v1.10.1搭建完整教程

一、k8s简介什么是kubernetes首先,他是一个全新的基于容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。  Kubernetes是一个完备的分布式系统支撑平台,具有完备的集群管理...

2020-04-02 22:27:21 3559 1

转载 k8s Dashboard部署

1.下载Dashboard所需要用到的yaml文件wget https://www.cloudelf.cn/kubernetes/kubernetes-dashboard.yaml修改此yaml文件为:1).注释掉Dashboard Secret ,不然后面访问显示网页不安全,证书过期,我们自己生成证书。2).因为我选择nodeport访问dashboard,所以将service typ...

2020-04-02 20:02:06 297

原创 超强的 Stream 流操作

Java 8 新特性系列文章索引。Jdk14都要出了,还不能使用 Optional优雅的处理空指针? Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下? 还看不懂同事的代码?Lambda 表达式、函数接口了解一下 前言我们都知道 Lambda 和 Stream 是 Java 8 的两大亮点功能,在前面的文章里已经介绍过 Lambda 相关知识,这次介绍下 Java 8 的...

2020-03-30 21:26:43 509 1

原创 Springboot 系列(一)你真的了解 Swagger 文档吗?

前言目前来说,在 Java 领域使用 Springboot 构建微服务是比较流行的,在构建微服务时,我们大多数会选择暴漏一个 REST API 以供调用。又或者公司采用前后端分离的开发模式,让前端和后端的工作由完全不同的工程师进行开发完成。不管是微服务还是这种前后端分离开发,维持一份完整的及时更新的 REST API 文档,会极大的提高我们的工作效率。而传统的文档更新方式(如手动编写),很难保证...

2020-03-30 18:34:24 250 1

原创 如何在生产环境使用Btrace进行调试

背景记得前几天有人问我:在生产环境中可能经常遇到各种问题,你们一般是如何进行调试的? 很惭愧,没有经验。因为平时碰不到生产环境的服务器,定位问题需要各种数据,所以大多数问题的解决方式都是在本地打断点进行调试,或者在测试环境利用输出日志进行调试,这种方式简单粗暴,但过程比较繁琐,需要各种重新发布,重启应用,还不能保证一次就找到问题的根源。直到最近才了解到Btrace这个工具,对于这样一个神器,我觉...

2020-03-30 11:44:17 148

原创 Btrace

在之前介绍Java Agent的这篇文章中,简单介绍了Java agent的应用,里面提到了基于Java agent实现的线上调试利器Btrace,当我们想定位线上问题却苦于没有日志时,可以使用Btrace attach到线上进程,动态的修改线上代码,从而达到既保留现场又能定位问题的效果。Btrace的quickstart十分简单,并不需要有Java agent的基础。项目的git地址是Btra...

2020-03-30 11:34:38 212

原创 Spring GA、PRE、SNAPSHOT 版本含义及区别

GA:General Availability: 正式发布的版本,官方推荐使用此版本。在国外都是用GA来说明release版本的。PRE: 预览版,内部测试版。主要是给开发人员和测试人员测试和找BUG用的,不建议使用;SNAPSHOT: 快照版,可以稳定使用,且仍在继续改进版本。...

2020-03-28 18:25:33 2336

原创 java maven jar包获取途径总结

目前本人收集到的java第三方jar包的获取途径有以下几种方式:一、通过maven中央仓库,地址为:https://mvnrepository.com/二、通过sonatype网站下载,地址为:https://search.maven.org/三、通过https://www.mvnjar.com/这个网站进行搜索和下载jar包...

2020-03-28 00:11:39 524

转载 带你深入底层了解JDK1.7和JDK1.8的HashMap区别,史上最全!

HashMap底层解析1.8新特性HashMap的底层是数组+链表形式(1.7版本)HashMap的底层数组+链表+红黑树(1.8版本)  以上一点是最主要的不同点那么1.7和1.8的一些共同属性是:   数组的默认长度:16;   负载因子:0.75   扩容倍数:2倍   阈值(也就是什么时候需要扩容):16*0.75=12 由于底层的源码以及方法太多,博主值选择put...

2020-03-24 20:17:18 271

转载 POI 边框样式BorderStyle

POI 边框样式BorderStyle 1. 单元格边框样式 单元格边框样式包含框线样式和边框颜色,可以对单元格的四边设置不同的样式 设置单元格样式:style.setBorderBottom(BorderStyle.DOUBLE);style.setBottomBorderColor(IndexedColors.BLUE.getIndex());style.setBo...

2020-03-24 14:33:46 8807

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除