Java_supermanNO1的博客

私信 关注
Java_supermanNO1
码龄2年
  • 143,085
    被访问量
  • 322
    原创文章
  • 16,116
    作者排名
  • 57
    粉丝数量
  • 于 2019-07-29 加入CSDN
获得成就
  • 获得131次点赞
  • 内容获得141次评论
  • 获得673次收藏
荣誉勋章
兴趣领域
  • #后端
    #Java
TA的专栏
  • Java
    176篇
  • 面试
    105篇
  • Spring
    41篇
  • 程序人生
    225篇
  • Mybatis
    10篇
  • Docker
    4篇
  • 架构
    3篇
  • 数据库
    5篇
  • Linux
    2篇
  • TCP
  • JVM
    13篇
  • MySQL
    15篇
  • 微服务
    4篇
  • 后端开发
    2篇
  • Kafka
    11篇
  • IO
    2篇
  • RocketMQ
    6篇
  • K8S
    1篇
  • 分布式
    6篇
  • 性能优化
    1篇
  • 多线程
    23篇
  • RabbitMQ
    1篇
  • 虚拟机
    5篇
  • 设计模式
    2篇
  • API
    1篇
  • IOC
    1篇
  • 架构设计
    3篇
  • 线程池
    3篇
  • 并发编程
    8篇
  • JDK
    1篇
  • Redis
    10篇
  • Dubbo
    3篇
  • 高并发
    2篇
  • 算法
    6篇
  • 编程书籍
  • 吐槽
    1篇
  • HashMap
    1篇
  • 消息中间件
    1篇
  • Netty
    2篇
  • 高可用
    1篇
  • 泛型
  • Nginx
    1篇
  • Zookeeper
    1篇
  • Tomcat
    1篇
  • 幽默
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

最详细教程:正则表达式匹配${key}并在Java中使用

