自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 十大编程语言,Java 未能榜首?

如果你是软件开发领域的新手,那么你会想到的第一个问题是“如何开始?”编程语言有数百种可供选择,但是你怎么发现哪个最适合你,你的兴趣和职业目标又在哪里呢?选择最佳编程语言以学习的最简单方法之一,是通过市场反响、技术趋势的发展…阅读下文,你会发现一些用于Web开发,移动开发,游戏开发等的优秀、专业的编程语言。最后,你将清楚地了解哪种编程语言可以在未来几年甚至更长时间内帮助你的职业发展。让我们来看一看...

2020-03-11 17:37:32 273

原创 2020年的13个优秀企业架构工具

企业架构(EA)工具可以帮助企业将其业务目标与IT目标和基础设施相结合。这些工具有助于管理与企业架构(EA)相关的信息,同时帮助组织规划数字化转型的路线图。它们提供协作、报告、测试、模拟等功能,帮助组织创建和实现模型,以实现更好的业务和IT流程、开发和架构。以下介绍的13种企业架构(EA)工具是目前市场上最流行的工具。它们提供了可视化、协作和项目管理功能的组合,以支持各种企业架构(EA)框架。...

2020-03-11 14:59:04 1396

原创 2020 年,Vue 受欢迎程度是否会超过 React?

前端框架的受欢迎程度每年都在增长, 如今,在较大型或者中型的项目,基本都需要使用框架来进行开发。 前几年,由谷歌发布的 Angular 和Facebook的 React 就开启前端框架地位竞争。 但是,在2018年,前端世界发生了重大变化,因为还有一个更强大的 选手 Vue参加了比赛。接下我们来看看 Vue 和 React 目前的趋势,看看 Vue 今天是否能保持领先的地位。背景在开始深入研...

2020-03-10 15:32:10 1034 1

原创 Java堆内存是线程共享的!面试官:你确定吗?

Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或多或少的对JVM有一些了解。可以说,关于JVM的相关知识,基本是每个Java开发者必学的知识点,也是面试的时候必考的知识点。在JVM的内存结构中,比较常见的两个区域就是堆内存和栈内存(如无特指,本文提到的栈均指的是虚拟机栈),关于堆和栈的区别,很多开发者也是如数家珍,有很多书籍,...

2020-03-10 14:49:11 239

原创 时间复杂度的表示、分析、计算方法……一文带你看懂时间复杂度!

如果你还在发愁究竟怎么计算时间复杂度和空间复杂度,那你是来对地方了!名词解释:在计算机科学中,时间复杂性,又称时间复杂度,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。时间复杂度的表示方法其实就是...

2020-03-09 15:33:39 339

原创 Apollo框架可行性分析

Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。本文意在测试apollo的高可用性与安全性。一、测试目的随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理...

2020-03-09 15:06:44 421

原创 《面试必问之jvm与性能优化》(二)

1. 说说各个区域的作用?1、运行时数据区域运行时数据区域包括方法区、虚拟机栈、本地方法栈、堆、程序计数器。其中方法区和堆是所有线程共享的数据区,其他的是线程隔离的数据区。1.1、程序计数器程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器,确定下一条需要执行的字节码指令。java的多线程是通 过线程轮流切换并分配处理器执行时间的方式来实现的,在任何确定的...

2020-03-07 16:08:37 193

原创 2020 Java 技术趋势

引言在比较了两个最新的行业调查报告以后,我们得出了今年排名前三的 Java IDE、框架、构建工具和最受欢迎的 JVM 语言。不仅如此, Snyk 和 JRebel 的调查问卷中也包含了最常用的 Java 版本。结果不出意外,还 有什么理由反对版本升级呢?安全公司 Snyk 刚刚发布了 JVM 2020 年度 生态系统报告。 我们就此机会,将调查结果与 Java 开发工具公司 JRebel 一...

2020-03-07 14:09:14 1780

原创 《面试必问之jvm与性能优化》(一)

1. 描述一下 JVM 加载 Class 文件的原理机制?在面试java工程师的时候,这道题经常被问到,故需特别注意。Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的,除非我们有特殊的用法,像是反射,就需要显式的加载所需要的类。Java类的加...

2020-03-06 17:18:34 197

