
java
Zhou Jiang
今天,你努力了吗?
展开
-
枚举单例,了解一下?
单例模式在我们书写代码中是最经常使用的一种设计模式,但是这种设计模式真的安全吗?如果不安全的话,我们有没有安全的单例模式?其实这也是大厂面试的时候可能会问道的面试题,本篇我们来研究下这个问题。引出问题1 双重锁定单例和静态内部类单例安全吗?2 枚举单例使用过吗?它为什么是安全的?3 Kotlin中的单例有使用过吗?双重锁定单例首先我们快速回忆一下双重锁定单例和静态内部类单例,首先双重锁定单例如下:public class Manager { private volatile st.原创 2020-09-12 23:21:57 · 465 阅读 · 0 评论 -
面试题:你知道泛型擦除后是如何获取泛型信息的吗?
前面分享了一篇关于泛型的基础文章,Java泛型深度解析以及面试题,关于泛型的基础感兴趣的可以先看看那篇文章再来看这一篇文章,今天我们结合两个面试题深入分析下泛型。Java泛型擦除后能够添加不同泛型类型的元素?泛型擦除后是如何获取泛型信息?1 泛型擦除后能否添加非泛型类型的元素?下面看一段代码:public static void main(String[] args) throws Exception { Class c1 = new ArrayList<String>().原创 2020-09-12 16:03:37 · 1976 阅读 · 0 评论 -
一道关于Integer的面试题,你真的会了吗?
今天分享一道关于Integer的面试题。1 面试题面试题是这样的, 要手写打印结果:public static void main(String[] args) { Integer a = 1; Integer b = 2; Integer c = 3; Integer d = 3; Integer e = 128; Integer f = 128; Long g = 3L; .原创 2020-09-12 13:42:50 · 579 阅读 · 0 评论 -
面试题:Java注解的理解和应用场景
所有的注解的父类都是Annotation根据注解的保留级别不同,对注解的使用自然存在不同场景。由注解的三个不同保留级别可知,注解作用于:源码、字节码与运行时你能举一些案例吗?javac在编译java文件之前会先调取注解处理程序对注解的处理,然后才会编译java文件注解的使用场景SOURCE:IDEA语法检查APT注解器处理 Annotation Process ToolCLASS:字节码插桩技术RUNTIME:注解保留至运行期,意味着我们能够在运行期间结合反射技术获取注解中的原创 2020-05-17 21:35:39 · 2296 阅读 · 0 评论 -
Java泛型深度解析以及面试题
泛型是在JDK5引入的新特性,提供了编译时类型检测安全机制。该机制允许程序员在编译时检测到非法的类型,泛型本质是参数类型。1 增强编译时错误检测,减少类型安全问题引发的运行时异常 2 增加代码的复用性泛型类泛型接口 如果父类是泛型,子类也需要声明泛型;如果父类具体化,子类就不需要声明了泛型方法 public void test(T t){}类型参数和类型变量Foo Foo钻石运算符DiamondJDK7以下版本就可以Box box = new Box();JDK7及以上版本原创 2020-05-16 23:27:45 · 5673 阅读 · 2 评论 -
synchronized背后的“monitor锁”和Lock的比较
前言在前面文章 synchronized关键字的四种加锁方式中介绍了四种synchronized的使用和区别,但是效果都是一样的,今天我们更加深入的看一看synchronized背后的’'monitor"锁,以及和Lock的区别。synchronized背后的’'monitor"锁synchronized的使用非常简单,仅需要在方法或者代码块中使用synchronized就可以了,使用看...原创 2020-03-29 19:04:31 · 1550 阅读 · 0 评论 -
synchronized关键字的四种加锁方式
本篇我们来讲解synchronized关键字的四种加锁使用方式,并对其进行比较。synchronized对方法加锁public class SynchronizedTest { static class Thread1 extends Thread { Utils mUtils; Thread1(Utils utils) { ...原创 2020-03-24 23:23:35 · 3099 阅读 · 0 评论 -
Java泛型详解
引言 Java的泛型(generics)是JDK5中引入的一个新特性,它提供了编译时类型安全的检测机制,该机制允许在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。下面我们分为四个部分进行讲解原创 2018-01-13 18:22:17 · 1151 阅读 · 1 评论 -
Java线程池讲解,仅看此一篇就够了
引言 我相信大家面试的时候都遇到过线程池有关的问题,这个问题被问到的频率很高,如果你不了解,或者仅仅是简单的了解的话,还是好好研究研究吧,因为它真的很有意思。线程池的意义我们有时候为了方便或者写一个测试的时候会这样启动一个线程: new Thread(new Runnable() { @Override pub原创 2018-01-26 19:03:46 · 1031 阅读 · 0 评论