背景:将网上的题目整理下。

java基础

1:hashTable hashMap ConcurrentHashMap 的区别、数据结构、线程安全

2:equals和==区别, 重写equals一定要重写hashcode方法吗?为什么?hashcode方法有什么作用?

这个万年不变的面试题,这是何等的卧槽

==说明:

对于基本类型来说 ,==比较两个基本类型的值是否相等,

对于引用类型来说,==比较的是内个引用类型的内存地址

equals说明:

equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法       进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。

重写equals一般是要重写hashcode方法的,首先equals与hashcode间的关系是这样的:

1、如果两个对象相同(即用equals比较返回true),那么它们的hashCode值一定要相同;

2、如果两个对象的hashCode相同,它们并不一定相同(即用equals比较返回false)

比如说两个字符串的hashcode相同,但是这两个字符串可以是不同的字符串,对象也是同理,自己理解的。

至于hashcode有什么用?

为了提高程序的效率才实现了hashcode方法,先进行hashcode的比较,如果不同,那没就不必在进行equals的比较了,这样就大大减少         了equals比较的次数,这对比需要比较的数量很大的效率提高是很明显的,一个很好的例子就是在集合中的使用;
(转)从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节

3:线程池的工作机制,Java通过Executors工具类创建出来的线程池有什么区别,为什么这样定义?

Executors.newCachedThreadPool();        //创建一个缓冲池,缓冲池容量大小为Integer.MAX_VALUE
Executors.newSingleThreadExecutor(); //创建容量为1的缓冲池
Executors.newFixedThreadPool(int); //创建固定容量大小的缓冲池

(转)Java并发编程:线程池的使用

4:线程池有哪些参数,具体含义是什么?

共7个参数

corePoolSize 核心线程数,

maximumPoolSize线程池最大线程数,

RejectedExecutionHandler饱和策略:DiscardPolicy,DiscardOldPolicy,CallerRunPolicy,AbortPolicy

keepAliveTime存活时间,

TimeUnit(线程活动保持时间的单位)

workQueue阻塞队列 ArrayBlockingQueue和PriorityBlockingQueue使用较少,一般使用LinkedBlockingQueue和Synchronous

threadFactory线程工厂,用来创建线程

(转)Java并发编程:线程池的使用

4:AQS 重入锁 读写锁 countdownlatch 栅栏(cyclicBarrier) 信号量(semaphore)

5:有四个线程A、B、C、D、E,现在需要E线程在ABCD四个线程结束之后再执行

控制线程顺序执行 我知道的

1. join 让主线程等待子线程运行结束后再继续运行

2. 利用并发包里的Excutors的newSingleThreadExecutor产生一个单线程的线程池,而这个线程池的底层原理就是一个先进先出(FIFO)的  队列。代码中executor.submit依次添加了123线程,按照FIFO的特性,执行顺序也就是123的执行结果,从而保证了执行顺序。

3. 使用 CountDownLatch 控制多个线程执行顺序 cutDown()方法和await()方法  参考:https://www.cnblogs.com/flyme/p/4568063.html

6:Java序列化,有ID和没ID会出现问题吗?

(转)java 序列化ID的作用
7:JVM内存模型,为什么survivor需要有2个。

survivor需要2个,主要是为了规避内存碎片化

8:GC算法,回收器
9:类加载机制

加载(内存中生成class对象), 链接(验证 准备 解析), 初始化

ps:解析阶段在某些情况下可以在初始化阶段之后再开始,这是为了支持Java的运行时绑定。

VM——Java类加载机制总结

10. synchronized和lock的区别

synchronized和lock的区别

11 手写生产者消费者

https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/Java%20%E5%B9%B6%E5%8F%91.md

BlockingQueue实现。semaphore,wait/notify,await/signal

mysql
1:索引都有什么类型
2:聚集索引和非聚集索引,主键删掉之后还有聚集索引吗?
3:建了索引,什么时候会不命中索引
4:innodb与myisam存储引擎的区别
5:分库分表,主从复制的延迟
6:查询优化,

redis
淘汰机制
失效策略
持久化rdb、aof
pipeline
主从、集群

数据结构
1:链表,链表倒置、节点交换
2:Btree B+tree 红黑树

协议
tcp
http

喜马拉雅2018 Java面试题目

