摘要:
一、intern与字符串比较 前置知识 字符串常量池 在Java语言中有8种基本数据类型和一种比较特殊的类型String。这些类型为了使它们在运行过程中速度更快、更节省内存,都提供了一种常量池的概念。 常量池就类似一个Java系统级别提供的缓存。8种基本数据类型的常量池都是系统协调的,String类 阅读全文
摘要:
java中的变量大体分为:类(静态)变量、成员变量、局部变量,在class文件被jvm的类加载器加载后,随后这些变量被分配至内存中。但是,它们何时被分配至内存的何处呢? jvm把自己运行时管理的内存称为运行时数据区。主要分为栈、堆、方法区,java变量就存在这3个区中。 下表为栈、堆、方法区内存分配 阅读全文
摘要:
类加载器 JVM(java虚拟机)有3个子系统:类加载器子系统、执行引擎子系统、垃圾收集子系统。 类加载器就是JVM的一个子系统,类加载器用于加载已存在的class文件到内存中,以供JVM后续运行时使用。 自JDK1.2以来,Java一直保持着三层类加载器、双亲委派的类加载架构(当然JVM支持自定义 阅读全文
摘要:
先看一个小程序,2个线程同时对数组array的第1个,第2个元素进行修改,每个线程修改1千万次。 public class Cacheline_notPadding { public static class T { private volatile long x = 0L;// 占8字节 } pr 阅读全文
摘要:
对 于cpu来说,直接访问内存是比较耗时的,为了提高访问性能,现代计算机在cpu模块都加上了缓存(一般有3级缓存),cpu访问缓存的速度比直接访问内存的速度提高了很多。cpu在计算时会先从缓存中查找数据,如果在缓存中没有找到(缓存未命中),则从内存中查找并加载到缓存中,然后再把数据从缓存加载到寄存器 阅读全文
摘要:
一 、join应如何优化 先列出答案: 1、为join的连接条件增加索引(减少内层表的循环次数) 2、尽量用小表join大表(其本质就是减少外层循环的数据次数) 3、增大join buffer size的大小(一次缓存的数据越多,那么外层表循环的次数就越少) 4、减少不必要的字段查询(字段越少,jo 阅读全文
摘要:
一、CRC32概念 CRC全称为Cyclic Redundancy Check,又叫循环冗余校验。CRC32是CRC算法的一种,常用于校验网络上传输的文件。 二:MySQL里如何利用CRC32来加快查询??? CRC32的基本特征 #1.CRC32函数返回值的范围是0-4294967296(2的32 阅读全文
摘要:
众所周知,多线程访问同一公共资源会带来线程的不安全,本文探讨一下这个问题的若干细节。 关于线程安全的基本问题 有关线程安全常涉及两个概念: 竞态条件:当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。临界区:导致竞态条件发生的代码区称作临界区(线程不安全的代码区)。 线程安全与竞 阅读全文
摘要:
注:本文转载于http://www.cnblogs.com/xing901022/p/5854506.html,感谢xingoo! effective java 通过函数来作为策略 通过函数作为策略有两个要注意的地方: 使用接口作为策略传入 如果长期调用,应该设置为静态内部类,避免频繁创建过多的匿名 阅读全文
摘要:
只有在指定的条件下才触发断点,在idea中如何设置呢? 方法: 按Ctrl+Shift+F8弹出View Breakpoints 在Condition设置触发条件 结果: 源码 阅读全文