自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 腾讯T4一年的心血成就17W字操作系统、网络协议教程,笔记+附导图

《Java 核心技术总结》 《HTTP 总结》 《程序员必知的基础知识》 《操作系统总结》这四本 PDF 可以说是一个比一个硬核。先来说说 Java 核心技术总结Java 核心技术总结先来看一下本篇文章的思维导图吧,文章围绕下面这些内容进行讲解。这本 PDF 可以作为你的 Java 入门开发手册,也可以作为查漏补缺的利器HTTP 核心总结第二本 PDF 的思维导图可以看看里面的绘图,真的是非常下功夫的。这个 PDF 几乎涵盖了...

2020-10-26 18:26:38 165

原创 21个刁钻的HashMap面试题,把阿里面试官吊打了。

1:HashMap 的数据结构?A:哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点。当链表长度超过 8 时,链表转换为红黑树。transient Node<K,V>table;2:HashMap 的工作原理?HashMap 底层是 hash 数组和单向链表实现,数组中的每个元素都是链表,由 Node 内部类(实现 Map.Entry接口)实现,HashMap 通过 put & get 方法存储和获取。存储对象时,将 K/V 键值传给 put() 方法

2020-10-26 17:32:45 106

原创 SpringBoot的一些面试题,进来总有收获

今天写的这篇主要总结了SpringBoot相关的问题。还有更多面试专题及java资料、笔记等可以添加微信:YDT676免费获取Q:什么是SpringBoot?用来简化spring应用的初始搭建以及开发过程,使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序 main方法运行,嵌入的Tomcat 无需部署war文件,简化maven配置,自动配置spring添加对应功能starter自动化配置。Q: Spring Boot、Spring MVC...

2020-10-13 20:12:40 106

原创 7600字带你学会 Redis 性能优化点,硬核干货!

在一些网络服务的系统中,Redis 的性能,可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博,把热点微博[1],最新的用户关系,都存储在 Redis 中,大量的查询击中 Redis,而不走 MySQL。那么,针对 Redis 服务,我们能做哪些性能优化呢?或者说,应该避免哪些性能浪费呢?Redis 性能的基本面在讨论优化之前,我们需要知道,Redis 服务本身就有一些特性,比如单线程运行。除非修改 Redis 的源代码,不然这些特性,就是我们思考性能优化的基本面。那么,有哪..

2020-10-13 15:39:50 88

原创 18个面试官常问的dubbo面试题

dubbo是什么dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含: 集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。dubbo能做什么透明化的远程方法调用,就像调用..

2020-10-13 14:20:26 154

原创 大牛解读如何优化MySQL千万级大表

千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议。从一开始脑海里开始也是火光四现,到不断的自我批评,后来也参考了一些团队的经验,我整理了下面的大纲内容。既然要吃透这个问题,我们势必要回到本源,我把这个问题分为三部分:“千万级”,“大表”,“优化”,也分别对应我们在图中标示的“数据量”,“对象”和“目标”。我来逐步展开说明一下,从而给出一系列的解决方案。...

2020-10-13 10:30:18 126

原创 2020年上半年总结的MySQL面试整理

1.1. MySQL的binlog(主从复制机制)开启-- 配置文件中开启-- 开启binloglog_bin=ON-- 指定名称log_bin_basename=/var/lib/mysql/mysql-bin-- 索引名称log_bin_index=/var/lib/mysql/mysql-bin.indexmysql 使用binlog 实现主从复制从库中开启线程去主库中读取binlog,然后同步从库数据(就是执行binlog中的sql),从而实现主从复制..

2020-10-13 09:48:04 82

原创 TCP协议以及TCP工作方式和HTTP协议,HTTP请求完整过程

我所整理的东西都是曾经看视频,帖子,或者某个大佬说的话最后写成的笔记。现在相当于把笔记重新整理成一篇文章。所以哪怕有一些引用也找不到出处了,就不标明了!什么是HTTP协议?HTTP协议是超文本传输协议(默认端口80)。服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传送数据的。HTTP就是客服端→服务端的数据传输。大致工作流程:(1)客户与服务器建立连接;(2)客户向服务器提出请求;(3)服务器接受请求,并根据请求返回相应的文件作为应答;(4)客户..

2020-10-12 20:44:34 528

原创 2020年上半年Redis面试题和答案整理

