自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

是程序媛不是程序猿

Java架构师,最近刚跳槽某大厂 。分享我收集的Java干货资料和工作总结

  • 博客(37)
  • 收藏
  • 关注

原创 现在3年Java的市场竞争力怎么样?

前言找工作过程中我们经常会看到“与工作年限相匹配的水平”这样的字眼,那么究竟什么样才算是匹配呢?当然,这个话题可以说是仁者见仁,智者见智了。经验其实互联网职业可以大致分两个阶段,在毕业后的3到5年内主要都是以学习、积累为主,从一开始啥都不懂的校园“新鲜人”向“职业人”转变。如果你是Java开发者,在这个阶段你会学习:1、基础的Java知识,多线程、集合类、JVM2、进阶知识,设计模式、系统设计和方法论3、主流框架,Spring、Spring Boot、MyBatis……4、微服务,Dubbo

2020-08-12 18:51:26 373

原创 实践100个线程:一次MySQL数据并发问题

问题:最近接触一个任务,多个线程需要频繁更新mysql的同一条数据,使用了脚本进行并发测试,结果发现数据结构与预期不一致。数据表的结构类似如下:操作数据的步骤依次是先取出mysql中数据 应用程序中做赋值操作count = count + 1 最后update变更后的值到mysql中最近接触一个任务,需要频繁更新mysql的同一条数据,使用了脚本进行并发测试,结果发现数据结构与预期不一致。最近整理了一些Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我【Java.

2020-09-24 17:50:37 740

原创 网易工程师亲历:一次sql缺少where条件的惨案…

话说那是一个愉快的周五的下午,刚经历双11双黑五12大促连环迎战,一周的工作也接近结束,任务也都要走向提测的节点了,心里美滋滋,可以早点回家啦~巴特,popo弹出一份:xxx master 的单元测试静态代码检查失败,单元测试失败用例x个。请在1小时内修复并重新执行,否则可能会打回提测,单测失败详情xxx。点开详情看看失败原因吧~最近整理了一些Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我【Java】发给你~org.springframework.jdbc.U.

2020-09-21 12:32:16 338

原创 那些年我在MySQL+MyBatis+AES数据库加密遇到的一些坑坑坑坑

之前在对数据库加密的需求中遇到一些坑,拿出来分享一下。加密的方案是:将数据使用AES加密再经过base64编码。最近整理了一些Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我【Java】发给你~坑一: AES+base64加密后的长度AES算法加密后的长度应当是:不小于原始长度的16的最小倍数。例如:15字节加密后变成16字节 16字节加密后变成32字节这是第一个坑后面base64编码后的长度即变成4/3倍。坑二: 数据库的编码对varchar类型的..

2020-09-17 12:31:36 784

原创 网易技术总监亲述:这样做,帮老板省下400W+

前几天在KM上看到的深度好文,去和各位大佬要了授权。拿出来分享一下导读服务器资源利用率较低,IT基础设施的总拥有成本(TCO)逐年上涨,一直是困扰很多企业的难题。随着云原生技术的发展,Kubernetes逐渐成为数据中心的一项基础设施,将在/离线业务统一使用Kubernetes调度编排日渐成熟。本议题结合网易轻舟在这一领域的工作实践,介绍如何基于Kubernetes通过混合部署,在不影响在线业务的前提下将CPU利用率提高到50%以上,大幅降低企业数据中心成本。前言数据分析显示,数据中心成.

2020-09-15 17:59:20 700 1

原创 3分钟看懂必须掌握的Mybatis核心知识,教你自动生成Mapper

1.mybatis基本结构 mybatis是目前很流行的一个ORM框架,它帮助开发者实现数据库记录和POJO对象之间的映射,简化了在开发过程对数据库的操作。 mybatis核心组件有以下几个:SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成SqlSessionFactory(工厂接口) SqlSessionFactory:依靠工厂来生成SqlSession(会话) SqlSession:是一个既可以发送SQL去执行并返回结果,也可以获取Mappe..

2020-09-14 17:50:50 448

