自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Docker必备基础知识,看完这一篇就够了

Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种不同的计算机虚拟化技术,也有很多人会觉得,有了虚拟机,那为什么还要使用Docker呢? 带着心里的一点点疑问,让我们一起来学习Docker吧。 没有虚拟化技术的原始年代 我们仔细想想,在没有计算虚拟化技术的“远古”年代,如果我们...

2019-09-09 19:31:31 853 1

转载 金九银十面试,面试官问我Java中的String有没有长度限制?

String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西容易被忽略的。 就如本文我们要讨论的问题:Java中的String有没有长度限制? 这个问题要分两个阶段看,分别是编译期和运行期。不同的时期限制不一样。 编译期 首先,我们先来合理的推断一下,当我们在代码中使用String s = "";的形式来定...

2019-09-09 17:27:55 219

转载 Java分布式 RPC 框架性能大比拼,Dubbo真的最差吗?

原文链接:https://mp.weixin.qq.com/s? Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。 不过,略有遗憾的是,据说在淘宝内部,dubbo由于跟淘宝另一个类似的框架HSF(非开源)有竞争关系,导致dubbo团队已经解散,反到是当当网的扩展版本仍在持续发展,墙...

2019-09-08 15:13:23 524

转载 MySQL的基本知识点,一千行命令概括

原文地址:shockerli.net/post/1000-l… ,JavaGuide 对本文进行了简答排版,新增了目录。 作者:格物 非常不错的总结,强烈建议保存下来,需要的时候看一看。 基本操作 数据库操作 表的操作 数据操作 字符集编码 数据类型(列类型) 列属性(列约束) 建表规范 SELECT UNION 子查询 连接查询(join) TRUNCATE 备...

2019-09-06 14:32:09 583

原创 当同事用 Root 权限输入rm -rf 后,鬼知道我经历了什么