原创 达达基于Kubernetes混部的日志系统演变

背景在2016年达达与京东到家合并后线上业务迅速发展。面对海量日志增长和日志查询需求,基于ELK架构的日志系统已经不能满足达达的线上场景,迫切需要一个高效自动化的日志系统。本文主要分享达达是如何通过Kubernetes混部构建一个日峰值处理超过130亿条日志,单日存储超过14TB,总存储量300TB的日志系统。历史包袱达达最早也是使用ELK构建第一版日志系统,当时被研发吐槽最多的是『 Kib...

2020-03-06 16:15:54 186

原创 求职京东的四次面试(java研发)

一面(基础面:约1小时)自我介绍,主要讲讲做了什么和擅长什么springmvc和spring-boot区别@Autowired的实现原理Bean的默认作用范围是什么?其他的作用范围?索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?Java线程池的原理?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?hashmap原理,处理哈希冲突...

2020-03-05 19:04:42 237

原创 如何在 2020 年用 Java 安全编程

一位名为 Sam Bocetta 的作者发表了一篇文章,针对在 2020 年使用 Java 进行编码时应遵循的五个原则进行了研究。他在文中表示,尽管目前 Java 的安全性相较于一些旧的语言(特别是 C 和 C ++)而言有所长进,但是使用 Java 编写的代码的漏洞级别还是取决于程序员遵循的优秀实践。在当今的开发环境中更是如此,各种新的安全性技术、黑客技术以及新颖的存储和加密形式,意味着许多...

2020-03-05 15:09:23 1092

原创 每个程序员都必须知道的8种通用数据结构

快速介绍8种常用数据结构数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作。 数据结构在计算机科学和软件工程领域具有广泛而多样的用途。几乎所有已开发的程序或软件系统都使用数据结构。 此外,数据结构属于计算机科学和软件工程的基础。 当涉及软件工程面试问题时,这是一个关键主题。 因此,作为开发人员,我们必须对数据结构有充分的了解。在本文中,我将简要解释每个程序...

2020-03-04 15:15:41 234

原创 开发者需要了解的领域特定语言(DSL)

领域特定语言是在特定领域下用于特定上下文的语言。作为开发者,很有必要了解领域特定语言的含义,以及为什么要使用特定领域语言。领域特定语言 domain-specific language (DSL)是一种旨在特定领域下的上下文的语言。这里的领域是指某种商业上的(例如银行业、保险业等)上下文,也可以指某种应用程序的(例如 Web 应用、数据库等)上下文。与之相比的另一个概念是 通用语言 gener...

2020-03-04 14:21:37 1364

原创 最新出炉的java学习路线

在写这个文章之前,我花了点时间,自己臆想了一个电商系统,基本上算是麻雀虽小五脏俱全,我今天就用它开刀,一步步剖析,我会讲一下我们可能会接触的技术栈可能不全,但是够用,最后给个学习路线。Tip:请多欣赏一会,每个点看一下,看看什么地方是你接触过的,什么技术栈是你不太熟悉的,我觉得还算是比较全的,有什么建议也可以留言给我。不知道大家都看了一下没,现在我们就要庖丁解牛了,我从上到下依次分析。前端...

2020-03-03 22:16:57 161

原创 技术人员想拿百万年薪必须要经历的九个段位

很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己 10 多年的从业经验,总结了技术人员成长的 9 个段位,希望对大家的职业生涯,有所帮助。第一段刚接触编程的时候,会觉得这是个很神奇东西,平淡的英文字母,再加上标点符号,竟然可以有这么大魔力。会觉得编程是很有自豪感的事情,因为在我们看来,它就是在创造,用这些跳动的字符,创造我们想要的效果。...

2020-03-03 21:50:40 208 1

原创 四个优秀实践,引导你写出高质量JavaScript模块

使用 ES2015 模块,您可以将应用程序代码分成可重用的、封装的、专注于单一任务的模块。这很好,但是如何构造模块呢?一个模块应该有多少个函数和类?这篇文章介绍了有关如何更好地组织 JavaScript 模块的4种优秀实践。1.优先使用命名导出当我开始使用 JavaScript 模块时,我使用默认的语法来导出模块定义的单个块,不管是类还是函数。例如,这是一个将模块 Greeter 导出...

