-
JAVA使用SnakeYAML解析与序列化YAML
所属栏目:[Java] 日期:2020-12-15 热度:154
1.概述 本文,我们将学习如何使用SnakeYAML库将 YAML文档转换为Java对象,以及JAVA对象如何序列化为YAML文档 。 2.项目设置 要在项目中使用SnakeYAML,需要添加Maven依赖项(可在此处找到最新版本): dependency groupIdorg.yaml/groupId artifactIdsnakeya[详细]
-
JAVA 使用jgit管理git仓库
所属栏目:[Java] 日期:2020-12-15 热度:74
最近设计基于gitops新的CICD方案,需要通过java读写git仓库,这里简单记录下。 JGit是一款pure java的软件包,可以读写git仓库,下面介绍基本使用。 引入jgit maven引入: !-- https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit -- depe[详细]
-
Spring Data Mongodb 乐观锁
所属栏目:[Java] 日期:2020-12-15 热度:197
Spring Data 针对mongodb提供了乐观锁实现: The @Version annotation provides syntax similar to that of JPA in the context of MongoDB and makes sure updates are only applied to documents with a matching version. Therefore,the actual value of[详细]
-
java应用诊断和在线debug利器bistoury介绍与在K8S环境使用
所属栏目:[Java] 日期:2020-12-15 热度:118
Bistoury介绍 Bistoury 是去哪儿网开源的一个对应用透明,无侵入的java应用诊断工具,用于提升开发人员的诊断效率和能力,可以让开发人员无需登录机器或修改系统,就可以从日志、内存、线程、类信息、调试、机器和系统属性等各个方面对应用进行诊断,提升开[详细]
-
基于ambassador实现K8S灰度发布
所属栏目:[Java] 日期:2020-12-15 热度:116
为什么需要灰度发布 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移[详细]
-
idea java 正则表达式匹配替换
所属栏目:[Java] 日期:2020-12-15 热度:163
? 原文匹配中文 excelMap.get(("[u4E00-u9F15]+")) 目标 excelMap.get($1.hashCode())[详细]
-
Java 日期加减计算.
所属栏目:[Java] 日期:2020-12-15 热度:85
1.用 Java .util.Calender来实现 ?? Calendar calendar=Calendar.getInstance();??? ?? calendar.setTime(new Date());? ?? System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天的日期? ?? calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Ca[详细]
-
分布式事务一致性,事务补偿实战
所属栏目:[Java] 日期:2020-12-15 热度:132
?一、事务记录补偿表设计 ? ?三、业务补偿函数 ? @Override public void compensation(BidPaymentDetailConfirmRecord confirmRecord,ProviderUserSession userSession) throws Exception { Long type = confirmRecord.getBusinessType(); Long detailId = c[详细]
-
Java 字符串转成运算公式
所属栏目:[Java] 日期:2020-12-15 热度:199
GroovyShell 实现 public static void main(String args[]) { Binding binding = new Binding(); binding.setVariable( "F",2.5 ); binding.setVariable( "T",30 ); binding.setVariable( "A",100 ); binding.setVariable( "P0",1)">); binding.setVariable([详细]
-
Java调用http保留访问状态
所属栏目:[Java] 日期:2020-12-15 热度:100
? package com.coracle; import com.coracle.yk.xframework.util.yunTongXun.HttpRequest; import java.io.* ; java.net.HttpURLConnection; java.net.URL; /** * Created by huangbaidong * 2017/4/12. */ public class TestHttpStatus { static void main([详细]
-
java -jar后台启动
所属栏目:[Java] 日期:2020-12-15 热度:158
nohup ?java -jar XX.jar logs.log[详细]
-
从内存泄露、内存溢出和堆外内存,JVM优化参数配置参数
所属栏目:[Java] 日期:2020-12-15 热度:142
内存泄漏 内存泄漏是指程序在申请内存后,无法释放已申请的内存空间,无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费。内存泄漏最终会导致OOM。 造成内存泄漏典型场景: 1. 单例模式的不正确使用单例对象在[详细]
-
Java并发队列与容器
所属栏目:[Java] 日期:2020-12-15 热度:167
【前言:无论是大数据从业人员还是Java从业人员,掌握Java高并发和多线程是必备技能之一。本文主要阐述Java并发包下的阻塞队列和并发容器,其实研读过大数据相关技术如Spark、Storm等源码的,会发现它们底层大多用到了Java并发队列、同步类容器、ReentrantLo[详细]
-
JVM内存管理和垃圾回收
所属栏目:[Java] 日期:2020-12-15 热度:80
无论对于Java程序员还是大数据研发人员,JVM是必须掌握的技能之一。既是面试中经常问的问题,也是在实际业务中对程序进行调优、排查类似于内存溢出、栈溢出、内存泄漏等问题的关键。笔者将按下图分多篇文章详细阐述JVM: ? 本篇文章主要叙述JVM内存管理、直[详细]
-
笔试编程(一) | 二分查找、数组相关
所属栏目:[Java] 日期:2020-12-15 热度:123
最近有小伙伴在公众号后台留言需要准备一些面试相关的文章,其实在面试相关的文章准备笔者早有打算。在春节后,笔者会针对大数据领域相关的求职面试准备一些面试题,同时分享一些面试经验,希望能帮助到大家。 今天先分享一些笔试中经常遇到的一些编程题,包[详细]
-
笔试编程(二) | 7种常见的排序算法解析(附实现代码)
所属栏目:[Java] 日期:2020-12-15 热度:135
1. 快速排序(这里给出两种实现方法) /**思路: * 1. 在数据集中,选择一个元素作为"基准(pivot)" * 2. 分区(partition):所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素都移到"基准"的右边 * 3. 分区操作结束后,基准元素所处的位置就是最[详细]
-
开发导致的内存泄露问题,运维小伙伴儿这样排查不背锅
所属栏目:[Java] 日期:2020-12-15 热度:77
前些日子小组内安排值班,轮流看顾我们的服务,主要做一些报警邮件处理、Bug排查、运营issue处理的事。工作日还好,无论干什么都要上班的,若是轮到周末,那这一天算是毁了。 不知道是公司网络广了就这样还是网络运维组不给力,网络总有问题,不是这边交换机[详细]
-
JVM垃圾回收器、内存分配与回收策略
所属栏目:[Java] 日期:2020-12-15 热度:182
新生代垃圾收集器 1. Serial收集器 serial收集器即串行收集器,是一个单线程收集器。 串行收集器在进行垃圾回收时只使用一个CPU或一条收集线程去完成垃圾回收工作,并且会暂停其他的工作线程(stop the world),直至回收完成。适用于运行在client模式下的JV[详细]
-
JAVA反射机制与动态代理
所属栏目:[Java] 日期:2020-12-15 热度:61
承接上篇博客里面,类加载器把类加载把类加载进内存,同时创建出了一个唯一的Class对象,其实它本质上就是一个java类,只不过功能挺特殊的---说白了,就像当初,数据多了,用集合装,还多?写个类,用对象装,类可以对一系列数据的描述,然后谁描述类呢--Class里面有类的[详细]
-
函数式接口 & lambda表达式 & 方法引用
所属栏目:[Java] 日期:2020-12-15 热度:52
拉呱: 终于,学习jdk8的新特性了,初体验带给我的感觉真爽,代码精简的不行,可读性也很好,而且,spring5也是把jdk8的融入到血液里,总之一句话吧,说的打趣一点,学的时候自己难受,学完了写出来的代码,别人看着难受 开篇说一个问题,jdk8是如何把这些新的特性添加进[详细]
-
如何优雅规避NPE
所属栏目:[Java] 日期:2020-12-15 热度:160
项目中尤其是在持久层,难免会有大量的针对集合,对象,字符串的操作,为了程序的健壮性,我们不得不进行判空,像下面箭头式编码吗? if(null!=person){ ... if(null!=address){ ... if(null!=phone){ ... } }} NO 优雅的规避空指针异常 一. 工具类 坐标 dependency[详细]
-
手动模拟JDK动态代理
所属栏目:[Java] 日期:2020-12-15 热度:56
为哪些方法代理? 实现自己动态代理,首先需要关注的点就是,代理对象需要为哪些方法代理? 原生JDK的动态代理的实现是往上抽象出一层接口,让目标对象和代理对象都实现这个接口,怎么把接口的信息告诉jdk原生的动态代理呢? 如下代码所示, Proxy.newProxyInstance([详细]
-
java8-Stream
所属栏目:[Java] 日期:2020-12-15 热度:102
流的编程模型 通常使用流操作集合,用更简便的用法,更高效方式实现对集合的操作 从源中获取流 -- 中间操作 --- 汇聚流 我们在Stream基础上添加了一系列的中间操作,进一步加工Stream,终止操作操作会把Stream从新汇聚起来,我们可以选择统计数量,平均值,也可以选[详细]
-
IO流与装饰者模式
所属栏目:[Java] 日期:2020-12-15 热度:197
java使用IO流来处理不同设备之间数据的交互; 所有的IO操作实际上都是对 Stream 的操作 从功能上划分: 输入流: 当数据从源进入的编写的程序时,称它为输入流; 输出流: 从程序输出回另一个源成为输出流; 输入与输出是有参照物的,而这个参照物就是应用程序本身[详细]
-
如何提高web应用的吞吐量
所属栏目:[Java] 日期:2020-12-15 热度:112
目录 是谁限制了Throughput? 将目光投向缓存 对Redis进行压测 页面缓存技术 对象缓存技术 模仿Vue实现页面静态化 静态资源的优化手段 验证码技术 接口限流技术 这篇博文所 列举的优化手段是针对比较传统项目 ,但是想提高系统的吞吐量现在时髦的技术还是那些[详细]