自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 524页《Java中高级程序员必备核心知识》总结,令人犹如醍醐灌顶

说在前面知乎上有个很热门的话题:中国的程序员数量是否已经饱和或者过剩?今年大家都有一个共同的感受:工作不好找,面试越来越难。其实,造成这种现象不仅是因为今年受疫情影响,倒闭了很多公司,很多公司缩小规模裁员,造成岗位缺少。更重要的是因为初级过剩,中级缺少,高级紧缺。学java搞服务端的同学, 有多少人搞懂了引用计数和回收机制?所以说,作为一名程序员,如果不想学习,不想增进自己的技术,那你一定会被后浪拍死在沙滩上,那么你还不如趁早改行,或许摆地摊的收入远比你现在的收入高。话不多说,.

2020-09-26 14:14:24 405

原创 阿里P8Java架构师是如何规划架构体系的呢?

文末有福利!!!性能优化JVM调优Java程序性能优化TomcatMysqlSpring IOCSpring AOPSpring MVCSpring 5新特性Mybatis分布式架构架构核心服务层技术架构关键技术设施分布式消息通讯 异步于MQ分布式缓存RedisMemcachedMongoDB数据存储高并发分流技术Nginx分布式解决方案应用框架源码解读微服务专题你还不知道微服务?怎...

2020-09-28 20:10:05 178

原创 常见的 Spring 注解概览

从Java5.0开始,Java开始支持注解。Spring做为Java生态中的领军框架,从2.5版本后也开始支持注解。相比起之前使用xml来配置Spring框架,使用注解提供了更多的控制Spring框架的方式。现在越来越多的项目也都在使用注解做相关的配置,但Spring的注解非常多,相信很多注解大家都没有使用过。本文就尽量全面地概括介绍一下Spring中常用的注解。一. 核心注解@Required此注解用于bean的setter方法上。表示此属性是必须的,必须在配置阶段注入,否则会抛出Bean

2020-09-28 17:01:15 81

原创 真不错!历时68天完成的朴实无华MyCat笔记,现学还来得及

随着大数据时代的到来,海量数据存储、并行计算、异构数据互联等一系列新技术在市场上不断地涌现。相信数据库行业的很多从业者都对传统关系型数据库的单点故障及容量问题头疼不已,而“分库分表”也早已成为解决这类问题的基础,此时,Mycat 应运而生。MyCat 是一个彻底开源的,面向企业应用数据库中间件,支持事务、ACID、可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群,并结合传统数据库和新型分布式数据仓库的新一代企业级数据库中间件产品。作为一名专注于数据库领域多年的从业者,我认为Myc

2020-09-28 15:45:37 176

原创 华为顶级安全专家提交出了Linux+redis+netty+zookeeper归纳笔记

近日,华为又处在了风口浪尖的位置,围绕华为L20首席安全专家为Linux内核提交补丁却被发现漏洞,国内外有了很多的讨论。于是就有一位华为顶级专家提交了这份Linux+redis+netty+zookeeper归纳笔记以平人心,于是就有了下面这份归纳笔记!Linux太难用了(一通鼠标点击,进入/etc)学习Linux,你忘记Windows的思维方式了吗?怎么安装软件啊?那一堆文件是干什么的呢?进入Linux,岁半按了几下,赶紧弄充重启进入win学习Linux,你用心了吗?首先,我想引

2020-09-28 14:39:20 181

原创 订单系统:从0到1设计思路

概述本文主要讲述了在传统电商企业中,订单系统应承载的角色,就订单系统所包含的主要功能模块梳理了设计思路,并对订单系统未来的发展做了一些思考。1、订单系统在企业中的角色在搭建企业订单系统之前,需要先梳理企业整体业务系统之间的关系和订单系统上下游关系,只有划分清业务系统边界,才能确定订单系统的职责与功能,进而保证各系统之间高效简洁的工作。2、订单系统与各业务系统的关系(1)对外系统:所有给企业外部用户使用的系统都在这一层,包括官网、普通用户使用的C端,还包括给商户使用的商家后台.

2020-09-27 20:10:48 800