1.正则表达式匹配${key}\$\{([a-z]+)\} 能够匹配字符串中以${key}形式的文本(其中key为小写应为字母).*\$\{([a-z]+)\}.* 可以用来检测文本中是否有${key}形式的文本解释如下:. 匹配除换行符 
 之外的任何单字符* 匹配前面的子表达式零次或多次 要匹配 * 字符,请使用 \*{ 标记限定符表达式的开始。要匹配 { ,请使用&nb
原创
1阅读
1评论
1点赞
发布博客于 2 小时前

神操作:他凭借“Java核心技能精讲”,竟收割了21个Offer

作为一个资历不浅的 Java 开发,这几年我面试过不少人。 发现大多数面试者,虽然看起来工作努力,但他们表现出来的能力水平,却不足以通过面试,或拿到期望的薪资。在我看来,造成这种情况的原因,主要有这么两方面:第一,“知其然不知其所以然”。 做了几年技术,开发了一些业务应用,但没有思考过这些技术选择背后的逻辑。所以,我很难定位他们日后的成长潜力,也不会放心把有一定深度的任务交给他们。第二,知识碎片化,不成系统。 事实上,当面试者无法完整、清晰地描述自己所开发的系统或使用的相关技术时,面试官就会怀疑他是否
原创
35阅读
2评论
4点赞
发布博客于 3 天前

金三银四面试必备,“全新”突击真题宝典,阿里腾讯字节都稳了

前言春节过后招聘旺季就到了,不知道大家是否准备好了,面对金三银四的招聘旺季,如果没有精心准备那笔者认为那是对自己不负责任;就我们Java程序员来说,多数的公司总体上面试都是以自我介绍+项目介绍+项目细节/难点提问+基础知识点考核+算法题这个流程下来的。有些公司可能还会问几个实际的场景类的问题,这个环节阿里是必问的,这种问题通常是没有正确答案的,就看个人的理解,个人的积累了。剩下的就没啥了,都是换汤不换药,聊项目就看你自己对你自己的项目是否理解的透彻,比如经常问你你为什么选择这个技术,为什么这么处理之类.
原创
1857阅读
9评论
5点赞
发布博客于 5 天前

Java中高级核心知识全面解析.pdf

今天分享给大家的都是目前主流企业使用最高频的面试题库(包含:Java基础、网络、Linux、数据库结构与算法、数据库、系统设计、必会工具、面试简历模板等),也都是 Java 版本升级之后,重新整理归纳的最新答案,会让面试者少走很多不必要的弯路。同时每个专题都做到了详尽的面试解析文档,以确保每个阶段的读者都能看得懂。
pdf
发布资源于 8 天前

阿里官方推荐:SpringMVC高能笔记,从头到尾,都是精华

公众号:【慕容千语】欢迎大家的关注前言在网络技术中基于浏览器的B/S结构无论在PC端还是手机端都充当着至关重要的角色。 PC端自不必说,手机中很多应用虽然是以APP的形式存在,但它采用的还是B/S结构。如今日头条、微信的朋友圈等,这些应用在内部封装了浏览器,后端仍然是 Web站点。在大型网站和复杂系统的开发中,Java无疑具有很大的优势,而在lava的Web框架中 Sprig MVC 以其强大的功能和简单且灵活的用法受到越来越多开发者的青睐。Spring MVC入门很简单,但是要想真正使用好却并非.
原创
42阅读
0评论
2点赞
发布博客于 20 天前

程序员进阶之路:Java之String重点解析

主题String s = new String("abc") 这段代码创建了几个对象呢? s=="abc" 这个判断的结果是什么? s.substring(0,2).intern()=="ab" 这个的结果是什么呢?s.charAt(index) 真的能表示出所有对应的字符吗?"abc"+"gbn"+s 直接的字符串拼接是否真的比使用StringBuilder的性能低?前言Java中的String对象特性,与c/c++语言是很不同的,重点在于其 不可变性 。那么为了服务字符串不可变性的设计,则
原创
51阅读
1评论
0点赞
发布博客于 2 月前

阿里P7大牛花了16小时讲完Spring源码解析整套笔记,满满399页,拿走不谢

正文开发人员面对突如其来的变化,无论在架构选型,还是在日常开发中,总会面临各种挑战和考验。唯有系统性地掌握 Spring Framework 编程思想、设计理念,以及具体的实现方式,方可游刃有余,以免进退失据。作为 Spring 技术生态的基石,Spring Framework 无论在设计,还是在实现上,都是一个优秀的框架,许多细节方面是非常值得我们学习的,包括:Java 语言特性的运用,如反射、动态代理、枚举、泛型、注解、ARM,Lambda 语法等设计思想和模式的实现,如 OOP、IoC、DD
原创
91阅读
13评论
12点赞
发布博客于 2 月前

涨薪秘籍之源码篇:Spring全家桶源码解读,大师晋级笔记

最近很多人留言说今年找工作太难了,要涨薪几乎更难了 !真的就这么悲观吗?其实不然,我们企业一直都在大量的招人,一直都没停过。只是一点和之前不一样要求变高了,优秀的人一直都缺。我身边朋友所在的大厂也一样比平时的要求更高了,优秀的人给出薪水甚至比平时还高,因为优秀的人产出高,效率高,特殊时期企业压力也大这样的人才能给企业创造更大的价值,企业才能发展。我就在思考怎么用好这段时间快速把我们自身的能力提升上来为下半年和来年提前做好准备,这才是当下最重要的事情 !在现在的面试基本没有不问源码的?那么为什么要了解源码呢
原创
37阅读
1评论
0点赞
发布博客于 3 月前

首发!阿里大佬整理的万字MyBatis实战笔记,精简易懂,开源免费下载

MyBatis作为国内经常使用的持久层框架,其内部代码的设计非常优秀。比如在开发过程中,有能力对框架进行深度的定制化开发,解决BUG也更加得心应手!另外学习开发者是如何设计高扩展性、低耦合性的代码,便于在自己的开发场景中应用。而在跳槽的时候MyBatis更是面试必问的内容,那你对于MyBatis又掌握了多少呢?想学习MyBatisK但,市面上真正适合学习的MyBatis资料太少,有的书或资料虽然讲得比较深入,但是语言晦涩难懂,大多数人看完这些书基本都是从入门到放弃。学透MyBatis源码难道就真的就没有一
原创
2209阅读
18评论
6点赞
发布博客于 3 月前

超详细280页Docker实战文档,97.6 MB高清可下载,24h后删!

Docker如日中天,这不是单纯的炒概念,Docker确确实实解决了开发与运维的痛点,因此在企业开发中得到了非常广泛的使用。Docker是一个开放源代码软件项目,让应用程序部署在软件容器下的工作可以自动化进行,借此在Linux操作系统上,提供一-个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。今天分享一份280页的Docker实战文档,相信看完后对Docker会有更深入的了解。由于文档内容过多,在此只以截图展示部分内容,需要详细完整版的Docker实战文档的朋友,点击此处即可免费下载。第一章:
原创
143阅读
4评论
5点赞
发布博客于 3 月前

理解 MyBatis 是如何在 Spring 容器中初始化的

MyBatis 初始化过程就是生成一些必须的对象放到 Spring 容器中。问题是这个过程到底生成了哪些对象?当遇到 MyBatis 初始化失败时,如何正确的找到分析问题的切入点?本文将针对这些问题进行介绍。本文基于 MyBatis 3和 Spring,假设读者已经知道如何使用 Maven 和 MyBatis,以及了解 Spring 的容器机制。一、Mybatis 三件套我们知道 MyBatis 的主要功能是由 SqlSessionFactory 和 Mapper 两者提供的,初始化 MyBatis
转载
101阅读
0评论
0点赞
发布博客于 3 月前

阿里弃用Hibernate,却用MyBatis,竟然是因为这个!

最近一直在研究MyBatis源码,作为国内经常使用的持久层框架,其内部代码的设计非常优秀。比如在开发过程中,有能力对框架进行深度的定制化开发,解决BUG也更加得心应手!另外学习开发者是如何设计高扩展性、低耦合性的代码,便于在自己的开发场景中应用。而在Mybatis中,缓存是一个绕不开的话题。比如说,MyBatis的一级缓存竟然还会引来麻烦?MyBatis 一级缓存与 SpringFramework 的声明式事务有冲突吗?在 Service 中开启事务,连续查询两次同样的数据,结果两次查询的结果不一致。这
原创
1400阅读
26评论
11点赞
发布博客于 3 月前

2020钻石段位进修记录:天猫+蚂蚁金服+阿里巴巴 面试最新总结(附:答案)

每一年的双11,都是阿里新技术的演练场,也是阿里技术人一年一度的大秀秀场。作为国内互联网技术的典型代表,阿里巴巴的技术一直备受着大家的关注。能进入阿里工作,是很多开发者们的目标与梦想,为帮助开发者们提升面试技能、高效通关一线互联网公司的面试,我们走访了多位阿里巴巴资深技术专家以及阿里高级Java候选人,提炼总结了这份面试真题,一次整体放出送给大家。看看自己能答对多少,如果能回答70%的题目,就大胆去阿里以及各互联网公司试试身手吧。本篇建议大家收藏、备用~【阿里、天猫、蚂蚁面试题目】涵盖: 开源
原创
274阅读
12评论
7点赞
发布博客于 3 月前

公布半小时下载量达10W:阿里大牛出品【MyCat笔记】真香

前言如今随着互联网的发展,数据的量级也是成指数式的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求,这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如何使用关系型数据库解决海量存储的问题呢?此时
原创
1978阅读
28评论
10点赞
发布博客于 3 月前

看完源码记不住?掌握这套方法,Alibaba不会少你一个工位

都说大厂面试必问源码,可很多人看完Spring、MyBatis等源码记不住,是脑子有问题吗?当然不是!是因为你没有掌握学习源码的技巧。看完源码的我…我的朋友子路,很多人都叫他路神,称他为“国内Spring讲解最好的第一人”。子路说他以前学习Spring、Spring boot源码,只能去翻书,去报个线下培训班,或者向其他公司的大牛请教,一个疑问有时候会卡好几天。但现在不一样,各种免费的资料和视频,学习成本太低了!但是网上的内容质量参差不齐,都是东拼西凑的,辛辛苦苦学半天,面试还是挂了…**学习成
原创
68阅读
0评论
0点赞
发布博客于 4 月前

Java年薪30W+面试必问知识之《2020年面试宝典总纲》

前言一份月薪30K的java开发岗位工作要求是怎样的呢?面试都会问到哪些呢?任职要求:1、计算机或相关专业本科(或以上)学历,具备3年以上Java服务端开发经验,熟悉常用的Java开源框架,如熟悉Spring、SpringMVC、SpringBoot、Hibernate、MyBatis等,了解其原理和实现机制;2、擅长Java Web服务开发,熟悉掌握各种Web应用开发模式,具有丰富的高并发、大数据系统的设计、研发、调试经验者优先;3、精通Java及面向对象设计开发,熟悉常见设计模式,有系统设计
原创
648阅读
3评论
3点赞
发布博客于 4 月前

你的业务代码中Spring声明式事务处理正确了吗?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等——20%的业务代码的Spring声明式事务,可能都没处理正确Spring 针对 Java Transaction API (JTA)、JDBC、Hibernate 和 Java Persistence API(JPA) 等事务 API,实现了一致的编程模型,而 Spring 的声明式事务功能更是提供了极其方便的事务配置方式,配合 Spring Boot 的自动配置,大多数 Spring Boot 项目只需要在方法上标记 @T..
原创
126阅读
0评论
0点赞
发布博客于 6 月前

面试官:请问如何提升TCP三次握手的性能?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等本文主要分享在 Linux 操作系统下,如何优化 TCP 的三次握手流程,提升握手速度。TCP 是一个可以双向传输的全双工协议,所以需要经过三次握手才能建立连接。三次握手在一个 HTTP 请求中的平均时间占比在 10% 以上,在网络状况不佳、高并发或者遭遇SYN 泛洪攻击等场景中,如果不能正确地调整三次握手中的参数,就会对性能有很大的影响。TCP 协议是由操作系统实现的,调整 TCP 必须通过操作系统提供的接口和工具,这就需..
原创
188阅读
0评论
0点赞
发布博客于 6 月前

阿里架构师讲解不一样的JVM——你真的了解JNI的运行机制吗

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等我们经常会遇见 Java 语言较难表达,甚至是无法表达的应用场景。比如我们希望使用汇编语言(如 X86_64 的 SIMD 指令)来提升关键代码的性能;再比如,我们希望调用 Java 核心类库无法提供的,某个体系架构或者操作系统特有的功能。在这种情况下,我们往往会牺牲可移植性,在 Java 代码中调用 C/C++ 代码(下面简述为C 代码),并在其中实现所需功能。这种跨语言的调用,便需要借助 Java 虚拟机的 JavaNat..
原创
96阅读
0评论
0点赞
发布博客于 6 月前

什么是SQL函数?为什么使用SQL函数可能会带来问题?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等函数在计算机语言的使用中贯穿始终,在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作,比如求某列数据的平均值,或者求字符串的长度等。从函数定义的角度出发,我们可以将函数分成内置函数和自定义函数。在 SQL 语言中,同样也包括了内置函数和自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的,下面讲解的是 SQL 的内置函数。你需要从以下几个方面掌握 SQL 函数:什么是 SQL 函数?内.
原创
226阅读
0评论
0点赞
发布博客于 6 月前

Docker安全知多少?在虚拟的环境中,就不用考虑安全了吗?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等上一篇文章和大家分享了 Linux 系统安全。但是,当你在和同事讨论 Linux 系统安全的时候,同事表示,公司的服务都是通过 Docker 来进行容器化部署的。开发在操作中,并不会接触实际的 Linux 服务器,所以不会去关注 Linux 安全 。而且,因为容器是隔离的,就算容器被黑客攻击了,也只是容器内部受到影响,对宿主的 Linux 系统和网络都不会产生太大影响。事实上,我知道很多人都有这种想法。但是,你可以试着思考一下,.
原创
109阅读
0评论
0点赞
发布博客于 6 月前

阿里架构师深度剖析:微服务接口鉴权限流背后的数据结构和算法

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等微服务是最近几年才兴起的概念。简单点讲,就是把复杂的大应用,解耦拆分成几个小的应用。这样做的好处有很多。比如,这样有利于团队组织架构的拆分,毕竟团队越大协作的难度越大;再比如,每个应用都可以独立运维,独立扩容,独立上线,各个应用之间互不影响。不用像原来那样,一个小功能上线,整个大应用都要重新发布。不过,有利就有弊。大应用拆分成微服务之后,服务之间的调用关系变得更复杂,平台的整体复杂熵升高,出错的概率、debug 问题的难度都高了.
原创
129阅读
0评论
0点赞
发布博客于 6 月前

阿里架构师浅析负载均衡:怎样提升系统的横向扩展能力?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等之前曾写过高并发系统设计的三个通用方法:缓存、异步和横向扩展,到目前为止,你接触到了缓存的使用姿势,也了解了,如何使用消息队列异步处理业务逻辑,那么本文将带你了解一下,如何提升系统的横向扩展能力。在之前的文章中就曾提到过提升系统横向扩展能力的一些案例。比如,可以通过部署多个从库的方式,来提升数据库的扩展能力,从而提升数据库的查询性能,那么就需要借助组件,将查询数据库的请求,按照一些既定的策略分配到多个从库上,这是负载均衡服务器所.
原创
104阅读
0评论
0点赞
发布博客于 6 月前

一天一个大技巧,阿里架构师浅析缓存架构:如何减少不必要的计算?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等众所周知:互联网应用的主要挑战就是在高并发情况下,大量的用户请求到达应用系统服务器,造成了巨大的计算压力。互联网应用的核心解决思路就是采用分布式架构,提供更多的服务器,从而提供更多的计算资源,以应对高并发带来的计算压力及资源消耗。那么有没有办法减少到达服务器的并发请求压力呢?或者请求到达服务器后,有没有办法减少不必要的计算,降低服务器的计算资源消耗,尽快返回计算结果给用户呢?有,解决的核心就是缓存。所谓缓存,就是将需要多次读.
原创
78阅读
0评论
0点赞
发布博客于 7 月前

注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等SpringDI(依赖注入)一、DI概述Dependency Injection即为依赖注入,简称DI。简单来说,在Spring创建对象的同时,为其属性赋值,称之为依赖注入。形象来说,组件之间依赖关系由容器在运行期决定的,即由容器动态的将某个依赖关系注入到组件之中。二、什么是DI2.1 了解DI的思想简单了解了DI(依赖注入),在看依赖注入这个词,我们也可以将依赖注入以IOC(控制反转)的形式拆分它。顾.
原创
88阅读
0评论
0点赞
发布博客于 7 月前

记一次MySQL字符串索引优化方案

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等字符串建立索引的优化1. 建立前缀索引假设建立一个支持邮箱登录的用户表,对于邮件字段来说,可以有以下几种建立索引的方式:①. 直接对整个字符串建立索引alter table SUser add index index1(email);②. 对整个字符串的前一部分建立索引 - 前缀索引alter table SUser add index index2(email(6));方式 2 相较于 方式 1 来说,利用前缀.
原创
99阅读
0评论
0点赞
发布博客于 7 月前

细说:程序运行的环境和运行过程,再看不懂请自行面壁

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等编译器的任务,是要生成能够在计算机上运行的代码,但要生成代码,我们必须对程序的运行环境和运行机制有比较透彻的了解。你要知道,大型的、复杂一点儿的系统,比如像淘宝一样的电商系统、搜索引擎系统等等,都存在一些技术任务,是需要你深入了解底层机制才能解决的。比如淘宝的基础技术团队就曾经贡献过,Java 虚拟机即时编译功能中的一个补丁。这反映出掌握底层技术能力的重要性,所以,如果你想进阶成为这个层次的工程师,不能只学学上层的语法,而是要.
原创
168阅读
0评论
0点赞
发布博客于 7 月前

作为Java开发,你真的了解系统吗?技术架构又要解决什么问题?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等对于开发人员来说,我们每天都在用技术。但你要知道,我们写的代码,其实只是系统的一小部分,我们了解的技术,也只是系统用到的一小部分。要深入掌握技术架构,我们就需要了解整体的系统。面对一个复杂的系统,我想你可能经常会有以下困扰:不清楚系统整体的处理过程,当系统出问题时,不知道如何有针对性地去排查问题。系统设计时,经常忽视非业务性功能的需求,也不清楚如何实现这些目标,经常是付出惨痛的教训后,才去亡羊补牢。不知你是否还记得,在.
原创
193阅读
0评论
0点赞
发布博客于 7 月前

盘点:2020年最新、最全、最实用的Java岗面试真题,已收录GitHub

本文转载自:盘点:2020年最新、最全、最实用的Java岗面试真题,已收录GitHub文中涉及的面试真题请访问原文链接,点击文末的【阅读原文】即可获取文章目录一、Java快速面试1. Java基础知识面试题2. Dubbo面试题3. Java异常面试题4. Java虚拟机(JVM)面试题5. Java集合容器面试题6. Linux面试题7. MyBatis面试题8. MySQL数据库面试题9. Netty面试题10. Redis面试题11. Spring面试题12. Spring Boot面试题13.
原创
132阅读
0评论
0点赞
发布博客于 7 月前

阿里大牛的Kafka动态配置了解下?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等什么是动态Broker参数配置?在开始分享之前,我们先来复习一下设置 Kafka 参数,特别是 Broker 端参数的方法。在 Kafka 安装目录的 config 路径下,有个 server.properties 文件。通常情况下,我们会指定这个文件的路径来启动 Broker。如果要设置 Broker 端的任何参数,我们必须在这个文件中显式地增加一行对应的配置,之后启动 Broker 进程,令参数生效。我们常见的做法是,一..
原创
172阅读
0评论
0点赞
发布博客于 7 月前

如何迅速分析出系统I/O的瓶颈在哪里?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等性能指标老规矩,我们先来回顾一下,描述 I/O 的性能指标有哪些?你可以先回想一下文件系统和磁盘 I/O 的原理,结合下面这张 Linux 系统的 I/O 栈图,凭着记忆和理解自己写一写。或者,你也可以打开前面的文章,挨个复习总结一下。说了这么久的 I/O 性能知识,一说起 I/O 指标,你应该首先会想到分类描述。我们要区分开文件系统和磁盘,分别用不同指标来描述它们的性能。文件系统I/O性能指标我们先来看文件系统的情况..
原创
194阅读
0评论
1点赞
发布博客于 7 月前

JVM深度剖析:一文详解JVM是如何实现反射的?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等文章目录反射调用的实现反射调用的开销总结与实践反射是 Java 语言中一个相当重要的特性,它允许正在运行的 Java 程序观测,甚至是修改程序的动态行为。举例来说,我们可以通过 Class 对象枚举该类中的所有方法,我们还可以通过Method.setAccessible(位于 java.lang.reflect 包,该方法继承自 AccessibleObject)绕过 Java 语言的访问权限,在私有方法所在类之外的地方调用该.
原创
110阅读
0评论
0点赞
发布博客于 8 月前

详解Kafka设计架构核心——Kafka副本机制详解

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等所谓的副本机制(Replication),也可以称之为备份机制,通常是指分布式系统在多台网络互联的机器上保存有相同的数据拷贝。副本机制有什么好处呢?1. 提供数据冗余。即使系统部分组件失效,系统依然能够继续运转,因而增加了整体可用性以及数据持久性。2. 提供高伸缩性。支持横向扩展,能够通过增加机器的方式来提升读性能,进而提高读操作吞吐量。3. 改善数据局部性。允许将数据放入与用户地理位置相近的地方,从而降低系统延时。这些优.
原创
145阅读
0评论
0点赞
发布博客于 8 月前

阿里面试官:RocketMQ与Kafka中如何实现事务?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等RocketMQ的事务是如何实现的?首先我们来看 RocketMQ 的事务。我在之前的课程中,已经给大家讲解过 RocketMQ 事务的大致流程,这里我们再一起通过代码,重温一下这个流程。public class CreateOrderService { @Inject private OrderDao orderDao; //注入订单表的DAO @Inject private ExecutorService exe.
原创
250阅读
0评论
0点赞
发布博客于 8 月前

面试官:有做过高可用的K8S集群部署方案吗?

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、涉及到的内容LVSHAProxyHarboretcdKubernetes (Master Worker)二、整体拓补图以上是最小生产可用的整体拓补图(相关节点根据需要进行增加,但不能减少)按功能组划分SLBLVSHAProxyetcdK8S Node (Master / Worker)三、SLBLVS 、HAProxy 被规划为基础层,主要提供了一个高可用的7层负载均衡器。由LV..
原创
281阅读
0评论
0点赞
发布博客于 8 月前

进阶分布式架构:如何应对高并发的用户请求

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等互联网应用以及云计算的普及,使得架构设计和软件技术的关注点从如何实现复杂的业务逻辑,转变为如何满足大量用户的高并发访问请求。一个简单的计算处理过程,如果一旦面对大量的用户访问,整个技术挑战就会变得完全不同,软件开发方法、技术团队组织、软件的过程管理都会完全不同。以新浪微博为例,新浪微博最开始只有两个工程师,一个前端,一个后端,两个人开发了一个星期就把新浪微博开发出来了。现在许多年过去了,新浪微博的技术团队有上千人,这些人要应..
原创
335阅读
0评论
0点赞
发布博客于 8 月前

拒绝996,有哪些方法可以提高开发效率的奇技淫巧?

说明:本文已经收录:GitHub欢迎访问,一些大厂面试真题,面试攻略,更多奇技淫巧尽在其中今天我想与你讨论一个每个开发人员和项目管理者都关心的话题:如何提高开发效率。我其实也一直很关注这个话题,收集了很多方法让自己工作变得卓有成效。通过对这些方法的应用,我也可以算得上是一个高效的程序员:曾一个人在很短时间完成了飞信 Web 版客户端;在 DePaul 上学之余,帮学校完成了在线教学播放器系统的改造;三个月时间帮公司完成了主站从 jQuery 到 React 的迁移。如果让我对学过的这些方法做..
原创
214阅读
0评论
0点赞
发布博客于 8 月前

系统扩展/复用性太差?阿里架构师教你如何对现有系统做微服务改造

最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub很多早期的互联网公司都有巨大的单体应用,底层的数据表集中放在一个数据库里,这些表加起来可能有几百张。对于这样的应用系统和数据库,我们往往需要对它们进行拆分,通过微服务化改造,保证系统能够不断地扩展和复用。相比从头开始落地服务,对现有系统做微服务化改造,这会面临更多的挑战。首先,应用和数据表紧密耦合在一起,代码模块和表是多对多的依赖关系。一个模块会访问多张表,多个模块也会对同一张表进行访问,而且由于表都在一个
原创
208阅读
0评论
1点赞
发布博客于 8 月前

还搞不懂Java中List和Set的区别?那就把这篇文章在那个甩给他

最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub文章目录一、特性二、常见实现类三、相互转化一、特性两个接口都是继承自Collection,是常用来存放数据项的集合,主要区别如下:List和Set之间很重要的一个区别是是否允许重复元素的存在,在List中允许插入重复的元素,而在Set中不允许重复元素存在。与元素先后存放顺序有关,List是有序集合,会保留元素插入时的顺序,Set是无序集合。List可以通过下标来访问,而Set不能。二、常见实现
原创
219阅读
1评论
0点赞
发布博客于 8 月前

七年java开发,在拿下阿里、腾讯、百度、美团的offer后,有感而发,总结如下

前言互联网寒冬来临后,我发现Java工程师的两种截然不同的心态:一种是蛰伏,另一种是躁动。蛰伏者想的是:我老老实实干活儿,公司千万不要裁我,等熬过这段寒冬,就不怕了。但 是一旦被裁,满心惊恐,被迫匆匆忙忙赶赴面试现场。躁动者则想:公司万一朝我动刀,我可就麻烦了,不如赶紧找别的出路。虽说已经在未雨 绸缪,但依然殚精竭虑,急于找到下家。面试的时候你是否出现过这些的特点:准备不足,急于求成,不能把能力清晰明确地表达出来,最终导致面试大多失败。这是特殊的寒冬时期造成的呢,还是应聘者本身造成的呢?怎么才
原创
448阅读
2评论
0点赞
发布博客于 9 月前

阿里大牛亲荐:SpringBoot应用程序事件教程,面试Spring你掌握多少

本文转载自:阿里大牛亲荐:SpringBoot应用程序事件教程,面试Spring你掌握多少如果要“监听”事件,我们可以在事件发生源处编写“监听器”来监听事件,但会将事件源与侦听器的逻辑紧密耦合。我们可以根据需要动态注册和注销某些事件的侦听器。对于同一事件,我们也可以有多个侦听器。本教程概述了如何发布和监听自定义事件,并解释了Spring Boot的内置事件。事件与直接方法调用事件和直接方法...
原创
358阅读
0评论
0点赞
发布博客于 10 月前

掌握这些技巧让你offer拿不停面试Java岗为什么总是回去等通知?

本文转载自掌握这些技巧让你offer拿不停面试Java岗为什么总是回去等通知?面试是我们进入企业,所必须经历的一条道路,在这条道路上有无数的陷阱和机关,我们必须和面试官斗智斗勇,最终才能到目的地。其中,有一个非常让我们头疼的关卡是,“这位程序员,请说说一下你的优缺点”。我见过很多不合格的回到,总是让我觉得差强人意。你我来给大家举几个例子:缺点:我是做事风风火火,就是加班也要把工作尽快干...
原创
366阅读
0评论
0点赞
发布博客于 10 月前

内部泄漏,惊现BAT互联网大厂薪资和职级表,你离年薪40W还差多少

本文转载自:内部泄漏,惊现BAT互联网大厂薪资和职级表,你离年薪40W还差多少互联网大厂新入职员工各职级薪资对应表(技术线)~上面的表格不排除有很极端的收入情况,但至少能囊括一部分同职级的收入。这个表是“技术线”新入职员工的职级和薪资情况,非技术线(如产品、运营、销售等)以及老员工的情况会和图中的范围有所出入。以校招生为例,产品线收入大概是技术线的80%,运营线收入大约是技术线的65%。...
原创
2390阅读
0评论
1点赞
发布博客于 10 月前

频繁跳槽是职场走下坡路的开始,Java程序员注意:跳槽前,你该考虑5个问题

本文转载自:频繁跳槽是职场走下坡路的开始,Java程序员注意:跳槽前,你该考虑5个问题职场上,跳槽是所有职场人都会遇到的问题。关于职场跳槽的理由,笔者做了以下盘点:和直接领导的矛盾导致离职;逃避问题而离职;工作压力大,挣钱少而离职…总之,大部分职场人并不清楚为什么要跳槽,或者根本就没有考虑那么多,就随意选择离职。以至于职业路途走得一塌糊涂。笔者做过的职业咨询,就遇到过这样的案例:一...
原创
4956阅读
0评论
0点赞
发布博客于 10 月前

JAVA线程安全及性能的优化笔记(六)——Web服务器开发环境下的线程安全问题

本文转载自:JAVA线程安全及性能的优化笔记(六)——Web服务器开发环境下的线程安全问题Servlet是在多线程环境下的。即可能有多个请求发给一个servelt实例,每个请求是一个线程。struts下的action也 类似,同样在多线程环境下。可以参考struts user guide: http://struts.apache.org/struts-action/userGuide /b...
原创
176阅读
0评论
0点赞
发布博客于 10 月前

裸辞三个月后,哭诉亲身经历,建议还想换工作的Java程序员不要辞职

本文转载自:裸辞三个月后,哭诉亲身经历,建议还想换工作的Java程序员不要辞职有位朋友私信我:我从事Java工作,今年受了很大的影响,我们公司采取了节源措施,给在岗的每位员工只发底薪。底薪太少了,我想要换工作,请笔者给个建议,换什么样的工作比较好!我给这位朋友的建议很简短:不辞职,现在各行各业都难做。为什么建议他不辞职,原因如下:他并没有想过离职之后做什么,即便要离职,也要明确离...
原创
1587阅读
0评论
0点赞
发布博客于 10 月前

Java程序员注意:在跳槽前,你知道什么样的程序员最受欢迎吗?

本文转载自:Java程序员注意:在跳槽前,你知道什么样的程序员最受欢迎吗?在我们身边,很多人都在准备跳槽,每天有很多人嘴上不停的在说我要换工作,但是成功的却很少。大多数人在面试的时候就折戟沉沙了。我有一位同事问我,每次面试我感觉回答的挺好的,但是为什么面试都过不去呢?我反问他,你觉得你回答得挺好,但是面试官也是这样认为得吗?他却愣住了。面试不是要让自己“爽",而是要让面试官听着舒服,觉得你就是...
原创
218阅读
0评论
0点赞
发布博客于 10 月前

JAVA线程安全及性能的优化笔记(五)——ThreadLocal

本文转载自:JAVA线程安全及性能的优化笔记(五)——ThreadLocal一、ThreadLocal原理1. 线程程序介绍早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。2. Threadlocal变量ThreadLocal很容易让人望文生...
原创
160阅读
0评论
0点赞
发布博客于 10 月前

Java开发者:想去BATJ大厂?那得先学会系统学习提升自己!

本文转载自:Java开发者:想去BATJ大厂?那得先学会系统学习提升自己!不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知。懂的越多的时候你才会发现懂的越少。如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大。最近看到很多Java新手问Java学习路线,学习方法啊,如何入门啊,所以我从网上找了一些资料,然后以我的工作经验给大家总结一下,让...
转载
211阅读
0评论
0点赞
发布博客于 10 月前

JAVA线程安全及性能的优化笔记(四)——什么是线程安全?

本文转载自:JAVA线程安全及性能的优化笔记(四)——什么是线程安全?如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。...
原创
189阅读
0评论
0点赞
发布博客于 10 月前

JAVA线程安全及性能的优化笔记(三)——Volatile关键字

本文转载自:JAVA线程安全及性能的优化笔记(三)——Volatile关键字volatile是java提供的一种同步手段,只不过它是轻量级的同步,为什么这么说?因为volatile只能保证多线程的内存可见性,不能保证多线程的执行有序性。而最彻底的同步要保证有序性和可见性,例如synchronized。任何被volatile修饰的变量,都不拷贝副本到工作内存,任何修改都能及时写在主存。因此对于v...
原创
182阅读
0评论
0点赞
发布博客于 10 月前

JAVA线程安全及性能的优化笔记(二)——Synchronized关键字

本文转载自:JAVA线程安全及性能的优化笔记(二)——Synchronized关键字前面的文章说了,java用synchronized关键字作为多线程并发环境的执行有序性的保证手段之一。当一段代码会修改共享变量,这一段代码成为互斥区或临界区,为了保证共享变量的正确性,synchronized标志了临界区。典型的用法如下:synchronized(锁){ 临界代码}为了保证银行账户的安...
原创
147阅读
0评论
0点赞
发布博客于 10 月前

JAVA线程安全及性能的优化笔记(一)——JAVA内存模型

本文转载自:JAVA线程安全及性能的优化笔记(一)——JAVA内存模型不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实JAVA的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存的存在,处理器并不是每次处理数据都是取内存的。J...
原创
164阅读
0评论
0点赞
发布博客于 10 月前

阿里8年Java架构师感悟——写给还在迷茫中的朋友

本文转载自:阿里8年Java架构师感悟——写给还在迷茫中的朋友对任何职业而言,薪资始终都会是众多追求的重要部分。前几年的Java行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入Java行业,目前Java行业“缺口”已经基本饱和。当然,我说的是最基础的"CRUD"岗位需求已经很少了,而Java高级工程师、架构师仍存在着非常多的机会。很多Java从业者其实会对自己未来的发展感到迷茫,...
原创
276阅读
0评论
0点赞
发布博客于 11 月前

阿里P7架构师的RabbitMQ学习笔记告诉你什么叫做消息队列王者

本文转载自:阿里P7架构师的RabbitMQ学习笔记告诉你什么叫做消息队列王者一、简单的发送与接收消息 HelloWorld1. 发送消息发送消息首先要获取与rabbitmq-server的连接,然后从渠道(chann)中指定的queue发送消息 , 不能定义两个queue名字相同,但属性不同示例:package com.zf.rabbitmq01;import java.io.IO...
原创
350阅读
0评论
0点赞
发布博客于 11 月前

阿里架构师总结笔记——Java虚拟机调优的原理及技巧(建议收藏)

本文转载自:阿里架构师总结笔记——Java虚拟机调优的原理及技巧一、相关概念1. 基本回收算法①. 引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。②. 标记-清除(Mark-Sweep):此算法执行分两阶段。第一阶段从引用...
原创
265阅读
0评论
0点赞
发布博客于 11 月前

阿里架构师实例讲解——Java多线程编程;详细的不能再详细了

本文转载自:阿里架构师实例讲解——Java多线程编程;详细的不能再详细了一、理解多线程多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。具体到java内存模型,由...
原创
234阅读
0评论
0点赞
发布博客于 11 月前

Java的21个技术点和知识点归纳

本文转载自:Java的21个技术点和知识点归纳写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。这次介绍的主要内容是和J2SE相关的部分,经过这么多年的Java开发,以及结合平时面试Java开发者...
原创
209阅读
0评论
0点赞
发布博客于 11 月前

来自阿里Java架构师的十三份设计模式笔记

本文转载自:来自阿里Java架构师的十三份设计模式笔记一、单例模式定义:确保一个类只有一个实例,并提供一个全局访问点。类图:源代码:public class Singleton { private static Singleton instance = null; private Singleton(){ } public static Singleton getInsta...
原创
274阅读
0评论
0点赞
发布博客于 1 年前

Java中常用的API——阿里架构师的两万字总结

本文转载自:Java中常用的API——阿里架构师的两万字总结目录Java面向对象基本概念SystemString, StringBuffer数值,字符,布尔对象与简单类型的操作Class, ClassLoaderJava IO系统Java集合类ResourceBundle, PropertiesExceptionsJDBC类库常用设计模式一、Java面向对象基本概念...
原创
196阅读
0评论
0点赞
发布博客于 1 年前

有哪些Java程序员必知必会的RocketMQ消息类型

本文转载自:有哪些Java程序员必知必会的RocketMQ消息类型一、普通消息普通消息也叫做无序消息,简单来说就是没有顺序的消息,producer 只管发送消息,consumer 只管接收消息,至于消息和消息之间的顺序并没有保证,可能先发送的消息先消费,也可能先发送的消息后消费。举个简单例子,producer 依次发送 order id 为 1、2、3 的消息到 broker,consum...
原创
195阅读
0评论
0点赞
发布博客于 1 年前

Java虚拟机调优原理及技巧

本文转载自:Java虚拟机调优原理及技巧一、相关概念1. 基本回收算法①. 引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。②. 标记-清除(Mark-Sweep):此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用...
原创
194阅读
0评论
0点赞
发布博客于 1 年前

作为Java程序员,你应该知道的RocketMQ工作原理

本文转载自:作为Java程序员,你应该知道的RocketMQ工作原理先简单了解一下各个模块的功能,下面会有章节详细介绍各个模块的功能。Producer和Consumer很好理解,顾名思义就是生产者和消费者,生产者负责生产消息,消费者负责消费消息,这2块的逻辑都是由业务使用者定义的。Broker是RocketMQ的核心,Broker实现了消息的存储、拉取等功能。Broker通常以集群方式启...
原创
268阅读
0评论
0点赞
发布博客于 1 年前

阿里架构师手把手教你如何简单快捷地构建Spring应用

本文转载自:阿里架构师手把手教你如何简单快捷地构建Spring应用一、Spring介绍1.1 SpringBoot简介在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!Spring Boot让我们...
原创
241阅读
0评论
0点赞
发布博客于 1 年前

现在搞Java还不会SpringBoot?看完这篇两万字笔记精髓就够了

本文转载自:现在搞Java还不会SpringBoot?看完这篇两万字笔记精髓就够了一、大纲了解Spring的发展掌握Spring的java配置方式学习Spring Boot使用Spring Boot来改造购物车系统二、Spring的发展2.1 Spring1.x 时代在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置...
原创
285阅读
0评论
0点赞
发布博客于 1 年前

实操讲解Java中反射的机制,使用,案例;再看不懂神仙也救不了你

本文转载自:实操讲解Java中反射的机制,使用,案例;再看不懂神仙也救不了你Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pas...
原创
197阅读
0评论
0点赞
发布博客于 1 年前

反射实例——JAVA反射机制

本文转载自:反射实例——JAVA反射机制一、Java反射反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的...
原创
214阅读
0评论
0点赞
发布博客于 1 年前

Spring Boot应用启动原理分析

本文转载自:Spring Boot应用启动原理分析一、spring boot quick start在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个Web Server。如果之前没有使用过spring boot可以通过下面的demo来感受下。下面以这个工程为例,演示如何启动Spring b...
原创
204阅读
0评论
0点赞
发布博客于 1 年前

阿里架构师加持,十分钟入门RocketMQ,就是这么简单!

本文转载自:阿里架构师加持,十分钟入门RocketMQ,就是这么简单!本文首先引出消息中间件通常需要解决哪些问题,在解决这些问题当中会遇到什么困难,Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件否可以解决,规范中如何定义这些问题。然后本文将介绍RocketMQ的架构设计,以期让读者快速了解RocketMQ。一、消息中间件需要解决哪些问题?1. Publi...
原创
224阅读
0评论
0点赞
发布博客于 1 年前

微服务异步架构——MQ之RocketMQ

本文转载自:微服务异步架构——MQ之RocketMQ“我们大家都知道把一个微服务架构变成一个异步架构只需要加一个MQ,现在市面上有很多MQ的开源框架。到底选择哪一个MQ的开源框架才合适呢 ”一、什么是MQ?MQ的原理是什么?MQ就是消息队列,是Message Queue的缩写。消息队列是一种通信方式。消息的本质就是一种数据结构。因为MQ把项目中的消息集中式的处理和存储,所以MQ主要有解耦,...
原创
253阅读
0评论
0点赞
发布博客于 1 年前

一文详解IOC控制反转容器与依赖注入

本文转载自:一文详解IOC控制反转容器与依赖注入容器,字面上理解就是装东西的东西。常见的变量、对象属性等都可以算是容器。一个容器能够装什么,全部取决于你对该容器的定义。当然,有这样一种容器,它存放的不是文本、数值,而是对象、对象的描述(类、接口)或者是提供对象的回调,通过这种容器,我们得以实现许多高级的功能,其中最常提到的,就是 “解耦” 、“依赖注入(DI)”。本文就从这里开始。本文一大半...
原创
222阅读
0评论
0点赞
发布博客于 1 年前

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解

本文转载自:JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。现实企业级Java开发中,有时候我们会碰到下面这些问题...
原创
248阅读
0评论
0点赞
发布博客于 1 年前

使用Spring进行面向切面编程(AOP)

本文转载自:使用Spring进行面向切面编程(AOP)前言面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足。 除了类(classes)以外,AOP提供了 切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理。 (这些关注点术语通常称作 横切(crosscutting) 关注点。)Spring的一个关键的组件就是 AOP框架。 尽...
原创
350阅读
0评论
0点赞
发布博客于 1 年前

我只用了一篇文章就完成了Spring+SpringMVC+MyBatis详细整合教程

本文转载自:我只用了一篇文章就完成了Spring+SpringMVC+MyBatis详细整合教程一、基本概念1.1 SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企...
原创
370阅读
0评论
0点赞
发布博客于 1 年前

什么是真正的架构设计?某厂十年Java经验让我总结出了这些,不愧是我

本文转载自:什么是真正的架构设计?某厂十年Java经验让我总结出了这些,不愧是我一. 什么是架构和架构本质在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。Linux有架构,MySQL有架...
原创
543阅读
0评论
0点赞
发布博客于 1 年前

作为一名程序猿,你不可不知的Java基础知识的三十个经典问答

本文转载自:作为一名程序猿,你不可不知的Java基础知识的三十个经典问答1. 面向对象的特点抽象:抽象是或略一个主题中与当前目标的无关的因素,一边充分考虑有关的内容。抽象并不能解决目标中所有的问题,只能选择其中的一部分,忽略其他的部分。抽象包含两个方面:一是过程抽象;一是数据抽象。继承:继承是一种联接类的层次模型,允许和鼓励类的重用,提供了一种明确的共性的方法。对象的一个新类可以从现有...
原创
247阅读
0评论
0点赞
发布博客于 1 年前

Java虚拟机架构?面试的时候懵了吧,作为过来人给你们讲讲

本文转载自:Java虚拟机架构?面试的时候懵了吧,作为过来人给你们讲讲JVM被分为三个主要的子系统:类加载器子系统、运行时数据区、执行引擎类加载器子系统Java的动态类加载功能是由类加载器子系统处理。当它在运行时(不是编译时)首次引用一个类时,它加载、链接并初始化该类文件。加载类由此组件加载。启动类加载器 (BootStrap class Loader)、扩展类加载器(Extensi...
原创
270阅读
0评论
0点赞
发布博客于 1 年前

一文详解各种花里胡哨的Java调试技巧,多图预警,记得收藏

本文转载自:一文详解各种花里胡哨的Java调试技巧,多图预警,记得收藏Java调试技巧一. Java调试1.1 Eclipse调试1.1.1 Debug1.1.1.1 条件断点断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止。条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。...
原创
343阅读
0评论
0点赞
发布博客于 1 年前

Java虚拟机工作原理详解

本文转载自:Java虚拟机工作原理详解一、类加载器首先来看一下java程序的执行过程。从这个框图很容易大体上了解java程序工作原理。首先,你写好java代码,保存到硬盘当中。然后你在命令行中输入javac YourClassName.java 此时,你的java代码就被编译成字节码(.class).如果你是在Eclipse IDE或者其他开发工具中,你保存代码的时候,开发工具已...
原创
209阅读
0评论
0点赞
发布博客于 1 年前

详解Spring AOP原理及拦截器,再有不懂者,请直接把这篇文章甩给他

本文转载自:详解Spring AOP原理及拦截器,再有不懂者,请直接把这篇文章甩给他一. 原理AOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterpr...
原创
254阅读
0评论
0点赞
发布博客于 1 年前

精选74道JavaBAT面试题,助力"金三银四"面试季,详细解析无套路

本文转载自:精选74道JavaBAT面试题,助力"金三银四"面试季,详细解析无套路Java面试宝典(2019版)1. 面向对象的三个特征封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象.2. 多态的好处允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点:可替换性:多态对已存在代码具有可替换性....
原创
2070阅读
0评论
0点赞
发布博客于 1 年前

面试挂在JVM?别慌,图文讲解JVM工作原理,看完还不懂我跪键盘

本文转载自:面试挂在JVM?别慌,图文讲解JVM工作原理,看完还不懂我跪键盘JDK,JRE,JVM的联系是啥?JVM Java Virtual Machine JDK Java Development Kit JRE Java Runtime Environment 看上图官方的介绍讲的很清楚JVM的作用是啥?JVM有2个特别有意思的特性,语言无关性和平台无关性。语言无关性是指实现...
原创
328阅读
0评论
0点赞
发布博客于 1 年前

码农必备干活:Java编码——高效代码汇总小技巧

本文转载自:码农必备干活:Java编码——高效代码汇总小技巧一. 常量&变量1.1 当成员变量值无需改变时,尽量定义为静态常量在类的每个对象实例中,每个成员变量都有一份副本,而成员静态常量只有一份实例。反例public class HttpConnection { private final long timeout = 5L; ...}正例public...
原创
1177阅读
0评论
1点赞
发布博客于 1 年前

Java程序员面试时,应当注意HR面的十三个小套路,纯干货分享

本文转载自:Java程序员面试时,应当注意HR面的十三个小套路,纯干货分享一. 简单自我介绍您好,我叫xxx,是xxx公司的Java开发工程师,目前负责公司的xxx项目。该项目有n个成员,我是该项目的负责人。整个项目分为数据存储、数据建模、后端应用开发和前端开发四大模块。我负责整个项目的规划及核心功能的开发,包括:存储端性能优化、数据建模、后端系统架构。之前在公司还参与过xxx项目的开发。...
原创
988阅读
0评论
0点赞
发布博客于 1 年前

历时两个星期总结出的史上最全的Spring Cloud 属性文件配置

本文转载自:历时两个星期总结出的史上最全的Spring Cloud 属性文件配置在我搭建基于Spring Cloud的微服务体系应用的时候所需要或者是常用的属性配置文件,还有这些属性的用途,此配置大多数来自互联网,稍作整理,记录再此,以便忘记的时候可以快速的检索到,也方便其他人更加快的融入到这门技术中。首先先来看一下基于Spring Boot项目的配置文件加载权重:启动时命令行里面传入的...
原创
660阅读
0评论
1点赞
发布博客于 1 年前

Java程序员2020刚开始找工作就碰壁?建议看完这份春招面试大纲

本文转载自:Java程序员2020刚开始找工作就碰壁?建议看完这份春招面试大纲前言一年之计在于春 金三银四已经要到来,2019的新的开始,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度?面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责。今天给大家分享下我整理的Java架构面试专题及答案,其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,...
原创
1495阅读
0评论
0点赞
发布博客于 1 年前

从基础到进阶,一文详解RocketMQ事务消息,看完不会跪键盘

本文转载自:从基础到进阶,一文详解RocketMQ事务消息,看完不会跪键盘事务消息是RocketMQ提供的非常重要的一个特性,在4.x版本之后开源,可以利用事务消息轻松地实现分布式事务。本文对RocketMQ的事务消息进行详细介绍,并给出了代码示例。一. 相关概念RocketMQ在其消息定义的基础上,对事务消息扩展了两个相关的概念:Half(Prepare) Message——半消息...
转载
261阅读
0评论
0点赞
发布博客于 1 年前

2020金三银四,这是我的Java线程池学习总结,请笑纳!

本文转载自:2020金三银四,这是我的Java线程池学习总结,请笑纳!一、使用线程池的好处池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。这里借用《Java 并...
原创
231阅读
0评论
0点赞
发布博客于 1 年前

你知道吗?Spring中都用到了那些设计模式?面试的时候慌了吗?

本文转载自:你知道吗?Spring中都用到了那些设计模式?面试的时候慌了吗?JDK 中用到了那些设计模式?Spring 中用到了那些设计模式?这两个问题,在面试中比较常见。我在网上搜索了一下关于 Spring 中设计模式的讲解几乎都是千篇一律,而且大部分都年代久远。所以,花了几天时间自己总结了一下,由于我的个人能力有限,文中如有任何错误各位都可以指出。另外,文章篇幅有限,对于设计模式以及一些源...
原创
244阅读
0评论
0点赞
发布博客于 1 年前

这应该是Spring中关于Bean的作用域与生命周期总结的最全文章了

本文转载自:这应该是Spring中关于Bean的作用域与生命周期总结的最全文章了前言在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean。简单地讲,bean 就是由 IOC 容器初始化、装配及管理的对象,除此之外,bean 就与应用程序中的其他对象没有什么区别了。而 bean 的定义以及 bean 相互间的依赖关系将通过配置元数据来描述...
原创
217阅读
0评论
0点赞
发布博客于 1 年前

致2020,这可能是把“并发容器”总结最详细的文章了

本文转载自:致2020,这可能是把“并发容器”总结最详细的文章了一、JDK 提供的并发容器总结JDK 提供的这些容器大部分在 java.util.concurrent 包中。ConcurrentHashMap: 线程安全的 HashMapCopyOnWriteArrayList: 线程安全的 List,在读多写少的场合性能非常好,远远好于 Vector.ConcurrentLinke...
原创
191阅读
0评论
0点赞
发布博客于 1 年前

这可能是史上最全、最强的Java线程池学习总结

本文转载自:这可能是史上最全、最强的Java线程池学习总结一、使用线程池的好处池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。这里借用《Java 并发编程的艺术...
原创
197阅读
0评论
0点赞
发布博客于 1 年前

这可能是把JDK监控和故障处理工具总结的最完整的一篇文章了

本文转载自:这可能是吧JDK监控和故障处理工具总结的最完整的一篇文章了一、JDK 命令行工具这些命令在 JDK 安装目录下的 bin 目录下:jps (JVM Process Status): 类似 UNIX 的 ps 命令。用户查看所有 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息;jstat( JVM Statistics Monitoring Tool): 用于...
原创
200阅读
0评论
0点赞
发布博客于 1 年前

一文详解Redis面试中常见的5种数据结构及对应使用场景

本文转载自:一文详解Redis面试中常见的5种数据结构及对应使用场景写在前边也当过面试官,面试过不少应聘者,因为是我自己招人自己用,所以我不会看应聘者造火箭的技术有多牛比,只看拧螺丝的手艺瓷不瓷实。毕竟以后是一个整体,拖了大家后腿团队都很难受。面试的题目一般也不会太难,就像问Redis,我只是想确认他真正用过就够了。Redis 5种基础数据结构和简单操作要知道,最基本的要求,如果这个时候他会...
原创
256阅读
0评论
0点赞
发布博客于 1 年前

一文深入理解Dubbo核心模型Invoker

本文转载自:一文深入理解Dubbo核心模型Invoker一、Dubbo中Invoker介绍为什么说Invoker是Dubbo核心模型呢?Invoker是Dubbo中的实体域,也就是真实存在的。其他模型都向它靠拢或转换成它,它也就代表一个可执行体,可向它发起invoke调用。在服务提供方,Invoker用于调用服务提供类。在服务消费方,Invoker用于执行远程调用。二、服务提供方的Inv...
原创
822阅读
0评论
0点赞
发布博客于 1 年前

一文详解Docker 代理脱坑

本文转载自:一文详解Docker 代理脱坑Docker 代理配置由于公司 Lab 服务器无法正常访问公网,想要下载一些外部依赖包需要配置公司的内部代理。Docker 也是同理,想要访问公网需要配置一定的代理。Docker 代理分为两种,一种是为运行的 Container 配置代理,用于下载一些依赖包以及访问公网。另一种是为 Docker Daemon 配置代理,用于支持 docker 相...
原创
288阅读
0评论
0点赞
发布博客于 1 年前

一文图解Spring架构原理,涵盖IOC、AOP、MVC、事务管理

本文转载自:一文图解Spring架构原理,涵盖IOC、AOP、MVC、事务管理一、Spring的由来EJB基于POJOSpring Projects二、IOC注入方式loC Service ProviderBeanFactoryApplicationContext原理jsr250、 jsr330三、AOP实现方式AOP公民Spring实现Aspect...
原创
317阅读
0评论
0点赞
发布博客于 1 年前

JVM、并发编程、函数式编程思维导图分享,简单明了

本文转载自:JVM、并发编程、函数式编程思维导图分享,简单明了一、JVM1. 运行时数据区域线程私有线程共享2. 溢出堆溢出栈溢出方法区溢出直接内存溢出3. 垃圾回收对象生命周期垃圾收集算法垃圾收集器内存分配回收策略二、并发编程1. 并发工具AQSReentrantLockReadWriteLockSemaphoreCountDownL ...
原创
317阅读
0评论
0点赞
发布博客于 1 年前

一文详解分布式系统的特点以及设计理念

本文转载自:一文详解分布式系统的特点以及设计理念前言分布式系统并不是什么新鲜词,在上个世纪七八十年代就已经有各种分布式系统出现。只是在互联网时代,分布式系统才大放异彩,尤其是 Google 更是把分布式系统运用到了极致。Google 整个的软件构架都是基于各种各样的分布式系统,诸如 Borg、MapReduce、BigTable 等。正是这些分布式系统,使得 Google 可以处理高并发请求...
原创
341阅读
0评论
0点赞
发布博客于 1 年前

Java异常处理很难吗?BAT大厂的架构师是怎么处理Java异常的?

本文转载自:Java异常处理很难吗?BAT大厂的架构师是怎么处理Java异常的?异常是运行时在代码序列中引起的非正常状态。在不支持异常处理的计算机语言中,必须手动检查和处理错误,Java语言则采用面向对象的方式管理运行时错误一、基础知识Java异常是用来描述在一段代码中发生的异常情况的对象。当出现引起异常的情况时,就会创建用来表示异常的对象,并在引起异常的方法中抛出异常对象。方法可以选择...
原创
187阅读
0评论
0点赞
发布博客于 1 年前