2020-03-02 22:09:25 114

原创 《代码整洁之道》:5大基本要点

常常有小伙伴推荐罗伯特·C·马丁的《代码整洁之道(Clean Code)》。今天我们就来了解一下这本书,它值不值得一看?关于此书《代码整洁之道》出版于2008年,近年来,一直被列为“亚马逊最畅销的五本书”之一。本书作者被亲切地称为“Bob叔叔”,他也是《敏捷宣言》的原作者之一,资历非常丰富。本书在Goodreads上平均评分为4.4(评分人数超13,000)。可以说,这是一本程序员的必读书。...

2020-03-01 15:22:48 180

原创 曝光 MySQL 的 一个坑,不要再使用 UTF-8 了

最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串,然后出现了一个离奇的错误:我用的是UTF-8编码的客户端,服务器也是UTF-8编码的,数据库也是,就连要保存的这个字符串“????”也是合法的UTF-8。问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最...

2020-03-01 15:09:56 116

原创 为什么企业都需要虚拟化?向SD-WAN过渡有哪些挑战?

对于企业来说,从传统网络到SD-WAN的过渡,可能是一个相当复杂的过程,这里有几个因素需要考虑。您希望通过怎样的方式将用户连接到应用程序?如果您希望在许多不同的网络、站点和连接类型上,提高应用程序性能,那么SD-WAN是最优解决方案!每个蓬勃发展的业务都依赖于网络,来管理高带宽的应用程序,并支持不断增加的数据消耗。因此,每个企业都必须通过虚拟化网络和安全且可扩展的连接,来保持竞争力。SD-...

2020-03-01 14:20:00 157

原创 什么?搞不定Kafka重复消费?

前言今天我们聊一个话题,这个话题大家可能在面试过程中,或者是工作当中经常遇到 ???? 如何保证 Kafka 消息不重复消费? 我们在做开发的时候为了程序的健壮性,在使用 Kafka 的时候一般都会设置重试的次数,但是因为网络的一些原因,设置了重试就有可能导致有些消息重复发送了(当然导致消息重复也有可能是其他原因),那么怎么解决消息重复这个问题呢?关于这个问题,我这儿提供了如下三种解决方案,供大家参...

2020-02-29 13:58:56 164

原创 使用 TypeScript 的 10 个 理由

最近,我读了一篇名为《放弃 TypeScript 的 7 个非常好的理由》,这篇文章的阅读量不低。里面有些观点确实有趣,不过在这里我要向你介绍使用 TypeScript 的 10 个理由。TypeScript 降低代码出错的风险开发人员写 BUG 是很自然的事情。几乎有一半的时间,我们都是在查找程序出错的原因。在 JavaScript 中,原因可能只是简单如类型错误。例如,将数值赋值给字符串变...

2020-02-28 15:55:47 176

原创 程序员的外包经验:印度、中国和菲律宾

外包在软件业很常见,各种规模的公司都在用,每年要吸纳大量就业。但是,外包的曝光量很少,大家似乎都不太关心,很少有人谈论。这导致许多人不了解外包到底是怎么回事。1、我有很多与亚洲外包供应商合作的经历。这篇文章我想来谈谈,多年来将软件项目外包到印度,中国和菲律宾的经验。我以前的工作是辉瑞公司的软件架构师,一共干了 14 年,曾经负责过亚太地区的软件架构。2、辉瑞公司的软件开发策略很简单...

2020-02-28 14:59:33 1400

原创 微盟删库事故启示录

近期热议的微盟系统故障事件,想必大部分人都已经有所关注。截止2月26日中午,微盟官网仍然挂着公告,表示数据还在修复过程中。从2月23日晚间SaaS业务生产环境和数据遭到严重破坏,直到25日核心业务基本恢复,基本不影响新用户使用,但由于部分数据还在修复过程中,官方仍然建议老用户重新注册账户使用,后续再进行新老账户数据合并,预计到28日晚间才能完全修复。删库跑路,近几年偶有发生,甚至经常成为技术圈...

2020-02-27 17:00:15 579

原创 如何实现微服务架构下的分布式事务