原创 程序员简历上最实用的4个“吸睛”技巧

技术人员如何在面试前就让面试官对你的印象加分?简历是一种个人陈述,反映的是自己的个性与目标职位的角色相关性,其目的是要赞扬自己,但并不是一味的自吹自擂。作为公司的研发负责人,在最近的半年以来,每天都可以看到形形色色的开发人员前来面试,包括一些有经验的和刚刚步入社会的实习开发人员。可以真切的感受到大家对于面试过程异常重视,反而是对于自己的简历并没有过多的注意。所以,在翻阅了近千份简历之后,我决定根据我个人经验创建一个程序员简历指南,总结一下程序员简历上4个“吸睛”的小技巧,..

2020-09-27 14:45:49 369

原创 开发脚手架 推荐一个超牛的SpringCloud微服务项目,

前言Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用Spring Boot 2.1.2以及Spring Cloud (Greenwich.RELEASE) 相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,前端采用vue-element-a

2020-09-27 14:24:24 577

原创 当Docker遇到Intellij IDEA,再次解放了生产力~

Idea是Java开发利器,SpringBoot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?一、开发前准备1. Docker的安装可以参考https://docs.docker.com/install/2. 配置docker远程连接端口vi/usr/lib/systemd/system/docker.service找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示3. 重

2020-09-27 09:52:32 109

原创 阿里P8大牛爆肝的《Java核心技术总结》+《面试题总结》赞爆了

一、《Java核心技术总结》V2.0是的,你没看错,在 Java 核心基础总结的基础上,作者又淦了一本 Java V2.0,它不是第一版的升级版本,而是第一版的补充,第二版适合有一定基础的同学阅读,当然第一版作者也遗漏了很多东西,这些东西作者后面肯定会予以完善和总结,来为你呈现出一个完整 的 Java 蓝图。下面,就像苹果发布会一样,我们先把 Pro 宣讲了,后面会不断迭代。Java V2.0 是这样的这只是分类啊,内容涉及深入理解代理 深入理解反射 全面理解 IO 流..

2020-09-26 15:08:16 350

原创 面试官:分布式锁都没能搞清楚,还能叫熟悉Redis?

面试官:Redis 的优势有哪些?程序员阿里:速度快,因为数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是 O(1)。支持丰富的数据类型,支持 string,list,set,zset 和 hash。支持事务性。操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行。(这块需要注意与之前 MySQL 不同)丰富的特性,可用于缓存,消息队列,按 key 设置过期时间,过期后将自动删除。面试官:Redis 的数据结构都有哪..

2020-09-26 14:37:04 90

原创 超牛逼的 Feed 流系统设计!

简介差不多十年前,随着功能机的淘汰和智能机的普及,互联网开始进入移动互联网时代,最具代表性的产品就是微博、微信,以及后来的今日头条、快手等。这些移动互联网时代的新产品在过去几年间借着智能手机的风高速成长。这些产品都是Feed流类型产品,由于Feed流一般是按照时间“从上往下流动”,非常适合在移动设备端浏览,最终这一类应用就脱颖而出,迅速抢占了上一代产品的市场空间。Feed流是Feed + 流,Feed的本意是饲料,Feed流的本意就是有人一直在往一个地方投递新鲜的饲料,如果需要饲料,只需要盯着投

2020-09-26 09:57:23 457

原创 超牛逼的 Feed 流系统设计!

简介差不多十年前,随着功能机的淘汰和智能机的普及,互联网开始进入移动互联网时代,最具代表性的产品就是微博、微信,以及后来的今日头条、快手等。这些移动互联网时代的新产品在过去几年间借着智能手机的风高速成长。这些产品都是Feed流类型产品,由于Feed流一般是按照时间“从上往下流动”,非常适合在移动设备端浏览,最终这一类应用就脱颖而出,迅速抢占了上一代产品的市场空间。Feed流是Feed + 流,Feed的本意是饲料,Feed流的本意就是有人一直在往一个地方投递新鲜的饲料,如果需要...

2020-09-26 09:54:23 707

原创 「内部分享」阿里巴巴 开源软件列表

