摘要: volatile保证内存可见性和禁止指令重排。volatile用于多线程环境下的单次操作(单次读或者单次写)。volatile关键字不能提供原子性。 volatile关键字为实例域的同步访问提供了一种免锁机制。如果声明一个域为volatile,那么编译器和虚拟机就知道该域是可能被另一个线程并发更新。 阅读全文
posted @ 2019-04-20 21:19 楼兰胡杨 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 介绍常见面试题之HashSet和HashMap的区别。 阅读全文
posted @ 2019-04-20 07:07 楼兰胡杨 阅读(1333) 评论(0) 推荐(0) 编辑
摘要: 对于面向对象编程来说,抽象是它的四大特征之一。在Java中,可以通过两种形式来体现OOP的抽象——接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是,事实并非如此。 我们现在纵向对比二者的区别。首先,温故知新,回顾二者的定义;然后,知己知彼, 阅读全文
posted @ 2019-04-20 07:00 楼兰胡杨 阅读(10519) 评论(0) 推荐(2) 编辑
摘要: final 用于声明方法和类,分别表示方法不可被覆盖,类不可被继承。在java中final的意思是终态。 将基本数据类型的变量或方法声明为final后,如果对其初始化,要么在定义的时候,要么在构造函数中。 对于一个被final修饰的变量,如果是基本数据类型的变量,则其数值一旦被初始化便不能更改;如果 阅读全文
posted @ 2019-04-20 06:54 楼兰胡杨 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 本文聊聊Overload和Override的区别。Overload的方法是否可以改变返回值的类型。 Overload是重载的意思,Override是覆盖的意思,也就是重写。 重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子 阅读全文
posted @ 2019-04-20 06:46 楼兰胡杨 阅读(4430) 评论(0) 推荐(0) 编辑
摘要: 基本概念:在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。 六个基本状态:new,runnable,waiting,timed waiting,blocked和 terminated。 wait方法必须在synchronized内部调用。 l 新建new: 阅读全文
posted @ 2019-04-20 06:40 楼兰胡杨 阅读(1529) 评论(0) 推荐(0) 编辑