- 博客(237)
- 资源 (26)
- 收藏
- 关注
转载 IntelliJ IDEA快捷键大全 + 动图演示
执行该命令后,IntelliJ IDEA 会编译项目中所有类,并将编译结果输出到目录中。IntelliJ IDEA 支持增量构建,会在上次构建的基础上,仅编译修改的类。在IntelliJ IDEA 中打开要编译的类,执行该命令会编译当前类。剪切选中文本,若未选中则剪切当前行。复制选中文本,若未选中则复制当前行。从历史剪粘版中选择要粘贴的内容。复制光标所在行。复制选中文件所在路径。复制包的路径,或者类的名称。撤销上一步操作内容。恢复上一步撤销内容。自动缩进至规范位置。无论光标是否在行尾,都开始新的行。删除当前
2023-05-08 13:22:51 1269 1
转载 分布式定时调度:xxl-job 万字详解
调度中心支持集群部署,提升调度系统容灾和可用性。调度中心集群部署时,几点要求和建议:DB配置保持一致;集群机器时钟保持一致(单机集群忽视);当启动多个调度器时,执行器配置调度中心部署跟地址可以用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;但是建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。xxl-job确实很强大,功能也很全,经过该文章学习相信你可以把xxl-job。
2022-11-18 20:42:42 3975
转载 同事把RabbitMQ讲透了
常见的消息队列很多,主要包括 RabbitMQ、Kafka、RocketMQ 和 ActiveMQ,这篇文章只讲 RabbitMQ,先讲原理,后搞实战。消息队列目前主要 2 种模式,分别为“点对点模式”和“发布/订阅模式”。一个具体的消息只能由一个消费者消费,多个生产者可以向同一个消息队列发送消息,但是一个消息在被一个消息者处理的时候,这个消息在队列上会被锁住或者被移除并且其他消费者无法处理该消息。
2022-10-22 17:59:50 307
转载 聊聊 8种 架构模式
这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提高工作效率。作为一个工作10年以上的老码农,经历的系统架构设计也算不少,接下来,我会把工作中用到的一些架构方面的设计模式分享给大家,望大家少走弯路。总体而言,共有八种,分别是:单库单应用模式:最简单的,可能大家都见过内容分发模式:目前用的比较多查询分离模式:对于大并发的查询、业务。
2022-10-02 13:03:16 640
转载 Java实现100万+并发
Java实现百万级并发,需要注意的,三大核心问题,你知道吗?并发编程并不是一项孤立存在的技术,也不是脱离现实生活场景而提出的一项技术。相反,实现百万级并发编是一项综合性的技术,同时,它与现实生活中 的场景有着紧密的联系。
2022-10-01 19:19:45 240
转载 看了我常用的数据库设计技巧
对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节。系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等。后端开发的日常工作,需要不断的建库和建表,来满足业务需求。通常情况下,建库的频率比建表要低很多,所以,我们这篇文章主要讨论建表相关的内容。如果我们在建表的时候不注意细节,等后面系统上线之后,表的维护成本变得非常高,而且很容易踩坑。今天就跟大家一起聊聊,数据库建表的15个小技巧,希望对你会有所帮助。
2022-09-16 15:24:28 149
转载 一文讲完 Spring Cloud,2W 字超详细总结
构建分布式系统不需要复杂和容易出错。Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快速应用于生产中。官方果然官方,介绍都这么有板有眼的。我所理解的就是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控。
2022-09-09 17:13:32 110
转载 MyBatis多条件查询、动态SQL、多表操作、注解开发详细教程
MyBatis封装了JDBC通过Mapper代理的方式,以前繁琐的操作通过“属性与字段映射”就简单化解,MyBatis的动态SQL完美展现了DBMS的独特魅力。
2022-08-03 14:44:28 3942 1
转载 关闭订单如何实现
以上方法只是个人对于关单的一些想法,可能有些地方有疏漏,请在公众号直接留言进行指出,当然如果你有更好的关单方式也可以随时沟通交流httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。
2022-08-02 11:00:36 295
转载 19张图带你梳理SpringCloud体系中的重要技术点
SpringCloud作为Java言的微服务框架,它依赖于SpringBoot,有快速开发、持续交付和容易部署等特点。SpringCloud的组件非常多,涉及微服务的方方面面,井在开源社区Spring、NetflixPivotal两大公司的推动下越来越完善。SpringCloud是一系列组件的有机集合。图7SpringCloud技术体系图8SpringCloud技术体系思维导图本文中对架构的演进及SpringCloud构建微服务的基本组件进行了概览。https。...
2022-07-31 08:09:42 150
转载 30分钟彻底弄懂 synchronized 锁升级过程
些线程安全问题,这里面可能会产生一些预想不到的问题,所以下边我整理了一系列关于JDK中锁的问题,帮助大家更加深入地了解它们。
2022-07-31 07:42:17 5936 1
转载 从单体架构到分布式架构,坑多bug多
书本定义“软件的架构是一种抽象的结构,他由软件的各个组成部分和这些部分之间的依赖关系构成”。我的理解是,架构就是根据业务选择合适的技术、中间件,并且按照合适的设计模式对这些模块,进行组装来满足业务特性的需求。...
2022-07-26 16:03:14 169
转载 一文详解 JDK1.8 的 Lambda、Stream、LocalDateTime
Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。StreamAPI可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,比如筛选,排序,聚合等。不是数据结构它没有内部存储,它只是用操作管道从source(数据结构、数组、generatorfunction、IOchannel)抓取数据。注意事项。...
2022-07-18 10:24:17 250
转载 从 CPU 说起,深入理解 Java 内存模型!
Java 内存模型,许多人会错误地理解成 JVM 的内存模型。但实际上,这两者是完全不同的东西。Java 内存模型定义了 Java 语言如何与内存进行交互,具体地说是 Java 语言运行时的变量,如何与我们的硬件内存进行交互的。而 JVM 内存模型,指的是 JVM 内存是如何划分的。Java 内存模型是并发编程的基础,只有对 Java 内存模型理解较为透彻,我们才能避免一些错误地理解。Java 中一些高级的特性,也建立在 Java 内存模型的基础上,例如:volatile 关键字。为了让大家能明白 Java
2022-07-12 10:39:18 115
转载 一文讲清楚 binlog、redo log、undo log
日志是 数据库的重要组成部分,记录着数据库运行期间各种状态信息。日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志( )和事务日志(包括 和 ),本文接下来会详细介绍这三种日志。 用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。 是 的逻辑日志,并且由 层进行记录,使用任何存储引擎的 数据库都会记录 日志。逻辑日志:可以简单理解为记录的就是sql语句 。物理日志: 数据最终是保存在数据页中的,物理日志记录
2022-07-09 15:13:24 613
转载 必须掌握的30种SQL语句优化
.对查询进行优化,应尽量避免全表扫描,首先应该考虑在where 以及 order by 涉及的列上建立索引、 应尽量避免在 where 子句中使用 != 或<>操作符,否则将导致引擎放弃使用索引而进行全表扫描 应尽量避免在where 字句中对字段进行null判断,否则将导致引擎放弃使用索引而进行全表扫描 如:select id from stu where num is null 可以在 num 上设置默认值0,确保表中num列没有null值,然后这样查询 select id from
2022-07-09 14:45:04 106
转载 熟练掌握 mybatis-plus,一篇就够
MyBatis-plus 是一款 Mybatis 增强工具,用于简化开发,提高效率。下文使用缩写 mp来简化表示 MyBatis-plus,本文主要介绍 mp 搭配 Spring Boot 的使用。注:本文使用的 mp 版本是当前最新的3.4.2,早期版本的差异请自行查阅文档官方网站:baomidou.com/3.配置数据库4.创建一个实体类5.创建一个mapper接口6.在SpringBoot启动类上配置mapper接口的扫描路径7.在数据库中创建表
2022-07-07 13:18:01 142
转载 Java 枚举7种常见用法
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。在JDK1.5 之前,我们定义常量都是:public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。用法二:switchJDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。用法三:向枚举中添加新方法如果打算自定义自己的方法,那么必须在enum实例序列的最后
2022-07-07 11:15:12 322
转载 常见代码重构技巧(非常实用)
为什么要重构项目在不断演进过程中,代码不停地在堆砌。如果没有人为代码的质量负责,代码总是会往越来越混乱的方向演进。当混乱到一定程度之后,量变引起质变,项目的维护成本已经高过重新开发一套新代码的成本,想要再去重构,已经没有人能做到了。造成这样的原因往往有以下几点: 编码之前缺乏有效的设计 成本上的考虑,在原功能堆砌式编程 缺乏有效代码质量监督机制 对于此类问题,业界已有有很好的解决思路:通过持续不断的重构将代码中的“坏味道”清除掉。什么是重构重构一书的作者Ma
2022-05-12 15:03:47 1841
转载 IntelliJ IDEA快捷键大全 + 动图演示
本文参考了 IntelliJ IDEA 的官网,列举了IntelliJ IDEA(Windows 版)的所有快捷键。并在此基础上,为 90% 以上的快捷键提供了动图演示,能够直观的看到操作效果。该快捷键共分 16 种,可以方便的按各类查找自己需要的快捷键~~一、构建/编译Ctrl + F9:构建项目该快捷键,等同于菜单【Build】—>【Build Project】执行该命令后,IntelliJ IDEA 会编译项目中所有类,并将编译结果输出到out目录中。IntelliJ
2022-04-28 15:54:08 550
转载 实现高可用的 11 个关键技巧
一、系统拆分有句古话 "牵一发而动全身"。面对一个庞然大物,如果没有一个合理的分工分层。任何一个小小失误都会被无限放大,酿成巨大灾难。万物相通,回到我们的软件架构。早前的系统都是单体系统,比如电商业务,会员、商品、订单、物流、营销等模块都堆积在一个系统。每到节假日搞个大促活动,系统扩容时,一扩全扩,一挂全挂。只要一个接口出了问题,整个系统都不可用。“鸡蛋不能放在一个篮子里”,这种连带风险换谁都承受不起。因此,系统拆分 成了更多人的选择。慢慢的就有了我们现在看到的微服务架构,将一个
2022-04-16 21:14:51 3005
转载 Optional的使用
前言相信不少小伙伴已经被java的NPE(Null Pointer Exception)所谓的空指针异常搞的头昏脑涨,有大佬说过“防止 NPE,是程序员的基本修养。”但是修养归修养,也是我们程序员最头疼的问题之一,那么我们今天就要尽可能的利用Java8的新特性 Optional来尽量简化代码同时高效处理NPE(Null Pointer Exception 空指针异常)认识Optional并使用简单来说,Opitonal类就是Java提供的为了解决大家平时判断对象是否为空用 会用 null!=ob
2022-04-11 21:06:48 2132
转载 【无标题】
前言 建立一个全新的项目,或者把旧的庞大的项目,进行拆分成多个项目。在建立新的项目中,经常需要做一些重复的工作,比如说拷贝一下常用的工具类,通用代码等等。所以就可以做一个基础的项目方便使用,在经历新项目的时候,直接在基础项目上进行简单配置就可以开发业务代码了。基础项目该包含哪些东西。Swagger在线接口文档。 CodeGenerator 代码生成器。 统一返回。 通用的分页对象。 常用工具类。 全局异常拦截。 错误枚举。 自定义异常。 多环境配置文件。 Maven多环境配置
2022-03-02 11:58:30 101
转载 java中的各种锁详细介绍
前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:1. 乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此
2022-03-02 10:15:54 271
转载 Mybatis-Plus学习总结
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。基本特性无侵入: 只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小: 启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作: 内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用:
2022-03-02 09:53:33 335
转载 对 volatile 关键字讲解最好的一篇文章
volatile 的作用大家都应该知道 volatile 的主要作用有两点:- 保证变量的内存可见性 - 禁止指令重排序那么,什么是内存可见性,什么是指令重排序,以及它们涉及了那些机制呢?下面就让我们来看看吧。可见性问题在理解 volatile 的内存可见性前,我们先来看看这个比较常见的多线程访问共享变量的例子。/** * 变量的内存可见性例子 * * @author star */public class VolatileExample { /** *
2022-02-28 11:43:26 99
转载 MySQL经典36问
事务的四大特性?事务特性ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。 一致性是指一个事务执行之前和执行之后都必须处于一致性状态。比如a与b账户共有1000块,两人之间转账之后无论成功还是失败,它们的账户总和还是1000。 隔离性。跟隔离级别相关,如read committed,一个事务只能读到已经提交的修改。 持久性
2022-02-28 11:23:52 152
转载 图文并茂,Spring Boot Starter 万字详解
一、SpringBoot的starter简介1.1 什么是starter(场景启动器)在SpringBoot出现之前,如果我们想使用SpringMVC来构建我们的web项目,必须要做的几件事情如下: 首先项目中需要引入SpringMVC的依赖 在web.xml中注册SpringMVC的DispatcherServlet,并配置url映射 编写springmcv-servlet.xml,在其中配置SpringMVC中几个重要的组件,处理映射器(HandlerMapping..
2022-02-28 10:47:39 2793
转载 微服务架构最强讲解,那叫一个通俗易懂
一、微服务架构介绍微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。微服务架构是个很有趣的概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。定义:围绕..
2022-02-11 20:46:39 841
转载 Git各指令的本质,真是通俗易懂啊
前言作为当前世界上最强大的代码管理工具Git相信大家都很熟悉,但据我所知有很大一批人停留在clone、commit、pull、push...的阶段,是不是对rebase心里没底只敢用merge?碰见版本回退就抓瞎?别问我怎么知道的,问就是:“我曾经就是这样啊~~”。针对这些问题,今天我就将这几年对Git的认知和理解分享出来,尽可能的从本质去讲解Git,帮助你一步一步去了解Git的底层原理,相信读完本篇文章你便可以换种姿态,更加风骚得使用Git各种指令。目录1. 基本概念1.1 Git 的
2022-01-12 19:48:53 59
转载 JVM 内存布局
概览内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM 内存布局规定了 Java 在运行过程中内存申请、分配、管理的策略 ,保证了 JVM 的高效稳定运行。上图描述了当前比较经典的JVM内存布局。如果按照线程是否共享来分类的话,如下图所示:PS:线程是否共享这点,实际上理解了每块区域的实际用处之后,就很自然而然的就记住了。不需要死记硬背。下面让我们来了解下各个区域。一、Heap (堆区)1.1 堆区的介绍我们先来说
2022-01-12 17:50:19 166
转载 一张图看懂微服务架构路线
- 我为什么选择微服务架构 -众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。微服务架构是一种灵活的架构,可以显著性地提高应用程序灵活性、可扩展性等。- 微服务架构路线 -据我了解很多开发者,想知道他们应该如何开始微服务架构旅程,虽然有成千上万的资源可以使用,但是资源到处分散。我决定通过为微服务架构学习定义路线图,使这段旅程更加清晰。- 基本思路 ...
2022-01-11 11:02:17 172
转载 中间件到底是什么东西?
大师等于啥也没说,张大胖还是一头雾水张大胖还是不明白张大胖窥到了一点儿门径,他赶紧让大师举个例子。大师解释到,中间件这个概念,起源于上世纪90年代末,2000年初。当时IT界刮起了一股J2EE的旋风,旋涡的中心就是一个叫做“应用服务器”的中间件。应用服务器的核心就是EJB。当时很多企业都有信息化的需求,而Java天生适合服务器端编程,在实现复杂业务上非常有优势,跨平台,开发起来比C++快得多,于是迅速就流行开了。当然,...
2022-01-11 09:53:08 123
转载 图解JVM经典五十问
引言1.什么是JVM?JVM——Java虚拟机,它是Java实现平台无关性的基石。Java程序运行的时候,编译器将Java文件编译成平台无关的Java字节码文件(.class),接下来对应平台JVM对字节码文件进行解释,翻译成对应平台匹配的机器指令并运行。同时JVM也是一个跨语言的平台,和语言无关,只和class的文件格式关联,任何语言,只要能翻译成符合规范的字节码文件,都能被JVM运行。内存管理2.能说一下JVM的内存区域吗?JVM内存区域最粗略的划分可以分为堆和栈,当
2022-01-09 20:38:54 153
转载 聊聊MySQL三大核心日志的实现原理?
MySQL日志说起MySQL的日志,有三种类型的日志对于MySQL来说是至关重要的,这三种日志分别为:Binlog、Undo Log 和 Redo Log。由于Binlog和UndoLog有类似的地方,所以,我们按照如下顺序依次介绍MySQL中的三大日志原理:Undo Log——> Redo Log ——> Binlog。Undo Log日志什么是Undo Log顾名思义,Undo Log的字面意思就是撤销操作的日志,指的是使MySQL中的数据回到某个状态。在MySQL数
2022-01-09 20:33:53 372
转载 分布式架构的演进
系统架构演化历程-初始阶段架构初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP特征:应用程序、数据库、文件等所有的资源都在一台服务器上。描述:通常服务器操作系统使用linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用Mysql,汇集各种免费开源软件以及一台廉价服务器就可以开始系统的发展之路了。系统架构演化历程-应用服务和数据服...
2021-12-15 16:45:04 52
转载 超过1W字深度剖析JVM常量池
面试题:String a = “ab”; String b = “a” + “b”; a == b 是否相等面试考察点考察目的:考察对JVM基础知识的理解,涉及到常量池、JVM运行时数据区等。考察范围:工作2到5年。背景知识要回答这个问题,需要搞明白两个最基本的问题 String a=“ab”,在JVM中发生了什么? String b=“a”+“b”,底层是如何实现? JVM的运行时数据首先,我们一起来复习一下JVM的运行时数据区。为了让大家有一个全局的视.
2021-12-06 17:00:35 93
轻松搞定ExtJS教程
2010-12-14
传智播客SCM手把手开发文档
2009-06-05
C#超强仿QQ聊天软件MyQQ(可截图)
2009-05-27
基于Struts的车辆租赁管理系统附带设计文档
2009-05-26
航班订票系统项目文档
2009-05-22
struts hibernate 开发的论坛
2009-05-15
spring快速入门教程
2009-05-11
Struts2.0中文教程.
2009-05-08
oracle初学者1000问
2009-05-06
通用静态页面生成系统
2009-03-13
UnicornViewer_v0.07b_chn_pdg浏览器
2009-03-13
网页中实现文本框自校验的标签
2009-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人