阿里巴巴、阿里云Java面试题、笔试题(含答案)
其他互联网大厂面试题
1:阿里巴巴Java面试题
2:阿里云Java面试题-实习生岗
3:腾讯Java面试题-高级
4:字节跳动Java面试题
5:字节跳动Java面试题-大数据方向
6:百度Java面试题
7:蚂蚁金服Java面试题-中级
8:蚂蚁金服Java面试题-高级
9:京东Java面试题-中级
10:拼多多Java面试题-电商部
11:商汤科技Java面试题
12:中软国际Java面试题-初级
13:唯品会Java面试题
14:携程Java面试题-高级
15:软通动力Java面试题
下载链接:全部大厂面试题及答案PDF
1、List 和 Set 的区别
List , Set 都是继承自 Collection 接口
2、HashSet 是如何保证不重复的
向 HashSet 中 add ()元素时,判断元素是否存在的依据,不仅要比较hash值,同时还要结合 equles 方法比较。
HashSet 中的 add ()方法会使用 HashMap 的 add ()方法。以下是 HashSet 部分源码:
private static final Object PRESENT = new Object(); private transient HashMap<E,Object> map;public HashSet() {map = new HashMap<>();
}public boolean add(E e) {return map.put(e, PRESENT)==null;
}
3、HashMap是线程安全的吗,为什么不是线程安全的?
4、HashMap 的扩容过程
当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值(知道这个阈字怎么念吗?不念 fa 值,念 yu 值四声)—即当前数组的长度乘以加载因子的值的时候,就要自动扩容啦。
HashMap hashMap=new HashMap(cap);
如果 cap 是2的n次方,则容量为 cap ,否则为大于 cap 的第一个2的n次方的数。
5、HashMap 1.7与 1.8的区别,说明1.8做了哪些优化,如何优化的?
在 JDK1.7 及之前的版本中,HashMap 又叫散列链表∶基于一个数组以及多个链表的实现,hash值冲突的时候,就将对应节点以链表的形式存储。
JDK1.8中,当同一个hash值(Table 上元素)的链表节点数不小于8时,将不再以单链表的形式存储了,会被调整成一颗红黑树。这就是 JDK7与 JDK8 中 HashMap 实现的最大区别。
其下基于JDK1.7.0_80与JDK1.8.0_66 做的分析JDK1.7中
使用一个 Node 数组来存储数据,但这个 Node 可能是链表结构,也可能是红黑树结构
● 如果插入的 key 的 hashcode 相同,那么这些key也会被定位到Node 数组的同一个格子里。● 如果同一个格子里的key不超过8个,使用链表结构存储。
听起来挺不错,但是真正想要利用 JDK1.8 的好处,有一个限制∶
如果没有实现compare 接口,或者实现得不正确(比方说所有Compare 方法都返回0)那 JDK1.8的 HashMap 其实还是慢于 JDK1.7 的
向 HashMap 中 put/get 1w 条 hashcode 相同的对象
JDK1.8(未实现 Compare 接口)∶ put 0.92s ,get 2.1s
但是如果正确的实现了 Compare 接口,那么 JDK1.8 中的 HashMap 的性能有巨大提升,这次 put/get 100W条hashcode 相同的对象
JDK1.8(正确实现 Compare 接口,)∶ put/get 大概开销都在320 ms 左右
6、final finally finalize
● final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。
● finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定要执行的代码方法finally代码块中,表示不管是否出现异常,该代码块都会执行,一般用来存放一些关闭资源的代码。
7、对象的四种引用
Object obj = new Object();.
User user=new User();
软引用 非必须引用,内存溢出之前进行回收,可以通过以下代码实现
Object obj = new Object();
SoftReference<0bject> sf = new SoftReference<Object>(obj);obj= null;
sf.get();//有时候会返回nul1
Object obj = new Object();
weakReference<0bject> wf = new weakReference<Object>(obj);obj = nu11;
wf.get();//有时候会返回nu11
wf.isEnQueued ();//返回是否被垃圾回收器标记为即将回收的垃圾
public class ThreadLocal<T> {static clasS ThreadLoca]Map {
static class Entry extends weakReference<ThreadLoca1<?>>{/** The value associated wi th this ThreadLoca1.*/object value;
Entry(ThreadLoca1<?> k, Object v) {
super(k);value = v;””//... 、了/7..... 3
虚引用 垃圾回收时回收,无法通过引用取到对象值,可以通过如下代码实现
0bject obj = new Object();
PhantomReference<0bject> pf = new PhantomReference<0bject>(obj);obj=null;
pf.get();//永远返回nu11
pf.isEnQueuedO);//返回是否从内存中已经删除
虚引用是每次垃圾回收的时候都会被回收,通过虚引用的get方法永远获取到的数据为nul,因此也被成为幽灵引用。虚引用主要用于检测对象是否已经从内存中删除。
8、Java获取反射的三种方法
public class Student { private int id; String name; protected boolean sex; public float score;
}
public class Get {//获取反射机制三种方式public static void main(String[] args) throws ClassNotFoundException {//方式一(通过建立对象)Student stu = new Student(); Class classobj1 = stu.getClass();System.out.println(classobj1.getName());//方式二(所在通过路径-相对路径)Class classobj2 = Class.forName("fanshe.Student");System.out.println(classobj2.getName());//方式三(通过类名)Class classobj3 = Student.class; System.out.println(classobj3.getName());}
}
9、Java反射机制
import java.lang.reflect.Constructor; public class ReflectTest {public static void main(String[] args) throws Exception {Class clazz = null;clazz = Class.forName("com.jas.reflect.Fruit"); Constructor<Fruit> constructor1 = clazz.getConstructor();Constructor<Fruit> constructor2 = clazz.getConstructor(String.class);Fruit fruit1 = constructor1.newInstance();Fruit fruit2 = constructor2.newInstance("Apple");}
}class Fruit{public Fruit(){System.out.println("无参构造器 Run ");}public Fruit(String type){System.out.println("有参构造器 Run..........." + type);}
}
– 运行结果: 无参构造器 Run………… 有参构造器 Run… Apple
10、Arrays.sort 和 Collections.sort 实现原理和区别
11、LinkedHashMap 的应用
12、CToneable 接口实现原理
13、异常分类以及处理机制
14、wait和 sleep 的区别源码如下
15、数组在内存中如何分配
下载链接:博主已将以上这些大厂面试题整理成了一个面试手册,是PDF版的
阿里巴巴、阿里云Java面试题、笔试题(含答案)相关推荐
- linux研发工程师笔试题,2015-8-29阿里校园招聘研发工程师笔试题
2015-8-29阿里校园招聘研发工程师笔试题 1. 某团队有2/5的人会写Java程序,有3/4的人会写C++程序,这个团队里同时会写Java和C++的至少有()人 A. 3 B. 4 C. 5 ...
- java 用程序代码解释继承_关于初级java程序员笔试题
关于初级java程序员笔试题 Sun 认证Java程序员考试内容涉及Java所有相关知识.编程概念及applet开发技巧.下面是小编整理的关于初级java程序员笔试题,欢迎大家参考! 第一题:判断题 ...
- 分享18道Java基础面试笔试题
转载自 分享18道Java基础面试笔试题(面试实拍) 1.你最常上的两个技术站和最常使用的两个app分別进什么?主要解决你什么需求? 2.请简述http协议中get请求和post请求的区别. 3.请简 ...
- JAVA面试、笔试题
@[TOC]目录 JAVA面试.笔试题 @目录 一. CoreJava部分 7 1. java中有哪些基本类型? 7 2. java反射 7 3. 易错,理解题 7 4. Java有几种创建对象的方法 ...
- 2017年java笔试题_初级java程序员笔试题
Java认证考试是业界唯一经Sun授权的Java认证,考试内容涉及所有Java相关知识.编程概念及applet开发技巧.下面是小编整理的关于java初级程序员面试题,欢迎大家参考! 一:判断题 1.J ...
- 阿里巴巴-口碑-上海-Java一面部分面试题
阿里巴巴-口碑-上海-Java一面部分面试题 面试 java 基础知识 阿里巴巴-口碑-上海-Java一面部分面试题 1. Jdk1.8中的HashMap实现原理? 2. 问: 小灰,你来说说,数据库 ...
- 东软java的笔试_东软java面向对象程序设计笔试题
东软java面向对象程序设计笔试题 东软集团培训事业部 第 1 页 共 9 页 Java 面向对象程序设计 考试卷 班级: 姓名: 时间: 90 分钟 一.选择题(没有注明多选,则为单选) 1. 下列 ...
- java面试、笔试题(0815版)
java面试.笔试题(201 1. Java基础部分 4 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 4 2.Java有没有goto? 4 3.说 ...
- 京东2019春招Java开发类笔试题
京东2019春招Java开发类笔试题 1. (单选题) 在对问题的解空间树进行搜索的方法中,一个结点有多次机会成为活结点的是 ( B ) A. 动态规划 B. 回溯法 C. 分支限界法 D. 回溯法和 ...
最新文章
- shell中定义变量用双引号和单引号以及不用引号的区别
- ArcGIS 10.0 ArcGIS 9.3.1数据生成实验--个人地理数据库
- matlab 柴油机仿真,用MATLAB/SIMULINK实现柴油机及其控制系统的动态仿真
- 第一章 计算机网络 2 组成与分类 [计算机网络笔记]
- 深度系统如何安装mysql_deepin 安装mysql apache
- 中国移动公布5G核心网大单 全面加快5G网络部署
- Python tkinter的text控件加滚动条
- LCD1602简易驱动程序
- MIT molecular Biology 笔记8 RNA剪接
- thinkpad选择启动项_thinkpad怎么从u盘启动|联想thinkpad笔记本bios设置usb启动教程-系统城...
- coursera—Mini-project #1 - Rock-paper-scissor-lizard-Spock
- 成为高薪的AI人工智能工程师的条件
- 中国假期、A股日历及八字算命——ChnCal日历小工具介绍
- 蓝牙连接的sco问题
- pictureselector 压缩_Android 拍照、从相册选择图片之PictureSelector
- UVA 11426 GCD - Extreme (II) (欧拉函数)
- Praat脚本-029 | 一种更有效的校对音频内容的方案
- 游戏制作-联网对战丛林战争制作笔记(一)
- Android 入门基础教程2
- java 提醒小工具_【JAVA】一个简单的定时提醒小程序
热门文章
- Leetcode上测试用例测试结果正确,但提交后有错的问题
- Hive-SQL与SQL的区别
- eve 服务器在哪个文件夹,EVE模拟服务端编译搭建教程(下).doc
- java.lang.instrument ASSERTION FAILED ***: “error
- phython软件PyCharm怎么添加快捷字体放大(缩小)调节字体大小
- JavaScript的form表单验证中的身份证校验
- [北大张铭 教学版]数据结构与算法(C++)
- 正版软件,官方授权。RadiAnt DICOM Viewer - 软件版 / CD/DVD版
- LaTeX/Bibliography Management latex 参考文献管理 bib
- python随机数种子怎么用_Python 随机种子介绍,PyTorch 中随机种子的设置应用