V_Axis的博客

工作一年,只在onenote和有道云上记录,现在要把积累的东西放到博客上,以后的积累也都在此。各位技术大牛多多交流~...

MsgPack的浅浅理解

前言 记得18年3月刚刚入职的时候,企业邮箱收到的第一个事故报告就是说在bean中添加字段没有加在字段序的最后导致线上出问题,我只是知其然不知其所以然。于是趁着过年没有紧急任务,查阅一些资料充充电。 MsgPack是何方神圣 直接看官方的解释吧,说的挺明白的: MessagePack is an...

2019-02-03 15:28:15

阅读数 150

评论数 0

Java8新特性Stream使用心得之:allMatch

首先描述碰到的业务场景:给其他部门提供的接口提供的查询参数(类型)由一个变成多个(Integer变为List),且类型字段只能为1、2、3、4四种情况。 毋庸置疑,入参一定是要校验的,有什么优雅的办法校验此种业务情况呢? 核心目的:校验参数,只有1、2、3、4四种类型为合理入参。 校验代码: bo...

2019-02-02 11:33:53

阅读数 498

评论数 0

Java8新特性Stream使用心得之:groupingBy与partitioningBy

业务开发过程中,经常会需要将集合中的数据进行聚合操作。比如:取出订单集合中有效订单的数据、按照订单类型做分组等等。以前的处理方式会遍历这个集合然后通过业务判断做处理,虽然可用,但远不够高效且笨拙。 为什么需要Stream Stream是Java8的一大亮点,是对集合对象(Collection)功能...

2019-01-16 19:03:37

阅读数 239

评论数 0

springBoot项目配置热部署

最近在整一个前后端分离的练手项目,后端是springBoot,前端是Vue+axios。在过程中每次修改后端代码后都要重新启动,收集一番资料后,发现springBoot已经提供了方便快捷的解决方案,亲测可行。正文如下(以idea为例) 第一步:在pom.xml中添加如下依赖 &am...

2018-07-05 12:00:47

阅读数 253

评论数 0

学习笔记-分布式缓存

分布式系统 a) 基本术语 i. 进程与线程:不再赘述 ii. 并发:系统只有1个CPU,单位时间内对于资源的方位; iii. 锁:用于保护临界区,应用于多线程中。 1. 避免锁争用的几种策略:分拆锁、分离锁、避免共享变量缓存、使用并发容器如Amino、使用I...

2018-06-07 23:38:11

阅读数 109

评论数 0

线程之间的通信

通过几个面试题来了解线程之间的通信。 问题清单: 如何让两个线程依次执行? 如何让两个线程按照指定方式有序交叉运行? 四个线程 A B C D,其中 D 要等到 A B C 全执行完毕后才执行,而且 A B C 是同步运行的。 三个线程各自准备,等到三个线程都准备好后,再一起执行某个任务。 ...

2018-02-28 16:21:53

阅读数 988

评论数 0

SQL优化的十条建议

SQL优化1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE ‘%parm1%’—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用. 解决办法: 其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下: a、修改前台程序——把查询条件的供应商名称一栏由原来...

2018-01-16 11:26:54

阅读数 211

评论数 0

一次完整的网络请求过程

从地址栏输入http://www.gaxis.cn这个URL之后,直到我的个人主页加载完成,中间到底发生了什么呢? 大概经历了以下过程: 1. 分析域名(gaxis) 2. TCP三次握手(嘿,我能连你吗?/完全OjbK啊。/那我连了啊。) 3. 建立TCP连接 4. 浏览器发起...

2018-01-05 16:44:52

阅读数 3974

评论数 0

学习笔记:分析MyBatis框架-架构与映射

参考文献:《深入分析Java Web技术内幕》 - 第15章一、MyBatis框架的层次结构1.1 主要职责: 根据JDBC规范建立与数据库的连接; 通过反射打通Java对象与数据库参数交互之间相互转化的关系; 1.2 处理方式: 典型的交互式框架。先期准备好交互的必要条件,然后构建一个...

2017-12-26 13:47:41

阅读数 164

评论数 0

学习笔记:volatile关键字总结

volatile、Java内存模型、JMM(Java Memory Model)

2017-12-21 17:10:24

阅读数 199

评论数 0

学习笔记:Java I/O的工作机制

Java I/O 工作机制; NIO工作原理; NIO demo代码分析

2017-12-04 16:36:48

阅读数 129

评论数 0

单例模式的升级之路

单例模式:简单的说,就是一个类只能构建一个对象的设计模式。 创建一个线程安全的单例模式。

2017-11-27 16:10:38

阅读数 116

评论数 0

ConcurrentHashMap:实现线程安全的HashMap

分析ConcurrentHashMap如何保证线程安全、ConcurrentHashMap的读写过程、Size()过程

2017-11-24 16:57:28

阅读数 7281

评论数 4

HashMap为什么线程不安全?浅析高并发情况下的HashMap

1.Hashmap在插入元素过多的时候需要进行Resize; 2.Hashmap扩容时Resize的ReHash步骤,并发的情况下可能会形成链表环;

2017-11-22 16:50:18

阅读数 8267

评论数 0

Java细节与规范:HashMap扩容-ReSize

首先要先了解何时需要进行扩容。 在HashMap的源码中有一个非常重要的常量:static final float DEFAULT_LOAD_FACTOR = 0.75f;//负载因子明确几个变量: Capactity: Hashmap的当前长度(2的n次幂); LoadFActo...

2017-11-20 17:25:09

阅读数 1055

评论数 0

HashMap原理分析

HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。 此外,在java编程语言中,最基本的结构就是两种:数组、模拟指针(引用)。所有的数据结构都可以用这两个基本结构来构造。 HashMap底层就是一个数组结构,数组中的每一项又是一个链表。新来的Entry节点插入链表时,使用...

2017-11-15 14:46:53

阅读数 774

评论数 2

通俗解释悲观锁与乐观锁

转自作者:刘欣旺财和小强生活在一个网上商城的系统中, 是一对儿线程好基友。 星期一刚上班,旺财接到领导电话说,要把一个商品的库存减少20, 旺财不敢怠慢,赶快把库存取出来一看,哦,现在有1000个。与此同时,小强也接到电话说要把同一商品的库存减少30, 他一看,哦,现在有1000个。旺财计算出最新...

2017-11-14 17:22:42

阅读数 384

评论数 0

Java细节与规范:ArrayList为何建议赋予默认值及其扩容机制

集合是编程中使用最广泛的类之一,理论上来说是可以无限变大的容器,但是容器变得非常大的时候,初始容量就会非常重要,以下为原因。 ArrayList的扩容机制是比较消耗资源的,首先先看ArrayList的扩容机制源码:public boolean add(E e) { ens...

2017-10-18 12:49:25

阅读数 382

评论数 0

SXSSFWork、SXSSFSheet使用总结

近期发现做的excel导出功能会导致内存溢出(推测),于是采用了SXSSFWork控制内存中存放的条数,搞了一个礼拜,碰到了许多问题,通过问题也对POI中的SXSSFWork有了深入的了解。在此做个总结。先上两个官方文档 官网POI中的介绍与实例 SXSSFWorkbook的API文档使用时注...

2017-10-18 12:29:16

阅读数 3647

评论数 0

SXSSFSheet调用createRow报错,并且调用getLastRowNum一直为0的问题

SXSSFSheet的调用getLastRowNum一直为0,createRow抛出异常

2017-10-11 19:31:03

阅读数 2171

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