
编程语言
文章平均质量分 70
Java架构师笔记
这个作者很懒,什么都没留下…
展开
-
2021-07-23
蚂蚁金服Java四次面试,我总结的这些真题,吃透50%知识点offer也能拿到手软很多朋友私下跟我说今年面试太难了,能不能整理一个大厂Java面试合集,这样也不用到处找资料,于是我花了一年的时间陆陆续续完成了整理,这些面试题都是互联网大厂真实流出的面试内容,每个问题都附带完整详细的答案,不像网上的那些资料三教九流有的甚至还没答案,这些面试题我也是经过日积月累才整理出来的精品资料。面试题主要是针对1-5年左右的Java开发程序员提升的,不管是传统行业还是互联网行业,掌握这些技术基本都能拿到一个不错的薪资原创 2021-07-23 18:30:56 · 390 阅读 · 0 评论 -
分布式事务中间件 TCC-Transaction 源码分析 —— Dubbo 支持
1. 概述本文分享 Dubbo 支持。TCC-Transaction 通过 Dubbo 隐式传参的功能,避免自己对业务代码的入侵。可能有同学不太理解为什么说 TCC-Transaction 对业务代码有一定的入侵性,一起来看个代码例子:代码来自 tcc-transaction-http-sample 。声明远程调用时,增加了参数 TransactionContext。当然你也可以通过自己...原创 2018-11-28 16:26:23 · 337 阅读 · 0 评论 -
Spring Boot 工程集成全局唯一ID生成器 Vesta
Vesta 是一款通用的 ID产生器,互联网俗称统一发号器,其具有几大很具有优势的特性:全局唯一粗略有序可反解可制造分布式而且支持三种发布模式:嵌入式发布模式中心服务器发布模式REST 发布模式根据业务的性能需求,它可以产生 最大峰值型 和 最小粒度型 两种类型的 ID,它的实现架构使其具有高性能,高可用和可伸缩等互联网产品需要的质量属性,是一款通...原创 2018-11-28 17:04:37 · 491 阅读 · 0 评论 -
Java架构-Java开发中的一些小技巧
一、 Java获取URL地址中传递的参数二、获取请求的URL地址三、获取请求的IP地址四:判断字符串是否能够转换成指定格式的日期希望此文能帮到大家的同时,也听听大家的观点。欢迎留言讨论,加关注,分享你的高见!持续更新!我本人邀约各大BATJ架构大牛共创Java高级架构交流社区群,(群号:673043639)致力于免费提供Java架构行业交流平台,通过这个平台让大家相互学习成长,提...原创 2018-11-28 19:48:19 · 291 阅读 · 0 评论 -
【性能优化的秘密】Hadoop如何将TB级大文件的上传性能优化上百倍?
一、写在前面上一篇文章,我们聊了一下Hadoop中的NameNode里的edits log写机制。主要分析了edits log写入磁盘和网络的时候,是如何通过分段加锁以及双缓冲的机制,大幅度提升了多线程并发写edits log的吞吐量,从而支持高并发的访问。如果没看那篇文章的朋友,可以回看一下:《大规模集群下Hadoop NameNode如何承载高并发访问》。这篇文章,我们来看看,Hado...原创 2018-11-29 20:02:09 · 1348 阅读 · 0 评论 -
使用SpringBoot+Dubbo 搭建一个简单的分布式服务,超详细,新手都能看懂 !
使用 SpringBoot+Dubbo 搭建一个简单分布式服务实战之前,先来看几个重要的概念开始实战之前,我们先来简单的了解一下这样几个概念:Dubbo、RPC、分布式、由于本文的目的是带大家使用SpringBoot+Dubbo 搭建一个简单的分布式服务,所以这些概念我只会简单给大家普及一下,不会做深入探究。什么是分布式?分布式或者说 SOA 分布式重要的就是面向服务,说简单的分布式就是我...原创 2018-11-28 20:13:43 · 641 阅读 · 0 评论 -
GIT分支管理规划说明
1. 总览master : 主分支,主要用来生产版本发布。develop:日常开发分支,从主分支开出来的一个分支,该分支正常保存了开发的最新代码。(格式:功能名+版本号, 如planbook.1.1.x)test: 测试分支,会将所有的日常开发分支合并到test分支,进行发布。release:release 分支可以认为是 master分支的未测试版,用于UAT环境的发...原创 2018-12-03 12:58:51 · 698 阅读 · 0 评论 -
spring AOP为什么配置了没有效果?
spring Aop的配置一定要配置在springmvc配置文件中注意:spring AOP的配置一定要写在springmvc配置文件中,直接在spring中配置是没有效果的欢迎大家和我一起学习Spring Boot构建微服务云架构,我这边会将近期研发的Spring Boot微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发Spring Boot框架的朋友,大家来一起探讨Spring ...原创 2018-12-03 16:14:23 · 767 阅读 · 0 评论 -
Java架构-Mybatis源码正确打开方式
精心挑选要阅读的源码项目;饮水思源——官方文档,先看文档再看源码;下载源码,安装到本地,保证能编译运行;从宏观到微观,从整体到细节;找到入口,抓主放次,梳理核心流程;源码调试,找到核心数据结构和关键类;勤练习,多折腾;整体架构mabatis源码思维导图mybatis三大核心流程:mybatis初始化:进入光标选中的propertiesElement方法内发现...原创 2018-12-03 17:20:02 · 358 阅读 · 0 评论 -
Spring Boot WebFlux 入门案例
为什么要使用WebFlux1.WebFlux异步编程,拥有更好的性能2.WebFlux完全基于java8开发,在编写代码时可以更加简洁明了例如(官网图):以前的风格WebFlux风格WebFlux入门案例WebFlux主要基于Reacotr,下面代码一段入门demo,分别使用Mono和Flux代码示例:测试代码:测试结果:WebFlux Mono...原创 2018-11-28 16:21:33 · 502 阅读 · 0 评论 -
SpringBoot 与 Kotlin 完美交融
本文讲解 Spring Boot2 基础下,如何使用 Kotlin,并无缝整合与完美交融。为了让读者更加熟悉 Kotlin 的语法糖,笔者会在未来的几篇文章中,聊聊 Kotlin 的新特性及其语法糖。环境依赖修改 POM 文件,添加 spring boot 依赖。紧接着,我们需要添加 mysql 依赖。最后,添加 Kotlin 依赖。注意的是,在 Kotlin 中,data cla...原创 2018-11-28 15:01:52 · 1388 阅读 · 0 评论 -
Java架构-代码分层的设计之道
分层思想,是应用系统最常见的一种架构模式,我们会将系统横向切割,根据业务职责划分。MVC 三层架构就是非常典型架构模式,划分的目的是规划软件系统的逻辑结构便于开发维护。MVC:英文即 Model-View-Controller,分成模型层、视图层、控制层。将页面和业务逻辑分离,提高应用的可扩展性及可维护性。如图所示。事实上,MVC 三层架构只是概念层面的指导思想,我们会将层次结构划分的更加细致...原创 2018-11-28 14:48:11 · 1671 阅读 · 0 评论 -
Java架构-使用 Visual Studio Code 进行 Swift 开发
Visual Studio Code(VSCode)是一个来自微软的跨平台文本和源代码编辑器。它是当今最令人兴奋的开源项目之一,有数百名贡献者定期更新。VSCode 是最早支持语言服务器协议(LSP)的工具之一,后者在针对各种语言和技术提供良好的开发体验方面发挥了重要作用。前段时间,Swift 团队宣布 SourceKit LSP 支持现在处于早期开发阶段,现在正好是时候看下这种集成如何为我们...原创 2018-11-26 19:56:43 · 671 阅读 · 0 评论 -
Java架构-HotSpot 虚拟机对象探秘
请读者首先注意本篇的题目中的限定语“HotSpot 虚拟机”,在虚拟机规范中明确写道:“所有在虚拟机规范之中没有明确描述的实现细节,都不应成为虚拟机设计者发挥创造性的牵绊,设计者可以完全自主决定所有规范中不曾描述的虚拟机内部细节,例如:运行时数据区的内存如何布局、选用哪种垃圾收集的算法等”。因此,本篇(整个内存篇中所有的文章)的内容会涉及到虚拟机“自主决定”的实现,我们的讨论将在 HotSpot ...原创 2018-11-26 20:09:13 · 242 阅读 · 0 评论 -
IntelliJ IDEA 快捷键快速实用篇 - -
希望此文能帮到大家的同时,也听听大家的观点。欢迎留言讨论,加关注,分享你的高见!持续更新!我本人邀约各大BATJ架构大牛共创Spring Cloud构建微服务架构的交流社区。 (群号:547793198)欢迎各路架构师、开发者,学习与交流使用Spring Cloud诸多强大组件的实战经验。为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是...原创 2018-11-27 14:38:33 · 406 阅读 · 0 评论 -
搞定计算机网络面试,看这篇就够了(补充版)
昨天写了一篇自己搭建redis集群并在自己项目中使用的文章,今天早上看别人写的面经发现redis在面试中还是比较常问的(笔主主Java方向)。所以查阅官方文档以及他人造好的轮子,总结了一些redis面试和学习中你必须掌握的问题。事无巨细,不可能囊括到所有内容,尽量把比较常见的写出来。什么是Redis?Redis 是一个使用 C 语言写成的,开源的 key-value 数据库。。和Memcac...原创 2018-11-30 15:18:01 · 392 阅读 · 0 评论 -
Java架构-面试算法:计算堆栈当前元素的最大值
有一道堆栈相关算法题,我被面试过两次以上,看似其在算法面试中出现的概率很高,由此值得我们好好分析下。题目是这样的:对于堆栈的常用操作有, pop 弹出堆栈顶部的元素;push 向堆栈压入一个元素;peek 获得堆栈顶部的元素值,但不弹出堆栈。现在要去你增加一个操作max, 它的作用是返回堆栈当前所有元素中值最大的那个,例如堆栈当前元素有:stack: 5,4,2,3那么max() 返回的值就...原创 2018-11-30 15:26:48 · 389 阅读 · 0 评论 -
Java架构-程序员如何修炼管理思维
一个技术精湛的程序员,只要有机会,就有可能被公司提拔为项目管理人员,掌控项目中的一切。但所谓权力越大责任越大,要想成为一个合格的项目管理人员,我认为最重要的首先是扭转自己的思想。正如老子说的“道为体,术为用。”我们的思维模式改变了,各种管理的方法和工具自然的就会去学习使用了。正所谓“有道者术能长久,无道者术必落空。”所以在本文中,我就要和大家聊一聊管理中的道。聊一聊我们程序员如何修炼管理思维。...原创 2018-11-30 15:36:52 · 416 阅读 · 0 评论 -
Java架构/一致性Hash算法在数据库分表中的实践
最近有一个项目,其中某个功能单表数据在可预估的未来达到了亿级,初步估算在90亿左右。与同事详细讨论后,决定采用一致性Hash算法来完成数据库的自动扩容和数据迁移。整个程序细节由我同事完成,我只是将其理解并成文,供有相同问题的同行参考。参看此文的兄弟,默认各位已经熟悉一致性hash算法了。此文仅仅阐述代码细节,实现语言为Java。项目背景1.项目是一个实验室项目2.其中有一个表叫做试验表,用...原创 2018-11-30 15:46:58 · 2282 阅读 · 0 评论 -
Java架构-不要成为项目风险的奴隶
一个项目经理如果一直在项目中处于救火状态,那他就不是一个好项目经理。我所接触到的项目经理中,大家最常犯的一个错误,就是低估项目难度导致进度不可控制。由此,我今天想和大家讨论的主题,就是项目风险管理了。项目中不可能没有风险,正如理财一样,没有风险就没有收益。低风险低收益,高风险高收益。而我们都知道著名的墨菲定律,既有可能出错的事就一定会出错。项目中也一样,风险如果存在,就代表他一定会发生。项目...原创 2018-11-30 16:45:00 · 436 阅读 · 0 评论 -
java用正则方法验证文件名是否合法
Java中用到文件操作时,经常要验证文件名是否合法. 用File类的createNewFile()方法的确很管用.但当要批量验证时,效率上就会有问题.正则匹配的开销比创建文件少了很多. 那么一个合法的文件(Win下)应该符合如下规则:1.文件名不能为空,空在这里有两个意思:文件名(包括扩展名)长度为0或仅由空字符组成(包括\t\b等不可见的转义字符)文件名和扩展名不能同时为空.但实际上我们可...原创 2018-12-06 15:07:52 · 4280 阅读 · 0 评论 -
阿里Java架构师谈谈架构和如何成为一个Java架构师-巴分巴秒
架构的定义我们来看看软件架构的一般定义:程序和计算系统软件体系结构是指系统的一个或多个结构。 该结构包括软件的构建,构建的外部可见属性以及它们之间的相互关系。该体系结构不是可操作的软件。 具体来说,这是一个表达式,它使软件工程师能够:分析满足监管要求的设计有效性。在设计更改相对容易的阶段,请考虑架构的可能选项。降低与软件构建相关的风险。软件架构的重要性我为什么说软件...原创 2019-08-03 17:06:57 · 326 阅读 · 0 评论 -
终于明白为什么要加 final 关键字了!【巴分巴秒】
在开发过程中,由于习惯的原因,我们可能对某种编程语言的一些特性习以为常,特别是只用一种语言作为日常开发的情况。但是当你使用超过一种语言进行开发的时候就会发现,虽然都是高级语言,但是它们之间很多特性都是不太相同的。现象描述在 Java 8 之前,匿名内部类在使用外部成员的时候,会报错并提示 “Cannot refer to a non-final variable arg inside an i...原创 2019-08-03 17:05:51 · 233 阅读 · 0 评论 -
Java架构师笔记丨深入谈谈架构师,以及架构师该掌握的技术-巴分巴秒
架构师是一个充满挑战的职业,知识面的宽窄往往决定着一个架构师的架构能力,所以在这一点上我比较赞成你的学习方式,就是要阅读大量的技术书籍,但我希望你不要仅限于软件相关的书籍,经常泡技术论坛,一方面可以结交朋友,一方面可以增加自己的知识面。公司的大小往往决定了所做的项目规模,一般的大项目不太可能直接总包给小公司去做,但这并不妨碍小公司可以分包到大项目的一部分。在做小项目的同时也可以积累丰富的经验,我...原创 2019-08-04 14:50:46 · 323 阅读 · 0 评论 -
攻破MySQL性能瓶颈必知的调优技巧-巴分巴秒
一、前言MySQL调优对于很多程序员而言,都是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。今天给大家讲解MySQL的优化实战,助你高薪之路顺畅!图 - MySQL查询过程二、优化的哲学注意:优化有风...原创 2019-08-05 14:56:48 · 329 阅读 · 0 评论 -
Java架构面试官一年前淘汰了程序员,一年后新来的同事让他愣了
开启职场生涯的第一步是参加面试。不同的人有着不同的面试体验:有的心酸,有的兴奋。这种难忘的经历不仅停留在候选人的记忆中,一些面试官也会对自己参加的某次面试印象深刻。最近,一位程序员网友就分享了他作为面试官的经历,事情出乎意料的让他愣了。不少围观的网友都觉得有点尴尬。到底是怎么回事呢?原来,这位网友在面试过程中对候选人进行了技术能力的考量,但综合下来觉得技术不行,而且是太菜,就刷掉了。本以为事...原创 2019-08-03 17:05:23 · 640 阅读 · 0 评论 -
Java架构师笔记丨数据结构中B树,B-树和B+树的区别
B树即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找...原创 2019-08-07 20:57:36 · 1019 阅读 · 0 评论 -
Java架构师笔记丨Java进阶架构学习之旅-巴分巴秒
关于巴分巴秒巴分巴秒学院是一家专门面向中高端技术人才培养的在线教育培训平台,大牛讲师一对一指导+班主任全程在线服务,督促学习+技术社区交流互动,学习之路不孤单.公司旨在于帮助中高端技术人员提高在互联网行业的竞争力。学院内所有课程均由一线大型互联网公司技术大牛精心研发,汇集多年工作积累,让你的职业生涯不再困惑 让你的知识价值最大化。IT行业是21世纪的朝阳产业。成功的开始源自于接受好的教育,...原创 2019-08-04 21:17:39 · 2936 阅读 · 0 评论 -
Java架构师丨美团员工拒绝了猎头推荐的offer,竟然被报复举报!
不知大家近期找工作都是通过什么渠道?身边很多朋友问我,我一般都建议他们优先找朋友内推,海投被邀请的概率小,找猎头有时候又会碰上一些不靠谱的。近日就有美团员工在网上发帖吐槽,称自己找猎头推简历拿到了offer,后来因为感觉薪资没达到预期所以拒了,于是猎头就给原公司leader打电话说他出去面试了…真是千算万算还抵不过小人算计,底下程序员兄弟们纷纷吐槽,这种猎头还不爆等着过年吗?...原创 2019-08-03 19:33:18 · 580 阅读 · 0 评论 -
Java架构-面试前必须知道的MySQL命令【explain】
刷面试题的时候,不知道你们有没有见过MySQL这两个命令:explain和profile(反正我就见过了)…之前虽然知道这两个命令大概什么意思,但一直没有去做笔记。今天发现自己的TODO LIST有这么两个命令,于是打算来学习一番,记录一下~使用的MySQL的版本为5.6.38一、explain命令1.1体验explain命令首先我们来体验一下explain命令是怎么使用的,以及输出的...原创 2018-12-06 15:53:24 · 390 阅读 · 1 评论 -
Java 中初始化 List 集合的 6 种方式!
List 是 Java 开发中经常会使用的集合,你们知道有哪些方式可以初始化一个 List 吗?这其中不缺乏一些坑,今天栈长我给大家一一普及一下。1、常规方式这种就是我们平常用的最多最平常的方式了,没什么好说的,后面缺失的泛型类型在 JDK 7 之后就可以不用写具体的类型了,改进后会自动推断类型。2、Arrays 工具类注意,上面的 asList 是 Arrays 的静态方法,这里使用...原创 2018-12-06 15:57:55 · 462 阅读 · 0 评论 -
「阿里面试系列」搞懂并发编程,轻松应对80%的面试场景-巴分巴秒
作为一个合格的Java程序员,必须要对并发编程有一个深层次的了解,在很多互联网企业都会重点考察这一块。可能很多工作3年以上的Java程序员对于这一领域几乎没有太多研究。所以在接下来内容中,我会将并发编程整个领域由浅到深做非常全面的分析。内容导航从操作系统的发展了解进程、线程模型线程的优势线程的生命周期线程的应用场景了解进程、线程模型每次学习一个新技术,我会先去了解这个技术的背景,...原创 2019-08-03 19:39:42 · 386 阅读 · 0 评论 -
Java架构师笔记-你必须掌握的 21 个 Java 核心技术!(干货)
闲来无事,师长一向不(没)喜(有)欢(钱)凑热闹,倒不如趁着这时候复盘复盘。而写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java。这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的、和Java中各个框架相关的内容。经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于...原创 2019-08-03 17:04:58 · 410 阅读 · 0 评论 -
阿里 P10、腾讯 T4、华为 18,互联网公司职级、薪资、股权大揭秘-巴分巴秒
BAT、头条、华为们的最新技术职级序列是如何划分的?各个职级的大致薪资范围、股票都是多少?不同职级之间的晋升难度有多大,如何评审?校招、社招程序员想去大厂应该如何准备?本篇文章搜集整理了最新版数据,为你一一解答!写在前面相信很多读者朋友在网上看过不少互联网公司薪资的问题和数据报表,其中很多数据的更新时间都停留在 2 到 3 年前。关注这个问题的人如此之多,但信息却很久没有更新了,有没有可能...原创 2019-08-03 19:32:07 · 10697 阅读 · 1 评论 -
Spring Websocket实现文本、图片、声音、文件下载及推送、接收及显示(集群模式)
相关环境 Nginx,Spring5.x当前(要选择4.0+),tomcat8.x,Quartz 2.x集群(实际运用是Quartz的集群模式和单机模式共存的)测试面页:http://sms.reyo.cn/socket.html每20秒随机显示不同类型的广告:文字、图片、声音),效果如下:服务器端代码:发送图片提供了两种方式处理,方便以后调用。客户端接受并显示图片代码:欢...原创 2018-12-06 15:22:13 · 2144 阅读 · 1 评论 -
Java架构-拜托,面试请不要再问我Redis分布式锁的实现原理
一、写在前面现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。所以咱们这篇文章就来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理。说实话,如果在公司里落地生产环境用分布式锁的时候,一定是会用开源类库的,比如Redis分布式锁,一般就是用Redisson框架就...原创 2018-11-29 19:53:55 · 3590 阅读 · 1 评论 -
css基础样式和盒子模型
知识点: 基础样式: 前景: color/文字颜色/ font-size/文字尺寸/ font-weight/文字重量normal bold bolder linghts/ font-family/文字字体 / font-style/文字样式/背景: background-color/背景颜色/ background-image/背景图片/ background-repe原创 2017-01-13 11:40:40 · 418 阅读 · 0 评论 -
Java架构-数据建模 NoSQL 数据库的概念和对象建模符号
在最近的2018数据架构峰会上,Ted Hills主持了一个研讨会,该研讨会的主题是关系数据库和 NoSQL 数据库的数据建模。他表示,NoSQL 运动帮助了数据库社区明白了两件事。首先,并非每个应用程序都需要 ACID,并且,放宽 ACID 以能扩展到互联网规模。其次,表格数据组织很适合大量的数据,但未必适合所有的数据集。但是,随着时间的流逝,SQL/NoSQL 的显著区别将会消失,DBMS ...原创 2018-11-26 14:50:22 · 408 阅读 · 0 评论 -
Spring Bean的生命周期
欢迎大家和我一起学习Spring Boot构建微服务云架构,我这边会将近期研发的Spring Boot微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发Spring Boot框架的朋友,大家来一起探讨Spring Boot架构的搭建过程及如何运用于企业项目。我本人邀约各大BATJ架构大牛共创Spring Boot构建微服务架构的交流社区。 (群号:364677697)欢迎各路架构...原创 2018-11-29 14:32:39 · 247 阅读 · 0 评论 -
Java架构-JVM垃圾回收机制
一、简介Java GC(Garbage Collection,垃圾回收)机制,是Java与C++/C的主要区别之一在C++/C语言中,程序员必须小心谨慎地处理每一项内存分配,且内存使用完后必须手工释放曾经占用的内存空间。当内存释放不够完全时,即存在分配但永不释放的内存块,就会引起内存泄漏,严重时甚至导致程序瘫痪。Java 语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统...原创 2018-11-29 14:50:08 · 215 阅读 · 0 评论