导读阿里的开源项目很多,这也跟@淘宝正明的开源态度密不可分。有很多重量级的项目,例如LVS、Tengine,或者很有实践价值的中间件,今天小编为大家汇总了阿里开源的项目,快来看看吧!服务框架 DubboDubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。JDBC连接池、监控组件 DruidDruid是一个JDBC组件,它包括三部分:代理Driver,能够提供基于Filt.

2020-09-25 20:59:43 2140

原创 Alibaba内部出品JavaEE开发手册( MVC+ Spring+MyBatis )和Redis

为什么选择 SSM 框架+Redis 的开发模式?有幸从一位朋友那里得到Alibaba内部出品强推的“《Java互联网轻量级框架整合开发——SSM框架( Spring MVC+Spring+MyBatis )和Redis实现》”,秉承好东西的当然要共享的原则,今天就来秀一把,试试这“《Java互联网轻量级框架整合开发——SSM框架( Spring MVC+Spring+MyBatis )和Redis实现》”是否也能让你事半功倍!目前企业的Java应用中,Spring 框架是必须的,Spring

2020-09-25 20:50:22 123

原创 爱了!阿里技术官甩出的Kafka精髓全写这本“限量笔记”里

前言:分布式,是程序员必备技能之一,在面试过程中属于必备类的,在工作中更是会经常用到。而Kafka是一个分布式的基于发布订阅的消息队列,目前它的魅力是无穷的,对于Kafka的奥秘,还需要我们细细去探寻。Kafka是一个高吞吐量、分布式的发布一订阅消息系统。据Kafka官方网站介绍,当前的Kafka已经定位为一个分布式流式处理平台(a distributed streaming platform),它最初由Linkedn公司开发,后来成为Apache项目的一部分。Kafka 核心模块使用Scala语

2020-09-25 20:34:10 216

原创 淘宝电商项目落地,从零开始搭建亿级系统架构笔记

电商亿级系统架构设计笔记,分为:基础篇、数据库篇、缓存篇、消息队列篇、分布式服务篇、维护篇、实战篇。通过学习这份笔记,你可以系统的学会从零开始搭建亿级系统架构。其中每篇中又有具体的设计实施的笔记供大家参阅。基础篇01.高并发系统:它的通用设计方法是什么?再造淘宝电商项目落地,从零开始搭建亿级系统架构笔记02.架构分层:我们为什么一定要这么做?在系统从0到1的阶段,为了让系统快速上线,我们通常是不考虑分层的。但是随着业务越来越复杂,大量的代码纠缠在-起,会出现逻辑不清晰、各模块相互依赖

2020-09-25 16:20:55 1142

原创 《把玩Dubbo系列》Dubbo源码环境搭建

前言《把玩Dubbo系列》是我一直以来想做的一件事,一方面因为Dubbo是我在日常工作中一直会用到的一款RPC框架,所以有必要对它的原理深入理解一下,其次对自己所学的设计模式的一个巩固并且可以对设计代码思路有一个很好的扩展,然后,dubbo中用到了netty,可以借此逐步接触netty相关知识点。当然最重要的是为了面试吹牛逼,涨薪资,这是最关键的!!!!。环境搭建环境搭建总共分为五个步骤:环境准备、克隆源码、导入idea、编译、测试运行环境准备系统:Mac OSIDEA:2018.1

2020-09-25 15:52:17 208

原创 大场面试必问:秒杀90%Java面试者,后悔没有早点知道

结合我这些年的Java学习经验,我发现90%的人在学习Spring时都会遇到以下问题:没什么经验不知道从何学起,不知道该如何选择学习方式 入门看似简单,但进阶举步维艰,遇到复杂问题就犯难 学了不少课程,但一面试就被别人说基础差,甚至开始怀疑自己不适合开发在技术语言革新极快的今天,尤其对于需要技术沉淀的后端工程师来说,靠什么实力逆风翻盘?毋庸置疑,Spring 早已成为 Java 后端开发事实上的行业标准,无数的公司选择 Spring 作为基础的开发框架,大部分Java 后端程序员在日常工作中也会接

