Loading...

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