原创 网易架构师心得:Springboot下使用redis踩过的坑

分享我的网易架构师同事写的一篇在spring boot下使用redis的心得~首先总结了redis服务端单线程工作模型,redis四种部署方式及使用场景,然后从源码的角度上,分析springboot在jedis和lettuce客户端下使用redis的一些坑~尤其是在集群模式下的一些不兼容问题!Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我发给你~一起学习进步!1 Redis服务端单线程模型redis 内部使用文件事件处理(file event handler)处.

2020-09-11 17:46:42 1224 1

原创 老板:不懂spring还来做项目?建议离职

一、Spring框架1.1 Spring框架是什么Spring是一种容器框架,用于配置各个组件(bean)并且维护各个组件bean之间的关系Spring框架可以管理Web层,业务层,DAO层,持久层。Spring提倡面向接口编程,配合DI技术可以实现层与层的解耦(主要是WEB层和业务层)Spring框架图1.2 一个简单的spring项目目录结构引入spring的开发包(最小配置spring.jar以及日志包common-logging.jar)创建spring的一个核心文件App

2020-09-10 17:45:12 191

原创 回想那天让我虎躯一震的bug:Mybatis Ognl引起的异常

最近线上项目的关键环节突然抛出了一个数据库访问的空指针异常,不免神经一紧,经过最终排查,确认了该问题属于mybatis 3.3.0(不包含)以下版本已存在的bug,新版本的mybatis已经修复,具体情况如下:系统jar版本异常堆栈排查过程根据堆栈信息,初步确定是mybatis的解析执行异常,通过搜索引擎进一步查证,该问题属于mybatis低版本中存在的并发bug,问题发生时也确实存在多个线程并发访问同一sql需进一步确认具体原因。由于之前对mybatis执行过程中mapper文件中定义

2020-09-09 18:43:41 414

原创 20个最常见的Linux问题,你会吗?(带完整答案解析)

1) Linux 中主要有哪几种内核锁?Linux 的同步机制从 2.0 到 2.6 以来不断发展完善。从最初的原子操作,到后来的信号量,从 大内核锁到今天的自旋锁。这些同步机制的发展伴随 Linux 从单处理器到对称多处理器的 过渡;伴随着从非抢占内核到抢占内核的过度。Linux 的锁机制越来越有效,也越来越复杂。 Linux 的内核锁主要是自旋锁和信号量。自旋锁最多只能被一个可执行线程持有,如果一个执行线程试图请求一个已被争用(已经被 持有)的自旋锁,那么这个线程就会一直进行忙循环——旋转——等待

2020-09-08 17:44:44 1379

原创 2020年网易内部疯转的Java学习资料,赶紧收藏!

1、线程池原理揭秘及多线程并发编程知识https://www.bilibili.com/video/BV1u4411B7xS2、分布式系统开发实战篇 - TCC分布式事务实现https://www.bilibili.com/video/BV1x4411R7hQ3、MyBatis插件原理与分页插件实战(问题咨询 微信weizhuanye234)https://www.bilibili.com/video/BV1Ag4y1a73A4、不学SpringBoot原理,终究是个CURDer!https

2020-09-07 17:40:56 153

原创 公网 CDN 污染的情况下,如何愉快上网冲浪?

公网的环境 CDN 混乱,一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的 IP地址,又可能路径特别长或错误导致对应网站访问超时或出错,现在教你如何愉快的网上冲浪关于公网 CDN 污染CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等,域名提供商可以提供许多免费的 DNS 解析服务,并且其解析速度非常快,多组 DNS 服务器,保证这些资源的快.

2020-09-02 17:41:28 813

原创 不收藏别后悔!5个程序员必备的实用工具!

本文主要用于推荐日常工作中使用的一些用于提高效率的开源免费软件。1.typoratypora 是一款基于 electron 开发的专注于 markdown 写作的软件,它支持了主流的 markdown 语法,同时提供了 What you see is what you get 的无缝即时预览模式,让你在写作的过程中能实时调整你的排版/样式。同时,他的侧边栏功能可以基于文章标题实时生成可点击的大纲并进行跳转,也可在文件的 tab 页浏览最近编辑的文件进行切换修改。当然,对于不熟悉 markdown 语.