2020-09-24 20:22:01 145

原创 k8s master机器文件系统故障的一次恢复过程

研发反馈他们那边一套集群有台master文件系统损坏无法开机,他们是三台openstack上的虚机,是虚拟化宿主机故障导致的虚机文件系统损坏。三台机器是master+node,指导他修复后开机,修复过程和我之前文章opensuse的一次救援步骤一样起来后我上去看,因为做了 HA 的,所以只有这个node有问题,集群没影响[root@k8s-m1 ~]# kubectl get node -o wideNAME STATUS ROLES AGE VERSI

2020-09-23 23:31:09 1881

原创 最全MyBatis核心配置文件总结,可以作为工具先收藏了

前言今天这咱主要介绍一下MyBatis的全局配置文件的使用configurationmybatis-config.xml文件的头部格式我们就不说了,直接从属性开始介绍,configuration为最顶层节点,其余所有的属性都必须嵌套在configuration内,MyBatis配置文件的顶层节点如下:<properties></properties><!--属性--><settings></settings><...

2020-09-23 21:26:04 1214

原创 又爆神作!阿里首发并发编程神仙笔记,Github已星标92K

前言一直以来,硬件的发展极其迅速,在多核的CPU的背景下,催生了并发编程的趋势,通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升。面对复杂业务模型,并行程序会比串行程序更适应业务需求,而并发编程更能吻合这种业务拆分。正是因为这些优点,使得多线程技术能够得到重视,这个技术也是一名CS学习者应该掌握的。但这个技术对于刚入行的小白来说总是觉得高深莫测,不明所以,也找不到好的学习资料。本着好东西就是要拿出来分享的原则,于是乎互联网雷锋(小编我)就为大家收罗了一套完整的资料供大家学习,适用

2020-09-23 15:57:58 193

原创 终于有人把Java程序员必学知识点整理出来了,令人有如醍醐灌顶

JVM无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎。不管是工作还是面试中,JVM都是必考题。如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了)详细介绍了JVM有关于线程、内存模型、JVM运行时内存、垃圾回收与算法、Java中四种引用类型、GC 分代收集算法 VS 分区收集算法、GC 垃圾收集器、JAVA IO/NIO 、JVM 类加载机制的各大知识点。基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾

2020-09-23 15:45:15 97

原创 Java架构核心知识点整理出来了《JAVA架构核心总结》

JavalO是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从Java的BIO开始,一步一步深入学习,引出JDK1.4之后出现的NIO技术,对比NIO与BIO的区别,然后对NIO中重要的三个组成部分进行讲解(缓冲区、通道、选择器),最后实现一个简易的客户端与服务器通信功能。​传统的BIOJava l0流是个庞大的生 态环境,其内部提供了很多不同的输入流和输出流, 细分下去还有字节流和字符流,甚至还有缓冲流提高10性能,转换流将字节流转换为字符流...看到这些就

2020-09-23 15:32:44 120

原创 12道RabbitMQ高频面试题你都会了吗?(含答案解析) 了解rabbitmq进

1、什么是 rabbitmq采用 AMQP 高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦2、为什么要使用 rabbitmq(1)在分布式系统下具备异步,削峰,负载均衡等一系列高级功能;(2)拥有持久化的机制,进程消息,队列中的信息也可以保存下来。(3)实现消费者和生产者之间的解耦。(4)对于高并发场景下,利用消息队列可以使得同步访问变为串行访问达到一定量的限流,利于数据库的操作。(5)可以使用消息队列达到异步下单的效.

2020-09-22 23:22:03 276

原创 非常强悍的 RabbitMQ 总结,一定得看看

RabbitMQ是基于AMQP协议的,通过使用通用协议就可以做到在不同语言之间传递。AMQP协议核心概念server:又称broker,接受客户端连接,实现AMQP实体服务。connection:连接和具体broker网络连接。channel:网络信道,几乎所有操作都在channel中进行,channel是消息读写的通道。客户端可以建立多个channel,每个channel表示一个会话任务。message:消息,服务器和应用程序之间传递的数据,由properties和body组成。p

