Java
文章平均质量分 87
airpor
这个作者很懒,什么都没留下…
展开
-
java 集合精华一页纸
从最基础的数据结构 数组|链表|树 开始,基于这些基础数据结构通过各种设计组合成具备特定功能的数据结构,这些结构是编码的基础和核心。比如C++的vector,jdk自带了大量这些数据结构,统称为集合。1、基本知识I、接口集合主要是俩类三种结构,一类是线性表,只存储数据本身,有List和Set两种,区别是Set不可重复;另一类是Key-Value键值对,有索引功能原创 2017-04-13 22:48:27 · 293 阅读 · 0 评论 -
java 并发编程精华一页纸
1、线程安全与锁线程安全的本质,在于 存在了共享的可变状态 status, 在多线程共同操作状态变量时,当计算的正确性依赖于运行时相关的时序(比如i++,先取出i,再+1,然后赋值),就会出现竞争(竞态)无状态对象永远是线程安全的.所以线程安全 三步骤:a、无共享状态;b、共享状态不可变;c、共享状态同步要做到状态同步,就必须要通过锁 or volatile;本章节先讨原创 2017-04-13 22:50:22 · 288 阅读 · 0 评论 -
IO 编程模型(java篇) 精华一页纸
通常的IO操作,只要不是操作系统内存的数据,基本都是IO操作,常见的IO操作,一般都是 操作磁盘、网卡这些(串口这些用的少不考虑),对于应用而言读取网络上的数据和读取文件里的数据没有什么不同。对于IO操作,分为几个层面来看这个问题:一是怎么表征IO的数据;二是IO操作的模型首先澄清几个概念同步or异步指的是消息交互的方式。在这里一般是指 用户态和系统态:同步:向系统发送了消原创 2017-04-13 22:52:53 · 310 阅读 · 0 评论 -
JVM 虚拟机 精华一页纸
1、内存管理 - 栈 or 堆无论是java还是C,内存分配,本质上就是 栈和堆两个类型。简单来说,代码逻辑处理在栈上,数据在堆上。I、JVM内存模型堆:新生代(Eden,survivor),年老代(Gen) -- 分配对象、数组等非堆(栈):虚拟机栈,本地方法栈 -- 栈帧 分配局部变量、操作需要的空间比如方法链接方法区-(永久代) -- 分配代码、全局变量、静态原创 2017-04-13 22:55:22 · 297 阅读 · 0 评论 -
java Class和加载机制精华一页纸
Java 是一个解释型语言(使用了JIT后, 也有变成本地机器码的, 但一般意义上都是先预编译成字节码, 解释执行),那字节码里面包含了那些?解释的过程如何?1、Class 字节码I、基本信息Class识别、版本信息II、常量池类似TLV表述的结构,数据类型主要是用 U1、U2 ... (对应 1,2,4,8个字节)的无符号数。常量池并不是指类里面的常量,而原创 2017-04-13 22:56:49 · 276 阅读 · 0 评论 -
Spring Ioc (反射) 精华一页纸
反射是Java实现模块化的一个非常基础的功能,通过加载类的字节码,然后动态的在内存中生成对象。也是深入Java 研究的第一个高级主题。关于加载器和字节码部分的内容,可以参见本博的 《java Class和加载机制精华一页纸》Spring 框架基础的Ioc就是采用了反射的功能,实现了框架。1、反射I、反射操作经典步骤一、获取 Class对象a、最常用的就是 Class原创 2017-04-13 23:04:56 · 426 阅读 · 0 评论 -
java 观察者、事件机制和Spring 事件分发 精华一页纸
事件处理一般都采用类似观察者模式, java util自带了观察者模式的接口1、观察者模式接口关于观察者这个模式, 可以参见本博《设计模式 精华一页纸》, JDK 提供的这个接口, 可以方便的进行开发java.util.Observable -- 事件发布者 (目标)java.util.Observer -- 事件监听者 (观察者)2、事件处理接口E原创 2017-04-13 23:09:32 · 1760 阅读 · 0 评论 -
Spring AOP(动态代理\动态字节码)精华一页纸
1、AOPAOP作为一种设计理念, 拦截方法执行前后, 提供一些辅助功能。实际上, 在AOP火爆起来之前, 已经存在了很多AOP实现的理念比如一些设计模式就体现了AOP的思想Decorator(装饰者)Observer(观察者)Chain of Responsibility(责任链)...一些现有的使用场景, 比如 Servlet 拦截器;比如 Java原创 2017-04-13 23:23:23 · 4631 阅读 · 0 评论