随笔分类 - Java
摘要:1、单例模式 (1)使用静态内部类来维护单例的实现: 懒汉模式,同时实现延迟加载和线程安全。静态内部类只有在第一次被使用的时候才会初始化。内部类里的静态变量保证线程安全。 当getInstance()第一次被调用的时候,第一次读取SingletonFactory.instance,导致Singlet
阅读全文
摘要:volatile关键字 1、可见性 Java内存模型规定所有的变量都是存在主存当中(物理内存),每个线程都有自己的工作内存(高速缓存)。线程对变量的所有操作都必须在工作内存中进行,而不能直接对主存进行操作。并且每个线程不能访问其他线程的工作内存。 当一个共享变量被volatile修饰时,它会保证修改
阅读全文
摘要:在Java中,一个应用程序对应着一个JVM实例(JVM进程),一般来说名字默认为java.exe或者javaw.exe(windows下可以通过任务管理器查看)。Java采用的是单线程编程模型,即在我们自己的程序中如果没有主动创建线程的话,只会创建一个线程,通常称为主线程。但是,虽然只有一个线程来执
阅读全文
摘要:1、final 类 final类不能被继承,没有子类,final类中的方法默认是final的。 2、final方法 final方法不能被子类的方法覆盖,但可以被继承。final不能用于修饰构造方法。 父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型
阅读全文
摘要:static方法: 静态方法只能访问静态成员,实例方法可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。静态方法中也不能使用关键字this。 static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而sta
阅读全文
摘要:Java 异常结构 1、Throwable Throwable是 Java 语言中所有错误或异常的超类。 Throwable包含两个子类: Error 和 Exception。它们通常用于指示发生了异常情况。 Throwable包含了其线程创建时线程执行堆栈的快照,它提供了printStackTra
阅读全文
摘要:String:字符串常量、线程安全StringBuffer:字符串变量、线程安全StringBuilder:字符串变量、线程不安全 CharSequence是字符序列,String,StringBuffer和StringBuilder都实现了CharSequence接口,本质上都是通过字符数组实现的
阅读全文
摘要:1、HashMap 总结Map映射中不能包含重复的键,允许放入key为null的元素,也允许插入value为null的元素。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap 的实现不是同步的,不是线程安全的。
阅读全文
摘要:JVM结构 JVM主要包括四个部分: 1.类加载器(ClassLoader):在JVM启动时或者在类运行时将需要的class加载到JVM中。 2.执行引擎:负责执行class文件中包含的字节码指令(执行引擎的工作机制,这里也不细说了,这里主要介绍JVM结构); 3.内存区(也叫运行时数据区):是在J
阅读全文
摘要:ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。 每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容
阅读全文

浙公网安备 33010602011771号