第一章 Java EE简介 Java EE 有相应的规范实现,包括但不限于: Web 支持 事务支持 消息服务 数据库持久层 Container JWS JAX-RS JNDI JAXP/JAXB JAX-RPC JACC Java EE Application Server 所有这些规范和技术组成Java EE架构: Java EE的缺点: 过于复杂: 追求分布式: 不能及时与流行开源技术结合: Java EE 应用服务器收费. spring的提出,核心功能仅仅只是Aop和IoC,发展如火如荼…
大家好,我是对白. 阿里 P8 程序员年薪百万已经是公开的秘密了,有人关心他们年薪百万,而我更加关注阿里这些 P8.P9 程序员的成长故事,在聊这些大牛的故事之前,跟大家稍微简单聊下阿里技术人等级制度. P5:校招生为主 P6:独立的执行者,独立完成自己的工作 P7:行业的顾问,能对行业发展做出一定准确的判断 P8:行业的创新者,能结合判断有一定的创新 P9:行业的颠覆者,能使创新对行业产生一定的颠覆 P10:行业的领袖,打造和引领行业 P11:副总裁 P12 .P13:各事业部负责人 P14:…
简介 作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术的妹子看你时眼神迷离,就好想落霞与孤鹜齐飞! 分布式架构是一个非常复杂的体系,任何技术都不是孤立的存在,任何技术都无法适应所有场景.作为一名分布式系统架构或者资深研发人员,我们必须尽可能多的学习与之相关的各种知识,掌握各种技术的演进路线,正式从一名码农蜕变成为架构师 什么是分布式? 互联网应用的特点…
更多内容:https://www.toutiao.com/i6599796228886626829/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1&timestamp=1542253804&app=news_article&utm_source=weixin&iid=50908871866&utm_medium=toutiao_android&group_id=6599796…
本文转载自:阿里P8架构师谈:数据库分库分表.读写分离的原理实现,使用场景 为什么要分库分表和读写分离? 类似淘宝网这样的网站,海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性提出很高的要求.随着时间和业务的发展,数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大:另外,无论怎样升级硬件资源,单台服务器的资源(CPU.磁盘.内存.网络IO.事务数.连接数)总是有限的,最终数据库所能承载…
前言 Netty是一款用于快速开发高性能的网络应用程序的Java框架.它封装了网络编程的复杂性,使网络编程和Web技术的最新进展能够被比以往更广泛的开发人员接触到. Netty不只是一个接口和类的集合;它还定义了一种架构模型以及一套丰富的设计模式.但是直到现在,依然缺乏一个全面的.系统性的用户指南,已经成为入门Netty的一个障碍. 面对这种情况特意给大家分享一波阿里P8费心整理Netty实战+指南+项目白皮书技术文档,希望大家能够喜欢!!! Netty实战:共分4个部分 本文是为想要或者正在使…
自我介绍 首先简单自我介绍一下,我叫陈映平,花名叫做小卡,2011年校招进入腾讯,是腾讯课堂B侧的前端技术负责人.2015年响应总理的号召,跟朋友一起出来创业,跟前面一位讲师的经历有点像,然后2018年回到腾讯,主要负责NOW直播相关的业务,包括NOW商业化.NOW独立版等. 今年的三月底,因为家庭的原因来到了杭州,加入了阿里巴巴CBU技术部-前端体验技术团队,职级是P8,目前负责的主要是内容跟营销方向,包括采源宝.淘卖,以及现在风口上的业务,1688电商直播. 接下来分享一下我是如何拿到阿里P…
转: Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战 Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口. 一个完整的Docker有以下几个部分组成: dockerClient客户端 Docker Daemon守护进程 Docker Image镜像 DockerContainer容器…
前言 作为一名开发人员,每天英高都在和数据库进行着斗智斗勇,尤其是互联网行业,对MySQL的使用是比较多的.同样的,因为mysql的重要性以及普及性,在面试的时候一定是一个面试的重点或者说常问问题,说的在精确一点,对于实践以及底层的问题会是面试时区分你和竞争者的一个标准,那么,对于mysql都需要准备那些东西呢?看下面这张图 相信看完这张图,有的老铁会在内心不断地diss,这怎么玩,这么多,开玩笑呢?没关系,就像我们上学的时候期末考试画重点一样,阿里P8来为你划重点了(MySQL),还不快来看一…
转载:http://www.neitui.me/y/1019 阿里P8分享:关于做事方式与做事态度贴图1: 贴图2: 贴图3:…
最近在网上发现一份非常棒的 PDF 资料,据说是阿里 P8 级高级架构师吐血总结的, 其中内容覆盖很广,包括 Java 核心基础.Java 多线程.高并发.Spring.微服务.Netty 与 RPC.Zookeeper.Kafka.RabbitMQ.Habase.设计模式.负载均衡.分布式缓存.Hadoop.Spark.Storm.云计算等. 获取方式: 关注公众号: [小哈学Java], 后台回复[资源],既可免费无套路获取资源链接,下面是目录以及部分截图: 重要的事情说两遍,关注公众号:…
缘起 随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑.快速迭代的目的越来越难,还有应用之间的互相调用等等问题,插件化技术应用而生.如果没有插件化技术,美团.淘宝这些集成了大量"app"的应用,可能会有几个g那么大. 所以,当今的Android移动开发,不会热修复.插件化.组件化,80%以上的面试都过不了. 阿里P8大佬每天熬夜到凌晨一两点,花了将近半个月时间将Android热修复框架.插件化框架.组件化框架.图片加载框架.网络访问框架.RxJ…
工作3—5年后,程序员们的成长将迈入一个全新阶段.这既是程序员们的黄金时期同时又是最迷茫的时期,因为大家必须要要思考一下今后的职业方向. 3—5年程序员的发展和出路在哪里? 是继续做技术人,还是向管理者发力?是继续留在大公司,还是转投潜力小公司?如果没有核心竞争力,入行一两年的新程序员朋友是可以替代你大部分工作的,而且薪资还低,要怎么办,何去何从? 中坚力量的程序员们,是相对稳定的一群人,整体跳槽率低于三年以下经验的程序员,但是结合开头的迷茫,这个稳定其实也有点尴尬. 5年的程序员们正在面临的窘…
做后端的同学,总是绕不开MySQL. 毫无疑问,MySQL 是当下最流行的开源数据库.凭借强大的性能和易于使用性,它已被Google.Facebook.YouTube.百度.网易和新浪等大型互联网公司所应用.更有统计,世界上一流的互联网公司中,排名前20的有80%都是 MySQL 的忠实用户. 但我发现,许多人都对如何学习和应用 MySQL 比较迷茫,从开发技巧到管理维护,从性能问题到安全问题,想要一一搞懂,都不是容易的事儿. 好在,栈长之前拜师了一位数据库大佬--丁奇.我想你多多少少听过他的名…
前言 最近老是有粉丝私信我说感觉自己学java越来越难了,这其中有刚毕业的应届生说自己的技术找不到满意的工作,也有在学校的大学习说找不到学习方式,更多的是正在工作的java开发人员说是现在的技术更新太快,自己很难跟得上大厂的需求跳槽太难!针对粉丝跟我说的这些情况我为大家整理了java全栈的这一套学习路线,深入浅出,简单好学!满满的干货都放在下面了! Java 入门 学什么? Java 语言从诞生到现在已经有20多年了,从Tiobe排行榜上来看,Java 语言常年霸榜经久不衰,所以不要怕学完 Ja…
蚂蚁金服,可能是众多程序猿眼中梦寐以求的归宿,无数拿过数不清奖状的各个高校走出的学子精英都挤破头皮,只为能在蚂蚁占有一席之地. 蚂蚁金服里不乏各种深藏不露的大佬,到了那里才会深刻明白一山还有一山高这句话究竟是什么意思. 有这么一位大佬,年纪轻轻就评为全球35位35岁以下科技创新青年,是不是觉得肯定是清华北大出来的少年天才?又或是耶鲁哈佛这种海归名校渡过金的高高在上之人?如果你有机会进入到这位大佬的团队,他会笑着对你说学霸你好,我是个学渣,我没上过大学. 没错,红雪,蚂蚁金服的资深研究员,带领着数…
Java学习这一部分是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍.这一部分的内容,同样适用于一些希望转行到Java的同学. 在大家看之前,我要先声明两点.1.由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬.2.下…
一.性能测试 Ⅰ.测试方法 微基准性能测试 可以精准定位到某个模块或者某个方法的性能问题,例如对比一个方法使用同步实现和非同步实现的性能差异 宏基准性能测试 宏基准性能测试是一个综合测试,需要考虑到测试环境.测试场景和测试目标 测试环境:模拟线上的真实环境 测试场景:在测试某个接口时,是否有其他业务的接口也在平行运行,进而造成干扰 测试目标 可以通过吞吐量和响应时间来衡量系统是否达标,如果不达标,就需要进行优化 如果达标,就继续加大测试的并发数,探底接口的TPS 除了关注接口的吞吐量和响应时间外…
一.数据库结构的设计 1.数据行的长度不要超过8020字节,如果超过这个长度的话在物理页中这条数据会占用两行从而造成存储碎片,降低查询效率. 2.能够用数字类型的字段尽量选择数字类型而不用字符串类型的(电话号码),这会降低查询和连接的性能,并会增加存储开销.这是因为引擎在处理查询和连接会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了. 3.对于不可变字符类型char和可变字符类型varchar 都是8000字节,char查询快,但是耗存储空间,varchar查询相对慢一些但是节…
一.什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒. 二.线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务.不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间.每个线程都拥有单独的栈内存用来存储本地数据. 三.如何在Java中实现线程?…
转载来源:https://youzhixueyuan.com/the-difference-between-restful-soap-rpc-soa-and-micro-service.html 内容大纲: 1.介绍Restful.SOAP.RPC.SOA以及微服务 2.重点谈谈SOA与微服务的区别 3.以及为什么要使用微服务架构 什么是Restful Restful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Restful架构或服务.…
引言 现在各大技术社区 Spring Boot 的文章越来越多,Spring Boot 相关的图文.视频教程越来越多,使用 Spring Boot 的互联网公司也越来越多: Java 程序员现在出去面试, Spring Boot 已经成了必问的内容. 一切都在证明,Spring Boot 已经成为了 Java 程序员必备的技能.并且可以预见的是未来 Spring Boot 的发展还会更好. 所以对Java程序员来说其中不乏说对 Spring Boot 非常熟悉的,然后当问到一些 Spring B…
本书特色 本书有两个特色,第一特色是重视过程.看了太多的计算机编程类的图书,大多数书籍都是集中在讲授优秀的解决方案或者一个完美的程序样例,但对这些解决方案和程序的演变过程却重视不够,好书之所以好,就是因为作者可以站在学习者的角度去讲解问题所在,让学习门槛降低.<重构与模式>中有一句经典之语:“如果想成为一名更优秀的软件设计师,了解优秀软件设计的演变过程比学习优秀设计本身更有价值,因为设计的演变过程中蕴藏着大智慧.”本人就希望能通过小菜与大鸟的对话,在不断地提问与回答过程中,在程序的不断重构演变…
一直以来,Spring都被Java程序员视为杀手级别的应用,是为简化Java EE应用程序的开发为目标而创建的.Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(DI)和面向切面编程(AOP). 下面我们来看一下Spring的模块,看看它们是如何构建起Spring整体蓝图的. 经过十多年的发展,Spring 框架如今就像一个家族,有众多衍生产品,涵盖J2EE开发.依赖维护.移动开发以及微服务等众多领域.在Spring的诸多项…
大家先思考一个问题,这也是在面试过程中经常遇到的问题. 如果你们公司现在的产品能够支持10W用户访问,你们老板突然和你说,融到钱了,会大量投放广告,预计在1个月后用户量会达到1000W,如果这个任务交给你,你应该怎么做? 1000W用户的问题分解 如何支撑1000W用户其实是一个非常抽象的问题,对于技术开发来说,我们需要一个非常明确的对于执行关键业务上的性能指标数据,比如,高峰时段下对于事务的响应时间.并发用户数.QPS.成功率.以及基本指标要求等,这些都 必须要非常明确,只有这样才能够指导整个…
问题:maven仓库无法找到taobao-sdk-java-auto-1.0.jar包 目的:将jar包添加到maven项目中 1.在官网下载jar包 2.将jar包放在d盘 3.mvn install:install-file -Dfile=d:/taobao-sdk-java-auto-1.0.jar -DgroupId=taobao-sdk-java-auto -DartifactId=taobao-sdk-java-auto -Dversion=1.0 -Dpackaging=jar 4…
本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述.图文并茂不生枯燥. 此PPT长达46页,全部展示篇幅过长,本文优先分享前十六页作为展示. 好东西当然要分享,转发+关注,然后私信回复“JVM46”即可免费获取的本PPT的领取方式. 导航 JVM体系结构概览 常用GC算法 复制 标记-清除 标记-压缩 Sun HotSpot 内存管理 新生代 旧生代 Sun HotSpot 垃圾回收器 一些术语 新生代可用GC…
秒杀是电商业务里的标志性事件,这样的典型高并发场景会遇见什么样的挑战呢,然后又是如何来解决的呢? 秒杀活动场景 淘宝双11秒杀场景,大量的用户短时间内涌入,瞬间流量巨大(高并发),比如:1000万人同一时间抢购100件商品.秒杀活动是一个特别考验后台数据库.缓存服务的业务,对于数据库.缓存的性能要求特别严格. 秒杀背后的技术挑战 1.突增的服务器及网络需求 通常情况下,双 11 的服务器使用是平时的 3-5 倍,网络带宽是平时 N倍. 2.业务高并发,服务负载重 我们通常衡量一个 Web 系统的…
随着大数据.公共平台等互联网技术的日益成熟,API接口的重要性日益凸显,从公司的角度来看,API可以算作是公司一笔巨大的资产,公共API可以捕获用户.为公司做出许多贡献.对于个人来说,只要你编程,你就是一个API设计者,因为好的代码即是模块——每个模块便是一个API,而好的模块会被多次使用.此外,编写API还有利于开发者提高代码质量,提高自身的编码水平. 优秀API所具备的特征: 简单易学: 易于使用,即使没有文档: 很难误用: 易于阅读,代码易于维护: 足够强大,可以满足需求: 易于扩展: 适…
线程池的概念 线程池由任务队列和工作线程组成,它可以重用线程来避免线程创建的开销,在任务过多时通过排队避免创建过多线程来减少系统资源消耗和竞争,确保任务有序完成:ThreadPoolExecutor 继承自 AbstractExecutorService 实现了 ExecutorService 接口,ScheduledThreadPoolExecutor 继承自 ThreadPoolExecutor 实现了 ExecutorService 和 ScheduledExecutorService 接…