2020-09-22 23:11:57 116

原创 40张图看懂分布式追踪系统原理及实践

前言在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成。这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用,哪些模块,哪些节点及调用的先后顺序?如何定位每个模块的性能问题?本文将为你揭晓答案。本文将会从以下几个方面来阐述分布式追踪系统原理及作用 SkyWalking的原理及架构设计 我司在分布式调用链上的实践分布式追踪系统的原理及作用如何衡量一个接口的性能好坏,一般我们至少会关注以下三个指标接口的 RT 你怎么知道

2020-09-22 15:42:37 769 3

原创 惊呆了!腾讯架构师撰写亿级网关、分布式微服务等“超进化”笔记 附源码

如何将一个承载亿级调用量的网关系统设计得高效且稳定?如何将一个平台合理化地开放达到多边共赢?如何熟练地驾驭分布式系统设计?如何更深入地了解MQ的使用场景?如何搭建一个成熟的消息推送系统?以及RPC、I/O通信、微服务思想的实践落地,在这份“超进化”版笔记都会有详尽的阐述!相信你在这份笔记中就能找到你感兴趣的知识点,比如多路复用、Tomcat的NIO、数据异构、系统容错方法等,这些内容是我们每一位架构师和软件开发人员在突破自己能力瓶颈的过程中所需要具备的潜力技能。笔者读完这份笔记之后发现:其中的.

2020-09-22 14:39:47 215

原创 Spring Boot 中的 RestTemplate不好用?试试 Retrofit ! 进来看看

大家都知道okhttp是一款由square公司开源的java版本http客户端工具。实际上,square公司还开源了基于okhttp进一步封装的retrofit工具,用来支持通过接口的方式发起http请求。如果你的项目中还在直接使用RestTemplate或者okhttp,或者基于它们封装的HttpUtils,那么你可以尝试使用Retrofit。retrofit-spring-boot-starter实现了Retrofit与spring-boot框架快速整合,并且支持了部分功能增强,从而极大的简化s

2020-09-22 11:01:45 91

原创 签到功能,用mysql还是redis?

现在的网站和app开发中,签到是一个很常见的功能,如微博签到送积分,签到排行榜​微博签到如移动app ,签到送流量等活动,​移动app签到用户签到是提高用户粘性的有效手段,用的好能事半功倍!下面我们从技术方面看看常用的实现手段:一. 方案1直接存到数据库MySQL用户表如下:​last_checkin_time 上次签到时间checkin_count 连续签到次数记录每个用户签到信息签到流程1.用户第一次签到last_checkin_time = time(

2020-09-21 20:12:38 101

原创 TiDB整体架构与实践心得

TiDB 是 PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库。TiDB 具备如下 NewSQL 核心特性:SQL支持 (TiDB 是 MySQL 兼容的)水平线性弹性扩展分布式事务跨数据中心数据强一致性保证故障自恢复的高可用TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景。对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也让开发运维

2020-09-21 17:22:05 1134 1

原创 Java内存模型及GC算法深入剖析

Java内存模型首先来回顾一下JVM内存模型,如下图:以提升响应速度和吞吐量为目标性能优化的关键域就在Java堆和垃圾回收器堆和栈的内存分配 Stack(栈)是JVM的内存指令区,顺序分配,内存大小定长,速度很快; Heap(堆)是JVM的内存数据区,分配不定长的内存空间; 静态和非静态方法的内存分配 这个隐含的参数就是对象实例在Stack中的地址指针。非静态方法必须获得 该隐含参数,因此非静态方法在调用前,必须先new一个对象..

2020-09-21 17:14:43 350

原创 阿里资深架构师整理出来的一份Java架构核心知识点分享给大家.pdf

JVM无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎。不管是工作还是面试中,JVM都是必考题。如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了)详细介绍了JVM有关于线程、内存模型、JVM运行时内存、垃圾回收与算法、Java中四种引用类型、GC 分代收集算法 VS 分区收集算法、GC 垃圾收集器、JAVA IO/NIO 、JVM 类加载机制的各大知识点。基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾

