随笔分类 - Learn Java
摘要:一个查询语句经过哪些步骤 这次我们从MySQL的整体架构来讲SQL的执行过程,如下图: 在整体分为两部分Server和引擎层,这里引擎层我使用InnoDB去代替,引擎层的设计是插件形式的,可以任意替代,接下来我们开始介绍每个组件的作用: Server层 连接器:连接器负责跟客户端建立连接、获取权限、
阅读全文
摘要:服务心跳 Nacos Client会维护一个定时任务通过持续调用服务端的接口更新心跳时间,保证自己处于存活状态,防止服务端将服务剔除,Nacos默认5秒向服务端发送一次,通过请求服务端接口/instance/beat发送心跳。客户端服务在注册服务的时候会增加一个心跳的任务,如下图所示: 首先看下Be
阅读全文
摘要:Nacos简单介绍 Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式)
阅读全文
摘要:为什么需要注册中心 随着单体应用拆分,首当面临的第一份挑战就是服务实例的数量较多,并且服务自身对外暴露的访问地址也具有动态性。可能因为服务扩容、服务的失败和更新等因素,导致服务实例的运行时状态经常变化,如下图: 商品详情需要调用营销、订单、库存三个服务,存在问题有:1.营销、订单、库存这三个服务的地
阅读全文
摘要:前言 自从换了工作以后,将近5个月没有写博客了,这段时间经历一个身份的转变,从一个核心开发转变为了一个项目的Leader,这种感觉说不上来的,虽说是有些感悟,但是更多的是一些困惑,但是有一点是明确的,站的高度或者角度不同,有些思考是不一样的,有这种身份转换的,大家可以做一些交流,嘿嘿!开启我们的正题
阅读全文
摘要:Lambda演进 小王在公司正在开发一个学生管理系统,产品经理向他提出一个需求,要筛选出年龄大于15的学生,于是小王写出了以下代码: public static List<Student> filterAgeStudent(List<Student> students) { List<Student
阅读全文
摘要:问题 微服务化的时代,我们整个项目工程下面都会有很多的子系统,对于每个应用都有暴露 Api 接口文档需要,这个时候我们就会想到 Swagger 这个优秀 jar 包。但是我们会遇到这样的问题,假如说我们有5个应用,难道说我们每个模块下面都要去引入这个 jar 包吗?我作为一个比较懒的程序感觉这样好麻
阅读全文
摘要:前言 这篇文章主要是Java基础部分,主要分为3个部分:Java集合、Java多线、JVM;这些东西帮助我面试成功率提升了很多。后面还有中间件Spring、Redis、RocketMQ等等吧,祝愿大家找到好的工作加油! Java集合 这部分整理不算细致,也基本够大家应付基本的面试的,当然面试是次要的
阅读全文
摘要:前言 一些朋友问我怎么读源码,这篇文章结合我看源码时候一些思路给大家聊聊,我主要从这三个方向出发: 确定目标,这个目标要是一个具体,不要一上来我要看懂Spring,这是不可能的,目标要这么来定,比如看懂Spring Boot的自动装配、Spring IOC XML加载流程等等,尽量小,能够快速搞定的
阅读全文
摘要:一、前言 最近一段时间撸了Spring IOC、AOP、Transactional源码,这篇文章聊聊我写了哪些小玩意,这可能就是阅读源码以后最大收获。希望大家在里面能学习一些什么东西吧; 二、Spring IOC简单实现 第一步首先看一下配置文件,配置文件模拟Spring Bean注入时候的样子,少
阅读全文
摘要:一、前言 从7月份开始一直加班比较多,一直到双11结束,博客没跟上写,接下来写一点总结性的东西,比如Java并发编程总结、Mybatis源码总结、Spring源码和基础知识总结,首先来看下并发编程总结,几乎容纳所有并发编程的知识点中重要的部分,花了我很久的时间总结的; 二、Java并发编程脑图 总体
阅读全文
摘要:一、前言 主要分成两部说起:Thread源码解读和常见面试题解答,废话不多说开始; 二、源码解读 首先看下构造函数,构造函数都是通过调用init方法对属性进行初始化,主要是对线程组、线程名字、栈大小等信息进行初始化;init内部通过调用currentThread本地方法,获取当前的线程,这个本地方法
阅读全文
摘要:一、Spring Secutity简介 Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Auth
阅读全文
摘要:一、前言 上一篇介绍了注解,也是为这一篇做铺垫,传统的都是通过配置文件来启动spring,那spring boot到底是做了什么能让我们快速开发昵? 二、启动原理 看下程序启动的入口,主要两处地方一是SpringBootApplication注解,另外就是run方法,首先我们看注解部分,上一篇我们也
阅读全文
摘要:一、缘由 上篇也提到过要开spring cloud系列,但是避免不了就是spring boot,那针对这个我们首先要明白的就是spring boot启动到底帮我做了那些事,明白这些我们后面使用起来的时候就会得心应手,但是你会发现一个问题,那就是spring boot就是通过这些注解去加载的,所以这个
阅读全文
摘要:一、前言 最近去成都玩了一圈,整体感觉还不错,辞职以后工作找的也很顺利,随着年龄增加自己也考虑定居和个人长期发展的问题,反正乱七八糟的事,总之需要好好屡屡思路,不能那么着急下定论,当然我对下份工作也是有所期望的,不扯了开始我们今天主题吧。 二、Java的内存模型 Java内存模型规定所有的变量都存在
阅读全文
摘要:一、前言 本来计划将ConcurrentHashMap和HashMap对比着来说下,奈何看的源码有点懵逼,我在思考思考,等等有个清晰的思路在搞起来,我们先来谈一下synchronized,主要从用法,JVM两个方面来说一下; 二、用法 要谈用法,首先要明白什么时候我们需要使用,在并发编程中照成线程安
阅读全文
摘要:一、前言 其实这一面来的挺突然,也是意想不到的,这个要起源于BOSS直聘,很巧,其实也算是一种缘分吧,谢谢BOSS那个哥们,还是那句话来滨江我请你吃饭,身怀感激你总会遇到帮助你的人,只是这个我没有想到,我转Java也没多久,很多东西也没有搞清楚,没想到菜鸟会给我这个电话,内心是震惊的,但是也感谢给我
阅读全文
摘要:一、为什么要学习Java虚拟机? 这里我们使用举例来说明为什么要学习Java虚拟机,其实这个问题就和为什么要学习数据结构和算法是一个道理,工欲善其事,必先利其器。曾经的我经常害怕处理内存溢出的问题,因为不知道他为什么会出现这个问题,当我在看了这本书以后明白了垃圾回收算法,以及JVM是如何帮助我们处理
阅读全文
摘要:一、前序 前几篇文章我结合数据结构说了一些常用的集合,但是我感觉那样可能不系统,于是乎想着重写,按照由整体到细节的方式去写,这样才能更好的把握集合,废话不多说开始吧; 二、集合框架 上面这副图是集合框架中的基本接口,另外还有NavigableSet和NavigableMap这两个接口;看到这些接口如
阅读全文