在写代码的时候,有几个 IDEA 插件对于我规范代码以及更高效地完成编码工作有奇效。 那今天就简单聊聊我平时写代码过程中,有哪些 IDEA 插件对我帮助最大吧! Codota:代码智能提示 我一直在用的一个插件,可以说非常好用了(我身边的很多大佬平时写代码也会用这个插件)。 Codota 这
金九银十期间成功斩获58万Offer!六面字节跳动面经(成功关键:吃透九大核心知识+狂刷大厂面试真题) 第一轮:团队面试 第一轮基本上是你的团队成员面试你,是和你同级或者高你一个P的师兄来面你,我的话基本没问什么特别的,主要还是讲自己简历上的做的项目,这里需要你很熟悉自己的项目才行,我个人
前言 本内容来源于我16年毕业的学长,先在58,后阿里,如今准备跳槽了,以下内容为他的最近面试经历(以及每次面试前后总结的学习资料分享): 我最近从大厂离职之后在合肥呆了个把月,之前已经准备了半个多月,从7月底开始投简历面试,目前是java高级职位,到现在为止已经面了24+公司了,手上也有一些意
单体架构 什么是单体架构 一个归档包(例如war格式或者Jar格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的方法论,我们称之为单体应用架构,这是一种比较传统的架构风格。。 单体架构示例图 单体架构的缺陷 1.复杂性高 整个项目包含的模块非常多,模块的边界模糊
前言 在开源界,高性能服务的典型代表就是Nginx和Redis。纵观这两个软件的源码,都是非常简洁高效的,也都是基于异步网络IO机制的,所以对于要学习高性能服务的程序员或者爱好者来说,研究这两个网络服务的源码是非常有必要的。 Nginx目前市面上的书籍很多,但是Redis确实寥寥无几。这几
前言 关于SpringBoot网络上有太多的博客跟资料,其影响力想必不用我多说了。它作为当前最流行的微服务框架,不但使用更加简单,而且功能更加丰富、性能更加稳定和健壮。其“约定大于配置”的核心特性深受开发人员的赞誉。 那么如何学习SpringBoot? 学习SpringBoot不应该直接就是开
前言 据有关数据表明,目前Java程序员这个群体的数量不减反增,行业内的竞争也是越来越严重。在同一时间入行的人,经过一段时间的学习后,差距就会显示出来。其实出现这样的原因大多数都是因为学习的方向出了问题。大多数人学Java刚开始只是为了快速就业,但是在工作了之后却没有一个好的学习路线,那些其实很重
前言 从移动电话到互联网,我们的生活越来越依赖于以无缝和透明的方式将计算机和其他设备连接在一起的分布式系统。分布式系统从诞生到现在已经有几十个年头了,微服务、云原生、Kubermetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要
二面大概50分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~)。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为spring,jvm,并发编程等,接下来分享一下我的这美团面试面经+一些我的学习笔记。 美团关于spring部分面试问题:
Java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows9x、Windows NT、Solaris、 Linux、 MacOS以及其它平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使其在互联网上被广泛采用。由于Java语言的设计者们十分熟悉C++语言,所以在设计时
上文我们学习了一下分布式调用链追踪系统的原理和实践,有些读者对其中的实现原理提出了一些疑问,所以有了这篇专门写给小白看的微服务追踪系统,相信大家看完对其原理会有更透彻的理解,这里感谢公号「码农翻身」刘欣老师的指导! 前言 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相
前言 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成。这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用,哪些模块,哪些节点及调用的先后顺序?如何定位每个模块的性能问题?本文将为你揭晓答案。 本文将会从以下几个方面来阐述
本期专题:Spring Security OAuth2.0认证授权 OAuth是互联网公司广泛使用的授权协议,守护着全球不计其数的Web API。看似无所不能的它,却因为高度的灵活性而很难驾驭。本文从实战角度出发,带你领略OAuth生态系统的秀美风光,并学会自己构建安全的客户端、受保护资源和授权服
前言 据有关数据统计,目前来看,大大小小的招聘网站上面,Java岗的招聘量仍然是最多的,基本是其他语言的3倍以上,由于目前Java所处的统治级地位,单就数量来看,Java语言实现的系统是海量的,这么多的系统都在使用Java,加上Java语言相对入门简单,便于初学者的学习,也导致现在Java程序员这
51. N 皇后 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q'
前言 提到Spring,总是让人第一时间想起IOC容器,而IOC容器的顶层核心接口就是我们的BeanFactory,如果能够理解BeanFactory的体系结构想必能让我们对Spring整体脉络有更加清晰的认知,所以,本文的探究方向主要为以下几点: BeanFactory的体系结构是怎样的?
MySQL凭借着它还不错的性能、还不错的稳定性常年稳居老二宝座,当然最大的优势就是它不要钱,还开源,这让它成为大部分中小型公司,尤其是互联网公司首选的数据库(近年来越来越多的大公司也在尝试将业务转移到这种不要钱的数据库上来)。 越来越多的DBA和后端同学在工作中少不了和MySQL打交道,为什么这个
在大数据、高并发的系统中,为了突破瓶颈,会将系统进行水平扩展和垂直拆分,形成独立的服务。每个独立的服务背后,可能是一个集群在对外提供服务。这就会碰到一个问题,整个系统是由多个服务(子系统)组成的,数据需要在各个服务中不停流转。如果数据在各个子系统中传输时,速度过慢,就会形成瓶颈,降低整个系统的性能。
41. 缺失的第一个正数 给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 提示: 你的算法的时间复杂度应
前言 因为假期原因,有一段时间没给大家更新了!和大家说个事吧,放假的时候一位粉丝和我说了下自己的被虐经历,在假期前他去某互联网公司面试,结果直接被人家面试官Spring AOP三连问给问的一脸懵逼!其实我觉着吧,这玩意不是挺简单的吗? 大家在学习 AOP 之前,如果清楚代理模式的话,则学习起来非
为何大厂都注重算法? 腾讯、百度阿里等国内的一线名企,在招聘工程师的过程中,对算法和数据结构都会重点考察。但算法易学难精,让很多程序员都望而却步,面试时总败在算法这一关,拿不到好 Offer。 面试时很多候选人,聊起架构、框架侃侃而谈,但一写代码,就暴露真实水平。说白了,还是基本功不够扎实。
今天来看LeetCode21-40题详解 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3
1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9
前言 当前我们都会说SpringBoot是Spring框架对“约定优先于配置理念的最佳实践的产物,一个典型的SpringBoot应用本质上其实就是一个基于Spring框架的应用,而如果大家对Spring框架已经了如指掌,那么,在我们一步步揭开SpringBoot微框架的面纱之后,大家就会发现“阳光
一、多线程导图 二、多线程基础 1、基础概念 线程是操作系统能够进行运算调度的最小单位,包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 2、创建方式 继承Thread类、实现Runnable接口
继之前的mysql夺命连环之后,我发现我这个标题被好多套用的,什么夺命zookeeper,夺命多线程一大堆,这一次,开始面试题系列MQ专题,消息队列作为日常常见的使用中间件,面试也是必问的点之一,一起来看看MQ的面试题。 你们为什么使用mq?具体的使用场景是什么? mq的作用很简单,削峰填谷。以
最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,索性,我就把我看过的和我面试中的真题,及答案都整理好,整理了《第2版:互联网大厂面试题》并分类 92份PDF,累计 3625页!我会持续更新中,马上就出第三版,涵盖大厂算***更多!获取方式在文末! 第2版:题库非常全面 包括
背景# 同一条数据被用户点击了多次,导致数据冗余,需要防止弱网络等环境下的重复点击 目标# 通过在指定的接口处添加注解,实现根据指定的接口参数来防重复点击 说明# 这里的重复点击是指在指定的时间段内多次点击按钮 技术方案# springboot + redis锁 + 注解 使用 fe
HTTP经常接触,大家也不陌生,这是一个超文本传输协议,能够在网络直接传输数据。目前微服务项目很火,微服务之间基本都是使用HTTP传输,例如Feign,OkHttp,RestTemlpate等等。但是分布式这个话题目前还不过时,今天在这里说下分布式的基石:RPC(Remote Procedure C
众所周知Redis是基于内存的数据库,其所有的数据都在内存中,而内存又是属于成本较高且容量有上限的硬件资源,因此需要时刻关注Redis内存的情况。特别是在生产环境,Redis内存占用过高会带来很多风险,甚至是灾难性的后果: 庞大的数据导致持久化时间冗长,期间大量消耗主机资源,服务器压力陡升
网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。 网络通信中最重要的就是网络通信协议。当今网络
很多程序员大牛都会在各种博客平台和大家分享技术经验,诸如CSDN,GitHub,简书,但是有的程序员希望有一个属于自己的博客平台,今天,猿妹就和大家再分享一个更好用的现代化开源论坛系统——MDClub MDClub是一个漂亮、轻量的开源社区系统。它运行快速且易于使用,完全具备一个成熟社区
字节跳动,先面了data部门,3面技术面之后hr说需要实习转正,拒绝,之后另一个部门捞起,四面技术面,已oc 分享面经,希望对大家有所帮助,秋招顺利在文末分享了我为金九银十准备的备战资源库,包含了源码笔记类,大厂面试真题,跳槽解析,简历解析,项目实战源码+笔记+工具,有需要的可以直接点赞本文后,关
事实上,无论是国内还是国外,Spring 的热度走势一直都是特别健康的,我们可以这么说,Spring 已然成为了 Java 开发的标杆、灯塔级别的“标准”,熟练掌握 SpringFramework ,甚至精通它,对于进军大厂,获取高薪来说是相当的有必要。 Spring 作为一个轻量级的
文章的开头大家先来看一看一道字节的算法题,看是否能做出来: 给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助) 大家有没有一脸懵逼的感觉?(我
SDS(simple dynamic string)是Redis提供的字符串的封装,在redis中也是存在最广泛的数据结构,它也是很多其他数据结构的基础,所以才选择先介绍SDS。 SDS也兼容部分C字符串API(strcmp,strlen),它如何兼容C字符串我觉得也是有个很sao的操作,等看完我这
前言 Netty作为目前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,知名的Elasticsearch 、Dubbo 框架内部都采用了Netty。随着互联网对各行各业的渗透,我们可以看到一些计算机领域的热门技术,例如云计算、微服务、物联网等
一、概述 目前Spring Boot版本: 2.3.4.RELEASE,这更新的速度也是嗖嗖的了,随着新版本的发布,也一步步针对公司基础组件进行了升级改造,其中很重要的一块就是配置文件的更新(虽然目前已经全部使用了Apollo)。针对Spring Boot 新版本的配置文件也做了一次梳理,确实发现
前言 一直以来,硬件的发展极其迅速,在多核的CPU的背景下,催生了并发编程的趋势,通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升。面对复杂业务模型,并行程序会比串行程序更适应业务需求,而并发编程更能吻合这种业务拆分。正是因为这些优点,使得多线程技术能够得到重视,这个技术也是一
本篇主要内容如下: 主要内容 前言 我们都在讨论分布式,特别是面试的时候,不管是招初级软件工程师还是高级,都会要求懂分布式,甚至要求用过。传得沸沸扬扬的分布式到底是什么东东,有什么优势? 借用火影忍术 风遁·螺旋手里剑 看过火影的同学肯定知道漩涡鸣人的招牌忍术:多重影分身之
前段时间在做会员中心和中间件系统开发时,多次碰到多数据源配置问题,主要用到分包方式、参数化切换、注解+AOP、动态添加 这四种方式。这里做一下总结,分享下使用心得以及踩过的坑。 分包方式 数据源配置文件 在yml中,配置两个数据源,id分别为master和s1。 spring: data
在Java程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 性能调优的步骤主要有:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优,验证是否达到调优目标。 现代大规模关键性系统中的Java性能调优,是一项富有挑战的任务。你需要
JDK 15发布啦~ 我们一起回顾JDK 5-15 的新特性吧,大家一起学习哈~ Java 5 新特性 1. 泛型 泛型本质是参数化类型,解决不确定具体对象类型的问题。 List<String> strList=new ArrayList<String>();
前言 关于性能调优,我先来说说的我的感受。Java性能调优不像是学一门编程语言,无法通过直线式的思维来掌握和应用,它对于工程师的技术广度和深度都有着较高的要求,当下一线大厂对高级工程师的要求就是必须要会性能调优。 互联网时代,一个简单的系统就囊括了应用程序、数据库、容器、操作系统、网络等技术,线
分布式事务主要解决分布式一致性的问题。说到底就是数据的分布式操作导致仅依靠本地事务无法保证原的性。与单机版的事务不同的是,单机是把多个命令打包成一个统一处理,分布式事务是将多个机器上执行的命令打包成一个命令统一处理。 常见的分布式事务场景# 分布式事务其实就在我们身边,你一直在用,但是你却一直不
2020年秋招已经开始了,你的秋招进行的怎么样了?前几天,有位小伙伴跟我说他拿到了阿里的offer,说要感谢我请我吃饭,小编怎么好意思,饭就免了,努力给社会做贡献就行,下面我就把之前整理的2020秋招互联网一线大厂资源库分享出来,能刷到你就值了,花了我一个月时间整理搜集的--Java架构进阶资源库-
为什么要用线程池? 池化技术:减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。 使用线程池的好处: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
进程和线程? 进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,进程是动态的。 系统运行一个程序就是一个进程从创建,运行到消亡的过程。 Java中,启动main函数的时候其实就是启动了一个JVM进程,而main函数所在的线程就是这个进程的主线程。 线程? 线程是一个比进程
1. 前言 Websocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,当然也支持客户端发送数据到服务端。通常用来社交聊天、弹幕、多玩家游戏、协同编辑、股票基金实时报价
Spring内部如何解决循环依赖,一定是单默认的单例Bean中,属性互相引用的场景。比如几个Bean之间的互相引用: 或者 setter方式原型,prototype 原型(Prototype)的场景是不支持循环依赖的,因为“prototype”作用域的Bean,为每一个bean请求提供
这个面试题是一个朋友在面试的时候碰到的,什么时候会抛出OutOfMemery异常呢?初看好像挺简单的,其实深究起来考察的是对整个JVM的了解,而且这个问题从网上可以翻到一些乱七八糟的答案,其实在总结下来基本上4个场景可以概括下来。 堆内存溢出 堆内存溢出太常见,大部分人都应该能想得到这一点,堆内
一说到 Redis,现在可是无人不知无人不晓。在如今分布式,高并发的环境下,是开发的一件必备神器,系统配上了它,就好比如画龙点睛,整个系统都活了起来,系统的可用性,性能都能得到大大的提升。 然而0202年了,Redis在很多一线大厂面试来说都是必不可少的部分,比如: Redis的k
1、构造手机验证码:使用random对象生成要求的随机数作为验证码,例如4位验证码:1000~9999之间随机数; 2、使用接口向短信平台发送手机号和验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号,随机验证码(或包含失效时间),平台接口地址,平台口令; 3、保
由于近期在公司内部做了一次 Elasticsearch 的分享,所以本篇主要是做一个总结,希望通过这篇文章能让读者大致了解 Elasticsearch 是做什么的以及它的使用和基本原理。 生活中的数据 搜索引擎是对数据的检索,所以我们先从生活中的数据说起。我们生活中的数据总体分为两种:
摘要:常见存储算法结构涵盖:哈希存储,B 、B+、B*树存储,LSM树存储引擎,R树,倒排索引,矩阵存储,对象与块,图结构存储等等。 介绍 在存储系统的设计中,存储引擎属于底层数据结构,直接决定了存储系统所能够提供的性能和功能。常见存储算法结构涵盖:哈希存储,B 、B+、B*树存储,LSM树
前言 在一个系统中引入消息中间件后会给系统带来什么好处呢? 要知道引入MQ后主要可以解决三个问题:异步、解耦、削峰 这篇文章就和大家聊一聊削峰的具体场景,针对一个电商系统中,秒杀系统这部分的技术难点与解决方案。 系统面临的瓶颈是什么 我们先了解一下,秒杀系统中具体有什么问题需要解决呢?看图
RocketMQ 介绍 Apache RocketMQ 是一款 低延迟、高并发、高可用、高可靠的分布式消息中间件。消息队列 RocketMQ 可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。 RocketMQ 概念 Topic
性能优化是很多 Java 程序员希望彻底掌握的一门技能。很多人都想学好性能优化,希望能够在自己的工作中灵活运用提高性能,从而为用户提供良好的用户体验。然而,很多人在设计技术方案或者编码时缺乏系统地、方法论级别的指导,导致想做性能优化时缺乏思路。 同时现在很多的互联网公司面试的时候对面试者
想象一下,给变量赋值,然后立即读取,却发现刚刚的写入根本不起作用,是不是很抓狂? x = 42assert(x == 42) # 抛出异常 在使用一致性保证较弱的分布式数据存储时,就有可能遇到这种情况。你可能会问:“等等,难道数据库不是应该为我解决一致性的问题吗?”执行更新操作后,实际的数据
本篇会和SpringBoot做整合,采用自动配置的方式进行开发,我们只需要声明RabbitMQ地址就可以了,关于各种创建连接关闭连接的事都由Spring帮我们了~ 交给Spring帮我们管理连接可以让我们专注于业务逻辑,就像声明式事务一样易用,方便又高效。 祝有好收获,先赞后看,快乐无限。
Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 NIO 与 BIO 的区别,然后对 NIO 中重要的三个组成部分进行讲解(缓冲区、通道、选择器),最后
这个是不久前在面试的时候遇到的一个问题,当时直接懵了,两个单拎出来,虽然不太完全,但都大概知道可以对请求进行拦截,放在一起比较,可真是头疼。 其实之前面试完就去学习了一波,只不过那个时候没及时总结,现在总结一下,以免日后遇到这类问题又给忘咯。 要理解这类问题,光靠死记硬背可能当时有用,过一阵子就
感觉写这个标题,明眼人一看可能觉得这不就是死锁吗?但是今天说的情况还不是真正意义上的死锁,顶多算是宏观意义上的死锁。而且这个情况使用jstack工具查看不到死锁的信息。 使用线程池不当,导致的线程相互等待 今天的例子 public class Test { static Threa
前言 EventBus 是 Guava 的事件处理机制,是观察者模式(生产/消费模型)的一种实现。 观察者模式在我们日常开发中使用非常广泛,例如在订单系统中,订单状态或者物流信息的变更会向用户发送APP推送、短信、通知卖家、买家等等;审批系统中,审批单的流程流转会通知发起审批用户、审批的领导等等
TCP报文结构 源端口和目的端口:唯一确定一条TCP连接,TCP在发送数据前必须在彼此间建立连接,意思是:双方需要保存对方的信息。 序列号seq:占4个字节,用于标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生,给字节编上序号后,就给每一个报文
一、SpringMVC简介 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC
一、ClickHouse 是什么? ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) 我们首先理清一些基础概念 OLTP:是传统的关系型数据库,主要操作增删改查,强调事务一致性,比如银行系统、电商系统 OLAP:是仓库型数据库,主要是读取数据
一、AOP、SpringAOP、AspectJ的区别 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高
前言 最近准备将公司的一个核心业务系统用 Java 进行重构,大半年没写 Java ,JDK 都更新到 14 了,考虑到稳定性等问题最终还是选择的 JDK11。 在整体架构选型时,由于是一个全新的系统,所以没有历史包袱,同时团队中也有多位大牛坐镇,因此我们的选项便大胆起来。 最终结果就是直接一
自苹果推出了iPhone应用商店以来,App成为了我们生活中不可或缺的一部分,而对于实体业务也是如此,现在各行业都在推出自己的App,但有没有人想过这样一种场景,如果自己的潜在客户还没有安装你的App亦或是即便安装但因为客户的手机存储空间紧张而卸载掉了你的App?那有没有使App更轻量,更易安装的技
前言 关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也不至于被“拍死”在沙滩上。 近日,经过一朋友的透露,Alibaba也首发了一份限量的“Java成
一道面试题 让我们开门见山,直面主题:Dubbo 服务里面有个服务端,还有个消费端你知道吧? 服务端和消费端都各有一个线程池你知道吧? 那么面试题来了:一般情况下,服务提供者比服务消费者多吧。一个服务消费方可能会并发调用多个服务提供者,每个用户线程发送请求后,会进行超时时间内的等待。多个
在业务开发过程中我们会遇到形形***的注解,但是框架自有的注解并不是总能满足复杂的业务需求,我们可以自定义注解来满足我们的需求。根据注解使用的位置,文章将分成字段注解、方法、类注解来介绍自定义注解。 字段注解 字段注解一般是用于校验字段是否满足要求,hibernate-validate依赖就提供
MySQL避免重复插入数据最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下: 这里为了方便演示,我新建了一个user测试表,主要有id,usern
Disruptor是一个开源框架,研发的初衷是为了解决高并发下队列锁的问题,最早由LMAX提出并使用,能够在无锁的情况下实现队列的并发操作,并号称能够在一个线程里每秒处理6百万笔订单 目前,包括Apache Storm、Camel、Log4j2在内的很多知名项目都应用了Disruptor以获取高性
摘要 Hutool是一个小而全的Java工具类库,它帮助我们简化每一行代码,避免重复造轮子。如果你有需要用到某些工具类的时候,不妨在Hutool里面找找。本文总结了平时常用的16个工具类,希望对大家有所帮助! 安装 Hutool的安装非常简单,Maven项目中只需在pom.xml添加以下依赖即
背景 缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景。而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到好处的一致性方案。 缓存是什么 存储的速度是有区别的。缓存就是把低速存储的结果,临时保存在高速存储的技术。 如图所示,金
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。RPC协议假定某些传输协议的存在,如
导语:最近工作上的事是真滴忙,连之前情人节那天都没腾出空,几个大老爷们对着电脑凑合凑合过的。趁现在闲下来,赶紧来给大家絮叨絮叨。这次我们就来讲一个效率神器。 作为一个以懒为美德的程序猿,我是想尽办法提高自己的办公效率,要不你说咋挤出时间去偷懒呢。 入职这两年以来,我用过的工具是越来越多,电脑
说到模板方法模式,它可能是一个让我们深入骨髓而又不自知的模式了,因为它在我们开发过程中会经常遇到,并且也非常简单。只不过,很多时候我们并不知道它就是模板方法模式而已。不负责任的说,当我们用到override关键字重写父类方法的时候,十有***就跟模板方法模式有关了。 定义 先看一下模板方法模式的
本文会从以下三个方面,来进阶我们对vue的运用能力: 组件 : 全局组件注册 Render函数 : 拯救繁乱的template Vue权限控制:高精度全局权限控制 全 局 组 件 注 册 组件是我们非常常用的东西,很多人使用组件都是通过一个一个文件去引用和注册。如果一个组件在整个项目里
介绍 最近,围绕面向服务的架构(尤其是微服务架构)的缺点进行了大量讨论。虽然就在几年前,采用微服务架构是比较流行的,因为它们提供了许多好处,例如以独立部署的形式带来的灵活性、职责清晰、系统稳定性和更好的关注点分离,但近年来,人们开始声讨微服务极大地增加了系统复杂性,有时构建微小的特性也会变得困难。
简评:作者随手在 Stackoverflow 回答了一个问题,几个月之后,竟发现这个回答带来了 2.5 亿次的 API 访问。作者还因此成立了公司专门运作这个 API。 以下我仅代表原作者。 推广很难,推广 API 更难,因为你不但需要专业知识,沟通技巧,还需要切中需求。 好在,有社区的存
最近博主看到了一款小而全的 Java 工具类库:Hutool,Github 已经接近 15K Star 了,想必一定很优秀,现在推荐给大家,很多轮子不要再造了! Hutool 是什么 Hutool 是一个 Java 工具包类库,它可以对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行
前言 话说有一名意大利程序员,在 2004 年到 2006 年间主要做嵌入式工作,之后接触了 Web,2007 年和朋友共同创建了一个网站,并为了解决这个网站的负载问题(为了避免 MySQL 的低性能),于是亲自定做一个数据库,并于 2009 年开发完成,这个就是 Redis。这个意大利
前言 最近看到了一个考试系统,感觉做的挺不错,并且也比较成熟,所以我就简单玩了一下。另外,考试系统应用场景还挺多的,不论是对于在校大学生还是已经工作的小伙伴,并且,类似的私活也有很多。 在线考试系统后台管理主页 下面我就把这个项目分享给小伙伴们,非常值得学习,拿来即用! 为了一步一
类结构图 我们先来看下AnnotationAwareAspectJAutoProxyCreator类的结构图。 上图中一些 类/接口 的介绍: AspectJAwareAdvisorAutoProxyCreator : 公开了AspectJ的调用上下文,并弄清楚来自同一切面的多个Advis
一、MongoDB 认识 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当***能最丰富,最像关系数据库的。 它支持的数据结构非常松散,是类似js
「一、为什么要有HTTPS」 在HTTPS出现之前,所有请求都是以明文方式送出的,那么如果有人在传输途中偷听或者抓包的话,你的所有通信内容都会泄漏。 比较安全的方法是将通信内容加密在发送给对方。加密方法有两种,对称加密和非对称加密。 推荐观看:传送门 「二、对称加密」 对称加密指的是加密和
时间格式化在项目中使用频率是非常高的,当我们的 API 接口返回结果,需要对其中某一个 date 字段属性进行特殊的格式化处理,通常会用到 SimpleDateFormat 工具处理。 SimpleDateFormat dateFormat = new SimpleDateFormat("
作为 35 岁的 IT 老兵,做过开发、项目经理、产品经理。大部分都是在中小型公司工作,经常需要在项目经理和技术经理的角色之间切换,主要负责组织产品的设计与研发,目前还经常编码解决一些技术难点,自己也考取国家软考系统分析师、项目管理等一些证书,还在持续学习和使用新的技术框架。 今年是最不平凡的一年
网络配置(修改hosts) 什么时候需要 比如我们在安装homeBrew的时候会遇到 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 发现脚本需要到 raw.gith
在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。 推荐观看:传送门 优化的哲学 注:优化有风险,涉足需谨慎 a 优化可能带来的问题? 优化不总是对一个单纯的环境进行,还很
1.设置maven 1.在File->settings->搜索maven 2.Mavan home directory--设置maven安装包的bin文件夹所在的位置 3.User settings file--设置setting文件所在的位置 4.Local rep
疫情年,金九银十会有影响么? 年初期间的“足不出户”是我们每天的一个状态,疫情肆虐的今天,对我们的学习、工作、生活等各个方面都造成了很严重的负面影响,对于一个拥有房贷车贷的普通上班族来说,更是“难上加难”。很多人想要在这个期间找工作、跳槽,但根据现在这种情景,似乎一切都变得未知了起来。 现阶段,
无论是IM消息通信系统还是客户消息系统,其本质都是一套消息发送与投递系统,或者说是一套网络通信系统,其本质两个词:存储与转发。 上图所示显示了携程家的消息系统的初期架构,图中架构直接用mongodb作为消息队列,然后就把系统开发出来了,图中中可以见到一个常见IT系统的接口
前言 在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处? 本篇博客我们就来分析这个问题,探讨一下内
最近在忙着优化集团公司的一个报表。优化完成后,报表查询速度有从半小时以上(甚至查不出)到秒查的质变。从修改SQL查询语句逻辑到决定创建存储过程实现,花了我3天多的时间,在此总结一下,希望对朋友们有帮助。 数据背景 首先项目是西门子中国在我司实施部署的MES项目,由于项目是在产线上运作(3 yea
前言 记录一次线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些「JVM内存分配的原理分析」以及「常用的JVM问题排查手段和工具分享」,希望对大家有所帮助。 在整个排查过程中,我也走了不少弯路,但是在文章中我仍然会把完整的思路和想法写出来,当做一次经验教训,给后人参考,文章最后也总结了下内
前言 推荐观看:多线程与高并发 1. synchronized的实现原理以及锁优化? synchronized的实现原理 synchronized作用于「方法」或者「代码块」,保证被修饰的代码在同一时间只能被一个线程访问。 synchronized修饰代码块时,JVM采用「mon
扫一扫,把题目装进口袋
扫描二维码,进入QQ群
扫描二维码,关注牛客网公众号