zoukankan      html  css  js  c++  java
  • 面试题

    1.实现多线程的几种方式

    继承Thread

    实现Runnable接口

    线程池

    匿名内部类

    Callable(带返回值的多线程)

    2.什么是线程安全(出现线程安全性问题的条件)

    多线程环境下

    存在共享资源

    对资源非原子性操作

    3.Java中有几种锁

    可重入锁

    自旋锁

    偏向锁

    轻量级锁

    重量级锁

    共享锁

    独占锁

    公平锁

    非公平锁

    读写锁

    4.Reentrantlock怎么实现可重入

    计数器累加,重入一次加一,为0释放

    5.什么时候用Lock,什么时候用Synchronized

    Reentrantlock 功能1->>可以设置是公平锁还是非公平锁
    2->>可以分组唤醒线程
    3->>可以中断等待锁的线程

    (这里原答案说lock降低锁的粒度,我觉得吧,0_0)

    6.Reentrantlock原理

    编译器级别的锁,类似于自己实现的那个可重入锁(见另一随笔),不过更厉害很多

    依赖于AQS,同步阻塞对列,具体实现看http://blog.csdn.net/zhousenshan/article/details/53026785

    7.CAS底层实现

    compareandset,先那估计值和原值比较,一样就set,不一样就不set,好像有依赖于native方法,这里有点忘了,//TODO

    8.红黑树,b树,b+-树

    就懂一点点原理,这里就不献丑了,面试也不会那么难,注意结合具体实现说,比如currenthashmap,sql啥的

    9.NIO,BIO,AIO

    nio就是非阻塞的流,内容炒鸡多,百度,然后,背。

    10.事务隔离

    这里就扯CIAD,然后讲隔离性,四种隔离级别,mysql默认级别Repeatable read,Oracle默认Read committed

    11.事务底层实现

    这里我就知道JDBC设置回滚点,自动回滚和手动回滚

    12.分布式

    了解的不多,就知道RockerMQ,zookeeper,redis,dubbo,ngnix,mongodb等单词的拼写。

    13.HashMap,HashTable,ConcurrentHashMap

    hashmap线程不安全

    hashtable就是全加了synchronized的hashmap

    concurrenthahmp是juc包下的,效率比hashtable高,因为hashtable锁全map,concurrenthashmap只锁一个node(1.8以前是segment),

    (这里要说,concurrenthashmap在JDK1.7求size时锁整个表,1.8后每次put都会维护一个size值,但在并发下不精确)

    具体百度为什么JDK1.8的concurrenthashmap比JDK1.7效率高。

    14.spring aop ioc

    spring是由反射和代理组成的,aop就是一种代理,ioc就是反射

    15.TCP原理,三次握手,四次挥手,都不能少

    16.类加载机制,双亲委派机制

    17.session,cookie都是啥,干嘛的

    18.http1.0.1.1,2.0,和https区别

    19.重载和重写的原理

    虚方法,静态分派

    20.多态原理:动态绑定

    21.常见的几种设计模式

    单例:懒汉,饿汉,双重检验,枚举

    工厂

    代理:JDK提供的动态代理,cglib代理,spring实现的代理

    生产者消费者模式(算设计模式吗???我觉得还ok)

    22.面向对象的特征

    封装,继承,多态

    23.接口,抽象类

    接口更像一种约束,规定,抽象类面向具体实现,封装一些公有方法

    24.Comparable和Comparator区别

    前者简单但是需要修改源代码

    25.fail-fast机制

    26.synchronized底层实现

    monitorenter,monitorexit两种字节码

    27.volatile

    内存可见性

    禁止指令重排序

    28.ThreadLocal

    29.maven原理(这里应该不会问吧,我就写写)

    30.分布式CAP

    31.乐观锁,悲观锁

    32.线程间通信的三种方式

    (我只知道设置signal)

    33.为什么匿名内部类的变量用final

    34.。。。。。。未完

  • 相关阅读:
    BZOJ2243: [SDOI2011]染色(树链剖分/LCT)
    BZOJ2157: 旅游(LCT)
    BZOJ3510首都(LCT)
    BZOJ4530 [BJOI2014]大融合(LCT)
    BZOJ2631: tree(LCT)
    BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊(LCT)
    BZOJ3282: Tree (LCT模板)
    [NOI2008]假面舞会(DFS)
    斜率优化dp练习
    BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
  • 原文地址:https://www.cnblogs.com/BBchao/p/8415021.html
Copyright © 2011-2022 走看看