一、LinkedList和ArrayList的区别

LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用

public class LinkedList<E> {transient int size = 0;//数量默认时0transient Node<E> first;   transient Node<E> last;
}
public class ArrayList<E>{private static final int DEFAULT_CAPACITY = 10;//默认长度是10transient Object[] elementData;private int size;public ArrayList() {this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}
}

1、结构不同

  1. LinkedList是链表,LinkedList的数据类型是Node,Node包含Nodenext;Nodeprev;前后节点
  2. ArrayList是数组,类型是Object

2、效率不同
查找效率Arraylist高于LinkedList,增加、删除LinkedList高于Arraylist

二、创建线程的四种方式及对比分析

1、继承extends Thread 重写run方法
2、实现implements Runnable 重写run方法
3、通过Future+Callable创建线程。先实现implements Callable重写call方法,然后 new FutureTask<>(Callable实现类对象);
4、使用线程池Executor

分析:Executor框架的最大优点是把任务的提交和执行解耦

四、对于线程安全的理解与自己的想法

线程安全可以理解为内存安全,特别是像堆内存是共享,可以被所有的线程访问。当多个线程访问同一个对象时,如果不进行额外的同步控制或者协调操作是会有线程安全问题的。

五、线程有几种状态

1、新建
2、可运行(RUNNABLE),调用了start()方法,该状态的线程位于可运行线程池中,等待被线程调度
3、运行
4、阻塞(BLOCKED) ->直到线程进入可运行(runnable)状态

等待阻塞:运行(running)的线程执行o.wait()方法,JVM会把该线程放入等待队列
同步阻塞:运行(running)的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池(lock pool)中
其他阻塞:运行(running)的线程执行Thread.sleep(long ms)或t.join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。
当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入可运行(runnable)状态。

死亡(DEAD):线程run()、main() 方法执行结束,或者因异常退出了run()方法

六、异常

1、class Error extends Throwable
2、class Exception extends Throwable

Exception分为运行时异常(RuntimeException)和非运行时异常

1、class RuntimeException extends Exception
比如:NullPointerException、IndexOutOfBoundsException、IllegalArgumentException(数据格式异常,比如非日期格式转日期),

2、class 非RuntimeException extends Exception

6、线程中CAS的原理

7、如何解决缓存穿透、如何预防缓存雪崩

8、MySQL有哪些索引?对于其中B+Tree的理解

面试题0402-国泰君安相关推荐

  1. 基于visual Studio2013解决面试题之0402合并升序链表并去重

     题目 解决代码及点评 /*两个升序链表合并,并要求去掉重复元素 */ #include <iostream> using namespace std;class LinkNode ...

  2. c/c++笔试面试题(4)

    c/c++笔试面试题(4) 2007-11-08 16:46 749人阅读 评论(0) 收藏 举报 Sony笔试题  1.完成下列程序  *  *.*.  *..*..*..  *...*...*.. ...

  3. 也许你会用到的58个硬件面试题!

    面对换工作,可能大家都比较发愁面试 不是因为能力不够,更不是因为专业知识欠缺 也许就是担心当下的紧张范围 担心发挥不好,担心准备的不够充分 ---- 今天帮大家整理了58条硬件面试题 我们不打无准备的 ...

  4. C/C++面试题-2 之2/2

    之2/2 45. 如何判断一个单链表是有环的?(注意不能用标志位,最多只能用两个额外指针)    struct node { char val; node* next;}    bool check( ...

  5. c/c++笔试面试题_2

    转载自瀚海星云 Sony笔试题  1.完成下列程序  *  *.*.  *..*..*..  *...*...*...*...  *....*....*....*....*....  *.....*. ...

  6. 知名IT企业面试题整理(八)--合并

    中软融鑫笔试题 1.关于工作     (1) 你对未来的工作生活是怎样憧憬的?为何选择我公司作为求职公司?     (2 )请用不超过30 个字给出一个最能让我们录用你的理由.     (3)你认为比 ...

  7. C/C++笔试题(12)

    香港电信笔试题     1. Based on your understanding of the following java related technologies: servlets, Jav ...

  8. 46家公司的笔试题,拿去练练手吧

    首先推荐下自己的独立小网站,一个可以在线制作.收录数万表情包的网站,欢迎大家访问:撸表情 原版是在微盘推荐里看到的,也不清楚是哪位有心人整理的,我先贴出来给大家瞧瞧,也替大家谢谢这位有心人!!欢迎一起 ...

  9. 46家公司面试笔试题

    Sony笔试题 1.完成下列程序 * *.*. *..*..*.. *...*...*...*... *....*....*....*....*.... *.....*.....*.....*.... ...

  10. 近期所有的面试题大全

    基于Visual C++2013拆解世界五百强面试题--题14-循环删除  http://blog.csdn.net/itcastcpp/article/details/13022461 基于Visu ...

最新文章

  1. C驱动程序是怎么跑起来的
  2. Java的clone()用法实例解析
  3. 计算机专业的三行情书,各专业三行情书,看懂你就是全能学霸!
  4. python中用于标识字符串的定界符_001.python-基础-Template的字符串格式化
  5. Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL
  6. 程序员的遗憾:为什么我没早学数据分析?
  7. linux 清空session,webwork 之销毁session
  8. win10不下载开热点的软件来开启无线热点
  9. Context and Attribute Grounded Dense Captioning
  10. APS生产计划排产在装备制造业的应用
  11. outlook安全模式修复_Outlook Com安全漏洞Microsoft无法修复
  12. 我的世界java1.16.3村庄种子,我的世界2020年最新版村庄种子
  13. 小米5x有android 8.0,小米5X 8.0【Android 8.0】没错是8.0!
  14. 一款极简聊天应用,比较完整,略好看
  15. 无线传感器网络的时钟同步估计问题(Matlab代码实现)
  16. Gaze vector介绍
  17. LPL2020夏季常规赛7月22日RW vs ES,WE vs BLG前瞻预测
  18. 推动线下网吧转型 京东Game+ CEST总决赛圆满落幕
  19. 淘宝双十一spark大作业 林子雨问题+解决
  20. es 搜索引擎 倒排索引 lucene 基础概念

热门文章

  1. Type-C 转 2 端口 MIPI CSI/DSI,支持 3D 音频和 PD 控制器
  2. 渠道向上,资本下沉:小家电凭何在家电下行期逆流而上?
  3. 瑞典让华为失去了一个1000万人口的市场,却同时让爱立信失去了一个140000万人的市场...
  4. 朴素贝叶斯 “打网球”决定
  5. 敲重点!最全大模型训练合集!
  6. android实习日志_2016年3月11日Android实习日记
  7. Android Jetpack Room数据库全解析
  8. 静态全局变量的声明与定义
  9. 计算机基础电子表格有计算,(精选)2018计算机应用基础Excel电子表格题目
  10. 支付宝被风控7天怎么办?付解决方案