8 琦小虾

尚未进行身份认证

抱拳会天下英豪,煮酒论成败是非。

等级
TA的排名 1w+

系统架构师设计培训心得之二——架构设计

培训过程中,老师用例子说明了一个项目的架构设计的流程。按步骤可以分为:框架技术的选择应用;架构平台重构与设计过程;领域建模;行为建模;这四个步骤中,第三步与第四步是最重要的核心。一. 框架技术的选择应用人们经常对框架与架构的概念混淆。最简单的区分方法,就是可以将架构比作设计图纸,框架比作源码。而框架的选择是架构设计的重要部分,选择框架的一步,被称为架构的概要设计。市面上有很多已...

2019-09-08 09:14:56

服务假死问题解决过程实记(三)——缓存问题优化

接上篇 《服务假死问题解决过程实记(二)—— C3P0 数据库连接池配置引发的血案》五、04.17—04.21 缓存逻辑修正这段时间我一直在优化服务的性能,主要是从分布式缓存和业务逻辑修正两个角度出发进行的。首先是将我们的缓存逻辑给修正了一下。关于缓存,我们业务存在两个重要问题:集群部署的情况下,每个服务都用了很多本地 ConcurrentHashMap 缓存;在业务逻辑计算出结果之...

2019-05-01 11:12:58

服务假死问题解决过程实记(二)——C3P0 数据库连接池配置引发的血案

接上文三、03.30 Tomcat 假死后续——C3P0 连接池参数配置问题昨晚上正在看有关 B+Tree 相关的内容,收到业务组的微信消息:最帅气的大龙龙:现场数据库连接不上,他们排查问题,怀疑与连接池或者日志有关系,最后发现从昨天下午到现在产生 30 万条日志,其中我们就有 22 万条,明天查一下我们服务 @琦小虾好吧,那就和师父一起查问题好了。第二天早上,果然数据库组的同事过来...

2019-05-01 11:09:12

服务假死问题解决过程实记(一)——问题发现篇

一、前言自三月六日起,笔者所在业务组的开发环境上出现了若干次服务假死,页面请求无响应的现象。由于笔者在三月六日之前,对 JVM, Tomcat,以及数据库连接池没有丝毫调优经验,所以从三月六日开始的所有与解决该问题的过程,都会记录到本文,以记录并纪念笔者的第一次服务调优经历。链接:二、03.06 记 Tomcat 的一次假死问题解决经历注:本文是一个前序,记录问题出现的现象...

2019-05-01 11:06:02

C3P0 连接池相关概念

C3P0 连接池相关概念笔者为了解决服务问题查阅了相关 C3P0 的文档,然后为了增强记忆手打该文,并将其作为笔者自己其他文章的链接,故笔者仍将其作为原创文章。网上有更多更全面的关于 C3P0 连接池的文档,待包括笔者在内的众读者移步参考。注:文中标红的参数,是笔者解决项目问题时引起重要影响的参数。一、简要介绍数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的...

2019-03-31 17:25:41

“王大锤の非诚勿扰” —— Spring IoC / DI 思想详述

本文参考地址:《spring Ioc/DI的理解》《关于Spring IOC (DI-依赖注入)你需要知道的一切》《一、IOC和DI的概念》《深入理解IoC/DI》《spring IOC篇二:xml的核心逻辑处理》**温馨提示:**前方内容会引起认真怪和女权者些许不适,请出门左手边右拐。一. 王大锤的相亲市场我叫王大锤,是个码农,我们这个行业号称“人傻钱多速来”,不信?呵呵呵呵...

2018-09-25 00:12:39

Queue 相关数据结构的原理与实现 (LinkedList, ArrayDeque, PriorityQueue)

参考地址: 《Java集合详解2:LinkedList和Queue》 《Java ArrayDeque实现Stack的功能》 《java数据结构—-堆》 《深入理解Java PriorityQueue》前言及概述注:本文是基于的 HowToPlayLife 的博文《Java集合详解2:LinkedList和Queue》为基础而写的。 LinkedList与ArrayLi...

2018-09-13 00:08:31

转:Java 泛型,你了解类型擦除吗?

转载自 frank909 的文章 《Java 泛型,你了解类型擦除吗?》泛型,一个孤独的守门者。大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。文章开始的地方,先给大家...

2018-09-10 06:52:08

JDK7 与 JDK8 中 HashMap 的实现

JDK7 与 JDK8 中 HashMap 的实现转载自 Hosee 的文章 《JDK7与JDK8中HashMap的实现》1. JDK7中的HashMapHashMap底层维护一个数组,数组中的每一项都是一个Entry。transient Entry<K,V>[] table;我们向 HashMap 中所放置的对象实际上是存储在该数组当中; 而Map...

2018-09-03 00:25:46

Spring 之 BeanFactory 核心:getBean 方法的流程——前言

