![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 83
qq_41534566
这个作者很懒,什么都没留下…
展开
-
《人工智能(第二版)》入门新人必读的一本神书(文末送书)
直接进入主题,今天送书!对于支持咕泡人工智能的粉丝,我们向来是忠诚的。今天要送的这本书叫《人工智能(第二版)》作者简介:史蒂芬·卢奇(Stephen Lucci) 拥有纽约市立大学的博士学位,目前在纽约市立大学教授计算机科学课程。他曾在高性能计算领域发表了多篇论文,并且是NASA发起的MU-SPIN项目的学术带头人。MU-SPIN项目旨在为NASA培养下一代*尖的科...原创 2019-08-16 22:01:08 · 1556 阅读 · 4 评论 -
阿里大牛解析分库分表后如何部署上线
引言我们先来讲一个段子面试官:“有并发的经验没?”应聘者:“有一点。”面试官:“那你们为了处理并发,做了哪些优化?”应聘者:“前后端分离啊,限流啊,分库分表啊。。”面试官:"谈谈分库分表吧?"应聘者:“bala。bala。bala。。”面试官心理活动:这个仁兄讲的怎么这么像网上的博客抄的,容我再问问。面试官:“你们分库分表后,如何部署上线的?”应聘者:“这!!!!!!”...原创 2018-09-18 15:47:52 · 762 阅读 · 0 评论 -
年薪50w年薪的架构师他的学习体系是什么
Web应用,最常见的研发语言是Java和PHP。后端服务,最常见的研发语言是Java和C/C++。大数据,最常见的研发语言是Java和Python。 可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,除了掌握Java语法,还要系统学习哪些Java相关...原创 2018-09-12 22:10:59 · 1134 阅读 · 0 评论 -
消息队列mq总结
一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。...原创 2018-09-16 17:41:07 · 149 阅读 · 0 评论 -
金九银十总结面试套路为你收割BAT大厂offer
先总结一下技术面流程:让你做自我介绍(准备好) 看看你简历,说你对这个比较熟?balabla...你问的简单就熟,问的难不好意思不太了解 看看你实习经历,让你介绍实习干啥了,有没有什么大项目能拿得出手,干聊10-20分钟的 问问职业规划。这里表现出你态度的虔诚,不会乱跳槽,踏踏实实的干,让他感受到你想进这家公司,两眼能放光就更好了... 大佬们可以海吹一波 你有啥子问题。我一般预备两个...原创 2018-09-16 15:05:39 · 465 阅读 · 0 评论 -
记一次带崩项目的悲惨经历
我是一名项目经理,在过去的四个月里,我把一个项目带崩了(上线后频出问题,用户无法使用)。在最近的几天,我每天都在反思自己,我都在问自己以下几个问题:1.我做错了什么?2.我在其中占有多重的因素?以下内容,我将回答以上问题,并在最后说一下我的补救措施。项目和团队背景首先给大家说明一下项目背景,以便各位对此项目有更清晰的了解:1.该项目是一个二次开发项目,第一个基础版本(打印申报系统...转载 2018-09-08 19:34:45 · 184 阅读 · 0 评论 -
搞定计算机网络面试,看这篇就够了
一 OSI与TCP/IP各层的结构与功能,都有哪些协议五层协议的体系结构学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。 结合互联网的情况,自上而下地,非常简要的介绍一下各层的作用。1 应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特...原创 2018-08-22 14:40:02 · 218 阅读 · 0 评论 -
今天我们来聊聊java开发者的基础应用(下层基筑决定上层高度)
一、命名风格【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion【强制】方...原创 2018-04-21 16:22:58 · 467 阅读 · 0 评论 -
百度资深架构师带你深入浅出一致性Hash原理
一、前言在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进。二、一致性Hash概述为了...原创 2018-04-13 17:49:29 · 333 阅读 · 0 评论 -
BAT等大型互联网公司的网站架构演化历程
大型网站系统的特点高并发,大流量需要面对高并发用户,大流量访问。Google 日均 PV 35 亿,日 IP 访问数 3 亿;腾讯 QQ 的最大在线用户数 1.4 亿(2011年数据)。高可用系统 7 x 24 小时不间断服务。海量数据需要存储、管理海量数据,需要使用大量服务器。Facebook 每周上传的照片数量接近 10 亿,百度收录的网页数目有数百亿,Google 有近百万台服务器为全球用户...转载 2018-04-12 17:15:18 · 813 阅读 · 0 评论 -
京东架构专家分享京东架构之路(你和高薪架构师差的不是年龄)
京东咚咚架构演进咚咚是什么?咚咚之于京东相当于旺旺之于淘宝,它们都是服务于买家和卖家的沟通。 自从京东开始为第三方卖家提供入驻平台服务后,咚咚也就随之诞生了。 我们首先看看它诞生之初是什么样的。1.0 诞生(2010 - 2011)为了业务的快速上线,1.0 版本的技术架构实现是非常直接且简单粗暴的。 如何简单粗暴法?请看架构图,如下。1.0 的功能十分简单,实现了一个 IM 的基本功能,接入、互...原创 2018-04-11 16:05:47 · 4934 阅读 · 0 评论 -
百度资深架构师总结微服务化的不同阶段 Kubernetes 的不同玩法
微服务化的不同阶段 Kubernetes 的不同玩法作为容器集群管理技术竞争的大赢家,Kubernetes已经和微服务紧密联系,采用Kubernetes的企业往往都开始了微服务架构的探索。然而不同企业不同阶段的微服务实践面临的问题千差万别,注定要在技术路线上产生分叉。如何选择适合自己的技术,是每一个践行微服务的团队面临的第一个问题。网易云是Kubernetes的第一批重度用户,在不同业务场景下解决...原创 2018-04-16 16:29:31 · 364 阅读 · 0 评论 -
资深架构师与你谈谈微服务架构中的Service Mesh与Istio
微服务架构的演进作为一种架构模式,微服务将复杂系统切分为数十乃至上百个小服务,每个服务负责实现一个独立的业务逻辑。这些小服务易于被小型的软件工程师团队所理解和修改,并带来了语言和框架选择灵活性,缩短应用开发上线时间,可根据不同的工作负载和资源要求对服务进行独立缩扩容等优势。另一方面,当应用被拆分为多个微服务进程后,进程内的方法调用变成了了进程间的远程调用。引入了对大量服务的连接、管理和监控的复杂性...原创 2018-04-10 16:30:18 · 1557 阅读 · 0 评论 -
阿里大牛分享微服务项目历程
前言今天是9月17日,趁着山竹的临幸,得以在家里舒适的办公。项目从3月底开始,至今刚好半年。抽几十分钟,总结下半年的历程。对后面的项目,应该也有一点帮助吧。学习前的七个问题项目开始前,由于某些特殊的原因,对spring cloud一无所知(甚至听都没听过,希望这种情况今后不再出现),所以我用手机的markdown软件Lite马上记录了7个疑问。我相信,不知道多少天后,这些疑问看起来将多...原创 2018-09-18 17:44:39 · 755 阅读 · 0 评论 -
阿里大牛解析高并发请求的缓存设计策略
前几天,我司出了个篓子。当时正值某喜闻乐见的关键比赛结束,一堆人打开我司app准备看点东西,结果从来没有感受到过这么多关注量的该功能瞬间幸福到眩晕,触发了熔断,结果就是大量兴致冲冲打开app准备看该比赛结果的人被迫刷了十分钟三天前的野外跑酷,负责内容的人火大到直接骂娘。虽然这个业务不是我负责,但是也跟相关的人聊了下情况,感慨了一下,于是有了这一篇文章。1.为何需要缓存?在高并发请求时,...原创 2018-09-19 15:47:35 · 217 阅读 · 0 评论 -
干货分享!价值6亿的代码到底长什么样子?
价值6亿美刀的代码量是多少?如果一个工程师写代码要赚6亿美元,那他大概需要写多少代码呢?前段时间,Google工程师RaymondFarias在社交媒体说道,一名高效的谷歌工程师每天大概会写 100-150行代码。倘若以这个谷歌工程师为例,全年无休不间断写代码,一年时间写的代码量预估为54750行。而据领英数据统计,谷歌工程师薪酬一般在20万-100万美元不等。倘若这个工程师是10...原创 2019-08-16 14:10:13 · 635 阅读 · 0 评论 -
逆天!996程序员有救了,竟是价值3亿美元AI帮的忙!
最近,IBM公司CEO罗睿兰在采访中说:“我们拥有35万名员工,每天都会收到超过8000份简历。”人多必然面临着管理问题。但他们开发了一套“AI黑科技”,据称可以准确预测员工离职动向,准确度达95%!目前,这个AI已为IBM省了近3亿美元的员工留存成本!罗睿兰表示,让每一个员工清晰地看到职业发展很重要。但很多公司一味加班,只会让这个问题变得越来越严重。程序员在996的情况下...转载 2019-05-08 10:06:23 · 402 阅读 · 0 评论 -
设计一个百万级的消息推送系统
前言首先迟到的祝大家中秋快乐。最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两天转载 2018-09-30 19:20:42 · 214 阅读 · 0 评论 -
必知必会JVM垃圾回收——对象搜索算法与回收算法
垃圾回收(GC)是JVM的一大杀器,它使程序员可以更高效地专注于程序的开发设计,而不用过多地考虑对象的创建销毁等操作。但是这并不是说程序员不需要了解GC。GC只是Java编程中一项自动化工具,任何一个工具都有它适用的范围,当超出它的范围的时候,可能它将不是那么自动,而是需要人工去了解与适应地适用。拥有一定工作年限的程序员,在工作期间肯定会经常碰到像内存溢出、内存泄露、高并发的场景。这时候在应对...原创 2018-09-28 19:24:31 · 340 阅读 · 0 评论 -
史上最全Java面试266题:算法+缓存+TCP+JVM+搜索+分布式+数据库
JAVA基础JAVA中的几种基本数据类型是什么,各自占用多少字节。String类能被继承吗,为什么。String,Stringbuffer,StringBuilder的区别。ArrayList和LinkedList有什么区别。讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,他们的执行顺序。用过哪些Map类,都有什么区别,H...原创 2018-09-27 14:49:54 · 318 阅读 · 0 评论 -
如何优雅的落地一个微型分布式架构
设计该系统初衷是基于描绘业务(或机器集群)存储模型,分析代理缓存服务器磁盘存储与回源率的关系。系统意义是在腾讯云成本优化过程中,量化指导机房设备扩容。前半部分是介绍背景,对CDN缓存模型做一些理论思考。后半部分会实际操作搭建一个微型但是五脏俱全的分布式通用系统架构,最后赋予该系统一些跟背景相关的功能,解决成本优化中遇到的实际问题。缓存服务器存储模型架构(背景): 图1 存储模型...原创 2018-09-21 14:46:34 · 155 阅读 · 0 评论 -
基于ZooKeeper,Spring设计实现的参数系统
一、简介 基于ZooKeeper服务端、ZooKeeper Java客户端以及Spring框架设计的用于系统内部进行参数维护的系统。二、设计背景 在我们日常开发的系统内部,开发过程中最常见的一项工作便是常用参数的维护,从我学习Java以来,参数的配置多样化,最常见的方式是properties配置文件或者是xml配置文件,高深点的用法是JMX MBean进行参数管理以及数据库参数配...原创 2018-09-26 17:05:25 · 393 阅读 · 0 评论 -
分布式系统消息中间件——RabbitMQ的使用进阶篇
一 mandatory 参数上一篇文章中我们知道,生产者将消息发送到RabbitMQ的交换器中通过RoutingKey与BindingKey的匹配将之路由到具体的队列中以供消费者消费。那么当我们通过匹配规则找不到队列的时候,消息将何去何从呢?Rabbit给我们提供了两种方式。mandatory与备份交换器。mandatory参数是channel.BasicPublish方法中的参数。其主要...原创 2018-09-26 14:22:23 · 153 阅读 · 0 评论 -
阿里资深HR总结Java面试答题总结
1.1 编译型语言VS解释型语言编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。因此效率比较高。比如 C 语言。解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程序,每个语句都是执行的时候才翻译。C...转载 2018-09-20 17:55:30 · 2363 阅读 · 0 评论 -
为何选择Dubbo它的优势是什么
1. 前言随着现在互联网行业的发展,越来越多的框架、中间件、容器等开源技术不断地涌现,更好地来服务于业务,实现业务并解决问题。然而面对众多的技术选择,我们要如何甄别出适合自己团队业务的技术呢?对于人来说,鞋子过大,可能影响奔跑的速度,鞋子过小,可能影响身体的成长。技术对于业务也是如此的关系。所以,相对于技术的学习、搭建、使用、运维等技能,我们 对技术的甄别选择更是重中之重。那么本文要讲的D...原创 2018-09-20 17:24:38 · 6897 阅读 · 0 评论 -
浅谈JVM内存管理
1. JVM内存管理机制在进行Java程序设计时,一般不涉及内存的分配和内存回收的相关代码,此处引用一句话:Java和C++之间存在一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外的人想进去,墙里面的人想出来,个人从这两句话中,捕获到了两个点。java的自动内存管理机制,极大的节省了开发人员的精力,避免了易错且复杂的内存管理设计,相对于手动的内存管理这是极大的飞跃。 java自动内存管...原创 2018-09-14 19:19:37 · 214 阅读 · 0 评论 -
十年Java开发者分享分布式之消息队列
为什么写这篇文章?博主有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。 小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点说,就是...转载 2018-09-19 15:58:59 · 406 阅读 · 0 评论 -
阿里P8架构专家关于Java代码优化的N条建议!
就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸鱼自然饱了。代码优化一样,也许一个两个的优化,对于提升代码的运行效率意义不大,但是只要处处都能注意代码优化,总体来说对于提升代码的运行效率就很有用了。这个观点,在现在看来,是要进行代码优化的一个原因,但不全对。在机械工艺发展的今天,服务器动辄8核、16核,64位CPU,代码执行效率非常高,StringBuilder替换...原创 2018-04-10 15:14:22 · 274 阅读 · 0 评论 -
百度资深架构师的Java面试通关框架指导
SpringBeanFactory 和 ApplicationContext 有什么区别BeanFactory 可以理解为含有bean集合的工厂类。BeanFactory 包含了种bean的定义,以便在接收到客户端请求时将对应的bean实例化。BeanFactory还能在实例化对象的时生成协作类之间的关系。此举将bean自身与bean客户端的配置中解放出来。BeanFactory还包含了bean生...原创 2018-04-09 14:23:02 · 130 阅读 · 0 评论 -
手写Servlet 到 Spring MVC 的简化之路
背景Servlet和JSP是开发Java Web应用程序的两种基本技术,Spring MVC是Spring框架中用于开发Web应用的一个模块。相信大家也和我一样,是从编写Servelt和JSP开始,然后一步步向Spring MVC靠拢。那么Spring MVC到底简化了Servlet什么地方,使Spring MVC成为Web应用开发的首选框架呢,本文将会就这个方面进行探讨。Servlet简介什么是...原创 2018-03-08 14:48:45 · 509 阅读 · 0 评论 -
阿里资深架构师的学习之路
本文要点阅读和理解是不够的,你还需要记住你学的内容。进行主动阅读——你的大脑充分理解这些概念并将它变成你自己的东西。放慢你的大脑,做有创意的笔记,而且反复阅读是没有用的,测验才有效。经常反思你读过的东西并进行联想。管理你的学习队列和“离线存储”(例如书签、印象笔记或者wikis)。“他忘记的比你知道的还要多?”,那个人指的就是我。我成为一名开发者已经三十多年了,忘记过不少知识。但问题是:我现在知道...原创 2018-03-14 19:45:30 · 912 阅读 · 0 评论 -
保证分布式系统数据一致性的6种方案
在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性?具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。为了便于讨论问题,先简单介绍下数据一致性的基础理论。强一致当...原创 2018-03-07 15:23:17 · 316 阅读 · 0 评论 -
阿里P8的架构实践之Nginx实践
背景介绍: 阿里云,512M内存(最屌丝配置),搭建lamp 环境,除去 mysql分配了100M左右(这个不能再少了),http竟然占用了200多M,太庞大,决定换为较轻量级,高并发的nginx。背景数据如下图所示:系统也就500M ,出了mysql占用的100M, httpd 占了1/2 还多(经常达到十几个进程),剩余50M,有时更少不能忍,经常造成数据库崩掉,写了个自动重启脚本,但觉的不是...原创 2018-02-27 14:37:56 · 592 阅读 · 0 评论 -
MySQL索引和SQL调
MySQL索引MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引。MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。转载 2018-01-29 17:40:58 · 124 阅读 · 0 评论 -
面试必问的volatile,你了解多少?
前言Java中volatile这个热门的关键字,在面试中经常会被提及,在各种技术交流群中也经常被讨论,但似乎讨论不出一个完美的结果,带着种种疑惑,准备从JVM、C++、汇编的角度重新梳理一遍。volatile的两大特性:禁止重排序、内存可见性,这两个概念,不太清楚的同学可以看这篇文章 -> java volatile关键字解惑概念是知道了,但还是很迷糊,它们到底是如何实现的?本转载 2018-01-27 16:27:12 · 325 阅读 · 0 评论 -
java动态代理机制--那些让你面试脱颖而出的技能
retrofit是一个解耦性非常高的网络请求框架,最近在研究的时候发现了动态代理这个非常强大且实用的技术,这篇文章将作为retrofit的前置知识,让大家认识:动态代理有哪些应用场景,什么是动态代理,怎样使用,它的局限性在什么地方?#动态代理的应用场景1. AOP—面向切面编程,程序解耦简言之当你想要对一些类的内部的一些方法,在执行前和执行后做一些共同的的操作,而在方法中执行个性化原创 2018-01-26 15:40:31 · 141 阅读 · 0 评论 -
微服务架构技术栈选型手册
一、前言2014 年可以认为是微服务 1.0 的元年,当年有几个标志性事件,一是 Martin Fowler 在其博客上发表了”Microservices”一文,正式提出微服务架构风格;二是 Netflix 微服务架构经过多年大规模生产验证,最终抽象落地形成一整套开源的微服务基础组件,统称 NetflixOSS,Netflix 的成功经验开始被业界认可并推崇;三是 Pivotal 将 Ne转载 2018-02-02 14:49:07 · 269 阅读 · 0 评论 -
保证分布式系统数据一致性的6种方案
在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性?具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。为了便于讨论问题,先简单介绍下数据一致性的基础理论。原创 2018-01-25 14:49:46 · 199 阅读 · 0 评论 -
Spring4 + Spring MVC + MyBatis 整合思路
1、Spring框架的搭建这个很简单,只需要web容器中注册org.springframework.web.context.ContextLoaderListener,并指定spring加载配置文件,那么spring容器搭建完成。(当然org.springframework的核心jar包需要引入)当然为了更加易用支持J2EE应用,一般我们还会加上如下:Spring监听HTT转载 2018-01-30 14:37:30 · 105 阅读 · 0 评论 -
Java架构师技术问答集锦
1 TCP 与 UDP网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议;传输层:TCP协议与UDP协议;应用层:FTP、HTTP、TELNET、SMTP、DNS等协议;HTTP是应用层协议,其传输都是被包装成TCP协议传输。可以用SOCKET实现HTTP。Socket是一组接口,可以实现TCP,也可以实现UDP。在设计模式中,原创 2018-01-24 16:39:37 · 249 阅读 · 0 评论