Loading...

摘要:为什么在Java面试中总是会问HashMap? HashMap一直是Java面试官喜欢考察的题目,无论应聘者你处于哪个级别,在多轮的技术面试中似乎总有一次会被问到有关 HashMap 的问题。 为什么在Java面试中一定会深入考察HashMap?因为 HashMap 它的设计结构和原理的特点,它既可 阅读全文
posted @ 2020-11-16 09:10 JaJian 阅读(469) 评论(2) 推荐(1) 编辑
摘要:小问题 记一个开发过程中因为小细节的遗漏而引发的 "莫名其妙",公司中有个2B(to B)供应链项目,持久层用的是 JPA,这里我就不吐槽 JPA 了,这种 SQL 嵌入在代码里的方式真的不够简洁。 由于是新功能的开发,查询的功能中需要多字段的条件查询,涉及到多张表的关联操作。我试着用 JPA 来写 阅读全文
posted @ 2020-11-09 18:23 JaJian 阅读(42) 评论(0) 推荐(0) 编辑
摘要:前言 MVC模式是目前主流项目的标准开发模式,这种模式下框架的分层结构清晰,主要分为Controller,Service,Dao。分层的结构下,各层之间的数据传输要求就会存在差异,我们不能用一个对象来贯穿3层,这样不符合开发规范且不够灵活。 我们常常会遇到层级之间字段格式需求不一致的情况,例如数据库 阅读全文
posted @ 2020-11-09 09:31 JaJian 阅读(176) 评论(0) 推荐(0) 编辑
摘要:今天来讲些抽象的东西 -- 对象头,因为我在学习的过程中发现很多地方都关联到了对象头的知识点,例如JDK中的 synchronized锁优化 和 JVM 中对象年龄升级等等。要深入理解这些知识的原理,了解对象头的概念很有必要,而且可以为后面分享 synchronized 原理和 JVM 知识的时候做 阅读全文
posted @ 2020-09-21 08:47 JaJian 阅读(535) 评论(0) 推荐(4) 编辑
摘要:理论知识 周末上海下起了雨也降温了,无事打开电脑看看源码,就想到了线程池。线程池的技术网络上已经有很多文章都已经写过了,而且理论都是一样的。 但是理论归理论,面试的时候也许你刚好看了一篇能应付过去,但是如果深究细节可能就会懵逼。所以我很建议任何理论我们都需要自己去探究一下才好,自己实践过的才有自己的 阅读全文
posted @ 2020-09-08 09:11 JaJian 阅读(1172) 评论(1) 推荐(8) 编辑
摘要:Java基础 Java对象的内存布局 MapStruct 解了对象映射的毒 周末我把HashMap源码又过了一遍 Java7 和 Java8 中的 ConcurrentHashMap 原理解析 Java中自定义注解 Java函数式编程和lambda表达式 TCP三次握手原理,你真的了解吗? “三次握 阅读全文
posted @ 2019-11-11 10:08 JaJian 阅读(3208) 评论(1) 推荐(4) 编辑
摘要:前言 最近在学习 Go 语言,Go 语言中有指针对象,一个指针变量指向了一个值的内存地址。学习过 C 语言的猿友应该都知道指针的概念。Go 语言语法与 C 相近,可以说是类 C 的编程语言,所以 Go 语言中有指针也是很正常的。我们可以通过将取地址符 放在一个变量前使用就会得到相应变量的内存地址。 阅读全文
posted @ 2019-08-12 09:11 JaJian 阅读(1884) 评论(1) 推荐(2) 编辑
摘要:之前已经分享过Elasticsearch的使用和原理的知识,由于近期在公司内部做了一次分享,所以本篇主要是基于之前的博文的一个总结,希望通过这篇文章能让读者大致了解Elasticsearch是做什么的以及它的使用和基本原理。 生活中的数据 搜索引擎是对数据的检索,所以我们先从生活中的数据说起。 我们 阅读全文
posted @ 2019-07-22 09:32 JaJian 阅读(4376) 评论(8) 推荐(12) 编辑
摘要:传统的单体架构的时候,我们基本是单库然后业务单表的结构。每个业务表的ID一般我们都是从1增,通过 设置自增起始值,但是在分布式服务架构模式下分库分表的设计,使得多个库或多个表存储相同的业务数据。这种情况根据数据库的自增ID就会产生相同ID的情况,不能保证主键的唯一性。 如上图,如果第一个订单存储在 阅读全文
posted @ 2019-07-08 09:00 JaJian 阅读(4682) 评论(9) 推荐(20) 编辑
摘要:由于近年来的移动端的发展和 2C模式 的红利,一些在风口的企业的业务得到爆发式增长。从架构层面来说,业务驱动技术的变革,所以微服务架构的概念得到很多企业的青睐,因为可以解决服务的大流量和高并发以及稳定性的要求。 但是任何架构设计不是一蹴而就的,不能从起步就开始使用微服务,一般都是先通过单体架构来快速 阅读全文
posted @ 2019-07-02 15:21 JaJian 阅读(2119) 评论(2) 推荐(9) 编辑
摘要:最近在公众号号上看到了一篇文章,读后蛮有感触的,程序员常常因为走技术还是管理两个方向而犹豫不决,希望通过以下文章的分享对大家有所思考,以下是作者原文。 熟悉我的人都知道,我有位从事猎头工作的老婆,平时的工作是专为某些医疗、金融投资机构提供中、高级岗位职位人才招聘及相关咨询服务。 相比之下,这项工作对 阅读全文
posted @ 2019-06-26 18:03 JaJian 阅读(1513) 评论(1) 推荐(8) 编辑
摘要:前言 我们程序员在开发的时候经常会遇到各种各样的 BUG 问题,其中大部分是业务逻辑异常,还有一些是代码书写不规范造成的异常例如:NullPointException(NPE),IndexOutOfBoundsException 等等,其实这些我们都好定位和修复。但是还有一些运行时异常定位起来是特别 阅读全文
posted @ 2019-06-12 09:09 JaJian 阅读(13796) 评论(1) 推荐(7) 编辑
摘要:一款简单干净的博客园主题,代码 Github 地址: "cnblog theme simpcode" ,示例博客: "noobgod" 。 一、准备 在开始之前,必须要确保你已经申请了博客园 JS 权限,具体申请过程就不详细介绍了,读者自行网上搜索,很简单的。 本皮肤如果经常逛博客的读者应该很熟悉, 阅读全文
posted @ 2019-06-11 09:03 JaJian 阅读(7276) 评论(13) 推荐(35) 编辑
摘要:业务场景 在单机系统中,用户登陆之后,服务端会保存用户的会话信息,只要用户不退出重新登陆,在一段时间内用户可以一直访问该网站,无需重复登陆。用户的信息存在服务端的 session 中,session中可以存放服务端需要的一些用户信息,例如用户ID,所属公司companyId,所属部门deptId等等 阅读全文
posted @ 2019-06-03 08:31 JaJian 阅读(2093) 评论(3) 推荐(4) 编辑
摘要:业务场景 公司有个借贷的项目,具体业务类似于阿里的蚂蚁借呗,用户在平台上借款,然后规定一个到期时间,在该时间内用户需将借款还清并收取一定的手续费,如果规定时间逾期未还上,则会产生滞纳金。 用户发起借款因此会产生一笔借款订单,用户可通过支付宝或在系统中绑定银行卡到期自动扣款等方式进行还款。还款流程都走 阅读全文
posted @ 2019-05-27 08:57 JaJian 阅读(13570) 评论(13) 推荐(11) 编辑
摘要:业务场景 近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多技术的支持。例如系统访问层的负载均衡,缓存层的多实例主从复制备份,数据层的分库分表等。 我们以负载均衡为例,常见的负 阅读全文
posted @ 2019-05-23 09:52 JaJian 阅读(6884) 评论(1) 推荐(8) 编辑
摘要:需求缘起 Web Server通常有个配置,最大工作线程数,后端服务一般也有个配置,工作线程池的线程数量,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。 “工作线程数”的设置依据是什么,到底设置为多少 阅读全文
posted @ 2019-05-14 15:20 JaJian 阅读(4305) 评论(2) 推荐(0) 编辑
摘要:前言 创建索引的时候,我们通过Mapping 映射定义好索引的基本结构信息,接下来我们肯定需要往 ES 里面新增业务文档数据了,例如用户,日志等业务数据。新增的业务数据,我们根据 Mapping 来生成对应的倒排索引信息 。 我们一直说,Elasticsearch是一个基于Apache Lucene 阅读全文
posted @ 2019-05-13 09:02 JaJian 阅读(1766) 评论(0) 推荐(0) 编辑
摘要:学习的需要 这篇文章不做技术分享,和大家一起讨论一下学习的途径和方法。程序员行业技术更新迭代速度快,这个特点身为行业内的每个猿友们都有深刻体会。 很多技术基本每年都有一个大小版本,每个版本的出现意味着有新的技术思想和应用技巧出现。也许你用不到但是你需要去了解。你看自从甲骨文公司宣布收购Sun公司,J 阅读全文
posted @ 2019-04-10 07:43 JaJian 阅读(4997) 评论(21) 推荐(19) 编辑
摘要:前言 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。 本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。 对于线上系 阅读全文
posted @ 2019-03-22 15:35 JaJian 阅读(2019) 评论(0) 推荐(1) 编辑