Java面试题-Java中的锁】的更多相关文章

这部分主要是与Java Web和Web Service相关的面试题. 96.阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet. 补充:Sun Microsystems公司在1996年发布Servlet技术就是为了和CGI进行竞争,Servlet是一个特殊的Java程…
如背景中介绍,作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向. 在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编程(JUC 包) JVM 内存管理 Java 8 知识点 网络协议相关 数据库相关 MVC 框架相关 大数据相关 Linux 命令相关 面试,是大家从学校走向社会的第一步. 互联网公司的校园招聘,从形式上说,面试一般分为 2-3 轮技术面试 +1 轮 HR 面试. 但是一些公司…
1. 如何实现乐观锁(CAS)?如何避免ABA问题? 答:1)读取内存值的方式实现了乐观锁(比如:SVN系统),方法:第一,比较内存值和期望值:第二,替换内存值为要替换值.        2)带参数版本来避免aba问题,在读取和替换的时候进行判定版本是否一致 2. 读写锁可以用于什么应用场景? 答: 读写锁可以用于 “多读少写” 的场景,读写锁支持多个读操作并发执行,写操作只能由一个线程来操作        ReadWriteLock对向数据结构相对不频繁地写入,但是有多个任务要经常读取这个数据…
synchronized: https://www.cnblogs.com/dolphin0520/p/3923737.html Lock:https://www.cnblogs.com/dolphin0520/p/3923167.html…
1.JAVA多态的实现方式:继承.重载.覆盖 2.JAVA有8种基本数据类型:byte.short.int.long.float.double.boolean.char 3.final.finally.finalize的区别: final:修饰符,如果一个类被声明为final,则意味着它不能再派生出新的子类.一个类不能既声明为abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读…
实现代码很简单:   package com.xiaozan.shopping;   import java.util.Arrays;   public class ShoppingCart {          public final static int PRODUCT_1_PRICE = 2000;    // 产品编号第一个数字为1的单价,单位(分)     public final static int PRODUCT_2_PRICE = 1000;    // 其他产品编号的单价,…
一.Java容器分类 Java容器划分为两个概念Collection.Map Collection: 一个独立元素的序列,这些元素都服从一条或多条规则.List必须按照插入的顺序保存元素,不关心是否重复:Set不能有重复元素:Queue一端插入一端输出.所有的Collection都可以用foreach语法遍历 实现:List:ArrayList.LinkedList:   Set:HashSet.TreeSet.LinkedHashSet   Map:HashMap.TreeMap.Linked…
实现代码很简单:   package com.xiaozan.shopping;   import java.util.Arrays;   public class ShoppingCart {          public final static int PRODUCT_1_PRICE = 2000;    // 产品编号第一个数字为1的单价,单位(分)     public final static int PRODUCT_2_PRICE = 1000;    // 其他产品编号的单价,…
1. ArrayList 和 Vector 的区别 ArrayList和Vector底层实现原理都是一样得,都是使用数组方式存储数据 Vector是线程安全的,但是性能比ArrayList要低. ArrayList,Vector主要区别为以下几点: (1):Vector是线程安全的,源码中有很多的synchronized可以看出,而ArrayList不是.导致Vector效率无法和ArrayList相比:     (2):ArrayList和Vector都采用线性连续存储空间,当存储空间不足的时…
1. 静态工厂方法 静态工厂方法不必在每次调用它们的时候都创建一个新的对象: Boolean.valueOf(boolean): public final class Boolean { public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); public static Boolean valueOf(boolean b) { ret…