自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 如何应对高并发的用户请求

互联网应用以及云计算的普及,使得架构设计和软件技术的关注点从如何实现复杂的业务逻辑,转变为如何满足大量用户的高并发访问请求。一个简单的计算处理过程,如果一旦面对大量的用户访问,整个技术挑战就会变得完全不同,软件开发方法、技术团队组织、软件的过程管理都会完全不同。以新浪微博为例,新浪微博最开始只有两个工程师,一个前端,一个后端,两个人开发了一个星期就把新浪微博开发出来了。现在许多年过去了,新浪微博的技术团队有上千人,这些人要应对的技术挑战,一方面来自于更多更复杂的功能,一方面来自于随着用户量的增加而带

2020-07-13 10:41:41 49

原创 Java架构师笔记-你必须掌握的 21 个 Java 核心技术!(干货)

闲来无事,我一向不(没)喜(有)欢(钱)凑热闹,倒不如趁着这时候复盘复盘。而写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java。这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的、和Java中各个框架相关的内容。经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。想要了解更多Java架构技术的,可以关注我一下,我后..

2020-07-11 21:02:50 30

原创 当我们创建HashMap时,底层到底做了什么?

jdk1.7中的底层实现过程(底层基于数组+链表)在我们new HashMap()时,底层创建了默认长度为16的一维数组Entry[ ] table。当我们调用map.put(key1,value1)方法向HashMap里添加数据的时候:首先,调用key1所在类的hashCode()计算key1的哈希值,通过key1的hash值与数组的最大索引进行位运算以后,得到了在 Entry数组中的存放位置:如果此位置上的数据为空,此时的key1-value1添加成功。如果此位置上的数据不为空(意味着此

2020-07-11 17:24:19 28

原创 弥天大谎!SQL优化中新建索引真的比Explain好?面试官:你出去吧

吹吹牛前几天老大问我怎么进行sql优化的,我回答了新建索引。哈哈哈,然后老大就出去找棍子了,进来之后跟我说你知道门在哪边吧,自己出去还是我请你出去?然后被迫出去挨打,回来之后老大说去看下什么是Explain,然后交一份5000字检讨上来。。。。。。以下内容以MySQL 8.0进行描述2、基础内容既然想优化sql,那么新建索引也确实没错,只不过不能看见一个字段就建一个索引,这样就确实容易挨打,那先说下新建索引到底mysql做了什么操作: 首先InnoDB的索引模型是B+树,在.

2020-07-11 10:27:22 37

原创 Java程序员必备:查看日志常用的linux命令

前言趁周末,复习一下博主的linux私房菜,看到文件内容查阅部分,做个笔记,哈哈,希望对你有帮助哦。catcat : 由第一行开始显示文件所有内容参数说明cat [-AbEnTv]参数:-A : 相当于-vET 的整合参数,可列出一些特殊字符,而不是空白而已-b :列出行号,仅针对非空白行做行号显示,空白行不标行号-E :将结尾的断行字符$显示出来-n : 打印行号,连同空白行也会有行号,与-b的参数不同复制代码范例demo范例一:查看cattest.txt的内

2020-07-10 20:57:34 41

原创 架构风格:你真的懂REST吗?

本文探讨如下几个问题:什么是REST REST包含哪些约束 什么是RESTful 纯RESTful API的难点在哪里如果你去搜索「什么是REST」的话,大部分情况下,你看到的基本都是RESTful!这类内容主要说的是:资源URL应该怎么写 要用GET来获取资源 要用POST来新建资源 要用PUT来更新资源 要用DELETE来删除资源而实际上REST并不是这些,或者说并不完全是这些!什么是RESTREST全称Representational State Trans.

2020-07-10 19:33:49 19

原创 十分钟带你了解Spring的七大知识点,程序员必了解

Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。很多研发人员把spring看作心目中最好的java项目,没有之一。所以这是重点也是难点,工作中必须会,面试时肯定考。那么,今天花费10分钟,梳理Spring框架相关知识。免费的java资料需要的自己领取哦,私信小编位xuanwo013即可免费领取!!!(含玩转spring全家.

2020-07-10 11:06:56 37

原创 Redis 创始人宣布退居二线,不再进行项目的日常代码维护

近日,Redis 创始人 Salvatore Sanfilippo 在个人博客发表名为《The end of the Redis adventure 》的博文,在文中表示将退出代码的日常开发,以后只充当该项目的顾问。对于这一决定,他给出的理由之一是“我写代码是为了表达自己,而现在我的大部分精力都花在检查其他人提交的代码,但我从不想成为软件维护者。”想要了解更多Java架构技术的,可以关注我一下,我后续也会整理更多关于架构技术这一块的知识点分享出来,里面会分享一些:spring,MyBatis,N

2020-07-09 21:19:14 23

原创 java 性能优化:35 个小细节,让你提升 java 代码的运行效率

代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。想要了解更多Java架构技...

2020-07-09 20:04:24 48

原创 性能调优-MySQL索引数据结构详解与索引优化

本篇文章主要学习了MySQL的索引的数据结构的认识,做一个大概的了解即可。一、索引在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储数据结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速查找到所需的内容。在MySQL中,存储引擎用类似的方法使用索引,先在索引中找到对应值,然后根据匹配的索引记录找到对应的行。首先说明下MySQL的索引主要是基于Hash表或者B+树。

2020-07-09 14:11:34 22

原创 138 张图带你 MySQL 入门(建议收藏)

想要学好任何一个东西,基础得打好,满满的干货知识你现在不学习什么时候学习需要相关资料的博主最近都整理出来了,可以先关注博主然后私信【学】即可免费领取SQL 基础使用MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角 SQL,SQL 的全称是 Structure Query Language ,结构化的查询语言,它是一种针对表关联关系所设计的一门语言,也就是说,学好 MySQL,SQL 是基础和重中之重。SQL 不...

2020-07-08 14:08:04 184

原创 从零开始学习Linux部署Java web项目

前言最近越来越发现需要学习的东西太多了,前几天公司服务器出现问题,需要对服务器硬件进行维护,当然服务器上的服务需要部署到另一个服务器上。这对于我来说是很陌生的,虽然这件工作没有让我去做,但是还是很好奇web项目是如何部署到服务器的。其实很早之前就想学习这些,但是一直没有行动。所以趁着这股兴奋劲,就决定去学习一下,并做此次总结。准备工作虚拟机 :VMware10Linux :CentOS-7-x86_64-DVDJDK :java 1.7Xmanager Enterprise (Xshell...

2020-07-07 20:41:45 38

原创 使用 explain 优化你的 mysql 性能

本文是关于在学习《高性能 Mysql》附录 D 中关于 Explain 如何获取执行计划信息相关总结。MySQL 提供了一个 EXPLAIN 命令,它可以对 SELECT 语句进行分析,获取优化器对当前查询的执行计划,以供开发人员针对相关 SQL 进行优化。在 SELECT 语句前加上 Explain 就可以查看到相关信息, 例如:EXPLAIN SELECT * from user_info WHERE id < 300;复制代码Explain 特点explain 返回的结果是以表

2020-07-07 15:26:20 15

原创 有哪些适合新手练手的Java项目?

Java作为一门古老的语言,已有20多年左右的历史,这在发展日新月异的技术圈可以说是一个神话。虽然不少人曾抱怨Java语言就像老太太的裹脚布,又臭又长,有时写了500行都不能表达程序员的意图。但从市场上的招聘现状看,Java工程师依然有着其他语言不可取代的竞争优势。招聘情况请参考:为何优秀的Java程序员如此难招?java学习交流群:925895158对于很多朋友来说,Java是学习编程的开始,也有很多朋友希望通过Java可以找到工作,但是很多自学的朋友在自学过程中盲目的学习,这不但大大降低了学习.

2020-07-07 14:52:35 44

原创 Java程序员为什么要用Redis?

最近阅读了《Redis开发与运维》,非常不错。这里对书中的知识整理一下,方便自己回顾一下Redis的整个体系,来对相关知识点查漏补缺。按照五点把书中的内容进行一下整理:为什么要选择Redis:介绍Redis的使用场景与使用Redis的原因;Redis常用命令总结:包括时间复杂度总结与具体数据类型在Redis内部使用的数据结构;Redis的高级功能:包括持久化、复制、哨兵、集群介绍;理解Redis:理解内存、阻塞;这部分是非常重要的,前面介绍的都可以成为术,这里应该属于道的部分;开

2020-07-06 20:36:21 56

原创 MySql领域经典之作,“不敢自诩为MySql专家,岂敢错过这本神书”

写在前面在互联网行业,MySql数据库毫无疑问已经是最常用的数据库。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择MySql作为网站数据库。作为一名编程人员,对MySql一定不会陌生,尤其是互联网行业,对MySql的使用是比较多的。对于求职者来说,MySql又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。要学习Mysql,那就必须给大家安利一波《高性能MySql(第3版)》这本MySql领域的经典之作了。(全书共

2020-07-06 11:26:47 26

原创 微服务全栈技术学习开源项目,涵盖Java及前端主流技术点

一、目的本项目旨在总结前后端分离常用技术点,形成集前端+后端+小程序+移动端一整套的个人技术博客解决方案。技术采用主流前后端分离微服务架构,并涵盖持续集成及自动化部署的相关解决方案。既然是以学习为目的,可能并不是以做成一个博客系统为最终目标,可能会基于此基础之上进行技术的扩充。技术方面,后端采用Java技术栈,前端使用工程化的SPA单体应用实现。项目计划分为两个版本分别为vue+Spring Cloud、react+Dubbo。除了还该常用的增删改查业务之外,也会涉及高并发、限流、支付、爬虫等主流流

2020-07-04 10:18:08 29

原创 JAVA后端开发规范,看了慢慢收获

一、命名风格【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO 正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从 驼峰形式。

2020-07-03 21:15:43 22

原创 成为一名Java高级架构师到底需要学习什么?你还不知道吧

Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。那成为Java架构师要掌握哪些技术呢,总体来说呢,有两方面,一个是基础技术,另一个就是组织能力和提出解决方案能力了。我就跟大家来简要地说说吧。如果你是想成为Java架构师,那么你首先要是一个Java高级攻城狮。也就是说,基础必须牢固,对Java的了解全面而且深入。熟练使用各种框架,并知道它们实现的原理。Jvm虚拟机原理、调优操作,懂得jvm能让你写出性能更好的代码;池技术也是要掌握的,对

2020-07-02 17:38:33 64

原创 Java字节码增强探秘

1.字节码1.1 什么是字节码?Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是用javac命令编译源代码为字节码文件,一个.java文件从编译到运行的示例如图1所示。...

2020-07-01 16:20:08 28

原创 你知道为什么要使用 Node.js吗?

Node.js 是什么传统意义上的 JavaScript 运行在浏览器上,这是因为浏览器内核实际上分为两个部分:渲染引擎和 JavaScript 引擎。前者负责渲染 HTML + CSS,后者则负责运行 JavaScript。Chrome 使用的 JavaScript 引擎是 V8,它的速度非常快。Node.js 是一个运行在服务端的框架,它的底层就使用了 V8 引擎。我们知道 Apache + PHP 以及 Java 的 Servlet 都可以用来开发动态网页,Node.js 的作用与他们类似,只

2020-06-30 21:07:03 29

原创 支付宝架构师眼里的高并发架构那你确定你会吗?

前言高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。在电商相关产品开发的这些年,我有幸的遇到了并发下的各种坑,这一路摸爬滚打过来有着不少的血泪史,这里进行的总结,作为自己的归档记录,同时分享给大家。服务器架构业务从发展的初期到逐渐成熟,服务器架构也是从相对单一到集群,再到分布式服务。一个可以支持高并发的服务少不

2020-06-29 21:14:06 37

原创 自己用 Netty 实现一个简单的 RPC

前言众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了。今天我们就自己用 Netty 实现一个简单的 RPC 框架。1. 需求模仿 dubbo,消费者和提供者约定接口和协议,消费者远程调用提供者,提供者返回一个字符串,消费者打印提供者返回的数据。底层网络通信使用 Netty 4.1.16。2. 设计创建一个接口,定义抽象方法。用于消费者和提供者之间的约定。 创建一个提供者,该类需要监听消费者的请求,并按照

2020-06-27 17:53:05 24

原创 从 Java 层看 React-Native 通信机制

-2,前言最近我们公司突然开始涉足react-native开发,老实说,我内心是拒绝的。其一,是因为目前我对于原生开发还不够精通,不想突然转向,其二是因为react-native目前还没有1.0的正式版本,仍然处于探索期不稳定。其三,我特么开发react-native用的是windows啊,人家facebook的工程师开发这玩儿用的都是mac。看在工资的份儿上,我开始探索react-native。-1,解释说明说实话,一开始就上这么难的话题,我也是没办法。关于环境集成,跑demo等等遇到的这

2020-06-26 20:34:50 38

原创 浅析 Node 进程与线程

前言进程与线程是操作系统中两个重要的角色,它们维系着不同程序的执行流程,通过系统内核的调度,完成多任务执行。今天我们从 Node.js(以下简称 Node)的角度来一起学习相关知识,通过本文读者将了解 Node 进程与线程的特点、代码层面的使用以及它们之间的通信。概念首先,我们还是回顾一下相关的定义:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。线程是程序执行中一个单一的顺序控制流,它存在于进程之中,

2020-06-24 20:57:30 23

原创 JVM系列之GC

谈到JVM,大家都知道GC(Garbage Collection),GC这个话题说浅了就一句话--JVM自动垃圾收集,说深了就无止尽了,回收算法,各种收集器,gc类型,gc触发点....等等,作者也是略懂皮毛,这里给大家推荐一个知乎上比较活跃的JVM大牛,RednaxelaFX,是专门做JVM开发的,业界号称"R大"。放鉴于作者才学疏浅,这篇博文还是准备用通熟易懂的话把作者自己对GC这一块的理解做陈述,概要如下:文章结构哪些内存需要回收(Which) 各种GC的触发时机(When) 如何回收

2020-06-23 17:04:01 17

原创 Java 反射由浅入深 | 进阶必备——你值得拥有

本博文主要记录我学习 Java 反射(reflect)的一点心得,在了解反射之前,你应该先了解 Java 中的 Class 类,如果你不是很了解,可以先简单了解下。一、Java 反射机制参考了许多博文,总结了以下个人观点,若有不妥还望指正:Java 反射机制在程序运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种 动态的获取信息 以及 动态调用对象的方法 的功能称为 java 的反射机制。反射机制很重要的一点就是“运行时”

2020-06-22 17:17:38 29

原创 Spring Cloud Gateway 全局通用异常处理

为什么需要全局异常处理在传统 Spring Boot 应用中, 我们 @ControllerAdvice 来处理全局的异常,进行统一包装返回// 摘至 spring cloud alibaba console 模块处理@ControllerAdvicepublic class ConsoleExceptionHandler { @ExceptionHandler(AccessException.class) private ResponseEntity<String&

2020-06-16 10:40:15 96

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