- 博客(44)
- 收藏
- 关注
转载 Docker必备基础知识,看完这一篇就够了
Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种不同的计算机虚拟化技术,也有很多人会觉得,有了虚拟机,那为什么还要使用Docker呢?带着心里的一点点疑问,让我们一起来学习Docker吧。没有虚拟化技术的原始年代我们仔细想想,在没有计算虚拟化技术的“远古”年代,如果我们...
2019-09-09 19:31:31
695
1
转载 金九银十面试,面试官问我Java中的String有没有长度限制?
String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西容易被忽略的。就如本文我们要讨论的问题:Java中的String有没有长度限制?这个问题要分两个阶段看,分别是编译期和运行期。不同的时期限制不一样。编译期首先,我们先来合理的推断一下,当我们在代码中使用String s = "";的形式来定...
2019-09-09 17:27:55
139
转载 Java分布式 RPC 框架性能大比拼,Dubbo真的最差吗?
原文链接:https://mp.weixin.qq.com/s?Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。不过,略有遗憾的是,据说在淘宝内部,dubbo由于跟淘宝另一个类似的框架HSF(非开源)有竞争关系,导致dubbo团队已经解散,反到是当当网的扩展版本仍在持续发展,墙...
2019-09-08 15:13:23
404
转载 MySQL的基本知识点,一千行命令概括
原文地址:shockerli.net/post/1000-l… ,JavaGuide 对本文进行了简答排版,新增了目录。 作者:格物非常不错的总结,强烈建议保存下来,需要的时候看一看。基本操作 数据库操作 表的操作 数据操作 字符集编码 数据类型(列类型) 列属性(列约束) 建表规范 SELECT UNION 子查询 连接查询(join) TRUNCATE 备...
2019-09-06 14:32:09
206
原创 当同事用 Root 权限输入rm -rf 后,鬼知道我经历了什么
安排一个妹子在一台生产服务器上安装 Oracle,妹子边研究边安装,感觉装的不对,准备卸载重新安装。从网上找到卸载方法,其中要执行一行命令删除 Oracle 的安装目录,命令如下:rm -rf $ORACLE_BASE/*如果 ORACLE_BASE 这个变量没有赋值,那命令就变成了:rm -rf /*等等,妹子使用的可是 Root 账户啊。就这样,把整个盘...
2019-09-05 21:06:12
851
原创 时钟回拨问题咋解决?百度开源的唯一ID生成器UidGenerator
UidGenerator是百度开源的Java语言实现,基于Snowflake算法的唯一ID生成器。而且,它非常适合虚拟环境,比如:Docker。另外,它通过消费未来时间克服了雪花算法的并发限制。UidGenerator提前生成ID并缓存在RingBuffer中。 压测结果显示,单个实例的QPS能超过6000,000。依赖环境:JDK8+ MySQL(用于分配WorkerId)...
2019-08-12 15:30:15
813
原创 查漏补缺,JVM优化篇,锁消除+逃逸分析
如果能确认某个加锁的对象不会逃逸出局部作用域,就可以进行锁删除。这意味着这个对象同时只可能被一个线程访问,因此也就没有必要防止其它线程对它进行访问了。这样的话这个锁就是可以删除的。这个便叫做锁消除,本文是JVM实现机制的系列文章,这也正是今天要讲的主题。众所周知,java.lang.StringBuffer是一个使用同步方法的线程安全的类,它可以用来很好地诠释锁消除。StringBu...
2019-08-09 15:11:14
126
原创 查漏补缺,大型网站分布式系统实战解析(推荐收藏)
分布式系统分布式系统从当初的CORBA 到EJB,Web和SOA,从集群到现在的NoSQL 云计算和大数据Hadoop等分布式系统,横向水平扩展Scala out/in是分布式系统设计的一个特点,可靠性 容错性是两个质量指标。什么是分布式系统?一大批服务器组成一个集合,对于用户来说仍然是一个整体连贯系统。 A. Tanenbaum定义:分布式网络的计算机中的组件之间协调动作...
2019-08-05 10:08:05
137
原创 查漏补缺,Redis为什么会这么快,看完这七点你就知道了
本文内容思维导图如下:一、简介和应用Redis是一个由ANSI C语言编写,性能优秀、支持网络、可持久化的K-K内存数据库,并提供多种语言的API。它常用的类型主要是 String、List、Hash、Set、ZSet 这5种Redis在互联网公司一般有以下应用:String:缓存、限流、计数器、分布式锁、分布式Session Hash:存储用户信息、用...
2019-08-04 14:32:58
288
原创 查漏补缺,架构之dubbo 调用埋点(推荐收藏)
来源:IT故事会原文链接:https://idig8.com/2019/07/18/hulianwangjiagoudubbo-diaoyongmaidian114/####(一)Dubbo执行过程对于dubbo的埋点,首先要了解dubbo的执行过程节点角色说明Provider暴露服务的服务提供方Consumer调用远程服务的服务消费方Registry服务注...
2019-08-02 17:25:45
251
原创 这一个开源项目,让你入门GitHub,开发了一年还不会吗?
从事开发行业,天天都会跟GitHub或其他基于Git的工具所接触。而对于刚进入开发行业的程序员,往往第一个选择就是学习GitHub,看看博客文章和一些资料对自己会有所帮助,但是肯定没有自己亲手实践来的强。近日,猿妹在GitHub上找到一个GitHub 新手的贡献指南——first-contributions,目前在GitHub上获得 6433 个Star,16378 个F...
2019-07-29 14:47:41
348
原创 如何优雅关闭 Spring Boot 应用(Java 微服务)推荐收藏
随着线上应用逐步采用 SpringBoot 构建,SpringBoot应用实例越来多,当线上某个应用需要升级部署时,常常简单粗暴地使用 kill 命令,这种停止应用的方式会让应用将所有处理中的请求丢弃,响应失败。这样的响应失败尤其是在处理重要业务逻辑时需要极力避免的,那么有什么更好的方式来平滑地关闭 SpringBoot 应用呢?那就通过本文一起来探究吧。(本文主要针对基于Spring Boot ...
2019-07-26 16:15:27
263
原创 头发一天天的掉,你知道MySQL的Limit有性能问题吗?
你知道MySQL的Limit有性能问题吗?MySQL的分页查询通常通过limit来实现。MySQL的limit基本用法很简单。limit接收1或2个整数型参数,如果是2个参数,第一个是指定第一个返回记录行的偏移量,第二个是返回记录行的最大数目。初始记录行的偏移量是0。为了与PostgreSQL兼容,limit也支持limit # offset #。问题:对于小的偏移量...
2019-07-24 14:56:24
107
原创 Tomcat+Nginx负载均衡集群由Linux环境搭建
Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。由于Tomcat处理静态HTML的能力运不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。Nginx服务器能支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低.通常...
2019-07-23 19:40:53
164
原创 乐字节Java|GC垃圾回收机制、package和import语句
JavaGC垃圾回收机制、package 和 import语句。一、GC垃圾回收机制GC全名:Garbage Collection 垃圾回收机制程序员无权调用垃圾回收器。程序员可以通过System.gc()。通知GC运行,但是JAVA规范并不能保证立刻运行。finalize方法,是JAVA提供给程序员用来释放对象或资源的方法,但是尽量少用。GC回收的三种...
2019-07-22 17:28:18
156
原创 在阿里待了十年的老P7,资产过千万,过得不如月薪过万的我们
阿里巴巴的员工吐槽说:我们组有个老p7,来阿里快十年了,怎么着资产都上千万了,但是过的无比拮据,不知道的还以为他月薪刚过万,不懂他咋想的。下面来让我们看看网友们是怎么说的吧。这年头,生活节俭一点也有人说。现在有钱人都比较低调,这叫财不外漏懂不?资产千万就仰望了?身边很多年入千万的都很低调,千人千面。没钱的时候看见豪车流口水,有钱了,觉得小牛挺方便的。...
2019-07-22 15:24:33
2458
原创 阿里内部流出Java学习路线,超完整,超详细
文章有点长,请大家耐心看完,话不多说直接上干货!一门永不过时的编程语言——Java 编程开发。Java编程语言占比:据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!Java工程师人才缺口...
2019-07-21 15:39:27
1239
原创 一线互联网需要什么简历?手把手教你怎么写
作者: SnailClimbMarkdown 简历模板样式一览可以看到我把联系方式放在第一位,因为公司一般会与你联系,所以把联系方式放在第一位也是为了方便联系考虑。为什么要用 Markdown 写简历?Markdown 语法简单,易于上手。使用正确的 Markdown 语言写出来的简历不论是在排版还是格式上都比较干净,易于阅读。另外,使用 Markdown 写简...
2019-07-19 14:31:06
161
原创 从无到有RPC框架 - RPC原理及实现(文末还有开源的优秀RPC框架)
RPC概述RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。现在互联网应用的量级越来越大,单台计算机的能力有限,需要借助可扩展的计算机集群来完成,分布式的应用可以借助RPC来完成机器之间的调用。RPC框架原理在RPC框架中主要有三个角色:Provider、Consume...
2019-07-18 14:55:46
88
原创 程序员的黄金五年,如何做到从月薪4.5K达到45K?
前言:在Java程序界流行着一种默认的说法叫「黄金5年」,也就是一个程序员从入职的时候开始算起,前五年的选择直接影响着整个职业生涯中的职业发展方向和薪资走向。如何走好这5年很关键,如何彻底从一个菜鸟蜕变成可以以不变应万变的职业大牛,这是一个涉及到自身专业知识储备和选择的大难题,那么在这五年里,一个Java程序员如何做才能完成从入行到大牛的晋升之路呢?一、参加工作1...
2019-07-17 20:52:13
415
原创 你编写的程序高效、优雅吗?阿里架构师教你编写高效优雅Java程序
面向对象构造器参数太多怎么办?用 builder 模式,用在1、5 个或者 5 个以上的成员变量2、参数不多,但是在未来,参数会增加Builder 模式:属于对象的创建模式,一般有1. 抽象建造者:一般来说是个接口,包含 1)建造方法,建造部件的方法(不止一个),2)返回产品的方法2. 具体建造者 3. 导演者,调用具体的建造者,创建产品对象 4. ...
2019-07-17 16:02:48
195
原创 阿里P7架构师对Java虚拟机、类加载机制是怎么理解的?
概述类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7 个阶段。其中验证、准备、解析3 个部分统称为连接(Linking)于初始化阶段,虚拟机...
2019-07-16 22:25:24
72
原创 如何学好JVM征服面试官?一篇Class 类文件结构你还不会吗?
Java 跨平台的基础各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石,也是语言无关性的基础。Java 虚拟机不和包括 Java 在内的任何语言绑定,它只与“Class 文件”这种特定的二进制文件格式所关联,Class 文件中包含了Java 虚拟机指令集和符号表以及若干其他辅助信息。Class...
2019-07-16 17:23:21
169
原创 创建对象不优雅?Java大牛手把手教你如何创建优雅的对象
在 Java 中有多种方式可以创建对象,总结起来主要有下面的 4 种方式:正常创建。通过 new 操作符反射创建。调用 Class 或 java.lang.reflect.Constructor 的 newInstance()方法克隆创建。调用现有对象的 clone()方法发序列化。调用 java.io.ObjectInputStream 的 getObject()方法反...
2019-07-15 14:32:47
453
原创 八年面试生涯,整理了一套Kafka面试题
1.Kafka 的设计时什么样的呢?Kafka 将消息以 topic 为单位进行归纳将向 Kafka topic 发布消息的程序成为 producers.将预订 topics 并消费消息的程序成为 consumer.Kafka 以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个 broker.producers 通过网络将消息发送到 Kafka 集群,集群向...
2019-07-13 21:09:51
317
原创 二十四个RabbitMQ消息中间件面试题及答案(双手奉上,拿走不行)
问题一:RabbitMQ 中的 broker 是指什么?cluster 又是指什么?答:broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ 应用程序。cluster 是在 broker 的基础之上,增加了 node 之间共享元数据的约束。问题二:什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元...
2019-07-13 14:01:08
184
原创 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
165
原创 十年面试经验,整理的八道面试题(不详细你找我)
一、内存调优内存方式的设置是在 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
410
原创 马上就到金九银十了,一套BAT面试题关于Dubbo给大家整理好了
Dubbo 是什么?Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和Spring 框架无缝集成。Dubbo 的主要应用场景?透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何 API 侵入。软负载均衡及容错机制,可在内网替代 F5 等硬件负载均衡器,降低成本,减少单点。服务...
2019-07-11 21:02:48
89
原创 BAT面试题——22个集合框架(完)
1.Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是equals()? 它们有何区别?Set 里的元素是不能重复的,元素重复与否是使用 equals() 方法进行判断的。equals() 和 == 方法决定引用值是否指向同一对象 equals() 在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。2.两个对象值相同 (x....
2019-07-11 15:05:39
91
原创 BAT面试题——22个集合框架(一)
一、ArrayList 和 Vector 的区别这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是HashSet 之类的集合的最大不同处,HashSet 之类的集合不可以按索引号去检索其...
2019-07-10 20:53:08
165
原创 大牛分享的几种设计模式及知识要点(完)
一、访问者模式(Visitor Pattern )定义:Represent an operation to be performed on the elements of an objectstructure. Visitor lets you define a new operation without changing the classes ofthe elements on...
2019-07-10 20:31:01
178
原创 大牛分享的几种设计模式及知识要点(四)
一、组合模式((Composite Pattern) )定义:Compose objects into tree structures to represent part-wholehierarchies.Composite lets clients treat individual objects and compositions ofobjects uniformly.(将对象...
2019-07-10 15:40:21
91
原创 大牛分享的几种设计模式及知识要点(三)
一、责任链模式定义:Avoid coupling the sender of a request to its receiver by giving more thanone object a chance to handle the request.Chain the receiving objects and passthe request along the chain un...
2019-07-09 15:55:39
111
原创 大牛分享的几种设计模式及知识要点(二)
一、代理模式(Proxy Pattern )定义:Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。)● Subject 抽象主题角色抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求。● Re...
2019-07-09 15:39:25
120
原创 23种设计模式知识要点(一)
一、单例模式(Singleton Pattern )定义:Ensure a class has only one instance, and provide a global point of accessto it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)通用代码:(是线程安全的)public class Singleton {pri...
2019-07-08 15:14:53
133
原创 阿里P8架构师对分布式系统原理的详解(不点可惜了)
一、概念1.1 模型节点在具体的工程项目中,一个节点往往是一个操作系统上的进程。在本文的模型中,认为节点是一个完整的、不可分的整体,如果某个程序进程实际上由若干相对独立部分构成,则在模型中可以将一个进程划分为多个节点。异常机器宕机:机器宕机是最常见的异常之一。在大型集群中每日宕机发生的概率为千分之一左右,在实践中,一台宕机的机器恢复的时间通常认为是24 小时,一般需要...
2019-07-07 22:28:05
122
原创 前大众点评资深研发专家深度解析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
175
原创 手写Spring MVC,阿里P7架构师手把手教你,get到了吗?
手写Spring MVC,阿里P7架构师手把手教你,get到了吗?人见人爱的Spring已然不仅仅只是一个框架了。如今,Spring已然成为了一个生态。但深入了解Spring的却寥寥无几。这里,我带大家一起来看看,我是如何手写Spring的。我将结合对Spring十多年的研究经验,用不到400行代码来描述SpringIOC、DI、MVC的精华设计思想,并保证基本功能完整。首先,我们先来介绍...
2019-07-04 15:27:34
111
原创 深入整合SSM框架引发底层原理——SpringMVC
MVC概述在Web系统开发中一般按照视图(View)、模型(Model)、控制(Controller)三层设计模式进行构建,视图层负责模型数据的渲染,将数据用一定的形式展现给用户;模型层负责监听实体的变化并对实体进行解析和封装;控制层负责提供前后端交互的请求逻辑处理入口,处理用户请求,并建立适当的模型传递给视图进行渲染。层级关系一般如下图所示:在Web开发的早期,JSP + Ser...
2019-07-03 16:31:31
659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人