- 博客(7)
- 收藏
- 关注
原创 开发面试 TopK问题 从排序算法优化的角度分析海量数据TopK优化问题
海量数据的TopK问题几乎是后台开发面试必备题,本文从排序算法从0优化的角度分析TopK问题的优化。 什么是TopK问题:给定一个很大的数据量n,要求从n中提取出最大/最小/重复频度最高的K个数(K相对于n较小,如n为10亿量级,而K为100)。 解决这个问题,很容易想到要使用排序算法,首先,使用方法1笨办法 – 全部排序,解出来再说。 将n个数全部排序 使用普通排序,将n个数全部排序之后,取...
2019-02-28 13:38:55 645
原创 Spring入门教程 学习笔记 IOC控制反转DI依赖注入AOP面向切面编程详细解析
Spring Spring框架是以简化Java EE应用程序的开发为目标而创建的 DI和AOP: 基于注解+反射+动态代理,见《java编程的逻辑》p573、p584 用Java实现AOP 面向切面编程 Aspect Oriented Programming 在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。AOP技术恰恰相反,它利用一种称为"横切"的技术,剖解开封装的对象内部,并将...
2019-02-28 13:31:33 601 1
原创 Session和Cookie的关系. Cookie禁用之后Session是否受到影响?
由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个唯一标识。在服务端保...
2019-02-22 11:18:45 1095
原创 JVM GC垃圾收集器详解
垃圾收集器 GC主要用于JVM堆内存的管理自动化,分析需要回收的内存依靠的算法为可达性分析。 收集器 串行、并行or并发 新生代/老年代 算法 目标 适用场景 Serial 串行 新生代 复制算法 响应速度优先 单CPU环境下的Client模式 Serial Old 串行 老年代 标记-整理 响应速度优先 单CPU环境下的Client模式、CMS的后备预案 ParNew 并...
2019-02-22 11:17:45 314
原创 JVM类加载过程详解 & 类加载器的两种架构模型:双亲委派模型和OSGi模块化模型
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。 类加载的过程包括了加载、验证、准备、解析、初始化五个阶段 (验证、准备、解析合称连接阶段) 记:加载-验证,准备-解析,初始化 加载 载入字节流 加载时类加载过程的第一个阶段,在加载阶段,虚拟机需要完成以下三件事情: 通过一个类的全限定名来获取其定义的二进制字节...
2019-02-22 10:32:35 492
原创 Java代码优化技术 编译期优化 - 前期优化,运行时优化 - 后期优化
优化 分为编译期优化和运行时优化 编译期优化 前端编译:字节流 -> 抽象语法树 -> jvm规范class字节码 javac优化:语法糖:在编译期解语法糖。 泛型及其擦除,自动拆装箱,Foreach循环,变长参数,条件编译,内部类,枚举类,断言语句,对字符串的switch支持,字符串加法 泛型 java中的泛型只存在于源码中,会在编译期间替换为原生类型,在字节码中已经不存在泛型,...
2019-02-22 10:17:50 287
原创 《Java编程的逻辑》学习笔记
Java编程的逻辑 编程基础 基本数据类型分类 整数类型:有4种整型byte/short/int/long,分别有不同的取值范围: 8, 16, 32, 64位,(1,2,4,8个字节) 存放(-27~27-1, …, -231~231-1,…) 在给long类型赋值时,如果常量超过了int的表示范围,需要在常量后面加大写或小写字母L,因为数字常量默认为是int类型。 类似的, 对于floa...
2019-02-21 16:28:38 792 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人