![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
maven
文章平均质量分 77
java1856905
这个作者很懒,什么都没留下…
展开
-
微服务(Microservice)那点些大事
Spring Boot 是构建单个微服务应用的理想选择,但是我们还需要以某种方式将它们互相联系起来。这就是 Spring Cloud Netflix 所要解决的问题。Netflix 它提供了各种组件,比如:Eureka服务发现与Ribbon客户端负载均衡的结合,为内部“微服务”提供通信支持。 本章介绍如何通过使用 Netflix Zuul 实现一个微服务API Gateway 来实现简单代理转发和...原创 2018-09-04 21:48:36 · 1543 阅读 · 0 评论 -
从程序员之死看 IT 人士如何摆脱低情商诅咒
(1)IT公司的创业者苏享茂忽然跳楼自杀了,自杀前,他留下几万字的文字记录、遗书,并且在自己开发的软件界面上,设置了弹出页面,控诉是恶毒前妻逼死了自己。生命戛然而止,留给亲人痛苦,留给世人震惊。求生是人类的本能,可是求死的人,在跳的那一瞬间,他们在想什么?人在什么状况下,会选择自己结束自己的生命?人都有趋利避害的本能。为了能停止痛苦,人们可能去做那唯一的解脱之法:死。只有一了百...原创 2018-09-11 19:40:59 · 236 阅读 · 0 评论 -
activemq和kafka有什么区别?
这是两种截然不同的mq。Active MQ被称为“传统”mq。所谓“传统”是指,他要支持一些标准接口,比如AMQP, STOMP等需要维护consumer的状态。即当前consumer读到哪个数据了,是active mq来维护的。active mq最早用来做企业级别的系统整合。要支持所谓的“企业级队列模式“,但请原谅我搞到最后也没理解这个企业级到底怎么企业级了,也许现在的大多数企业早已不像10多年...原创 2018-09-05 21:00:32 · 6335 阅读 · 0 评论 -
作为一名Java程序员,我为何不在生产项目中转向Go?
自Google在2009年发布Go语言的第一个正式版之后,这门语言就以出色的语言特性受到大家的追捧,尤其是在需要高并发的场景下,大家都会想到是不是该用Go。随后,在国内涌现出了一批以七牛为代表的使用Go作为主要语言的团队,而许世伟大神本人也在各种场合下极力推动Go在国内的发展,于是在这种大环境下,中国的Go开发者群体逐渐超越了其他地区。那么问题来了,业余时间好学是一回事,真正要将一个新东西运用...原创 2018-09-09 16:35:11 · 19203 阅读 · 3 评论 -
两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践
Spring Boot是最流行的用于开发微服务的Java框架。在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践。这些内容是基于我的个人经验和一些熟知的Spring Boot专家的文章。在本文中,我将重点介绍Spring Boot特有的实践(大多数时候,也适用于Spring项目)。以下依次列出了最佳实践,排名不分先后。1、使用自定义BOM来维护第...原创 2018-09-16 15:22:50 · 1528 阅读 · 0 评论 -
Java高级特性入门——泛型、反射和注解
本次的分享主要围绕以下三个方面:一、泛型介绍二、反射机制三、注解的使用一、泛型介绍在日常编程的过程中,泛型在这三个特性之中使用频率是最高的。”泛型”一词中的泛字可以理解为泛化的意思,即由具体的、个别的扩大为一般的。Oracle对泛型的官方定义是:泛型类型是通过类型参数化的泛型类或接口。一言以蔽之,泛型就是通过类型参数化,来解决程序的通用性设计和实现的若干问题。 Java泛型是...原创 2018-09-06 21:10:03 · 312 阅读 · 0 评论 -
北上深程序猿纷纷“入杭”!杭州工程师人才净流入率全国第一
在继北京西二旗程序员,上海张江码农,深圳南山技术男后,中国工程师群体又多了一个冉冉升起的门派:杭派工程师。据猎聘《2018中国重点城市工程师大数据与调研报告》显示,2017年一季度到2018年二季度期间,互联网工程师人才净流入分布情况,杭州以12.46%的流入率排名第一。 在流入杭州的工程师中,来自上海的最多,达到23.56%;其次是北京和深圳,占比依次为17.21%和6.91%。这意味...原创 2018-09-12 20:50:38 · 850 阅读 · 0 评论 -
史上最难的一道Java面试题:分析篇
无意中了解到如下题目,觉得蛮好。题目如下: 该程序的输出结果?程序输出结果 考察知识点synchronize实例锁。并发下的内存可见性。在java中,多线程的程序最难理解、调试,很多时候执行结果并不像我们想象的那样执行。所以在java多线程特别难,依稀记得大学的时候考c语言二级的时候,里面的题目是什么++和很多其他优先级的符合在一起问最后的输出结果,这类题目就想考一...原创 2018-09-17 15:10:01 · 260 阅读 · 1 评论 -
爱上 Java 的10 大理由,Python 弱爆了!
Java和JVM已经存在了很长一段时间了,基于这个事实,一些程序员开始将很多事情视为理所当然。今天我们就来说一说“Java之所以能够成为并将继续是软件项目领先平台”的十大理由。1.高性能JVMJava最初的开发目的“一次编写到处运行”,并由虚拟机提供运行平台。点击这里查看JVM内存模型详解。没有JVM,Java就必须遵循Ruby和Python的步伐——在痛苦中进一步提高其便携性。随着物...原创 2018-09-10 17:55:03 · 207 阅读 · 0 评论 -
我为什么放弃了 Python ,选择了 Go?
根据维基百科数据统计(https://en.wikipedia.org/wiki/List_of_programming_languages),一共有 600 余种不同的编程语言。对于五花八门的开发语言,每门语言都有自己的优缺点。而励志成为一名博学多广的开发者,术业也有专攻,怎奈何也不会学习完百余种语言。在这些语言中,Java 作为 22 年的常青藤,无论是新爆发的 Kotlin 还是 C、C...原创 2018-09-07 17:35:35 · 1871 阅读 · 0 评论 -
程序员如何通过代码为女票挑衣服
少部分高收入程序员能够进一步成长为公司高管,收入上可以实现财务自由,但是并不是很多人都可以成为公司高管的,毕竟这只是少数,但是如果作为公司高管,那么压力不是一般人能想象的。谈起程序员都知道,这个是富得流油的行业,但是你却很少见到程序员来炫富,为何呢?为什么程序员不炫富? 网友: 即使他们炫, 你也看不懂!大家都知道,程序员是一个比较辛苦的工作,认为程序员家境不算好,不然他们也不会选择这一行了,...原创 2018-09-18 15:35:14 · 680 阅读 · 0 评论 -
阿里P9谈程序员——程序员的"青春饭"
导读:你是否曾经认真思考过——毕业3-5年、10年,乃至更久后,我们希望成为什么样的人?作为一名技术人,我们要如何规划自己的职业发展生涯?网上热议的“35岁中年危机”,本质上又因什么而焦虑?今天,阿里资深技术专家毗卢,将带来自己的思考与理解,希望对大家有所启发。作者毗卢:近期,我与团队同学探讨了职业发展规划的问题。有些同学表示希望后续能进一步在技术领域(或管理方向)有进一步的积累;有的同学表示...原创 2018-09-13 15:07:30 · 168 阅读 · 0 评论 -
MySQL常用30种SQL查询语句优化方法
1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。如:select id from t where num is nul...原创 2018-09-18 19:46:00 · 137 阅读 · 0 评论 -
优雅实现延时任务之Redis篇
什么是延时任务延时任务,顾名思义,就是延迟一段时间后才执行的任务。举个例子,假设我们有个发布资讯的功能,运营需要在每天早上7点准时发布资讯,但是早上7点大家都还没上班,这个时候就可以使用延时任务来实现资讯的延时发布了。只要在前一天下班前指定第二天要发送资讯的时间,到了第二天指定的时间点资讯就能准时发出去了。如果大家有运营过公众号,就会知道公众号后台也有文章定时发送的功能。总而言之,延时任务的使用...原创 2018-09-19 15:50:23 · 2534 阅读 · 0 评论 -
又一个程序员倒下-程序员防猝死指南
就在上个月,这个视频在技术群里疯传,据传是一位24岁的程序员在工作中猝死,在为他惋惜的同时,希望借助这个事情来为大家的健康敲一个响钟。视频链接:http://tieba.baidu.com/p/5857257985?qq-pf-to=pcqq.group 程序员在其职业生涯中,健康问题尤为突出。但是大部分程序员只顾码字,却往往忽略了自身的健康问题。这或许是因为写代码太入神,也或许是因为来...原创 2018-09-14 15:24:09 · 1632 阅读 · 0 评论 -
Nginx+Tomcat 动静分离实现负载均衡
0.前期准备使用Debian环境。安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等。1.一份Nginx.conf配置文件Nginx+Tomcat 动静分离实现负载均衡Nginx+Tomcat 动静分离实现负载均衡基本配置这个文件,就可以实现负载了。但是里面的各种关系要了解就比较麻烦了。这篇博客,也不是教学篇,是记录一下,方便以后自己看了。2.基础讲解现在...原创 2018-09-25 17:27:23 · 798 阅读 · 0 评论 -
缓存穿透、并发和雪崩那些事
0 题记缓存穿透、缓存并发和缓存雪崩是常见的由于并发量大而导致的缓存问题,本文讲解其产生原因和解决方案。缓存穿透通常是由恶意攻击或者无意造成的;缓存并发是由设计不足造成的;缓存雪崩是由缓存同时失效造成的,三种问题都比较典型,也是难以防范和解决的。本节给出通用的解决方案,以供在缓存设计的过程中参考和使用。1 缓存穿透缓存穿透指的是使用不存在的key进行大量的高并发查询,这导致缓存无法命中,每...原创 2018-09-25 21:36:21 · 132 阅读 · 0 评论 -
如何在面试中介绍自己的项目经验
在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果。第一印象就不好了,至少会感觉该候选人表述能力不强。一般来说,面试官会根据候选人介绍的项目背景来提问题,假设面试时会问10个问题,那么至少有5个...原创 2018-09-20 16:56:18 · 390 阅读 · 0 评论 -
月入多少的java程序员才可以养得起成都小甜甜?
抖音上一个#最好养活小姐姐#成都小甜甜火了,原因是在“成都最街坊”话题中,视频里小姐姐的回答温暖了千万网友。“你觉得男人一个月多少工资可以养活你?”“养活我啊,能带我吃饭就好。”这一率性真诚的回答,让小甜甜成为继温婉后的新竞“抖音女神”完胜戏精网红。有人疯狂寻找她的抖音号,有人表示要去成都春熙路见见小姐姐,甚至在朋友圈秀出了自己的请假条、辞职信。眼看小姐姐就要被抢走了,程序员的你,如何在...原创 2018-09-26 15:29:45 · 437 阅读 · 0 评论 -
为什么已有Kafka,我们最终却选择了Apache Pulsar?
**在一家商业公司,采用任何一项新技术,包括开源技术,都有一定的风险,即使这项技术具有显著的技术优势。**Apache Pulsar 的引入经过了我们的深思熟虑和充分调研。我想跟大家分享一下我们使用和调研 Apache Pulsar 的经验。因为我们相信肯定有其他和我们类似的公司也可以从 Pulsar 中受益。Apache Pulsar 是我们为了支持 STICORP 客户应用而采用的一项关键技...原创 2018-10-11 17:13:31 · 3006 阅读 · 1 评论 -
一个思维习惯,让你成为架构师
程序员的迷茫不仅仅是面对技术繁杂的无力感,更重要的是因为长期埋没于软件 世界的浩大的分工体系中,无法看清从业务到软件架构的价值链条,无法清楚定位自 己在分工体系的位置,处理不好自身与技术、业务的关系所致。很多程序员打心底不喜欢业务,这一点我曾经也经历过,我更宁愿从事框架工 具、技术组件研究的相关事情。我有个朋友经常吐槽我说:”你们天天加班加点写了 那么多代码,然后呢?有改变什么吗?还不是写出了一...原创 2018-09-21 16:50:57 · 844 阅读 · 0 评论 -
如何优雅的使用和理解线程池
前言平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条:可见线程池的重要性。简单来说使用线程池有以下几个目的:线程是稀缺资源,不能频繁的创建。解耦作用;线程的创建于执行完全分开,方便维护。应当将其放入一个池子中,可以给其他任务进行复用。线程池原理谈到线程池就会想到池化技术,其中最核心的思想就是把宝贵的资源放到一个池子中;每次使用...原创 2018-09-27 15:52:11 · 195 阅读 · 0 评论 -
如何搭建高可用redis架构?
1 题记Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。如今,互联网业务的数据正以更快的速度在增长,数据类型越来越丰富,这对数据处理的速度和能力提出了更高要求。Redis 是一种开源的内存非关系型数据库,给开发人员带来的体验是颠覆性的。在自始至终的设计过程中,都充分考虑高性能,这使得 Redis...原创 2018-09-22 15:26:19 · 151 阅读 · 0 评论 -
Kafka实践:到底该不该把不同类型的消息放在同一个主题中?
Kafka 主题最重要的一个功能是可以让消费者指定它们想要消费的消息子集。在极端情况下,将所有数据放在同一个主题中可能不是一个好主意,因为这样消费者就无法选择它们感兴趣的事件——它们需要消费所有的消息。另一种极端情况,拥有数百万个不同的主题也不是一个好主意,因为 Kafka 的每个主题都是有成本的,拥有大量主题会损害性能。实际上,从性能的角度来看,分区数量才是关键因素。在 Kafka 中,每个主...原创 2018-10-12 17:11:22 · 441 阅读 · 0 评论 -
作为最流行的编程语言之一,谁又将会杀死 Java?
Java最流行的编程语言之一2017年9月的TIOBE指数将Java列为当月较为流行的语言。其实,它已经名列前三甲很多年了。Stack Overflow Developer Survey 2017将Java列为继Javascript和SQL之后第三常用的编程语言(实际上,过去四年它都保持着这名次)。不说这些结果是如何产生的,亦或者这结果是否反映了现实世界中的情况,我们不能否认的是,Java在...原创 2018-09-28 15:26:13 · 2309 阅读 · 0 评论 -
所有的IT男都会蛮光头?来看看编程语言之父们的头发
有一种生物,人称“程序猿” or “攻城狮”工作是高端大气上档次,工资是低调奢华接地气!往往城还没攻下来,头发就先掉下来!世人眼中的当程序员的必经之路是这样的找不到女朋友的原因是这样的:事实是否如上所说的那样呢?那就不得而知了,不过深入了解那些编程语言之父们头顶的雨林是否茂盛,以及他们的丰功伟绩,没准能得出什么参考标准呢。01Java 之父 James Gosling头顶茂密...原创 2018-10-07 20:20:48 · 4211 阅读 · 0 评论 -
基于redis和zookeeper的分布式锁实现方式
先来说说什么是分布式锁,简单来说,分布式锁就是在分布式并发场景中,能够实现多节点的代码同步的一种机制。从实现角度来看,主要有两种方式:基于redis的方式和基于zookeeper的方式,下面分别简单介绍下这两种方式:一、基于redis的分布式锁实现1.获取锁redis是一种key-value形式的NOSQL数据库,常用于作服务器的缓存。从redis v2.6.12开始,set命令开始变成如下...原创 2018-10-14 17:06:00 · 352 阅读 · 0 评论 -
为什么好多公司的开发语言从C#变成了Java?
今天来谈谈为什么好多公司的开发语言慢慢从C#变成了Java了。其实也是希望大家能够讨论一下,如果是讨论的话我们就会建立一个基本的讨论标准,所以这里主要讨论的标准有两个:公司定义:我们定义的是互联网公司,TO-C的那种,不是to-B的,也不是软件公司,因为软件公司这种并发和QPS一个请求走9次IO也是正常的,尽管我们不应该这么做,但是还是有人这么做,因为他们主要关注点是能完成一些复杂业务;项 ...原创 2018-09-29 17:36:49 · 14029 阅读 · 14 评论 -
要嫁就嫁程序猿——钱多话少死的早
程序猿问科比:“你为什么这么成功? ”科比:“你知道洛杉矶凌晨四点是什么样子吗? ”程序猿:“知道,一般那个时候我还在写代码,怎么了?”科比:“额…”女神:你能让这个论坛的人都吵起来,我今晚就跟你走。程序猿:PHP语言是最好的语言!论坛炸锅了,各种吵架。女神:服了你了,我们走吧,你想干啥都行。程序猿:今天不行,我一定要说服他们,PHP语言是最好的语言。我是一个苦b的程序员,今...原创 2018-10-08 20:18:17 · 177 阅读 · 0 评论 -
天天 Java、C/C++,可这五种编程语言你知道吗?
“适者生存,优胜劣汰”,编程语言同样适用。世界上有超过 1500 种编程语言,虽然本质上都是对于最底层 0 与 1 的抽象和封装,但是却没有哪一种编程语言可以解决所有的问题。当有新的问题领域出现时,就需要创造新的编程语言来适配它。这也就导致了不同的计算机语言拥有不同的“个性”——除去 Python、Java、C、C++、JavaScript、C#、Ruby、PHP 等主流编程语言之外,有一些语言...原创 2018-10-18 17:36:01 · 306 阅读 · 0 评论 -
比拼生态和未来,Spark和Flink哪家强?
概 况Spark 是最活跃的 Apache 项目之一。从 2014 年左右开始得到广泛关注。Spark 的开源社区一度达到上千的活跃贡献者。最主要推动者是 Databricks,由最初的 Spark 创造者们成立的公司。今年 6 月的 Spark+AI 峰会参加人数超过 4000。 Spark 因为在引擎方面比 MapReduce 全面占优,经过几年发展和 Hadoop 生态结合较好,已经被广...原创 2018-10-15 21:18:16 · 1716 阅读 · 0 评论 -
如果编程语言是女生,你会爱上谁?
“如果编程语言是女生,绝对会让你眼花缭乱,思绪翩翩……有清纯可爱型的,有知性优雅型的,有成熟性感型的,还有如初恋一般甜蜜型的……”欢迎工作一到五年的Java工程师朋友们加入Java技术交流:611481448群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql...原创 2018-10-09 19:19:45 · 333 阅读 · 3 评论 -
国外、国内Hadoop的应用现状
摘要:Hadoop是一个开源的高效云计算基础架构平台,其不仅仅在云计算领域用途广泛,还可以支撑搜索引擎服务,作为搜索引擎底层的基础架构系统,同时在海量数据处理、数据挖掘、机器学习、科学计算等领域都越来越受到青睐。本文将讲述国外、国内Hadoop的主要应用现状。国外Hadoop的应用现状1.YahooYahoo是Hadoop的最大支持者,截至2012年,Yahoo的Hadoop机器总节点数目超...原创 2018-10-16 19:41:19 · 4076 阅读 · 0 评论 -
挑战 Java 霸主之位?C# 五个不可替代的特性瞬间秒杀 Java
完美的编程语言并不存在,相信这一点在众多开发者的心中毋庸置疑。想要学会一门编程语言就走遍天下,至少目前看来并不现实。一门新语言的诞生往往是为了克服另一种语言的弊端,但在保证新语言健壮性的同时却似乎又不可避免在另一方面出现不足。纵观大小 600 多种编程语言,我们究竟该如何选择适合自己的开发语言?是根据兴趣、工作需求、还是课程的推荐安排?笔者曾是软件工程专业,学习了 Java、C 语言、C++、C...原创 2018-10-19 17:22:00 · 414 阅读 · 0 评论 -
简化你的Java代码,让工作更高效|语言
计算机专家在问题求解时非常重视表达式简洁性的价值。Unix的先驱者Ken Thompson曾经说过非常著名的一句话:“丢弃1000行代码的那一天是我最有成效的一天之一。”这对于任何一个需要持续支持和维护的软件项目来说,都是一个当之无愧的目标。早期的Lisp贡献者Paul Graham甚至将语言的简洁性等同为语言的能力。这种对能力的认识让可以编写紧凑、简介的代码成为许多现代软件项目选择语言的首要标准...原创 2018-10-10 19:25:49 · 2165 阅读 · 0 评论 -
动荡的 Java 今年将有哪些新变化?
我们在《2018 编程语言流行度大调查》中谈到,在用户最喜爱和最关注的编程语言中,Java独领风骚。其中,Java 9关注度不断上升,62% 的人希望在 2018 年更多地关注 Java 9,此外有三分之一的参与者表示对即将到来的Java 10 和 11版本很感兴趣。在过去的一年中Java经历了一段时间的动荡,今年Java又有什么新进展呢?本文让我们一起来看看Java的状况吧。以下为译文:...原创 2018-10-22 17:09:37 · 171 阅读 · 0 评论 -
为什么我这个 Java 死忠倒向了 Node.js?
作为一个在Sun微系统公司Java SE团队工作了十多年的人,难道不应该是体内流淌着Java字节码的血、只要一息尚存就要不断实现抽象接口吗?但对于我这个前Java SE团队成员来说,2011年学习了Node.js平台后就像是呼吸到了新鲜空气一样——我在2009年1月被Sun裁退之后(正好在Oracle收购之前),开始学习Node.js并被它深深所吸引。我是怎样被吸引的?从2010年起,我就开始写...原创 2018-10-17 18:54:44 · 393 阅读 · 0 评论 -
不理解Zookeeper一致性原理,谈何异地多活改造
2017 年在饿了么做异地多活建设之时,我的团队承担了 Zookeeper 的异地多活改造。在此期间,我听到了关于 Zookeeper 一致性的两种不同说法:Zookeeper 是最终一致性的,由于多副本,以及保证大多数成功的 Zab 协议,当一个客户端进程写入一个新值,另一个客户端进程不能保证马上就会读到,但能保证最终会读到这个值。Zookeeper 的 Zab 协议类似于 Paxos ...原创 2018-10-28 17:54:12 · 2312 阅读 · 0 评论 -
Java 已老,Kotlin 或将取而代之!
Java已经成为历史。它无法发展成现代语言,同时保证向后兼容性。但它为我们带来了最好的JVM生态系统,并引导了许多优秀语言的诞生,如Groovy、Scala、Clojure、Kotlin等。▌欢迎年纪最小的Kotlin!Kotlin诞生于2011年,但在去年Google宣布Kotlin成为安卓的官方开发语言之后迅速走红。Kotlin从其他JVM语言中借鉴了大量强大的功能。我们来快速浏览一下K...原创 2018-10-25 21:37:08 · 149 阅读 · 0 评论 -
Oracle宣布终止Java开发者大会JavaOne
Oracle 宣布终止他们标志性的 Java 开发者大会 JavaOne。这项活动自 1996 年开始(归 Sun 所有)每年举办一次,自 2010 年开始作为 Oracle OpenWorld 大会的并置活动。取而代之,Oracle 计划举办一个有更多开发人员关注的 Oracle Code One 大会。Oracle 在一份公告中解释了这项举措。Oracle Code One 是我们新的开...原创 2018-10-21 17:27:29 · 862 阅读 · 0 评论