作为字节码库,cglib是许多著名的java框架(Hibernate、Spring等)比较流行的选择。字节码库允许在java应用的编译阶段之后,操作或者动态创建新的class。由于Java类在运行时动态链接,因此可以向正在运行的Java程序中添加新类。比如,Hibernate就会将cglib用于动态代理的生成。Hibernate将返回存储类的检测版本,该版本仅在需要时才从数据库延迟加载某些值,而不是返回存储在数据库中的完整对象。又比如,Spring用cglib给你的方法调用添加安全性规则。
K-D树、K-D-B树、B-K-D树
K-D树在维基百科上定义是将K维空间中的点进行分割的数据结构,D是dimensional(维度)的缩写,K-D树是BSP(Binary Space Partitioning)的一种。
维基百科的解释很正式(看的迷迷糊糊)。简单的说,K-D树就是二分查找树在K维空间的泛化(更迷糊了:joy:)。
赤兔CRM-流程化功能功能总结
流程化营销是我个人觉得在达西做的最复杂的一个功能,把我大学里学的很多知识都应用到了这个功能的实现上,我也是靠着这个功能毕业才一年就在公司里晋升到了P5,所以在这里记录一下
流程化营销:店铺根据需要在前端绘制一张执行流程图,校验连通性与数据合法性后交由后端服务执行。
一枚Javer对Ruby的吐槽
公司收购了个项目,技术都很老,Web用的Ruby on Rails,前端还在用jQuery,后台定时任务用Java(用的技术也都很老)。自己以前没有接触过Ruby,只是听几个朋友大学里玩过这玩意儿,所以对我来说Ruby就是一门全新的语言。我个人是非常抵触学一门新语言的,Java都还没吃透就并行学Ruby,只会分散深入学习Java的精力。但没办法谁让公司抽到我,还是好好学吧!
1、安装Ruby
垃圾回收算法与JVM内存管理
因为之前公司有人分享过G1回收器的内容,很多人听的云里雾里(包括我)。甚至有人问学GC有什么用,对写代码有帮助吗。我想这个问题不可置否。
《深入理解Java虚拟机》一书中有这么一句话:Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。
ForkJoinPool入门篇
《线程池ThreadPoolExecutor详解》和《任务调度线程池ScheduledThreadPoolExecutor》两篇文章已经将ThreadPoolExecutor和ScheduledThreadPoolExecutor两个核心线程池详细介绍过了,它们整体的工作结构如下图所示。
使用POI解析Excel
Excel作为一种常用的数据存储格式,在很多项目中都会有相应的导入导出的功能。这篇文章会介绍如何使用Java操作Excel,以及如何解决大文件读写时内存溢出的问题。