自定义博客皮肤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技术

分享Java,多线程,JVM,Spring,微服务,分布式,面试题等。

原创 太赞了,2020 最新 Java 面试题出炉!(带全部答案)

今天给大家带来一套 2020最新整理的Java 面试题,独家整理,禁止剽窃!!!题库非常全面,包括 Java 集合、JVM、多线程、Spring全家桶、Redis、Dubbo、Netty、Elasticsearch、大数据、阿里巴巴等大厂面试题等。​怎么领取?关注一下Java技术栈公众号,关注后,在这个公众号后台回复:福利,即可获取全部面试题,带全部答案,无任何套路。...

2020-03-06 13:20:07 6007 1

原创 推荐一个 Java 里面比较牛逼的公众号!

今天给大家推荐一个牛逼的纯 Java 技术公众号:Java技术栈,作者:栈长。Java程序员、Java爱好者扫码关注吧!确实牛逼,几十万人关注了,原创文章350+,好友都 3000+ 关注了。栈长分享的都是主流的 Java 技术干货,来,下面我给大家随便抓几篇,都是上万阅读,干货满满。1、Java 12 骚操作, switch居然还能这样玩2、推荐一款阿里开源的 Java 诊断工具...

2019-08-23 13:59:11 1510

转载 盘点 100 个最受欢迎的 Java 库!谁拔得头筹?

Java技术栈www.javastack.cn关注阅读更多优质文章谁拔得头筹?谁又落于人后?我们分析了 GitHub 中 47,251 条依赖关系,得出最受欢迎的100个 Java 库。...

2020-08-08 10:50:00 7

原创 重磅!《Java开发手册(嵩山版)》最新发布

Java技术栈www.javastack.cn关注阅读更多优质文章这篇前几天发过,被我手贱误删了,现在重发一下,没看过的可以再看一下。上一版的泰山版发布三个多月后,阿里巴巴《Java开发...

2020-08-08 10:50:00 7

原创 前后端分离如何做权限控制设计?

作者:薛҉定҉谔҉的҉猫҉www.yuque.com/zhanghaofei/blog/xrpz9p近几年随着react、angular、vue等前端框架兴起,前后端分离的架构迅速流行。但同时权限控制也带来了问题。网上很多前、后端分离权限仅仅都仅仅在描述前端权限控制、且是较简单、固定的角色场景,满足不了我们用户、角色都是动态的场景。且仅仅前端进行权限控制并不是真正意义的权限控制,它只是减少页面结构暴露、增强用户体验的功效。场景系统为后台管理系统,包含了用户创建、用户登录、用户管理自己的资源。.

2020-08-07 14:53:37 47

原创 高可用高并发的 9 种技术架构!

来源:androidchinahttp://www.androidchina.net/7928.html1、分层分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统。在网站的分层架构中,常见的为3层,即应用层、服务层、数据层。应用层具体负责业务和视图的展示;服务层为应用层提供服务支持;数据库提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等。分层架构是逻辑上的,在物理部署上,.

2020-08-07 11:30:19 38

转载 Java 强、弱、软、虚,你属于哪一种?

Java技术栈www.javastack.cn打开网站看更多优质文章作者:CodeBear的园子来源:www.cnblogs.com/CodeBear/p/12447554.htmlJa...

2020-08-07 09:41:00 18

转载 醉了,RPC 超时设置也能引起线上事故!

Java技术栈www.javastack.cn关注阅读更多优质文章上面这张监控图,对于服务端的研发同学来说再熟悉不过了。在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题。尤...

2020-08-07 09:41:00 16

原创 Linux 最常用命令整理,建议收藏!

