04 2019 档案
摘要:volatile保证内存可见性和禁止指令重排。volatile用于多线程环境下的单次操作(单次读或者单次写)。volatile关键字不能提供原子性。 volatile关键字为实例域的同步访问提供了一种免锁机制。如果声明一个域为volatile,那么编译器和虚拟机就知道该域是可能被另一个线程并发更新。
阅读全文
摘要:介绍常见面试题之HashSet和HashMap的区别。
阅读全文
摘要:对于面向对象编程来说,抽象是它的四大特征之一。在Java中,可以通过两种形式来体现OOP的抽象——接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是,事实并非如此。 我们现在纵向对比二者的区别。首先,温故知新,回顾二者的定义;然后,知己知彼,
阅读全文
摘要:final 用于声明方法和类,分别表示方法不可被覆盖,类不可被继承。在java中final的意思是终态。 将基本数据类型的变量或方法声明为final后,如果对其初始化,要么在定义的时候,要么在构造函数中。 对于一个被final修饰的变量,如果是基本数据类型的变量,则其数值一旦被初始化便不能更改;如果
阅读全文
摘要:本文聊聊Overload和Override的区别。Overload的方法是否可以改变返回值的类型。 Overload是重载的意思,Override是覆盖的意思,也就是重写。 重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子
阅读全文
摘要:基本概念:在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。 六个基本状态:new,runnable,waiting,timed waiting,blocked和 terminated。 wait方法必须在synchronized内部调用。 l 新建new:
阅读全文
摘要:根据不同的业务需求,经常会遇到数组中存在重复元素的场合,总结了下使用Java将数组除重的方法,必定好记性不如烂笔头。这是朋友推荐的方法,嘿嘿。 持续更新中,以共享更好的方案。这里并没有使用Map或者Set什么的,虽然这是比较容易的方案。
阅读全文