(转)喜马拉雅2018 Java面试题目的更多相关文章

  1. 2020阿里Java面试题目大汇总,看看你离阿里还有多远,附答案!

    前言 首先说一下情况,我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等.也是有些辛苦.终于是在前不久拿 ...

  2. 亚信联创--java面试题目总结

    这几天投简历,只有两家的HR表示感兴趣.易思卓越和亚信联创,不管怎样如果能有机会面试都一定尽力表现,所以找了找网上的面经,这里先把题目总结一下. 职位要求如下: ------------------- ...

  3. java 面试题目(java高级架构)

    题目信息 java基础: 1. Java 基础 JDK 和 JRE 有什么区别?   Java中JDK和JRE的区别是什么?它们的作用分别是什么? == 和 equals 的区别是什么? 两个对象的 ...

  4. 【应聘】阿里巴巴Java面试题目

    原文地址:http://blog.csdn.net/free0sky/article/details/7927275   一.String,StringBuffer, StringBuilder 的区 ...

  5. java面试题目

    1.Java中的异常处理机制的简单原理和应用.当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常.违反语义规则包括2种情况.一种是JAVA类库内置的语义检查.例如数 ...

  6. java面试题目之JVM(YW制作仅供参考)

    1.JVM工作原理 2.JVM组成部分及其作用. java虚拟机分为两个子系统和两个组件. 两个子系统分别是类加载器和执行引擎,类加载器负责加载字节码(.class)文件到JVM的内存中,执行引擎负责 ...

  7. java面试题目偏基础

    一.JAVA基础篇-概念1.简述你所知道的Linux:Linux起源于1991年,1995年流行起来的免费操作系统,目前, Linux是主流的服务器操作系统, 广泛应用于互联网.云计算.智能手机(An ...

  8. 【Java基础】Java面试题目整理与解说(二)

    1.Collection 和 Collections 的差别. Collection 是集合类的上级接口,继承于他的接口主要有 Set 和 List. Collections 是针对集合类的一个帮助类 ...

  9. java常见面试题目(一)

    在大四实习阶段,秋招的时候,面试了很多家公司,总结常见的java面试题目:(答案可以自己百度) 1.你所用oracle的版本号是多少? 2.tomcat修改8080端口号的配置文件是哪个? 3.myb ...

随机推荐

  1. cordova微信支付回调App闪退

    这是cordova版本太高,不兼容这个插件所导致的.解决方案是修改$your_project/plugins/cordova-plugin-wechat/scripts/android-install ...

  2. LODOP打印安装到win的特殊字体

    LODOP能够打印的字体,来源于安装到本机windows里字体库的字体,如果需要打印特别的字体,需要在该操作系统安装.由于web网站的用户千差万别,字体库也有不同,但是一般常见的字体都是有的,因此做模 ...

  3. How to install rime on Debian

    apt-get install ibus ibus-rime librime-data-wubi reboot cp ~/.config/ibus/rime/default.yaml ~/.confi ...

  4. EUV光刻!宇宙最强DDR4内存造出

    三星电子宣布开发出业内首款基于第三代10nm级工艺的DRAM内存芯片,将服务于高端应用场景,这距离三星量产1y nm 8Gb DDR4内存芯片仅过去16个月. 第三代10nm级工艺即1z nm(在内存 ...

  5. Civil 3D 二次开发 新建CLR项目出现错误C2143

    新建CLR项目出现错误C2143 按照Objectarx Training创建.net混合项目,编译时出现一下错误: 原因不明: 解决方法: 在Stdafx.h文件中添加: #define WIN32 ...

  6. 洛谷P3381 最小费用最大流

    费用流板子 还是一道板子题..先练练手 #include <bits/stdc++.h> #define INF 0x3f3f3f3f #define full(a, b) memset( ...

  7. 南理第八届校赛同步赛-C count_prime//容斥原理

    大致思路就是先求出n的质因数假设是a1-an,然后在1-a的区间里面查找至少能整除{a1,a2...an}中一个元素的数有多少个,对1-b也做相同的处理,而找出来的元素肯定是与n不互质的,那么把区间的 ...

  8. 【BZOJ5471】[FJOI2018]邮递员问题(动态规划)

    [BZOJ5471][FJOI2018]邮递员问题(动态规划) 题面 BZOJ 洛谷 给定平面上若干个点,保证这些点在两条平行线上,给定起点终点,求从起点出发,遍历所有点后到达终点的最短路径长度. 题 ...

  9. ⌈洛谷5058⌋⌈ZJOI2004⌋嗅探器【Tarjan】

    题目连接 [洛谷传送门] [LOJ传送门] 题目描述 某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络,蓝军共有两个信息中心,红军计划在某台中间服务器上安装一个嗅探器,从而能够侦听到两个信息中心 ...

  10. 添加 [DataContract] 到 Entity Framework 6.0 POCO Template

    1. 添加using System.Runtime.Serialization; 找到这行 includeCollections ? (Environment.NewLine + "usin ...