作者:icoder.longblog.csdn.net/xulong_08/article/details/81463054Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。一、linux的目录结构/ 下级目录结构bin (binarie.

2020-08-06 14:50:19 45

原创 打破你的认知!Java空指针居然还能这样玩,90%人不知道…

相信在座的各位都遇到过空指针异常,不甚其烦,本文不是教你避免空指针,而是一些对空指针其他方面的理解。本文可能有点另类,也可能会打破你对空指针的认知。1、null.method() 空指针?我们知道调用一个对象的方法,如果对象为 null 肯定会报空指针错误的,但你确定一定会吗?不一定!来看下面的示例:/** * 访问静态方法 * @from 微信公众号:Java技术栈 */private static void test() { NullTest nullTest = null;

2020-08-06 09:44:59 59

转载 Kafka 为什么那么快的 6 个原因!

无论 kafka 作为 MQ 也好,作为存储层也罢,无非就是两个功能(好简单的样子),一是 Producer 生产的数据存到 broker,二是 Consumer 从 broker 读取...

2020-08-06 09:41:00 29

转载 卧槽,又来一个 Java 大神器!!

最近很多小伙伴,让我帮忙找一套 Java 学习资料,于是我翻遍了收藏的 1024G 资料,整理出一份很干很干的珍藏品,可以说是 Java 程序员必备!整个资料包内容专注 Java 技术,...

2020-08-06 09:41:00 26

原创 微服务为什么选Spring Cloud?

现如今微服务架构十分流行,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性。同时,支持微服务的技术栈也是多种多样的,本系列文章主要介绍这些技术中的翘楚——Spring Cloud。这是序篇,主要讲述我们为什么选择Spring Cloud和它的技术概览。1、为什么微服务架构需要Spring Cloud简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB、KV,去掉重量级ESB),并且强调DevOps和快速演化。这就要求我们必须采

2020-08-06 08:37:49 53

原创 Git 的这个神技,学会爽歪歪~

现在大多数公司都有 GIT 来管理代码版本控制了,既然用到 GIT,相信大家都接触过 Github、Gitlab、Gitee 这些远程仓库,或者是公司内部自行搭建的 GIT 仓库。当用到 SSH 方式来连接 GIT 仓库的时候,难免会同时用到多个仓库,一般生成公私钥的默认配置文件为:私钥:C:\Users\xxx.ssh\id_rsa公钥:C:\Users\xxx.ssh\id_rsa.pub那么问题来了,我先生成 Github 的,再生成 GitLab 的,那么后面配置的 Gitlab 的公私

2020-08-05 15:06:04 55

原创 12306 的架构也太 牛X 了吧!

作者:绘你一世倾城juejin.im/post/5d84e21f6fb9a06ac8248149每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上任何秒杀系统都无法超越的QPS,上百万的并发再正常不过了!笔者专门研究了一下“12306”的服务端架构,学.

2020-08-05 13:54:02 101

转载 MySQL 日期时间类型怎么选?千万不要乱用!

Java技术栈www.javastack.cn关注阅读更多优质文章构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如 timestamp 和 date...

2020-08-05 09:36:00 45

转载 彻底吃透监控系统,就这一篇!

“ 经济高速发展的今天,我们处于信息大爆炸的时代。随着经济发展,信息借助互联网的力量在全球自由地流动,于是就催生了各种各样的服务平台和软件系统。图片来自Pexels由于业务的多样性,这...

2020-08-05 09:36:00 65

原创 Mybatis trim 标签的 2 个妙用!

mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。以下是trim标签中涉及到的属性:下面使用几个例子来说明Mybatis trim标签的使用。1、使用trim标签去除多余的and关键字有这样的一个例子:<select id="findActiveBlogLike" resultT

2020-08-05 08:44:48 47

原创 GitLab内置了 CI CD 工具,强大啊!!

作者:废物大师兄来源:www.cnblogs.com/cjsblog/p/12256843.htmlGitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:Continuous Integration (CI) 持续集成Continuous Delivery (CD) 持续交付Continuous Deployment (CD) 持续部署持续集成的工作原理是将小的代码块推送到Git仓库中托管的应用程序代码库中,并且每次推送时,都要运行.

2020-08-04 13:38:36 74

原创 《Java开发手册(嵩山版)》最新发布,速速下载!

上一版的泰山版发布三个多月后,阿里巴巴《Java开发手册(嵩山版)》又发布了,这个版本都新增了什么内容呢,栈长来帮你解读下:1)新增前后端规约 14 条之前面试我经常问求职者,既然写了前后端分离开发,那对于前后端都有些什么规范呢,大多数人说不上来,现在阿里这个规范终于来了。这一条迟早是要来的,因为现在大多都是前后端分离开发模式,规范不能只是纯 Java 开发规范,还得约束前后端共同遵守的规则。2)新增禁止任何歧视性用语的约定。这一条不解释了,大家都懂,前不久 MySQL 也放弃了此类用语:《.

2020-08-04 09:54:34 97

转载 常用 Maven 插件大全(速度收藏)

Java技术栈www.javastack.cn关注阅读更多优质文章我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代...

2020-08-04 09:36:00 26

原创 天天用 Spring,bean 实例化原理你懂吗?