Spring 之 BeanFactory 核心:getBean 方法的流程——前言参考地址: 《Spring核心之BeanFactory 一张图看懂getBean全过程.》 前言笔者最近在工作空闲时间研究 Spring 的生命周期部分,好奇之下也总结了《Spring 中 BeanFactory 的生命周期与源码解析(附例程)》。然而对于 Spring 框架如何获取一个 Bean...

2018-08-23 23:15:38

Spring 中 BeanFactory 的生命周期与源码解析(附例程)

BeanFactory 的生命周期与源码解析参考地址:《Spring核心之BeanFactory 一张图看懂getBean全过程》 《Spring bean的生命周期,对比源码详解》 《Spring源码学习–Bean的生命周期》 《AbstractApplicationContext.refresh()》 《容器的功能扩展(三)finishRefresh》 《spring中Ini...

2018-08-19 13:48:59

Java 注解 —— 注解的理解、注解的使用与自定义注解

Java 注解 —— 注解的理解、注解的使用与自定义注解参考网址:《秒懂,Java 注解 (Annotation)你可以这样学》 《Java注解基本原理》 《注解Annotation实现原理与自定义注解例子》 《框架开发之Java注解的妙用》 一. 注解基本介绍1.1 什么是注解?什么是注解?严谨的来说,注解提供了一种安全的类似注释的机制,用来将任何的信息或...

2018-08-05 21:58:04

转:Java 8 重要语言特性:lambda 表达式

转载自:《深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)》——Lucida注:本文是笔者在上述地址学习 Java SE 8 Lambda 表达式的笔记。笔者的学习习惯,是在学习过程中将内容敲打一遍,记忆会更加深刻。本文只节选了原文一部分,更多内容详见原文。一. 背景不过有些 Java 对象只是对单个函数的封装。例如下面这个典型...

2018-08-02 08:10:44

集群间部署 Ehcache 实战

集群间部署 Ehcache 实战参考网址:《Spring+EhCache缓存实例》 《集群环境中使用 EhCache 缓存系统》 《EhCache 系统简介》 《ehcache 集群使用 rmi方式》 《ehcache缓存配置说明》一. Ehcache 的简介EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 C...

2018-07-19 23:36:16

JavaSE 基础学习之六 —— Java 的反射操作

六. JavaSE 基础学习之六 —— Java 的反射操作1.java.lang.Class 类 参考地址: 《Java源码解析(2) —— Class(1)》 《Class类详解》万事万物都是对象。我们平常接触到的类,本身也是一种对象,它的类型是 Class,也可以说 Class 是类的类型,即类类型 (Class Type);任何一个类,都是 java....

2018-06-27 23:07:59

IDEA 新建 Spring MVC 工程项目与 SpringMVC 运行流程

IDEA 新建 Spring MVC 工程项目与 SpringMVC 运行流程前文刚刚入职,项目大范围的使用到了 Spring + SpringMVC + MyBatis 框架,对于一个 Java 小白直接上手理解 Spring 还是十分困难的,而且只看书,不进入代码层面,理解并记忆 Spring 的宏大框架是在太困难了,所以用了很长时间写了一篇破天荒长度的博客…… 本篇文章时笔者这辈子...

2018-06-18 22:42:00

JavaSE 学习附加作业——IO 操作相关

IO 操作相关作业题目:根据 coreJava.txt 文件:提炼出 Question 类解析文件(一个函数),要求: 把同个等级的题目,放入同一个 ArrayList 集合;把等级作为 key,把 ArrayList 集合作为 value,放入 Map 集合;出一套考题,每个等级一道题目(随机选出 Random)写成一个函数部分 coreJava.txt 内容如下:...

2018-06-02 22:31:24

JavaSE 基础学习之五 —— IO 操作 (java. io.*)

接上篇《JavaSE 基础学习之四 —— 异常的处理》五. JavaSE 基础学习 —— IO 操作 (java. io.*)1. 编码 字符编码就是按照某种格式某种规定将字符存储在计算机中。字符编码有非常多,每个国家都有自己规定的字符编码。常见的字符编码有几种:ASCII, Unicode, UTF-8, GBK(简体繁体融于一库)等几种不同常用编码模式的特征:G...

2018-06-02 22:29:29

JavaSE 基础学习之四 —— 异常处理

接上篇《JavaSE 基础学习之三 —— Java 的继承与接口》四. JavaSE 基础学习之四 —— 异常处理1. 两种类型的异常运行时异常 (RuntimeException):不处理也能通过编译,jvm 会帮助处理,也可以自行处理;其他异常:对于其他异常,如果不处理程序就不能通过编译,必须自己处理;注: 所有的异常产生之后,都是一个类的实例对象,而且这些异常全部...

2018-05-26 07:48:01

JavaSE 基础学习之三 —— Java 的继承与接口

接上文《JavaSE 基础学习之二 —— Java 的部分基本语法》三. Java 的继承与接口1. java 中的继承 继承是 java 面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 ——摘自《Java 继承 | 菜鸟...

2018-05-26 07:46:03

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。