标签:原理分析

Java

Guava 源码分析(Cache 原理)

9

xubiao.zhuang 发布于 2018-06-13

前言 Google 出的 Guava 是 Java 核心增强的库,应用非常广泛。 我平时用的也挺频繁,这次就借助日常使用的 Cache 组件来看看 Google 大牛们是如何设计的。 缓存 本次主要讨论缓存。 缓存在日常开发中举足轻重,如果你的应用对某类数据有着较高的读取频次,并...

阅读(52)评论(0)赞 (0)

Spring

Spring IOC 容器源码分析 – 余下的初始化工作

xiaoli.he 发布于 2018-06-11

1. 简介 本篇文章是“Spring IOC 容器源码分析”系列文章的最后一篇文章,本篇文章所分析的对象是 initializeBean 方法,该方法用于对已完成属性填充的 bean 做最后的初始化工作。相较于之前几篇文章所分析的源码,initializeBean 的源码相对比较...

阅读(38)评论(0)赞 (0)

Spring

再谈优雅重试(retry)机制

3

dulong 发布于 2018-06-08

业务场景 应用中需要实现一个功能: 需要将数据上传到远程存储服务,同时在返回处理成功情况下做其他操作。这个功能不复杂,分为两个步骤:第一步调用远程的Rest服务逻辑包装给处理方法返回处理结果;第二步拿到第一步结果或者捕捉异常,如果出现错误或异常实现重试上传逻辑,否则继续逻辑操作。...

阅读(36)评论(0)赞 (0)

Java

注册中心 Eureka 源码解析 —— 应用实例注册发现(六)之全量获取

5

xubiao.zhuang 发布于 2018-06-02

摘要: 原创出处 http://www.iocoder.cn/Eureka/instance-registry-fetch-all/ 「芋道源码」欢迎转载,保留摘要,谢谢! 本文主要基于 Eureka 1.8.X 版本 1. 概述 2. Eureka-Client 发起全量获取 ...

阅读(63)评论(0)赞 (0)

Java

掌握后端技术的6点学习建议

3

yanxinchi 发布于 2018-05-25

程序员是一个金字塔结构的职业体系,越往上,人越少也越难达到。走到金字塔顶部需要不断的学习和进步,包括正确的态度、正确的方法以及持续的努力。本文整理了6点学习后端技术的建议,并在最后给出了学习新技术的方法论,希望帮你早日走上金字塔的顶端。 学习后端技术和学习其他技术并没有什么大的不...

阅读(33)评论(0)赞 (0)

Java

Java Lambda表达式 实现原理分析

5

wenming.gapo 发布于 2018-05-24

本文分析基于JDK 9 一、目标 本文主要解决两个问题: 1、函数式接口 到底是什么? 2、Lambda表达式是怎么实现的? 先介绍一个jdk的bin目录下的一个字节码查看工具及反编译工具:javap 二、函数式接口 @FunctionalInterface interface ...

阅读(37)评论(0)赞 (0)

IOS技术

iOS使用Shell脚本批量修改类名称

1

likai 发布于 2018-05-23

背景 公司需要做一系列的壳版本,壳版本如果内容雷同提交到App Store会有被拒绝的风险,在之前的两篇文章 iOS使用shell脚本注入混淆内容 和 iOS使用shell脚本批量修改属性 中介绍了两种方式来绕过苹果后台的机器审查,这篇文章还是在这个业务场景中,介绍的是使用脚本批...

阅读(43)评论(0)赞 (0)

Java

从原理分析Kotlin的延迟初始化: lateinit var和by lazy

1

dulong 发布于 2018-05-23

Koltin中属性在声明的同时也要求要被初始化,否则会报错。 例如以下代码: private var name0: String //报错 private var name1: String = "xiaoming" //不报错 private var nam...

阅读(33)评论(0)赞 (0)

Java

Dubbo性能参数调优及原理

1

刘莉莉 发布于 2018-05-20