来源:小小木的博客 www.cnblogs.com/wyc1994666/p/10650480.html本次主要想写spring bean的实例化相关的内容。创建spring bean 实例是spring bean 生命周期的第一阶段。bean 的生命周期主要有如下几个步骤:创建bean的实例给实例化出来的bean填充属性初始化bean通过IOC容器使用bean容器关闭时销毁bean在实例化bean之前在BeanDefinition里头已经有了所有需要实例化时用到的元数据.

2020-08-04 08:43:52 61

原创 StringBuider 在什么条件下使用效率更高?

引言都说 StringBuilder 在处理字符串拼接上效率要强于 String,但有时候我们的理解可能会存在一定的偏差。最近我在测试数据导入效率的时候就发现我以前对 StringBuilder 的部分理解是错误的。后来我通过实践测试 + 找原理 的方式搞清楚了这块的逻辑。现在将过程分享给大家测试用例我们的代码在循环中拼接字符串一般有两种情况第一种就是每次循环将对象中的几个字段拼接成一个新字段,再赋值给对象第二种操作是在循环外创建一个字符串对象,每次循环向该字符串拼接新的内容。循环结束后得到

2020-08-03 11:27:37 59

转载 DataGrip 上手体验,真香!

Java技术栈www.javastack.cn关注阅读更多优质文章来源头条号:程序不就是0和1链接:www.toutiao.com/i6829305571141747213DataGri...

2020-08-03 09:36:00 53

转载 如何优雅的实现 try/catch 异常块?

Java技术栈www.javastack.cn关注阅读更多优质文章来源:小明的学习笔记博客地址:www.cnblogs.com/liruilong/p/13403963.html在项目中...

2020-08-03 09:36:00 50

原创 Hibernate 与 Mybatis 如何共存?打破你的认知!

很长一段时间,网上有很多关于Hibernate与Mybatis孰优孰劣的争论,两个阵营的人谁也不能说服谁,每个人的理由都很有道理。今天,我分享的主题是:在一个项目中同时使用Hibernate和Mybatis两个ORM框架。 作为一个开发者,没有必要花费过多的时间去证明技术无用论,当你开始指责某个框架垃圾,另外一个框架最好时,隐性的暴露出你对某个框架没有深入的研究,无知的指责对于技术的提升没有任何的帮助。框架本身没有对错一说,只有适合和更适合项目的选择。任何框架都有自身的能力范围,就拿Hiberna

2020-08-03 09:23:15 78 1

转载 为什么 char 数组比 String 更适合存储密码?

Java技术栈www.javastack.cn打开网站看更多优质文章推荐阅读:5 个刁钻的 String 面试题!另一个基于 String 的棘手 Java 问题,相信我只有很少的 Ja...

2020-08-02 18:02:00 54

原创 牛逼!OpenJDK 源码要迁移到 GitHub 了!

OpenJDK 项目正在从 Mercurial 迁移到 GitHub,预计在2020年9月完成。切换至 Git 代码版本控制系统的部分预期目的是提升性能和对代码审查的更好支持。OpenJDK 从 2008 年起一直使用 Mercurial 作为源代码管理解决方案,用于存储代码并进行代码审查。如今部分 OpenJDK 项目(如 Loom、Valhalla 和 JMC)已完全从 Mercurial 迁移至 GitHub,还有部分项目例如 JDK 本身正在迁移中,对于这些项目,其仓库已托管在 GitHub 上

2020-08-01 12:12:20 67

转载 Apache 2020 财年报告出炉!

Java技术栈www.javastack.cn关注阅读更多优质文章Apache 软件基金会近日公开发布了其 2020 财年(即 2019.05.01-2020.04.30)的年度报告。报...

2020-08-01 10:46:00 49

转载 看图说话,FastJson 并没有那么流行!

Java技术栈www.javastack.cn关注阅读更多优质文章作者:咔咔侃技术来源:www.toutiao.com/i6815906868183958027一、FastJson为何首...

2020-08-01 10:46:00 39

原创 别在网上乱找代码了,找了一段代码突然爆了!!!

作者:陈宏鸿 来源:www.cnblogs.com/aspwebchh/p/12220673.html本人是做游戏服务器开发的,碰到一个需求,给符某些要求的玩家的发送道具奖励,奖励的数量根据离线的天数计算。 这个需求实现起来很简单,只需要在玩家上线的时候计算上次离线时间和当前时间间隔的天数,然后根据策划的算法,计算出道具种类与数量,发一封邮件给玩家就可以了。计算两个时间间隔天数的函数没有现成的,自己又懒得写,就上谷歌搜了下,选了第一条结果,代码如下:public static int dif.