2020-09-01 17:51:56 660

原创 多线程这个坎,面试时要怎么跨过去?

前言我发现有不少人,表面看起来是 3-5 年的大佬了,但其实还是有很多基础知识很薄弱的,特别是涉及到多线程问题。他们大部分都是因为小公司规模小不受限的原因,才没有过多使用过多线程。等你换了一家新公司,你会发现各大实战中会出现多个有关多线程应用场景,到了这个时候,你就会发现就连应届生的基础都比你好,这就尴尬了。。。经验(题库)其实学习多线程,只要从实际应用场景出发去探索,这样从基础到底层的去学,就可以很好地摸透它,从而了解其实现原理和问题原因。不知道大家面试的时候有没有出现过面试官问你关于多线程

2020-08-31 17:48:43 194

原创 解决完这个小问题,我总结了一份工作装X指南

前言在最近开发财务系统的时候,遇到一个问题:因为集团财务数据库的权限控制,导致测试和预发布环境只有部分机器有访问集团财务数据库的权限,而代码中又不区分机器,导致开发测试过程中因为没有环境导致验证相关功能阻塞.本着不侵入业务代码的原则,尝试依赖spring去解决在特定环境下直接跳过访问集团财务数据库的方式来解决该问题.既然要依赖spring来解决,那么就需要先了解下spring bean和mybatis自动注入的一些基本机制,顺便也为了以后写类似的装X代码做点准备.1.spring-bean的生命周期

2020-08-28 17:49:52 112

原创 有了这篇JVM的题库,下次跳槽再也不慌