安排一个妹子在一台生产服务器上安装 Oracle,妹子边研究边安装,感觉装的不对,准备卸载重新安装。 从网上找到卸载方法,其中要执行一行命令删除 Oracle 的安装目录,命令如下: rm -rf $ORACLE_BASE/* 如果 ORACLE_BASE 这个变量没有赋值,那命令就变成了: rm -rf /* 等等,妹子使用的可是 Root 账户啊。就这样,把整个盘...

2019-09-05 21:06:12 1059

原创 时钟回拨问题咋解决?百度开源的唯一ID生成器UidGenerator

UidGenerator是百度开源的Java语言实现,基于Snowflake算法的唯一ID生成器。而且,它非常适合虚拟环境,比如:Docker。另外,它通过消费未来时间克服了雪花算法的并发限制。UidGenerator提前生成ID并缓存在RingBuffer中。 压测结果显示,单个实例的QPS能超过6000,000。 依赖环境: JDK8+ MySQL(用于分配WorkerId) ...

2019-08-12 15:30:15 1045

原创 查漏补缺,JVM优化篇,锁消除+逃逸分析

如果能确认某个加锁的对象不会逃逸出局部作用域,就可以进行锁删除。这意味着这个对象同时只可能被一个线程访问,因此也就没有必要防止其它线程对它进行访问了。这样的话这个锁就是可以删除的。这个便叫做锁消除,本文是JVM实现机制的系列文章,这也正是今天要讲的主题。 众所周知,java.lang.StringBuffer是一个使用同步方法的线程安全的类,它可以用来很好地诠释锁消除。StringBu...

2019-08-09 15:11:14 211

原创 查漏补缺,大型网站分布式系统实战解析(推荐收藏)

分布式系统 分布式系统从当初的CORBA 到EJB,Web和SOA,从集群到现在的NoSQL 云计算和大数据Hadoop等分布式系统,横向水平扩展Scala out/in是分布式系统设计的一个特点,可靠性 容错性是两个质量指标。 什么是分布式系统? 一大批服务器组成一个集合,对于用户来说仍然是一个整体连贯系统。 A. Tanenbaum定义:分布式网络的计算机中的组件之间协调动作...

2019-08-05 10:08:05 207

原创 查漏补缺,Redis为什么会这么快,看完这七点你就知道了

本文内容思维导图如下: 一、简介和应用 Redis是一个由ANSI C语言编写,性能优秀、支持网络、可持久化的K-K内存数据库,并提供多种语言的API。它常用的类型主要是 String、List、Hash、Set、ZSet 这5种 Redis在互联网公司一般有以下应用: String:缓存、限流、计数器、分布式锁、分布式Session Hash:存储用户信息、用...

2019-08-04 14:32:58 341

原创 查漏补缺,架构之dubbo 调用埋点(推荐收藏)

来源:IT故事会 原文链接:https://idig8.com/2019/07/18/hulianwangjiagoudubbo-diaoyongmaidian114/ ####(一)Dubbo执行过程 对于dubbo的埋点,首先要了解dubbo的执行过程 节点角色说明Provider暴露服务的服务提供方Consumer调用远程服务的服务消费方Registry服务注...

2019-08-02 17:25:45 385

原创 这一个开源项目,让你入门GitHub,开发了一年还不会吗?

从事开发行业,天天都会跟GitHub或其他基于Git的工具所接触。而对于刚进入开发行业的程序员,往往第一个选择就是学习GitHub,看看博客文章和一些资料对自己会有所帮助,但是肯定没有自己亲手实践来的强。 近日,猿妹在GitHub上找到一个GitHub 新手的贡献指南——first-contributions,目前在GitHub上获得 6433 个Star,16378 个F...

2019-07-29 14:47:41 450

原创 如何优雅关闭 Spring Boot 应用(Java 微服务)推荐收藏

随着线上应用逐步采用 SpringBoot 构建,SpringBoot应用实例越来多,当线上某个应用需要升级部署时,常常简单粗暴地使用 kill 命令,这种停止应用的方式会让应用将所有处理中的请求丢弃,响应失败。这样的响应失败尤其是在处理重要业务逻辑时需要极力避免的,那么有什么更好的方式来平滑地关闭 SpringBoot 应用呢?那就通过本文一起来探究吧。(本文主要针对基于Spring Boot ...

2019-07-26 16:15:27 340

原创 头发一天天的掉,你知道MySQL的Limit有性能问题吗?

你知道MySQL的Limit有性能问题吗? MySQL的分页查询通常通过limit来实现。 MySQL的limit基本用法很简单。limit接收1或2个整数型参数,如果是2个参数,第一个是指定第一个返回记录行的偏移量,第二个是返回记录行的最大数目。初始记录行的偏移量是0。 为了与PostgreSQL兼容,limit也支持limit # offset #。 问题: 对于小的偏移量...

2019-07-24 14:56:24 181

原创 Tomcat+Nginx负载均衡集群由Linux环境搭建

Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。由于Tomcat处理静态HTML的能力运不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。 Nginx服务器能支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低. 通常...

2019-07-23 19:40:53 244

原创 乐字节Java|GC垃圾回收机制、package和import语句

JavaGC垃圾回收机制、package 和 import语句。 一、GC垃圾回收机制 GC全名:Garbage Collection 垃圾回收机制 程序员无权调用垃圾回收器。 程序员可以通过System.gc()。通知GC运行,但是JAVA规范并不能保证立刻运行。 finalize方法,是JAVA提供给程序员用来释放对象或资源的方法,但是尽量少用。 GC回收的三种...

2019-07-22 17:28:18 259

原创 在阿里待了十年的老P7,资产过千万,过得不如月薪过万的我们

阿里巴巴的员工吐槽说:我们组有个老p7,来阿里快十年了,怎么着资产都上千万了,但是过的无比拮据,不知道的还以为他月薪刚过万,不懂他咋想的。下面来让我们看看网友们是怎么说的吧。 这年头,生活节俭一点也有人说。现在有钱人都比较低调,这叫财不外漏懂不?资产千万就仰望了?身边很多年入千万的都很低调,千人千面。没钱的时候看见豪车流口水,有钱了,觉得小牛挺方便的。 ...

2019-07-22 15:24:33 2607

原创 阿里内部流出Java学习路线,超完整,超详细

文章有点长,请大家耐心看完,话不多说直接上干货! 一门永不过时的编程语言——Java 编程开发。 Java编程语言占比: 据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位! Java工程师人才缺口...

2019-07-21 15:39:27 1423

原创 一线互联网需要什么简历?手把手教你怎么写

作者: SnailClimb Markdown 简历模板样式一览 可以看到我把联系方式放在第一位,因为公司一般会与你联系,所以把联系方式放在第一位也是为了方便联系考虑。 为什么要用 Markdown 写简历? Markdown 语法简单,易于上手。使用正确的 Markdown 语言写出来的简历不论是在排版还是格式上都比较干净,易于阅读。另外,使用 Markdown 写简...

2019-07-19 14:31:06 270

原创 从无到有RPC框架 - RPC原理及实现(文末还有开源的优秀RPC框架)

RPC概述 RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。 现在互联网应用的量级越来越大,单台计算机的能力有限,需要借助可扩展的计算机集群来完成,分布式的应用可以借助RPC来完成机器之间的调用。 RPC框架原理 在RPC框架中主要有三个角色:Provider、Consume...

2019-07-18 14:55:46 178

原创 程序员的黄金五年,如何做到从月薪4.5K达到45K?

前言: 在Java程序界流行着一种默认的说法叫「黄金5年」,也就是一个程序员从入职的时候开始算起,前五年的选择直接影响着整个职业生涯中的职业发展方向和薪资走向。 如何走好这5年很关键,如何彻底从一个菜鸟蜕变成可以以不变应万变的职业大牛,这是一个涉及到自身专业知识储备和选择的大难题,那么在这五年里,一个Java程序员如何做才能完成从入行到大牛的晋升之路呢? 一、参加工作1...

2019-07-17 20:52:13 485

原创 你编写的程序高效、优雅吗?阿里架构师教你编写高效优雅Java程序

面向对象 构造器参数太多怎么办? 用 builder 模式,用在 1、5 个或者 5 个以上的成员变量 2、参数不多,但是在未来,参数会增加 Builder 模式: 属于对象的创建模式,一般有 1. 抽象建造者:一般来说是个接口,包含 1)建造方法,建造部件的方法(不止一 个),2)返回产品的方法 2. 具体建造者 3. 导演者,调用具体的建造者,创建产品对象 4. ...

2019-07-17 16:02:48 284

原创 阿里P7架构师对Java虚拟机、类加载机制是怎么理解的?

概述 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载 (Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化 (Initialization)、使用(Using)和卸载(Unloading)7 个阶段。其中验证、准备、解析 3 个部分统称为连接(Linking) 于初始化阶段,虚拟机...

2019-07-16 22:25:24 140

原创 如何学好JVM征服面试官?一篇Class 类文件结构你还不会吗?

Java 跨平台的基础 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是 构成平台无关性的基石,也是语言无关性的基础。Java 虚拟机不和包括 Java 在内的任何 语言绑定,它只与“Class 文件”这种特定的二进制文件格式所关联,Class 文件中包含了 Java 虚拟机指令集和符号表以及若干其他辅助信息。 Class...

2019-07-16 17:23:21 229

原创 创建对象不优雅?Java大牛手把手教你如何创建优雅的对象

在 Java 中有多种方式可以创建对象,总结起来主要有下面的 4 种方式: 正常创建。通过 new 操作符 反射创建。调用 Class 或 java.lang.reflect.Constructor 的 newInstance()方法 克隆创建。调用现有对象的 clone()方法 发序列化。调用 java.io.ObjectInputStream 的 getObject()方法反...

2019-07-15 14:32:47 533

原创 八年面试生涯,整理了一套Kafka面试题

1.Kafka 的设计时什么样的呢? Kafka 将消息以 topic 为单位进行归纳 将向 Kafka topic 发布消息的程序成为 producers. 将预订 topics 并消费消息的程序成为 consumer. Kafka 以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个 broker. producers 通过网络将消息发送到 Kafka 集群,集群向...

2019-07-13 21:09:51 410

原创 二十四个RabbitMQ消息中间件面试题及答案(双手奉上,拿走不行)

问题一:RabbitMQ 中的 broker 是指什么?cluster 又是指什么? 答:broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ 应用 程序。cluster 是在 broker 的基础之上,增加了 node 之间共享元数据的约束。 问题二:什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元...

2019-07-13 14:01:08 270

原创 Spring Boot从入门+进阶+入魔(精讲篇)

Spring Boot到底是什么 在了解Spring Boot之前应该先了解下Spring,因为Spring Boot的核心是基于Spring构建的。Spring是由Rod Johnson在2002年创建的一个开源框架,Spring在创建到现在一直处于飞速发展之中。目前已经成为J2EE开发中的事实标准。但是随着IT技术的飞速发展,及IT项目变得越来越复杂。如果学习过Spring就知道Spring...

2019-07-12 20:28:19 234

原创 十年面试经验,整理的八道面试题(不详细你找我)

一、内存调优 内存方式的设置是在 catalina.sh 中,调整一下 JAVA_OPTS 变量即可,因为后 面的启动参数会把 JAVA_OPTS 作为 JVM 的启动参数来处理。 具体设置如下: JAVA_OPTS="$JAVA_OPTS -Xmx3550m -Xms3550m -Xss128k - XX:NewRatio=4 -XX:SurvivorRatio=4" 其各...

2019-07-12 15:43:07 525

原创 马上就到金九银十了,一套BAT面试题关于Dubbo给大家整理好了

Dubbo 是什么? Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提 供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 Dubbo 的主要应用场景? 透明化的远程方法调用,就像调用本地方法一样调用远程方法, 只需简单配置,没有任何 API 侵入。 软负载均衡及容错机制,可在内网替代 F5 等硬件负载均衡器, 降低成本,减少单点。 服务...

2019-07-11 21:02:48 162

原创 BAT面试题——22个集合框架(完)

1.Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是equals()? 它们有何区别? Set 里的元素是不能重复的,元素重复与否是使用 equals() 方法进行判断的。 equals() 和 == 方法决定引用值是否指向同一对象 equals() 在类中被覆盖,为的是 当两个分离的对象的内容和类型相配的话,返回真值。 2.两个对象值相同 (x....

2019-07-11 15:05:39 149

原创 BAT面试题——22个集合框架(一)

一、ArrayList 和 Vector 的区别 这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集 合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我 们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是 HashSet 之类的集合的最大不同处,HashSet 之类的集合不可以按索引号去检索其 ...

2019-07-10 20:53:08 266

原创 大牛分享的几种设计模式及知识要点(完)

一、访问者模式(Visitor Pattern ) 定义:Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on...

2019-07-10 20:31:01 269

原创 大牛分享的几种设计模式及知识要点(四)

一、组合模式((Composite Pattern) ) 定义:Compose objects into tree structures to represent part-whole hierarchies.Composite lets clients treat individual objects and compositions of objects uniformly.(将对象...

2019-07-10 15:40:21 161

原创 大牛分享的几种设计模式及知识要点(三)

一、责任链模式 定义:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain un...

2019-07-09 15:55:39 187

原创 大牛分享的几种设计模式及知识要点(二)

一、代理模式(Proxy Pattern ) 定义:Provide a surrogate or placeholder for another object to control access to it. (为其他对象提供一种代理以控制对这个对象的访问。) ● Subject 抽象主题角色 抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要 求。 ● Re...

2019-07-09 15:39:25 187

原创 23种设计模式知识要点(一)

一、单例模式(Singleton Pattern ) 定义:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实 例。) 通用代码:(是线程安全的) public class Singleton {pri...

2019-07-08 15:14:53 215

原创 阿里P8架构师对分布式系统原理的详解(不点可惜了)

一、概念 1.1 模型 节点 在具体的工程项目中,一个节点往往是一个操作系统上的进程。在本文的模型中,认为节点是一个完整的、不可分的整体,如果某个程序进程实际上由若干相对独立部分构成,则在模型中可以将一个进程划分为多个节点。 异常 机器宕机:机器宕机是最常见的异常之一。在大型集群中每日宕机发生的概率为千分之一左右,在实践中,一台宕机的机器恢复的时间通常认为是24 小时,一般需要...

2019-07-07 22:28:05 205

原创 前大众点评资深研发专家深度解析Mysql索引为什么要用B+Tree实现

1:Mysql索引是什么 mysql索引: 是一种帮助mysql高效的获取数据的数据结构,这些数据结构以某种方式引用数据,这种结构就是索引。可简单理解为排好序的快速查找数据结构。如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。 1.1:索引分类 单值索引:一个索引包含1个列 create index idx_XX on tabl...

2019-07-05 16:19:46 291

原创 手写Spring MVC,阿里P7架构师手把手教你,get到了吗?

手写Spring MVC,阿里P7架构师手把手教你,get到了吗? 人见人爱的Spring已然不仅仅只是一个框架了。如今,Spring已然成为了一个生态。但深入了解Spring的却寥寥无几。这里,我带大家一起来看看,我是如何手写Spring的。我将结合对Spring十多年的研究经验,用不到400行代码来描述SpringIOC、DI、MVC的精华设计思想,并保证基本功能完整。 首先,我们先来介绍...

2019-07-04 15:27:34 173

原创 深入整合SSM框架引发底层原理——SpringMVC

MVC概述 在Web系统开发中一般按照视图(View)、模型(Model)、控制(Controller)三层设计模式进行构建,视图层负责模型数据的渲染,将数据用一定的形式展现给用户;模型层负责监听实体的变化并对实体进行解析和封装;控制层负责提供前后端交互的请求逻辑处理入口,处理用户请求,并建立适当的模型传递给视图进行渲染。层级关系一般如下图所示: 在Web开发的早期,JSP + Ser...

2019-07-03 16:31:31 738

空空如也

空空如也

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

TA关注的人

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