2020-07-31 14:16:51 91

转载 单元测试到底应该测试什么呢?

开始现在大公司越来越重视项目的单元测试,甚至明确要求项目的单元测试覆盖率不能低于某个值,足可见单元测试的重要性;试想如果没有单元测试,那么如何保证代码能够正常运行呢?测试人员做的只是业务...

2020-07-31 10:46:00 32

转载 单元测试到底应该测试什么呢?

开始现在大公司越来越重视项目的单元测试,甚至明确要求项目的单元测试覆盖率不能低于某个值,足可见单元测试的重要性;试想如果没有单元测试,那么如何保证代码能够正常运行呢?测试人员做的只是业务...

2020-07-31 10:46:00 47

原创 8 条关于 Web 前端性能的优化建议

一般网站优化都是优化后台,如接口的响应时间、SQL优化、后台代码性能优化、服务器优化等。高并发情况下,对前端web优化也是非常重要的。下面说说几种常见的优化措施。1、HTML CSS JS位置一般需要将CSS放页面最上面,即HEAD部分,而将JS代码放页面底部。因为页面需要加载为CSS才进行渲染,而JS如果不是在页面加载之前就要执行就要放到页面最底部,以免在页面展示之前因JS过多加载而影响页面渲染速度。2、引用文件位置有一些插件需要引用到远程的图片、CSS、JS、图标等,如果远程的资源连接网速不.

2020-07-31 08:35:24 90

原创 关于 equals 和 hashCode,看这一篇真的够了!

作者:CringKonghttps://blog.csdn.net/CringKong/article/details/89429269这几天在尝试手撸一个类似Lombok的注解式代码生成工具,用过Lombok的小伙伴知道,Lombok可以通过注解自动帮我们生产equals()和hashCode()方法,因此我也想实现这个功能,但是随着工作的深入,我发现其实自己对于equals()和hashCode()的理解,也处在一个很低级的阶段。因此痛定思痛,进行了一番深入学习,才敢来写这篇博客。1、equ.

2020-07-30 13:57:00 110

转载 牛逼!OpenJDK 源码要迁移到 GitHub 了!

Java技术栈www.javastack.cn关注阅读更多优质文章OpenJDK 项目正在从 Mercurial 迁移到 GitHub,预计在2020年9月完成。切换至 Git 代码版本...

2020-07-30 09:36:00 35

转载 Mybatis trim 标签的 2 个妙用!

Java技术栈www.javastack.cn关注阅读更多优质文章mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“...

2020-07-30 09:36:00 40

原创 提升系统 10 倍性能的 10 个建议!

2020-06-02 09:41:00译者:为之漫笔来源:http://www.zcfy.cc/article/10-tips-for-10x-application-performance-nginx-22.html原文:https://www.nginx.com/blog/10-tips-for-10x-application-performance/提升Web应用的性能从未像今天这样刻不容缓。在线经济活动的比例日益提高,就连发展中国家和地区的经济活动都已经有5%以上在线进行了(相关数据请

2020-07-30 08:13:55 90

原创 同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题!

最近线上监控 SFTP 连接频繁爆表,通过重启某个系统,连接数迅速下降,系统就能恢复正常,初步判断是应用程序连接未关闭的问题导致的。栈长通过 IDE 全局搜索排查,SFTP 连接使用了 jsch 包,确实有一些功能点使用了 SFTP 连接而未关闭的情况,或者不在 finally 语句块中正常关闭。整改上线后,SFTP 还是爆表……事后运维心态都要崩了,运维主动写了个 SFTP 连接监控,当连接超过 5 分钟空闲时就主动断开。但这只是临时的处理,真正的原因肯定还是应用程序没有正常关闭导致的,于是再认真

2020-07-29 15:55:08 849

原创 Java 编译期与运行期,别傻傻分不清楚!

来源:小小木的博客www.cnblogs.com/wyc1994666/p/11366802.html不知大家有没有思考过,当我们使用IDE写了一个Demo类,并执行main函数打印 hello world时都经历了哪些流程么?想通过这篇文章来分析分析Java的执行流程,或者换句话说想聊聊Java的编译期与运行期的流程。开门见山编译期间都做了什么运行期间都做了什么1. 开门见山public class MyApp { public static void main(S.

2020-07-29 15:49:34 109

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