文档章节

面试题

笙1
 笙1
发布于 2017/02/15 00:24
字数 1124
阅读 32
收藏 2
点赞 0
评论 0

1.synchronized 和java.util.concurrent.locks.Lock的异同 

    Lock 能实现synchronized的所有功能,synchronized能自动释放锁,Lock需要手动在finally中释放

2.线程的基本状态以及状态之间的关系

   1.新建状态(New)

      new操作符创建一个线程后,调用start()前,处于新建状态

   2.就绪状态(Runnable)

     1>调用线程start()方法,线程位于线程池中,变得可运行,等待cpu的使用权

     2>当前线程sleep()方法结束,其他线程join()结束,等待用户输入完毕,某个线程拿到对象锁,这些线程也将进入可运行状态。

     3>当前线程时间片用完了,调用当前线程的yield()方法,当前线程进入可运行状态。

     4>锁池里的线程拿到对象锁后,进入可运行状态

   3.运行状态(Running)

当线程获得cpu时间后,进入运行状态,执行run()方法

   4.阻塞状态(Blocked)

       1> 线程通过调用sleep方法进入睡眠

       2> 线程试图得到锁,而该锁正被其他线程持有、

       3>线程等待某个触发条件

       4>线程调用一个在I/O上被阻塞的操作

       5>运行在当前线程里的其它线程t2调用join()方法,当前线程进入阻塞状态。

    其他线程可以获得CPU

   5.死亡状态(Dead)

        线程执行完成,或者run()方法因异常退出

3.实现对象clone的接口

      Cloneable接口,

            1>.实现接口 2>.重写Object类的clone()方法

      serializable接口

浅克隆,克隆他自身以及他包含的所有对象的引用地址

深克隆,就是非浅克隆。克隆除自身以外所有的对象,包括自身所包含的所有对象实例

4.事务是什么?

    作为一个逻辑单元执行的一系列操作

    ACID属性

   原子性:原子工作单元,要么全部执行,要么全部补执行

   一致性:事务完成时,数据处于一致性

   隔离性:对数据修改的并发事务是彼此隔离的

   持久性:事务完成后对系统的影响是永久的

5.集合方面面试题

   collection 是最基本的集合接口,代表一组Object,Java sdk 提供的类都是继承List,Set

集合类通过工厂方法生成,、

   List 有序的collection,能精确控制每个元素插入位置,能够使用索引访问List中位置,类似数组,允许相同的元素,

常用类LinkedList ,ArrayList Vector,Stack

LinkedList 允许为空,提供额外的get,remove,insert方法在首部或者尾部,可以被用作stack,queue,deque

ArrayList 实现了可变大小的数组,允许所有元素包括null,ArrayList没有同步

Vector类似ArrayList 但是是同步的

Stack 继承Vector 实现后近先出的堆栈push() pop() peek() empty() search()

Set 一种不包含重复元素的Collection,最多又一个空元素

Map 提供key value的映射,不能包含相同的key,每个key映射一个value

Hashtable 继承Map接口,不能将空值作为key或者value,get(),put()

Hashtable是同步的

Hashmap 是非同步的,允许空 key和value

6.工厂模式

    1>简单工厂模式:静态工厂模式,定义一个用于创建对象的接口或者抽象类

    由一个具体的类去创建其他类的实例,父类是相同的,父类是具体的。 

    2>工厂方法模式:

有一个抽象的父类定义公共接口,子类负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成。 

    3>抽象工厂模式:

   提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类。它针对的是有多个产品的等   级结构。而工厂方法模式针对的是一个产品的等级结构。

7.volatile作用

  1>.防止指令重排

      实例化对象步骤:<1>分配内存空间<2>初始化对象<3>将内存空间地址赋值给对应的引用

  2>.实现可见性

  3> 保证原子性

8.单例

public class Singleton {
 4     public static volatile Singleton singleton;
 5 
 6     /**
 7      * 构造函数私有,禁止外部实例化
 8      */
 9     private Singleton() {};
10 
11     public static Singleton getInstance() {
12         if (singleton == null) {
13             synchronized (singleton) {
14                 if (singleton == null) {
15                     singleton = new Singleton();
16                 }
17             }
18         }
19         return singleton;
20     }
21 }

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
笙1
粉丝 2
博文 39
码字总数 4058
作品 0
深圳
后端工程师

暂无文章

用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
5分钟前
0
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
28分钟前
0
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
0
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
0
0
流利阅读笔记33-20180722待学习

黑暗中的生物:利用奇技淫巧快活生存 Daniel 2018-07-22 1.今日导读 如果让你在伸手不见五指的黑暗当中生存,你能熬过几天呢?而大千世界,无奇不有。在很多你不知道的角落,有些生物在完全黑...

aibinxiao
昨天
5
0
Hystrix降级逻辑中如何获取触发的异常

通过之前Spring Cloud系列教程中的《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》一文,我们已经知道如何通过Hystrix来保护自己的服务不被外部依赖方拖垮的情况。但是实际...

程序猿DD
昨天
0
0
gin endless 热重启

r := gin.New()r.GET("/", func(c *gin.Context) {c.String(200, config.Config.Server.AppId)})s := endless.NewServer(":8080", r)s.BeforeBegin = func(add string) ......

李琼涛
昨天
0
0
JAVA模式之代理模式

平时一直在用spring,spring中最大的特效IOC和AOP,其中AOP使用的就是代理模式.闲着无聊,随手写了一个代理模式,也记录下代理模式的实现Demo. 比如现在有一个场景是:客户想要增加一个新的功能,...

勤奋的蚂蚁
昨天
0
0
ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部