最近的Java架构师想要跳槽真的好难。。。。。。从前面试官问的都是基础题,现在都往细节问,往深了问,恨不得你现场造个火箭出来。VJM也一直是面试时头疼不已的一大痛点。我特意问了问刚跳槽来的同事,他也说自己面试时被问到了,幸好他在那天之前肝了一下VJM的题库在我真(超)情(不)实(要)感(脸)的请求下,他终于答应给我康康这些神仙题库了。1. 内存模型以及分区,需要详细到每个区放什么。JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class 类信息常量池(stat.

2020-08-27 17:59:30 331

原创 咸鱼必备!如何用Spring Cloud 帮你偷懒?

背景要求快速开发迭代传统web框架对于多模块组合的“过时”避免重复造轮子,框架上的测试链调复杂性高 专注业务概念定义Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。Spring Cloud对微服务基础框架Netflix的多个开源组件进行了封装,同时又实现了和云端平台以及和SpringBoot开发框架的集成。Spring Cloud为微服务架构开发涉及的配置管理,服务治理,熔断机制,智能路由,微代理,控制总

2020-08-26 17:47:19 208

原创 同事成功跳槽阿里!昨晚悄悄传给我167页Java面试题集锦(附答案)

一、Java基础部分(共80+题)基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法, 线程的语法,集合的语法,io 的语法,虚拟机方面的语法。1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?2、Java 有没有 goto?3、说说&和&&的区别。4、在JAVA 中如何跳出当前的多重嵌套循环?5、switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上?6、short

2020-08-25 17:41:17 228

原创 网易云音乐是怎么做曲库缓存的?设计动机大揭秘!

云音乐曲库缓存随着多年的实践、改善,结合曲库数据的特点,形成自有的一套缓存使用体系,并能够取得了很好的效果。在工作过程中,有些喜欢刨根问底的同学会经常来讨论这样设计的原因,想在其它场景中借鉴一样的思路,在此想以文章进行历程介绍,让更多的同学了解背后设计的动机。本篇文章较少形而上的理论知识,更多以实战为主,以解决问题作为切入点,讲述曲库缓存的设计之道缓存基础介绍缓存是系统设计中,用于提升底层系统访问能力的一种技术手段,它同样作用于云音乐的各个系统中,一种常用的缓存使用调用链路如下:转化为时序图.

2020-08-24 18:51:07 755

原创 无需了解业务就能低成本高覆盖!还有这种好事?

本文讲述了易盾实人信息认证项目的引流测试实践。通过引流平台,将线上用户的真实流量复制并运用于自动化回归测试当中,精准覆盖核心业务逻辑,实现了低成本的日常自动化回归。你们有没有遇到过一个项目,曾易手多人,开发和QA换了一茬又一茬,短时间内无法全面熟悉内部逻辑,没有完善的自动化回归用例集,每次上线前都感觉心好慌?我所在的部门,致力于提供业内领先的安全服务解决方案,随着近几年的高速发展,安全产品线越来越丰富,目前已多达20余个。在这过程中,有些业务线出现重组优化,人员变更的情况。我现在手里就有这么一个A.

2020-08-21 17:55:55 209

原创 【程序猿同事的分享】 redis性能问题诊断利器

redis-faina是一款非常好用的redis性能诊断工具,如果你的redis server遇到性能问题,比如cpu非常高,那么可以使用redis-faina来分析问题原因。redis-faina 是由Instagram 开发并开源的一个Redis 查询分析小工具,GitHub地址: https://github.com/facebookarchive/redis-faina。它是通过Redis的MONITOR命令来实现的,通过对在Redis上执行的query进行监控,统计出一段时间的query特性,

2020-08-20 17:41:55 221

原创 MyBatis 缓存的使用,看这篇就够了

在日常工作中,我们大多使用MyBatis的默认缓存配置,但是MyBatis缓存机制也有一些不足之处,一不留神就会出现脏数据,形成一些潜在的隐患,后续排查问题容易浪费时间精力。所以,如何用好MyBatis的缓存,是重中之重的。这里主要介绍MyBatis 的一级缓存和二级缓存。在默认的情况下, 只开启一级缓存(一级缓存是对同一个 SqlSession 而言的)。1 一级缓存同一个 SqlSession 对象, 在参数和 SQL 完全一样的情况先, 只执行一次 SQL 语句(如果缓存没有过期) 也就是只

2020-08-19 17:48:17 580

原创 从nginx-ingress说开去——通用的容器日志持久化方案

容器内的日志输出有多重方式:容器内文件、stdout、stderr等等,我们在解决nginx-ingress-controller的日志持久化过程中,以k8s的编排和组织能力,尝试非侵入地解决各种问题,包括目录权限与挂载的问题、nginx配置问题、日志轮转的问题。希望这些解决方法,可以为读者容器化应用的日志落盘提供思路。从需求说起轻舟微服务平台大量地依赖nginx-ingress-controller进行流量管理和负载均衡,因此该组件的日志维护非常重要。轻舟k8s团队设计了一个较为无侵入的方案,通.

2020-08-18 17:27:29 1101

原创 随笔系列之延时队列

广义上来说,延时队列存在多种不同实现方式,每种实现方式对延时队列又有着不同的定义。但是,无论其怎么定义,延时队列总有一个共性,能够使进入队列的消息被延迟消费。一、背景介绍1、何为延时队列广义上来说,延时队列存在多种不同实现方式,每种实现方式对延时队列又有着不同的定义。比如,JDK中juc包下,自带的DelayQueue是这么定义的:“DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象。其中的对象只能在其到期时才能从队列中取走”—— Think .

2020-08-17 17:31:53 626

原创 过来领你的Bug之“质量度量“篇

前言之前我讲解了Bug记录平台以及如何对Bug进行分析。基本是在单个Bug详细内容的维度单点进行分析和改进,为我们的项目、产品进行质量提升。其实我们需要更高一层的思考问题,如何利用现有的数据评估我们的项目质量呢,这就涉及到关于质量度量的问题。质量度量简单来说就是一个项目或一个产品经过一段时间产品、开发、测试的迭代周期后,如何评估这个产品质量是否能够满足预期。可能会包含很多方面,例如短期来看的软件运转的是否良好,是否存在一些潜在的风险或遗留问题,是否能够直接发布上线。长期来看就是整个流程是否存在优化的空

2020-08-14 17:36:54 1075

原创 Mybatis解析xml打印工程SQL

据同事回忆,那是一场sql缺少where条件的惨案话说那是一个愉快的周五的下午,刚经历双11双黑五12大促连环迎战,一周的工作也接近结束,任务也都要走向提测的节点了,心里美滋滋,可以早点回家啦~巴特,popo弹出一份:*xxx master 的单元测试静态代码检查失败,单元测试失败用例x个。*请在1小时内修复并重新执行,否则可能会打回提测,单测失败详情xxx。点开详情看看失败原因吧org.springframework.jdbc.UncategorizedSQLException: ### E.

2020-08-13 17:45:57 529

原创 史上最全的Nginx整理(速看!)

一、Nginx基本概念1.1 什么是Nginx• Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好。• Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,如perl、php等,但是不支持java。java程序只能通过与tomcat配合完成。• Nginx专为性能优化而开发,性能是其最重要的考量,非常注重效率,能经受住高负载的考验,支持高达50000个并发连接

2020-08-11 17:39:11 343

原创 5分钟!带你了解InfluxDB企业版的如何实现一致性

InfluxDB为什么能成为排名第一的时序数据库?其一致性实现相比于其他时序数据库究竟有什么样的奥秘?本篇文章通过介绍常用时序数据库的一致性实现、业界通用的一致性实现,InfluxDB企业版的一致性实现来尝试解释这些问题。一、时序数据库介绍首先简单回顾下时序数据库,他是存储时序数据的数据库,比如按照时间顺序记录系统、设备状态变化等的数据,其应用场景主要来自监控,业务监控,性能监控,系统监控。常用时序数据库如下:该图展示了时序数据库的搜索排行榜,可以看到influxdb是远大于第二名的,Influ.

2020-08-10 17:27:35 1429

原创 Jedis的socket内存泄露的这些坑,别说你没遇到过!

本文是关于Jedis的socket内存泄露问题排查的分享。背景业务线上有N台机器。其中有一台会缓慢的出现Socket内存泄露。具体表现为在jmap时会常常看到如下类排名很靠前。5: 274623 30757776 java.net.SocksSocketImpl 8: 274621 13181808 java.net.SocketInputStream 9: 274621 13181808 java.net.SocketOutputStream 17: 274621 8787872 java.

2020-08-07 14:39:36 952

原创 花2天时间研究了下Spring Boot:我拆分成了下面这些信息

当单体架构到达一定规模时,修正bug和正确的添加新功能变的非常困难,并且很耗时。单体应用模块之间的强依赖很可能因为某一模块而导致整个应用宕机,很影响开发效率。所以说复杂而笨重的单体式应用就非常不适合持续性开发了。这时候SpringBoot完美解决了复杂臃肿的单体式应用出现的问题。它对开发者异常友好,很容易常见一个单模块的Spring应用、内置了常见的web服务器,模块最终可以打包成jar包启动、提供了很多可以选择的’starter’、简化了Spring大量配置等…当前开发系统(百万行代码)就存在单体式.

2020-08-06 14:52:58 314

转载 不用 JavaScript,纯静态网站如何统计 PV?

游戏部的一位同事坚持日更干货,放到这里和大家分享一下~大家对访问统计pv/uv肯定不陌生,一般我们访问一些网站,会在网站的最下方看到某某页面已经被访问了多少次。如下图所示。如果这个网站的前后端都是我自己开发的,那么实现这样一个访问统计功能,只需要短短的几行代码。但如果我的网站是一个纯静态网站呢?例如我的博客使用的是Hexo,它没有后端,又该如何实现这个访问统计的功能呢?可能有同学想到,使用 JavaScript 来实现。那么如果你只会 Python,不会 JavaScript 呢?实际上,我.

2020-08-05 14:03:54 376

原创 过来领你的Bug之“缺陷分析“篇

提到Bug,软件缺陷,除了记录一个问题出现的现象和原因以外,对于一个或者多个Bug的分析也非常重要,本文讲述了Bug分析的目的,介绍了IBM的ODC缺陷分析法,已提供给需要进行缺陷分析的测试小伙伴们参考。Bug记录平台介绍Bug分析目的ODC缺陷分析法Bug记录平台介绍Bug记录平台,用比较文绉绉的话说是软件缺陷跟踪系统(Defect Tracking System, DTS)是软件测试管理系统的核心部分。这里拿华为的缺陷管理系统来举例,网易以及其他互联网公司大部分会使用比较轻量级的开源平.

2020-08-04 11:06:57 1385

原创 作为程序媛,必须懂得的7大设计原则!

开闭原则一个软件实体如类,模块和函数应该对扩展开放,修改关闭!背景一般情况下,在系统相对稳定的时候,一个Dao类都是通过实现一个抽象接口来完成,但是当我们对于某个Dao类的实现并不满足。需要在原来的Dao基础上新增方法或者模块。对于专属专用的接口自然比较容易,但是对于公共的接口或者职能清晰的接口,每一次的改变都是需要对系统的稳定和架构进行分析,对我们并不是那么随便可以改的!开闭原则是指在这种背景下,为了不破坏系统的稳定性,遵循其理对其进行扩展,而拒绝修改类本身!运用解析ICourse与j

2020-08-03 15:52:57 145

原创 「新手必看超全工具分享2」这些年,我收藏的超实用Java工具

第一弹链接见:https://www.toutiao.com/i6854448821737357831/昨天半夜排版的第二弹来啦第三部分机器学习提供具体统计算法的工具。其算法可从数据中学习。Apache Hadoop:对商用硬件集群上大规模数据存储和处理的开源软件框架。Apache Mahout:专注协同过滤、聚类和分类的可扩展算法。Apache Spark:开源数据分析集群计算框架。h2o:用作大数据统计的分析引擎。Weka:用作数据挖掘的算法集合,包括从预处理到可视化的各个层次。.

2020-07-31 16:11:24 254

原创 网易云音乐全链路跟踪系统实践

昨天的分享会,听我们公司技术大佬分享。收获超多!经过大佬允许后上传,除了大佬的独家干货,还有我自己的小见解。欢迎一起讨论~~本文全面讲述了云音乐全链路跟踪系统的设计思想,实践路线,以及在技术选择与功能迭代方面上思考总结。全文包含五个章节,每个章节完整表达了迭代周期的主要目标及所要解决的问题与思路。导言为什么我们在三年前要立项做这个系统?当然是我们遇到了服务问题。当时最明显的问题就是,随着我们的服务化拆分越来越多,服务间调用关系越来越复杂,我们已经完全无法跟踪系统的调用关系,某个链路出了问题,.

2020-07-30 16:19:01 845

原创 看完程序猿大佬总结后,分享给你们(多年沉淀,全是干货)

最近经常跟一位工作中仰慕的前辈聊天。他跟我说:工作走的累了,不妨停下来,思考一下这一路走来的艰辛。的确,算一算,我也是工作时间不短的人了。但是总是感觉工作中思路、方法或多或少有问题,复盘和分析是职场提升的很重要一步。下面是他给我写的总结,受益颇深。经过允许后,我拿出来和大家一起分享!目标&手段——引子先来说个场景,关于电商的秒杀。“大秒活动基本都是在整点进行的,整点活动的详情页流量会非常高,为了保证这么大的流量不冲垮机器,业内大致的做法如下:从详情页开始就做..

2020-07-29 17:50:38 294

原创 【超全工具分享1】汇总一下我做Java这些年,收藏的超实用工具

从毕业后到现在工作4年,自己林林总总已经写了很多沉淀和经验。昨天整理下来发现,复盘工作经验其实不管是对自己还是对别人,都有回顾和帮助的作用。整理完后发现这么多实用工具,决定放出来和大家共享~第一部分构建这里搜集了用来构建应用程序的工具。Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。Gradle:Gradle采用增量构建。Gradle通过Groov

2020-07-28 16:36:15 168

空空如也

空空如也

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

TA关注的人

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