点关注,不迷路;持续更新Java相关技术及资讯!!!关注、转发、评论头条号每天分享java 知识,私信回复“源码”赠送Spring源码分析、Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式资料Redis 是完全开源免费的, 遵守 BSD 协议, 是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。..

2020-10-12 18:21:50 100

原创 JAVA使用指南:RabbitMQ

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见角色大致也就有 Producer(生产者)、Consumer(消费者)。常见的消息中间件产品:1). ActiveMQActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现。我们..

2020-10-12 16:56:41 154

原创 10个程序员实用但偏执的 Java 编程技巧

任何事情有可能出错,没错,的确如此。这就是为什么我们要采用“防御性编程”,即一些偏执习惯的原因。下面是我个人认为的 10 个最有用但偏执的 Java 编程技术。一起来看一看吧:1.将 String 字符串放在最前面为了防止偶发性的 NullPointerException 异常,我们通常将 String 放置在 equals() 函数的左边来实现字符串比较,如下代码://Badif(variable.equals("literal")){...}//Goodif("li...

2020-10-12 10:11:08 112

原创 Redis面试必须熟知的知识点

是数据结构而非类型很多文章都会说,redis支持5种常用的数据类型,这其实是存在很大的歧义。redis里存的都是二进制数据,其实就是字节数组(byte[]),这些字节数据是没有数据类型的,只有把它们按照合理的格式解码后,可以变成一个字符串,整数或对象,此时才具有数据类型。这一点必须要记住。所以任何东西只要能转化成字节数组(byte[])的,都可以存到redis里。管你是字符串、数字、对象、图片、声音、视频、还是文件,只要变成byte数组。 因此redis里的String指的并不是字符串,它其实..

2020-10-08 19:55:45 144

原创 SpringMVC面试专题,收获多多

SpringMVC执行流程及原理?用户发起请求到前端控制器(DispatcherServlet),该控制器会过滤出哪些请求可以访问Servlet、哪些不能访问。就是url-pattern的作用,并且会加载SpringMVC.xml配置文件。前端控制器会找到处理器映射器(HandlerMapping),通过HandlerMapping完成url到controller映射的组件,简单来说,就是将在SpringMVC.xml中配置的或者注解的url与对应的处理类找到并进行存储,用Map这样的方式来存储。..

2020-10-08 14:26:33 74

原创 详解HTTP&HTTPS协议及面试题

前言 & 初衷希望能对后面面试前端工程师实习生这一岗位的小伙伴们有所帮助,也希望自己能在这次总结中能力有所提升。了解一下TCP/IP协议TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。HTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集,所以要理解HTTP协议,有必要先了解下TCP/IP协议相关的知识。 由于TCP/IP协议族包含众多的协议,在这里我们无法一一讨论。接下来,我..

2020-10-08 10:27:48 289

原创 Mybatis 的设计模式(源码文章)

虽然我们都知道有20多个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder;工厂模式,例如SqlSessionFactory、Objec..

2020-10-08 09:41:23 83

原创 java面试专题:jvm面试

更多更详细的面试资料点赞+关注,私信我获取JVM加载流程和运行时数据区如下图所示:运行时数据区方法区方法区用于存储已经被加载的类信息、常量、静态变量、编译后的代码以及 运行时常量池等。堆堆主要存放一些数据,比如对象实例、数组等。堆内存会划分为年轻代和老年代,年轻代又会分为Eden和Servivor区,Survivor也会分为FromPlace和ToPlace。虚拟机栈虚拟机栈描述的是JVAV方法执行的内存模型。每个方法被执行的时候同时都会创建一个...

2020-10-07 19:51:16 105

原创 一些kafka的面试题

1.Kafka 的设计时什么样的呢?Kafka将消息以topic为单位进行归纳将向Kafka topic发布消息的程序成为producers.将预订topics并消费消息的程序成为consumer.Kafka以集群的方式运行,可以由一一个或多个服务组成,每个服务叫做一个broker.producers通过网络将消息发送到Kafka集群,集群向消费者提供消息2数据传输的事物定义有哪三种?数据传输的事务定义通常有以下三种级别:(1) 最多一次:消息不会被重复发送,最多被传输一次,..

2020-10-07 16:34:18 64

原创 RabbitMQ面试专题,面试必看

