随笔分类 - Java基础
摘要:先来看段代码: import java.util.ArrayList; import java.util.List; /** * -Xms30m -Xmx30m -Xmn10m -XX:+UseParallelGC * @author liuxiao * */ public class Test1
阅读全文
摘要:俺觉得synchronized➕AtomicInteger可以解决大部分线程通信问题,或者Semaphore
阅读全文
摘要:一、类加载器 1.BootstrapClassLoader(启动类加载器) 它主要负责加载%JAVA_HOME%/jre/lib,-Xbootclasspath参数指定的路径以及%JAVA_HOME%/jre/classes中的类。 2.ExtensionClassLoader (扩展类加载器) E
阅读全文
摘要:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 基础方法: 结果: 执行用时 : 14 ms, 在Reverse Words in a String III的Java提交中击败了70.95% 的用户 内存消耗 : 39.6 MB, 在Reverse
阅读全文
摘要:先列举最常见的单例模式: 一:饿汉式 1、直接创建适合简单的单例模式: 2、适合需要较复杂的初始化的单例模式: 二:懒汉式 此方法线程不安全 1、双锁检验懒汉式 此方法看似解决了线程安全问题,实际上还存在隐患,可能出现线程a还在初始化instance但未完全初始化时,线程b就通过instance!=
阅读全文
摘要:在java的内部类中,计算HashCode通常使用 code = 元素* 31 + 下一个元素 以String为例 为了保证hashcode值尽量避免冲突,因此用素数相乘的同时,又要保证范围较大。 而31作为一个素数,又可以优化运算 i*31== (i<<5)-1 内存也只占用5字节,因此通常选用3
阅读全文
摘要:在已知元素容量的情况下,为了尽量减少碰撞增加查询效率,应该尽量选择较大数的同时避免资源浪费。 HashMap底层通过hash值来计算索引位置的源码: 1.重新计算hash值 2.计算索引 由此可见索引位置是新的hash值与运算数组长度减一,而为了尽量使索引值尽量均匀,应当使数组长度为2的倍数,确保与
阅读全文

浙公网安备 33010602011771号