`
文章列表
PhantomReference 一、总结 1.jdk 1.8.0 2.定义 虚引用也称为幽灵引用或者幻影引用,它是最弱的一种引用关系。一个持有虚引用的对象,和没有引用几乎是一样的,随时都有可能被垃圾回收器回收。当试图通过虚引用的get()方法取得强引用时,总是会失败。并且,虚引用必须和引用队列一起使用,它的作用在于跟踪垃圾回收过程。 二、源码分析 /* * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL ...
FinalReference 一、总结 1.jdk 1.8.0 2.特点 强引用可以直接访问目标对象; 强引用锁指向的对象在任何时候都不会被系统回收。JVM宁愿抛出OOM异常也不回收强引用所指向的对象; 强应用可能导致内存泄露; FinalReference  不对外提供,类的访问权限 protect 二、源码分析 /* Final references, used to implement finalization */ class FinalReference<T> extends Reference<T> { public ...
使用软引用构建敏感数据的缓存 一、实现原理 1.应用场景 查询频率较高的数据;每次查询均需要通过接口与数据库交互,构建对象仍需要占用一部分内存;即便上次查询的结果仍在内存中还未被GC回收但仍需要再次进行相同的 ...
SoftReference 一、总结 1.jdk 1.8.0 2.定义 是用来描述一些还有用但并非必须的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围之中进行第二次回收。如果这次回收还没有足够的内存,才会抛出内存溢出异常。 3.特点 对于软引用关联着的对象,如果内存充足,则垃圾回收器不会回收该对象,如果内存不够了,就会回收这些对象的内存 4.应用 通常用于实现内存敏感的缓存 二、源码分析 /** * Soft reference objects, which are cleared at the discretio ...
JSP页面中分页功能实现使用了 <urlChangePage:pages /> 实现流程: 分页插件 1.pom.xml 引入依赖 jsp-api 2.编写自定义方法继承TagSupport 3.编写对应的*.tld文件 4.web.xml 加载 5.使用方法 a.在web.xml中不需配置 JSP上面注入标签 <%@ taglib prefix="urlChangePage" uri="/urlChangePage"%> 在需要展示分页的地方 <urlChangePage:pages /> pages 为 ...
WeakReference 一、总结 1.jdk 1.8.0 2.定义 用来描述非必须的对象,但是它的强度比软引用更弱一些,被弱引用关联的对象只能生存到下一次垃圾收集发送之前。当垃圾收集器工作时,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。一旦一个弱引用对象被垃圾回收器回收,便会加入到一个注册引用队列中。 3. 存活周期,第一次GC后到第二次GC前,第二次GC时被回收。 如果使用带有引用队列的构造方法,GC回收时弱引用被放入引用队列。 4.应用 WeakHashMap 二、源码分析 /** * Weak reference objects, which do n ...

对象访问分析

    博客分类:
  • JVM
对象引用及对象赋值 一、对象引用与对象创建 Object obj = new Object(); Object:类对象,存放在方法区中 Object obj:类引用变量,即类的实例对象的引用,存放在Java虚拟机栈中的局部变量表 new Object:形成了一块存储了Object类型 ...

href="URL"

1. // 访问根目录 <a href="/" /> // localhost:8080/about 不带域名 <a href="/about" /> // localhost:8080/domain/about 带有域名 <a href="about" />
问题场景: Java Web项目 PC 端改版,思路是新增页面、URL,与原有的页面、访问路径相区分; 好处:便于回滚; 缺点:重新做一套新的页面 在WEB项目的webapp 目录下的 css 目录下新建了一个 revision 文件夹,再在 revision 文件夹内建 ...
ThreadLocal 一、总结 1.版本 jdk 1.8.0_131 java SE 2.ThreadLocal 应用场景:在不同的线程存储不同的上下文信息的场合中 实现原理:ThreadLocal只是提供一个thread-local变量,这个变量于当前线程所独有, 每一个线程都有一个隶属与当前线程的thread-local变量 3.ThreadLocal.ThreadLocalMap Thread类中持有ThreadLocalMap的对象引用 ThreadLocalMap 的数据结构是数组 Entry[] 数组初始化大小 16,扩展 *2  ,扩展因子:length * 2 / ...
索引相关 一、InnoDB 与 MyISAM 对比 存储引擎InnoDBMyISAM存储结构InnoDB表空间数据文件和它的日志文件;表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存完整的数据记录。这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引MyISAM表建立三个不同的文件;表定义、数据文件、索引文件索引的数据结构B+树B+树叶子节点的键值KEY表的主键(一般主键INT无符号自增)索引的相应字段的值叶子节点的DATA域保存完整的数据记录数据记录的地址,即数据文件中的每行数据的地址辅助索引辅助索引data域存储相应记录主键的值而不是地 ...
一、代码如下: public static void main(String[] args) { int a = -10 ; for(int i=0;i<32;i++){ int t = (a & 0x80000000>>>i)>>>(31-i); System.out.print(t); } // String binaryString = Integer.toBinaryString(-10); // System.out.println(binaryString); } ...

SQL优化示例

一、distinct 、 union all 、 union 区别 1.问题SQL及改进SQL -- 表结构,user_id c_user 分别添加了索引,且字段可空,varchar(32),编码UTF-8 -- 问题SQL select count(c_user) from (select user_id as c_user from jr_td_project_invest union select c_user from p2p_td_project_invest ) as count_investor; -- 改进后: select count(distinct c_ ...

索引相关

一、索引分类 1.单列索引:一个索引包含一列,一个表可以包含多个单列索引;分为: 普通索引 主键索引 唯一索引:与主键索引相似,区别:可以为NULL,主键索引不可以 2.组合索引:一个组合索引包含两个或两个以上的列 二、索引创建、删除 1.创建索引 -- 索引类型:primary key 主键索引、UNIQUE INDEX 唯一索引、INDEX 普通索引、组合索引; -- 索引名称:见名知意,不易过长;唯一索引 unique_index_column_name 、组合索引 a_b_c_d 依次列出字段名称 union_index ; 普通索引 index_(idx_简写为) ...
基础概念 一、基础概念 概念英文说明其他比特bit数据传输大多以比特为单位二进制位:0或1字节Byte数据存储以字节为单位1Byte = 8 bit字符Character计算机中使用的文字和符号比如:1、2、3、A、B、C字符集Charset是一个系统支持的所 ...
Global site tag (gtag.js) - Google Analytics