Java技术
文章平均质量分 72
zab635590867
这个作者很懒,什么都没留下…
展开
-
Java老特性之lambda它是一个类
lambda 来源于数学符号λ[læ:mdə],是一套关于函数(𝑓(𝑥))定义、输入量、输出量的计算方案语法出现的目的:使代码变得简洁、紧凑lambda语法更关注函数/功能,而非对象。原创 2023-11-06 15:23:01 · 147 阅读 · 0 评论 -
记一次生产GC频繁处理
公司飞书收到了告警通知,CPU超高了原创 2022-10-27 20:13:00 · 514 阅读 · 0 评论 -
CPU超高问题排查
前言:这标题和JVM调优一样,是一层窗户纸,不捅破感觉很难的样子,捅破了后,你会发出感叹:就这?原创 2022-08-30 17:53:02 · 661 阅读 · 0 评论 -
如何判断单链表有环?
如题,如何判断单链表有环呢?思路一:快慢指针,定义两个指针,同时指向链表头结点。指针移动速度不一样,一个快,一个慢,循环链表时,如果快慢指针相遇,则有环。很好理解,犹如跑道上的两个人,有人跑的快,有人跑的慢,同时起跑,跑的快的人,必然在比跑的慢的多跑一圈后,会追上跑得慢的。思路二:遍历链表,每个元素都往set集合里装,如果有环,肯定会重复,新增元素时判断set是否包含该元素,即可判断链表是否有环:包含则有环,完成遍历,不包含则无环。 两种思路实现...原创 2022-06-12 23:42:51 · 1023 阅读 · 0 评论 -
单链表反转
单链表反转原创 2022-06-12 00:03:16 · 92 阅读 · 0 评论 -
SpringCloud集成Seata和Nacos
seata官方demo阅读困难,bug多!一手资料做成了二手水平!原创 2022-05-08 16:22:03 · 927 阅读 · 0 评论 -
k8s可视化界面安装
两种k8s可视化界面原创 2022-03-08 17:02:35 · 909 阅读 · 0 评论 -
K8S发布应用步骤
k8s发布应用原创 2022-03-08 16:44:21 · 1610 阅读 · 1 评论 -
kubeadm方式搭建k8s集群
k8s集群搭建常用步骤原创 2022-03-08 16:01:59 · 1095 阅读 · 0 评论 -
Spring、SpringBoot知识梳理及项目实践
项目实战内容包含:集成mybatis、mybatis-plus(相关插件使用)集成redis自定义注解实现aop切面动态代理demo通用返回类读取配置文件方式全局异常处理常用web配置(跨域、消息转换、日期转换)starter封装案例启动项目初始化操作原创 2021-12-09 13:36:48 · 885 阅读 · 0 评论 -
JAVA SPI机制理解及思考
理解Java SPI (Service Provider Interface) is the mechanism to load services dynamically. We can implement Java SPI in our application by following the specific set of rules and load the services using the ServiceLoader class.翻译重点:Java SPI是一种动态加载服务的机制(动态调原创 2021-09-16 11:56:13 · 138 阅读 · 0 评论 -
POI上传带图片的Excel
/** * 可用于读取包含多个表的excel * 外层map用于表示sheet,list用于表示每个sheet的行记录,内层map用于表示sheet-->row-->cell即:行中的每一列数据 * * @param filePath 文件路径 * @return {@link Map<String, List<Map<String, Object>>>} */public Map<String, List<Map<Strin.原创 2021-06-01 16:24:08 · 464 阅读 · 0 评论 -
Nacos 功能初探
简介:Nacos 致力于帮助您发现、配置和管理微服务。在SpringCloud中,可以替换eureka、configNacos Config一、安装启动1、下载安装https://github.com/alibaba/nacos/releases2、解压3、启动cd到bin目录,执行:sh startup.sh -m standalone见到如上界面就表示启动成功4、登陆管理界面http://localhost:8848/nacos/index.htm原创 2021-05-22 13:51:52 · 224 阅读 · 4 评论 -
ELK部署笔记(docker-compose部署)
环境:CentOS7.6,1核2G建议先看后面两部,可以先把yum更新到最新,安装的docker如果与系统匹配上,可能会比较顺利!1、用docker部署elk的大体步骤yum install docker yum install docker-compose新建自定义目录,新建docker-compose.yml文件(这个过程叫编排服务)mkdir /xxx/elk vim dokcer-compose.yml复制以下内容到新建的docker-compose.yml文件,保存原创 2020-11-28 12:19:13 · 1963 阅读 · 0 评论 -
Error deserializing Avro message for id -1
Error deserializing Avro message for id -1最近博主在工作中遇到过这种错误。分析该错误是由于kafka反序列化消息失败导致的。至于为啥失败,这样从项目说起。话说博主接了一个项目,该项目由其他项目迁移过来修修补补,kafka消息监听也有很多。于是乎,遇到新需求时,都是拷贝一份kafka配置过来,其中一份配置长这样:props.put("key.deserializer", "org.apache.kafka...原创 2020-12-23 19:44:45 · 863 阅读 · 0 评论 -
如何修改git已提交的commit message
git commit --amend会弹出一个编辑框,就像vim一样,按下键盘I键(insert)编辑好了过后,(:wq)保存即可原创 2020-12-22 10:37:06 · 1323 阅读 · 1 评论 -
如何分库分表
数据库怎么分库分表,垂直?水平?一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 ->分库和垂直分表。第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 ->分库。2、CPU瓶..转载 2020-09-24 10:52:17 · 731 阅读 · 0 评论 -
后台管理系统打包笔记(antd+springboot)
1、前端项目,npm run build生成dist文件夹2、后台配置@Configuration@EnableWebMvcpublic class WebMvcConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry r...原创 2020-03-31 00:04:19 · 560 阅读 · 0 评论 -
IDEA自定义方法注释(一张图搞定)
IDEA是开发java程序的神器,那么如何在方法上快速自定义一个注释呢?其实看一个图就会了:原创 2018-06-22 23:13:33 · 853 阅读 · 0 评论 -
自定义一个可以使用增强for循环的类
听说这是一道面试题,兴起研究了下ArrayList的源码熬制而成下列代码,主要使用两个接口:Iterable和Iterator。要实现一个类可以使用增强for循环第一步:使该类实现Iterable,字面理解是:让该类有能力迭代(-able),该接口只有一个需要实现的方法,即:iterator(),方法返回一个迭代器Iterator<T>;第二步:定义一个内部类,内部类实现Iterato...原创 2018-06-16 18:36:20 · 1842 阅读 · 2 评论 -
Spring-data-jpa介绍与使用
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门,百度一下,很多入门的介绍。在这篇文章的接下来一篇,会有一个系列来讲解mybatis,这个系列从mybatis的入门开始,到基本使用,和spring整合,和第...转载 2018-08-17 12:35:27 · 860 阅读 · 0 评论 -
SpringBoot2.0.4使用JPA和Redis
近来研究SpringBoot持久化与缓存的问题,搜集资料做了一个Demo。 环境:Win10、JDK1.8、IDEA、Redis、Mysql5.7、Redis3.2、SpringBoot2.0.4Release版第一步建立一个学生表:CREATE TABLE `student` ( `sid` int(11) DEFAULT NULL, `sname` ...原创 2018-08-21 23:04:31 · 3118 阅读 · 3 评论 -
springboot2.0.5集成mybatis(PageHelper分页插件、generator插件使用)
用IDEA搭建springboot2.0.5项目选择Spring initializr就可以轻松搭建一个springboot项目,第一次搭建很费时在Group写上公司域名,Artifact写上项目名,打包用Jar选Web勾选SQL项,勾选MySQL、JDBC、MyBatis,这里选择了过后,IDEA会方便地帮我们导入相关依赖数据库建立CREATE TABL...原创 2018-09-28 17:04:58 · 7831 阅读 · 2 评论 -
Maven内置属性
有时候在看一些开源框架的配置文件(如swagger2)时,有些莫名其妙的属性不知道说的哪个文件夹,特查询资料做个总结,方便以后自己查阅。Maven属性内置属性(maven预定义,用户可以直接使用的) 主要有两个常用内置属性: ${basedir}表示项目根目录,即包含pom.xml文件的目录 ${version}表示项目版本 ...原创 2018-10-21 19:58:32 · 788 阅读 · 0 评论 -
SpringBoot2.0.6集成Dubbo(零xml)
springboot集成dubbo有多种方式,这里介绍一种比较新的不用xml的方式分享给大家,用到依赖dubbo-spring-boot-starter项目环境:win10+jdk1.8+zookeeper3.4.13+springboot2.0.6zookeeper的安装和配置不了解的,读者大人请自行百度。项目运行前,首先启动zookeeper的zkServer.cmd。项目结构...原创 2018-10-31 22:38:44 · 1714 阅读 · 4 评论 -
AES前后端加解密踩坑记录
为什么要加密传输参数?采用什么加密方式?AES有多少中加密类型?是读者大人们自行百度的哟。话不多说,既然是踩坑记录,放心肯定是能解决问题的。上代码后端工具类import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;...原创 2019-04-18 22:28:46 · 2745 阅读 · 4 评论 -
SpringBoot2.1.5实现动态数据源切换
问题1、数据不都是在一个库存在,可能需要到其他库去操作数据比如现在需要从两个不同库里去拿user数据而我们用springboot项目做配置一般是这么写的:其中url已经定位到一个库了,所有的操作都是基于这个test库里面的不同的表2、公司业务做得比较大,数据库需要主从分离基于以上两种问题,需要做数据源的动态切换。解决方案1、思路分析要想配置多个数据源,必...原创 2019-06-02 10:09:12 · 1647 阅读 · 0 评论 -
从头到尾谈Java垃圾回收
原著:聂晓龙(花名:率鸽),阿里巴巴高级开发工程师。之前上学的时候有这个一个梗,说在食堂里吃饭,吃完把餐盘端走清理的,是 C++ 程序员,吃完直接就走的,是 Java 程序员。转载 2019-07-30 22:16:48 · 734 阅读 · 0 评论 -
聊聊Java8接口中的default和static方法
JDK1.8之前的接口回顾 在jdk1.8之前,我们对接口的认知是这样的: 1、方法:只能包含public和abstract的方法,即使定义为:interface Shape { //获取几何图形的面积 Double getArea(double length, double width);}方法前面也默认加了public abstract修饰...原创 2019-09-21 16:34:44 · 1983 阅读 · 4 评论 -
浅谈SpringAOP的两种实现技术
AOP(Aspect Oriented Programming)的出现是为了解决面向对象语言程序设计中的离散却又耦合的冗余代码,AOP是OOP(Oriented Object Programming)设计思想的补充,OOP解决了程序中“纵向”代码冗余问题,AOP要解决类与类之间“横向”的代码冗余问题,设计中诸如:log、安全验证、性能监控、权限验证、事务等需求都会在类中方法造成大量代码重复...原创 2018-05-24 20:04:49 · 3937 阅读 · 1 评论