本文是针对 Dubbo 协议调用的调优指导,详细说明常用调优参数的作用域及源码。 Dubbo调用模型 常用性能调优参数 参数名 作用范围 默认值 说明 备注 threads provider 200 业务处理线程池大小 iothreads provider CPU+1 io线程池...

阅读(42)评论(0)赞 (0)

Java

2018-05-15 Java CAS 原理分析

1

hanze 发布于 2018-05-14

1.简介 CAS 全称是 compare and swap,是一种用于在多线程环境下实现同步功能的机制(可以把 CAS 看做乐观锁)。CAS 操作包含三个操作数 – 内存位置、预期数值和新值。CAS 的实现逻辑是将内存位置处的数值与预期数值想比较,若相等,则将内存位置处的值替换为...

阅读(39)评论(0)赞 (0)

Java

Java 线程同步组件 CountDownLatch 与 CyclicBarrier 原理分析

3

songhua.gao 发布于 2018-05-10

1.简介 在分析完 AbstractQueuedSynchronizer (以下简称 AQS)和 ReentrantLock 的原理后,本文将分析 java.util.concurrent 包下的两个线程同步组件 CountDownLatch 和 CyclicBarrier 。这...

阅读(38)评论(0)赞 (0)

Java

Java 重入锁 ReentrantLock 原理分析

6

dulong 发布于 2018-05-07

1.简介 可重入锁 ReentrantLock 自 JDK 1.5 被引入,功能上与 synchronized 关键字类似。所谓的可重入是指,线程可对同一把锁进行重复加锁,而不会被阻塞住,这样可避免死锁的产生。ReentrantLock 的主要功能和 synchronized 关...

阅读(45)评论(0)赞 (0)

Java

详解Condition的await和signal等待/通知机制

6

likai 发布于 2018-05-07

任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等待/通知...

阅读(39)评论(0)赞 (0)

Java

Spring Boot Admin的使用笔记

邓龙华 发布于 2018-05-06

Spring Boot Admin的使用笔记 当前 Spring Boot Admin 的最新版本为 1.5.0 。本文是相关的使用笔记。 集成方法 方法一 Spring Boot Admin服务端作为单独的组件,微服务组件使用客户端通信库向Spring Boot Admin服务...

阅读(31)评论(0)赞 (0)

Java

AbstractQueuedSynchronizer 原理分析 – Condition 实现原理

1

hellas 发布于 2018-05-04

AbstractQueuedSynchronizer 原理分析 – Condition 实现原理 1. 简介 Condition 是一个接口,AbstractQueuedSynchronizer 中的 ConditionObject 内部类实现了这个接口。 Condi...

阅读(37)评论(0)赞 (0)

Java

AbstractQueuedSynchronizer 原理分析 – 独占/共享模式

4

wenming.gapo 发布于 2018-05-01

1.简介 AbstractQueuedSynchronizer (抽象队列同步器,以下简称 AQS)出现在 JDK 1.5 中,由大师 Doug Lea 所创作。AQS 是很多同步器的基础框架,比如 ReentrantLock、CountDownLatch 和 Semaphore...

阅读(54)评论(0)赞 (0)

Java

后端架构师技术图谱

songhua.gao 发布于 2018-04-28

《后端架构师技术图谱》 最后更新于20180427 数据结构 队列 集合 链表、数组 字典、关联数组 栈 树 二叉树 完全二叉树 平衡二叉树 二叉查找树(BST) 红黑树 B-,B+,B*树 LSM 树 BitSet 常用算法 排序、查找算法 选择排序 冒泡排序 插入排序 快速排...

阅读(291)评论(0)赞 (0)

Java

你真的了解Java中的三目运算符吗?

1

xirruiqiang 发布于 2018-04-27

三目运算符是我们经常在代码中使用的,a= (b==null?0:1);这样一行代码可以代替一个if-else,可以使代码变得清爽易读。 但是,三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。本文就介绍一个我自己曾经踩过的坑。 一、三目运算符 对于条件表达...

阅读(40)评论(0)赞 (0)