![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
冰月痕
最近刚刚决定把有道的笔记弄到博客上来。。。好几百篇。。一点点来。。排版后边会慢慢修复,欢迎提意见。
本职是一个小程序,喜欢玩主机游戏玩音乐喜欢骑行。
展开
-
java两种动态代理
主要分为两种 jdk代理和cglib开源库代理 jdk代理主要针对接口,实现InvocationHandler。 cglib主要通过框架修改字节码,创建出代理类的子类实现代理, 对于final类不适用. 实现methodInterceptor接口. cglib包-github jdk代理 代码demo: public interface ProxyInterface { /...原创 2019-01-03 21:43:04 · 212 阅读 · 0 评论 -
jvm 垃圾回收算法
jvm垃圾回收算法(GC) 大概有如下几种 1. 标记-清除(Mark-Sweep) 分为标记和清除两个阶段, 标记所有可回收的对象,在统一回收所有标记对象; 两个阶段都需要遍历所有的空间,效率都比较低, 缺点是回收后,会产生大量空间碎片。 在进行此类gc时会强制停止所有的应用程序(避免对已标记的进行破坏) 2. 标记-整理(Mark-Compact) 是标记-清除的优化...原创 2019-01-05 14:13:46 · 95 阅读 · 0 评论 -
jvm内存模型 -- todo
// TODO原创 2019-01-05 14:12:01 · 119 阅读 · 0 评论 -
一些java知识的碎碎念 -- 不断补充
拦截器和过滤器 : 1 、拦截器是基于java的反射和动态代理,而过滤器是基于函数回调。 2 、拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 3 、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 4 、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 5 、在action的生命周期中,拦截器可以多次被调用,而过滤器只能...原创 2019-01-05 14:10:32 · 133 阅读 · 0 评论 -
同步。异步 -- todo
// todo 在有道云笔记上 后续会慢慢搬运过来原创 2019-01-04 17:50:50 · 141 阅读 · 0 评论 -
HashMap
一. Map与hashMap Map是一种数据结构,一个关联容器,提供一对一的数据处理能力,即key-value的结构,和传统的list还是有些区别。 其实我个人觉得 python的Dictionary的名称可能更合适一些,php就更省事直接一个array包揽万物。。。当然 名称无所谓。在java中,map有很多实现,比如常用的HashMap,treeMap,LinkedHashMap,Co...原创 2019-01-04 17:50:16 · 193 阅读 · 0 评论 -
ReentrantLock
ReentrantLock是一个可重入的互斥锁,ReentrantLock由最近成功获取锁,还没有释放的线程所拥有,当锁被另一个线程拥有时,调用lock的线程可以成功获取锁 。如果锁已经被当前线程拥有,当前线程会立即返回。此类的构造方法提供一个可选的公平参数。ReentrantLock顾名思义就是锁可以重入,一个线程持有锁,state=1,如果它再次调用lock方法,那么他将继续拥有这把锁,st...原创 2019-01-04 17:48:51 · 219 阅读 · 0 评论 -
类加载器classLoader
类加载器: 用来加载java类到java虚拟机中. java.lang.classLoader根据一个指定类名称,找到或生成对应的字节码,从中定义出一个JAVA类。 还负责加载JAVA应用锁需要的资源. 常用方法: getParent() : 返回其父类加载器 loadClass(String name) 加载name类 findCl...原创 2019-01-04 17:26:55 · 104 阅读 · 0 评论 -
jsp内置对象
JSP全名为Java Server Pages,是java服务器页面。 经编译后的.java文件和servlet几乎一致。可在jsp中嵌入java代码和html共同渲染。 JSP 9大内置对象 : 1. request :客户端的请求信息被封装在request对象中, 通过它了解请求,是HttpServletRequest的实例; 2. response : 包含了...原创 2019-01-04 16:10:02 · 87 阅读 · 0 评论 -
jvm 垃圾收集器
垃圾收集器就是收集算法的具体实现,不同的虚拟机会提供不同的收集器。两个收集器之间存在连线的话就说明它们可搭配使用。 serial收集器: 单线程收集器,使用复制收集算法,收集时会暂停所有工作线程(stop the world),虚拟机运行在Client模式时的默认新生代收集器。 优点是:简单高效 。 在单个CPU的环境来说,没有线程交互的开销,在client情况下的默认+首...原创 2019-01-04 15:57:14 · 89 阅读 · 0 评论 -
String
final类,也就是无法被继承, 底层实际是 final char[] value ,享元模式最经典的存在。 所以存在于常量池中,并且不可改变,所以是线程安全的。 (jdk8之后常量池取消) 。 存储于常量池中, 可以直接用=赋值(java特殊处理), 赋值时先会去常量池查找,没有则新建。 几乎所有操作在底层都是将char[] 复制备份之后在进行操作,并最终new String 已保证常量性. 可...原创 2019-01-04 15:52:52 · 93 阅读 · 0 评论 -
线程池 - ThreadPoolExecutor
继承了AbstractExecutorService(抽象类) 该抽象类实现了ExecutorService 接口 该接口又继承于Executor接口 Executor接口只有一个方法void execute(Runnable command); Executor是一个顶层接口,其唯一的方法用来执行runnable任务; ExecutorService接...原创 2019-01-04 14:21:39 · 173 阅读 · 0 评论 -
volatile
volatile被称为轻量型synchronized。用volatile修饰的成员变量在每次被线程访问时,都会从共享内存中重新读取该变量的值,当该成员变量变化时,强迫线程将变化后的值写入共享内存;效率较低;对volatile修饰的变量操作不会造成阻塞;对于变量改变,无法提供原子性保证 当该变量已在同步代码块或者为final修饰时,不必使用; 是一种轻型同步,具有可见性. ...原创 2019-01-03 21:47:44 · 145 阅读 · 0 评论 -
java,php,go垃圾回收
java篇: java由于其比较特殊的内存分配结构, 对待gc也是非常认真, 提炼出了自己的方法。 (具体的清除方法会根据不同的区域,老年代,young代,堆区的其他地方 会采用不同的分代收集的方法) 可达性分析: 1. 可达性 从GCroot(引用节点)节点出发进行遍历,只要从gcroot节点可达,则证明是非垃圾, 对于从gcroot节...原创 2019-07-09 14:50:58 · 248 阅读 · 0 评论