需要后续RabbitMQ面试题的点赞+关注,私信我获取1.RabbitMQ是什么?RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。2.RabbitMQ特点?可靠性: RabbitMQ使用一些机制来保证可靠性, 如持久化、传输确认及发布确认等。灵活的路由 : 在消息进入队列之前,通过交换器来路由消息。

2020-10-07 15:18:35 475

原创 怎么学Redis 缓存穿透、击穿、雪崩

点赞+关注,私信我获取更多java资料,笔记,源码前言如何有效的理解并且区分 Reids 穿透、击穿和雪崩之间的区别,一直以来都挺困扰我的。特别是穿透和击穿,过一段时间就稀里糊涂的分不清了。为了有效的帮助笔者自己,以及拥有同样烦恼的朋友们区分这三种场景。笔者总结了一些关键词,希望大家可以和我一样通过联想的方式来区分并理解这三种场景的区别!缓存穿透关键词:穿过 Redis 和数据库当 Redis 和数据库中都没有我们想要的数据时,就需要考虑缓存穿透的问题了。下面这段逻辑大家用的会比..

2020-10-07 14:15:04 126

原创 MySQL 性能优化技巧及实践

一、背景最近公司项目添加新功能,上线后发现有些功能的列表查询时间很久。原因是新功能用到旧功能的接口,而这些旧接口的 SQL 查询语句关联5,6张表且编写不够规范,导致 MySQL 在执行 SQL 语句时索引失效,进行全表扫描。原本负责优化的同事有事请假回家,因此优化查询数据的问题落在笔者手中。笔者在查阅网上 SQL 优化的资料后成功解决了问题,在此从==全局角度==记录和总结 MySQL 查询优化相关技巧。二、优化思路数据查询慢,不代表 SQL 语句写法有问题。 首先,我们需要找到问题的源头..

2020-10-07 10:37:57 62

原创 Java Web前后端分离架构

前后端分离的演变记得12年从事工作的时候公司还没有专门的前端人员,一般我们都是前后端都会,毕竟那时候H5才刚刚起来微软的XP还在流行使用(默认系统自带IE6),IE的市场份额还是蛮大的。做的产品也没有很炫酷的特效(如果有也会选择使用flex),那时候Flash 是超级火的......扯得有点远了。在开发的时候也是一边API接口服务,一边开发页面,发布也是一个发布包搞定。前端一般只是负责切图工作,就是将UI设计师的设计图布局成静态页面,前端是不参与交互逻辑和业务开发的,前端也是当时统一的吐槽对象。当时

2020-10-06 22:18:17 2195

原创 Java开发的三种架构模型,文末福利

常用的软件架构模型可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。一.三种架构模型1.3/N层架构这是经典的多层架构模型,对于稍微复杂一点或特别复杂的系统,不使用分层架构是很难想象的。下图是经典的3层架构:如今,凡是个程序员都能侃侃而谈3/N层架构,这确实是解决系统复杂性的一种主流模式,但是,只要采用了3/N层架构是不是就一定能解决系统的复杂性了?不一定,关键在于你在你的系统中如何实作你的3/N层结构。在采用了3/N层架构后,我们还是要解决以下非常重要的问题

2020-10-06 22:14:16 1021

原创 Java架构体系学习路线图,第6点尤为重要!

Web应用,最常见的研发语言是Java和PHP。后端服务,最常见的研发语言是Java和C/C++。大数据,最常见的研发语言是Java和Python。可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。有不少朋友问,除了掌握Java语法,还要系统学习哪些Java相关的技术,今天分享一个,互联网Java技术学习路线图。一:常见模式与工具学习Java技术体系,设计...

2020-10-06 22:06:43 505

原创 这些开源工具你都掌握了吗?高级构架师必备

如果你是一位经验丰富的Java开发人员,你可能对这些工具很熟悉,但如果不是,现在就是是开始学习这些工具的好时机。Java世界中存在许多工具,从Eclipse,NetBeans和IntelliJ IDEA等著名的IDE开始到Java开发人员应该知道的JVM分析和监视工具,如JConsole,VisualVM,Eclipse Memory Analyzer等。尽管如此,在本文中,我将重点介绍适用于各种Java开发人员的通用工具,例如核心Java 开发人员和Web开发人员。1. JIRAAtlas

2020-10-06 16:20:09 93

空空如也

空空如也

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

TA关注的人

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