2020-09-21 15:29:47 423

原创 终于有人把Java程序员必学知识点整理出来了,令人有如醍醐灌顶

JVM无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎。不管是工作还是面试中,JVM都是必考题。如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了)详细介绍了JVM有关于线程、内存模型、JVM运行时内存、垃圾回收与算法、Java中四种引用类型、GC 分代收集算法 VS 分区收集算法、GC 垃圾收集器、JAVA IO/NIO 、JVM 类加载机制的各大知识点。基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾

2020-09-21 15:25:33 326

原创 Mybatis接口Mapper内的方法为啥不能重载吗?

动态代理的功能:通过拦截器方法回调,对目标target方法进行增强。言外之意就是为了增强目标target方法。上面这句话没错,但也不要认为它就是真理,殊不知,动态代理还有投鞭断流的霸权,连目标target都不要的科幻模式。注:本文默认认为,读者对动态代理的原理是理解的,如果不明白target的含义,难以看懂本篇文章,建议先理解动态代理。1. 自定义JDK动态代理之投鞭断流实现自动映射器Mapper首先定义一个pojo。publicclassUser{privateInte...

2020-09-17 15:44:59 1123

原创 实战|如何消除又臭又长的if...else判断更优雅的编程?

最近在做代码重构,发现了很多代码的烂味道。其他的不多说,今天主要说说那些又臭又长的if...else要如何重构。在介绍更更优雅的编程之前,让我们一起回顾一下,不好的if...else代码一、又臭又长的if...else废话不多说,先看看下面的代码。public interface IPay { void pay();}@Servicepublic class AliaPay implements IPay { @Override public void pay(

2020-09-09 23:04:09 524

原创 模板方法模式——看看 JDK 和 Spring 是如何优雅复用代码的

Keeper导读:不管是我们学习并发编程中的 AQS,还是看 Spring 的源码,肯定都会遇到模板方法模式,它简直太常见了。前言模板,顾名思义,它是一个固定化、标准化的东西。模板方法模式是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。场景问题程序员不愿多扯,上来先干两行代码网上模板方法的场景示例特别多,个人感觉还是《Head First 设计模式》中的例子比较好。假设我们是..

2020-09-08 23:55:06 114

原创 Java 七种排序算法以及实现

最近学习一些排序算法,怕自己以后忘记就打算整理起来供自己复习萌新一枚学习Java没多久,以下仅供参考。如有错误希望大佬指正,欢迎大家在评论区交流探讨。1.冒泡排序通过待排序的序列从前往后依次比较相邻的元素,若发现逆序则两两交换,直到下一趟排序下来没有进行交换,说明排序完成 冒泡排序每一趟会确定一个最大值(默认从小到大)import java.util.Arrays;public class BubbleSort { public static vo...

2020-09-04 23:52:28 116

原创 Netty解决粘包和拆包问题的四种方案

在RPC框架中,粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题。本文首先会对粘包和拆包问题进行描述,然后介绍其常用的解决方案,最后会对Netty提供的几种解决方案进行讲解。这里说明一下,由于oschina将“jie ma qi”认定为敏感文字,因而本文统一使用“解码一器”表示该含义1. 粘包和拆包产生粘包和拆包问题的主要

2020-09-04 23:36:26 507

原创 如果你这样回答“什么是线程安全”,面试官都会对你刮目相看

不是线程的安全面试官问:“什么是线程安全”,如果你不能很好的回答,那就请往下看吧。论语中有句话叫“学而优则仕”,相信很多人都觉得是“学习好了可以做官”。然而,这样理解却是错的。切记望文生义。同理,“线程安全”也不是指线程的安全,而是指内存的安全。为什么如此说呢?这和操作系统有关。目前主流操作系统都是多任务的,即多个进程同时运行。为了保证安全,每个进程只能访问分配给自己的内存空间,而不能访问别的进程的,这是由操作系统保障的。在每个进程的内存空间中都会有一块特殊的公共区域,通常称为堆(内存)。进程内的

2020-09-04 23:18:43 180

空空如也

空空如也

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

TA关注的人

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