1 Java架构师之路

尚未进行身份认证

暂无相关简介

等级
TA的排名 10w+

大型Java进阶专题(四) 设计模式之工厂模式

前言​ 今天开始我们专题的第三课了,开始对设计模式进行讲解,本章节介绍:了解设计模式的由来,介绍设计模式能帮我们解决那些问题以及剖析工厂模式的历史由来及应用场景。本章节参考资料书籍《Spring 5核心原理》中的第一篇 Spring 内功心法(Spring中常用的设计模式)(没有电子档,都是我取其精华并结合自己的理解,一个字一个字手敲出来的)。回顾软件设计原则在讲设计模式之前,我们一定...

2020-03-17 21:46:37

大型Java进阶专题(三) 软件架构设计原则(下)

前言​ 今天开始我们专题的第二课了,本章节继续分享软件架构设计原则的下篇,将介绍:接口隔离原则、迪米特原则、里氏替换原则和合成复用原则。本章节参考资料书籍《Spring 5核心原理》中的第一篇 Spring 内功心法(没有电子档,都是我取其精华并结合自己的理解,一个字一个字手敲出来的)。接口隔离原则​ 接口隔离原则(Interface Segregation Principke,ISP...

2020-03-13 15:07:25

大型Java进阶专题(一) 软件架构设计原则(上)

前言​ 今天开始我们专题的第一课了,也是我开始进阶学习的第一天,我们先从经典设计思想开始,看看大牛市如何写代码的,提升技术审美、提高核心竞争力。本章节参考资料书籍《Spring 5核心原理》中的第一篇 Spring 内功心法(没有电子档,都是我取其精华并结合自己的理解,一个字一个字手敲出来的)。开闭原则 开闭原则(Open-Closed Principle,OCP)是指一个软件...

2020-03-10 17:48:30

BAT大厂Netty面试题系列(2020最新版)

1.Netty 是什么?Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty是基于nio的,它封装了jdk的nio,让我们使用起来更加方法灵活。2.Netty 的特点是什么? 高并发:Netty 是一款基于 NIO(Nonblocking IO,非阻塞IO)开发的网络通信框架,对比于 BIO(Blocking I/O,阻塞IO),...

2020-03-06 22:05:45

Java容器系列-HashMap源码分析

HashMap 实现了 Map 接口。HashMap 使用的很广泛,但不是线程安全的,如果在多线程中使用,必须需要额外提供同步机制(多线程情况下推荐使用 ConCurrentHashMap)。HashMap 的类图相对简单,主要就是继承了 AbstractMap,有一点需要注意,虽然没有实现 Iterable 接口,但 HashMap 本身还是实现了迭代器的功能。本文基于 JDK...

2019-12-29 21:27:30

百万级高并发mongodb集群性能数十倍提升优化实践(上篇)

背景线上某集群峰值TPS超过100万/秒左右(主要为写流量,读流量很低),峰值tps几乎已经到达集群上限,同时平均时延也超过100ms,随着读写流量的进一步增加,时延抖动严重影响业务可用性。该集群采用mongodb天然的分片模式架构,数据均衡的分布于各个分片中,添加片键启用分片功能后实现完美的负载均衡。集群每个节点流量监控如下图所示:从上图可以看出集群流量比较大,峰值已经突破120...

2019-12-24 21:09:38

备战春招:最新京东四面面试题分享(JVM+数据库+锁+分布式)

一面自我介绍,讲讲自己的求职意向和擅长。Tomcat的基本架构是什么?jvm调优,工作的是怎么用的,垃圾回收的策略有哪些?Java 中的线程池是如何实现的?创建线程池的几个核心构造参数?对比下 volatile 对比 Synchronized 的异同。GC机制是什么?垃圾回收器的基本原理是什么?垃圾回收器可以立马回收内存吗?怎样主动通知虚拟机进行垃圾回收?类加载器双...

2019-12-19 21:37:31

「备战2020春招系列」springBoot灵魂22问

1、什么是 Spring Boot?多年来,随着新功能的增加,spring 变得越来越复杂。只需访问https://spring.io/projects 页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 s...

2019-12-19 14:18:27

2019跳槽记录——支付宝(Java面经)3轮技术面+1轮HR面

现如今跳槽已经成为程序员的一个重要话题。很少有程序员能在公司呆10年以上。对于许多程序员来说,像阿里腾讯这样的大公司也是程序员职业生涯追求的目标。另外,大家要明确的很重要的几点是:1.写在简历上的东西一定要慎重,这可能是面试官大量提问的地方;2.大部分应届生找工作的硬伤是没有工作经验或实习经历;3.将自己的项目经历完美的展示出来非常重要。笔主能力有限,如果有不对...

2019-11-04 17:11:56

美团面试MySQL 四连问,被面试官虐惨

作为一名后端开发,MySQL的使用必不可少,合理的使用索引和索引调优是后端开发者必须掌握的技能之一。在日常数据库的问题当中,不合理的使用索引占大部分。MySQL是大家工作上最常用的关系型数据库之一,也是面试上必问的知识点。我们在学会建库、创表等基本操作之后就停止了对MySQL的整个深度的学习与专研。但随着互联网业务的快速发展。对于数据库的高并发,高可用等指标的要求也越来越高,所以这个时...

2019-10-30 22:00:29

开发者如何看 Java 发展趋势?

Java 作为一门长青的编程语言,在比较长的发展时间里,时常会有唱衰的声音。但 Java 一直在不断向前发展,受欢迎程度也一直很高,TIOBE 榜单常年保持在 Top 2,未来 Java 将如何发展呢?本文搜集了一些国外开发者和相关从业人员的看法。最 Hot 的 Java 应用场景在纷繁复杂的编程语言中,Java 一直是深受开发者和企业欢迎的编程语言。从 2001 年起,Java 在 ...

2019-10-23 16:34:25

分析源码,学会正确使用 Java 线程池

在日常的开发工作当中,线程池往往承载着一个应用中最重要的业务逻辑,因此我们有必要更多地去关注线程池的执行情况,包括异常的处理和分析等。本文主要聚焦在如何正确使用线程池上,以及提供一些实用的建议。文中会稍微涉及到一些线程池实现原理方面的知识,但是不会过多展开。线程池的异常处理UncaughtExceptionHandler我们都知道Runnable接口中的run方法是不允许抛出异常的,因...

2019-10-21 17:05:55

Java程序员不想被裁员困扰,应该怎样发展才能越走越远?

当我们站在技术之路的原点,未来可能充满了迷茫,也存在着很多不同的可能。在这个知识爆炸与终身学习/碎片化学习为主的时代,我们面临的问题之一就是如何进行有效学习,不仅能有效平衡广度与深度,并且能真正的积淀下来,提升自己的研发效能。于笔者而言,常常郁结于胸的就是以下三个问题:应该学习什么?这是怎样的一个技术世界?存在着怎样的高峰与路径?如何克服遗忘带来的无效学习?如何不再碎片化地学习?究...

2019-10-20 17:25:55

谷歌临时工达 12 万,外包程序员的出路在哪里?

自从互联网诞生开始进入商业领域运后,很多国内外的高科技公司一直对外宣传他们的企业文化,最常见的关键词就是“扁平化管理”,“高福利”,“高薪资”,“平等”,"人性化" 等等。与传统企业相比较,高科技企业的风格总是很令人憧憬和向往。谷歌公司,为员工提供免费交通车,以及奢华的食堂,每栋大楼都有咖啡厅和餐厅,每个餐饮都有自己的餐饮风格,来满足世界各地的员工;还有健身房、单车、排球、篮球、保龄球、攀...

2019-10-15 22:21:06

程序员经典面试题,高并发系统,一般需要怎么做

高并发系统总是那么令人着迷,比如说双十一的抢购,比如说12306的抢票,都是非常经典的高并发的例子,也是非常大的挑战。对于开发这样系统的人来说,最怕的就是突发的流量,就好比河流突发大水而引发洪涝灾害一样,突发的流量也会引起服务器奔溃。为了应对这些突发的流量,我们总需要做点什么?今天我们来介绍一下高并发的几个套路。分布式提升并发的好的办法,便是提升硬件。举个大家都熟悉的例子,十年前的...

2019-10-12 21:33:50

Java开发,大专毕业两年,我成了全班最早进大厂的人

我,大专学历,曾经的软件专业优秀毕业生,今年24岁,进了大厂,公司见我上班辛苦,特地给我配了一辆车。我成了全班最早进大厂的人,同时我也用实际行动告诉了他们,只要有实力大专学历也可以进大厂。其实也没什么值得骄傲的,我也并没有在这里显摆啥,我接下来就讲讲我这两年的艰苦奋斗,只要你也能做到,大厂谁都可以进的。大学期间,我学的专业是软件工程,主修Java语言和C++语言,我个人更偏...

2019-10-11 21:58:34

作为一名程序员,没有谁没跳过槽,跳槽“6招”进大厂

作为一名程序员,没有谁没跳过槽撇开在跳槽时对所“空降”的企业所需要的行业知识知根知底而“得心应手”,从而“稳定”外,其他人可能或多或少都有过因“不适应”新单位环境而又被迫再离开的厄运,以至于在再“找工作”时因为不能“骑马选马”而每况日下!有32.98%的开发者在过去一年(2013)中曾换过工作,其中有72.5%的人实现了薪资上涨。而在未换工作的开发者中,约有59.3%的开发者同样...

2019-09-25 21:54:28

阿里Java后端工作多年老菜鸟的感悟!以及学习成长进阶之路

从事软件这个行业也有六年了,第一次写博文,比较紧张。那么,我写这篇博文的目的是什么呢?从事了六年软件行业,从开始的小菜鸟变成了有六年工作经验的老菜鸟?有时静下来想想,真没学到什么,黄金的六年时间,我不停的在Coding,不停的在Ctrl+C 、Ctrl+V。记得从开始学会复制、粘贴解决了问题之后,总是沾沾自喜,“问题解决了!” ,到现在尝试想自己解决问题却没有头绪的苦恼。...

2019-09-23 22:01:42

实战分布式之电商高并发秒杀场景总览

前言本文是新系列“实战高并发”的开篇作。这个系列作为“我说分布式”的子系列,将着重挑选若干典型的分布式实战场景,尽量对当下高并发领域较为热门的架构及业务场景做一次较为深入的实践与总结。该系列既是对笔者接触过的业务的整理,也希望系列中分享的套路能够对读者朋友解决实际业务中面临的问题有所帮助。言归正传,本文我将主要从业务场景及技术架构等方面出发,对”电商高并发秒杀”这一业务场景做一次较为全...

2019-09-20 16:32:56

颠覆微服务认知:深入思考微服务的七个主流观点

一、逃离单体系统,拥抱微服务?单体系统和微服务的区别在于,一个单体系统是一个大而全的功能集合,每个服务器运行的是这个应用的完整服务。而微服务是独立自治的功能模块,它是生态系统中的一部分,和其他微服务是共生关系。现在,业界对单体系统和微服务的普遍观点是:单体系统非常容易开发、测试、部署,但是单体系统面对的问题也很多,例如开发效率变低、维护成本增加、部署影响变大、可扩展性较差、技术选型成本高,而引...

2019-09-18 21:58:14

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。