什么是事务事务(Transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性:原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完...

2020-02-27 16:59:12 895 1

原创 浅谈Chatbot的架构模型和响应机制

不知您是否已注意到:人工智能已经不再是少数科技公司的初级原型产品了。在许多服务类行业中,带有人工智能的聊天机器人(Chatbot)正在逐步取代人工客服,提供及时、周到、互动的服务。通过机器学习的相关技术,各类企业已将聊天机器人视为,最受欢迎的客户服务和业务流程的自动化工具之一。本文将向您简单介绍聊天机器人的基本架构模型和响应机制。聊天机器人的不同架构类型聊天机器人的架构模型通常是根据开发的核心...

2020-02-26 14:47:19 234

原创 一些 JS 数组精简技巧,要记好笔记了

点赞再看,养成习惯本文 GitHub https://github.com/qq44924588… 上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资料。欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。数组是 JS 最常见的一种数据结构,咱们在开发中也经常用到,在这篇文章中,提供一些小技巧,帮助咱们提高开发效率。1. 删除数组的重复项2. 替换数组中的特...

2020-02-26 14:14:26 247

原创 Netty、Kafka中的零拷贝技术到底有多牛?

零拷贝,从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能。我们也经常在 Java NIO,Netty,Kafka,RocketMQ 等框架中听到零拷贝,它经常作为其提升性能的一大亮点;下面从 I/O 的几个概念开始,进而再分析零拷贝。I/O 概念缓冲区缓冲区是所有 I/O 的基础,I/O 讲的无非就是把数据移进或移出缓冲区;进程执行 I/O 操作,就是向操作系统发出请求,让它要...

2020-02-25 15:21:04 79

原创 12种自然语言处理的开源工具

让我们看看可以用在你自己的 NLP 应用中的十几个工具吧。在过去的几年里,自然语言处理(NLP)推动了聊天机器人、语音助手、文本预测等这些渗透到我们的日常生活中的语音或文本应用程技术的发展。目前有着各种各样开源的 NLP 工具,所以我决定调查一下当前开源的 NLP 工具来帮助你制定开发下一个基于语音或文本的应用程序的计划。尽管我并不熟悉所有工具,但我将从我所熟悉的编程语言出发来介绍这些工具(对...

2020-02-25 14:20:20 1249

原创 系统解读 Kafka 的流和表:弹性和容错能力

我们先从流和表的处理容错能力开始,然后再介绍弹性。我们将会看到,它们实际上是一枚硬币的两面。容错处理流和表具有容错能力,因为它们的数据被可靠地存储在 Kafka 中。对于流来说,这个相对好理解,因为流是直接与主题对应起来的,如果在处理过程中出了问题,重新读取主题的数据就可以了。这对于表来说就相对复杂了,因为表必须维护额外的信息,也就是它们的状态,这样才能进行有状态的操作,比如 COUNT()...

2020-02-24 16:34:23 368

原创 JVM笔记-HotSpot的算法细节实现

1. 根节点枚举1.1 暂停用户线程迄今为止,所有收集器在根节点枚举这一步骤都是必须暂停用户线程的。即便是号称停顿时间可控、或者(几乎)不会发生停顿的 CMS、G1、ZGC 等收集器,枚举根节点时也必须要停顿。这也是导致垃圾收集过程必须停顿所有用户线程的一个重要原因。1.2 如何高效查找引用链目前主流 JVM 使用的都是准确式垃圾收集,因此虚拟机有办法直接知道哪些地方存放着对象的引用。而...

2020-02-24 14:34:58 342

原创 一些Redis很实用的工作技巧

前言Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。技巧经验1、停止使用 KEYS很多时候当我们想知道一个redis实例的统计数据,我们会快速地输入”KEYS *”命令,所有key的信息会很快速展示出来for key in...

2020-02-23 16:09:38 130

原创 这是目前最快的 Java 框架,300个框架中排名第一,真香

如果您搜索“ 最佳网络框架 ”,您可能会偶然发现Techempower基准测试,其中排名超过300个框架,在那里你可能已经注意到Vert.x是排名最高的。Vert.x是一个多语言 Web 框架,它支持 Java ,Kotlin,Scala,Ruby和Javascript支持的语言之间的共同功能。 无论语言如何,Vert.x都在Java虚拟机(JVM)上运行。 模块化和轻量级,它面向微服务开发。...

2020-02-23 16:03:58 480

原创 ApplicationInspector:一款功能强大的软件源代码分析与审计工具

ApplicationInspector是一款功能强大的软件源代码分析与审计工具,它可以帮助研究人员识别和发现目标应用程序中的公众周知的功能以及源代码中有意思的特性,并清楚目标应用的本质特征以及实现的功能。ApplicationInspector跟传统静态分析工具不同的是,它不会尝试去识别目标应用模式的好与坏,它只会报告它所检测到的应用程序模式,而且它会使用超过400种规则来完成检测,其中包含可...

2020-02-22 16:19:00 1185

原创 如何分析和解密已加密的路由器固件

我们直奔主题!现在,查看你的路由器品牌及型号信息,然后去对应厂商的官方网站下载你路由器对应的固件。下载完成之后,把固件文件丢到binwalk里,这样我们就可以在QEMU中模拟路由固件了。此时,你将会看到如下图所示的画面:发生了什么?一般来说,每一个非binwalk友好的固件都要用不同的方法来进行分析,因此我们无法给大家提供一个针对所有类型加密固件的通用手把手教程。不过,我们将在这篇文章中给大...

2020-02-22 14:31:21 907

原创 精选开源SpringBoot项目:涵盖权限、搜索、秒杀、支付!

发文以来,分享了一些科技资讯,今天首次整理一些开源项目分享。既是对自己的学习督促,也是对有需要人的一种便利。开源项目一:mall商城star数:29.8k项目地址:https://github.com/macrozheng/mallmall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页...

2020-02-21 16:40:45 638 1

原创 如何构建运行良好的Vue组件

很少有人最初编写Vue组件时打算将其开源。我们大多数人都是从自己编写组件开始的——我们有一个问题,然后决定通过构建一个组件来解决它。有时我们发现自己想要在代码库的新位置解决相同的问题,因此我们使用组件并对其进行重构,使其可重用。然后我们想在一个不同的项目中使用它,所以我们把它转移到一个独立的包中。然后我们想“嘿,为什么不把这个分享给全世界呢?”于是我们开源了这个组件。一方面,这意味着对于任何在V...

2020-02-21 14:28:10 128

原创 争议 | HDFS、Ceph、GFS、GPFS、Swift、Lustre……容器云选择哪种分布式存储更好?

容器云在使用分布式存储时,HDFS、CEPH、GFS、GPFS、Swift等分布式存储哪种更好?公司在进行容器云技术选型,想了解相应的分布式存储如何匹配,HDFS、CEPH、GFS、GPFS、Swift等分布式存储,采用哪种更好,主要场景是容器存储应用日志、配置文件、非结构化数据文件等。问题来自@yin986 某保险软件架构设计师,下文来自twt社区众多同行实践经验分享。日志文件随着时间会是...

2020-02-21 14:13:18 2134

原创 不使用任何后端代码可以开发应用程序吗?

在一个一切都在加速的世界里,你需要快速迭代以避免被抛弃。技术有很多,但你不可能掌握每一项。你可能会问自己:“我怎么能在不了解后端代码的情况下构建应用程序呢?”你需要快速、安全地进行迭代不太了解后端代码、主机或DevOps专注于已经很复杂的前端开发工作那么,在没有任何后端代码的情况下,你能开发出一个可以工作的应用程序吗?小芯告诉你:可以的。下面我们就来一一介绍:后端作为服务(Ba...

2020-02-20 14:34:52 374

原创 安全与创新:IT部门需要平衡的一件很棘手的工作

创新举措只有在保证安全的情况下才算成功。下面将介绍首席信息官们如何在承担风险与规避风险之间维持平衡。乍一看,网络安全措施的部署和对创新的追求似乎是相互排斥的。增强安全性的策略旨在降低风险,而创新工作则要求对风险持开放态度。但企业正在寻找方法来启动创新性的和全新的数字业务计划,同时采取措施来保护数据和其他IT资产。这样一来,即使他们加强了安全性要求,对系统和数据进行了保护,以及遵守了相关法规,但...

2020-02-19 15:44:02 252

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除