记一次java电话面试
答案补充中。。。
一、java基础
1、简述java的几种基本数据类型
JAVA的基本数据类型有:byte、char、boolean、short、int、long、float、double
2、什么是装箱和拆箱
3、如何将long转换为int
①强转:int i = (int)123L
②将long装箱为Long,调用 intValue()
③将long转为String,再利用Interger类转换 int i = Integer.parseInt(String.valueOf(123L));
如果待转换的long超出int范围,前两种转出负数,第三种会抛出NumberFormatException异常
4、常用集合考察
①ArrayList初始的大小,以及扩容机制
这里考察源码的阅读,通过阅读源码(JDK1.8)就能找到答案:
ArrayList如果不指定大小,默认构造函数是这么实现的:
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
其中的elementData 就是实际存储数据的数组,如果是默认初始化,在添加第一个元素的时候会默认将大小初始化为 DEFAULT_CAPACITY,相关源码如下:
/**
* The array buffer into which the elements of the ArrayList are stored.
* The capacity of the ArrayList is the length of this array buffer. Any
* empty ArrayList with elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA
* will be expanded to DEFAULT_CAPACITY when the first element is added.
*/
transient Object[] elementData; // non-private to simplify nested class access
/**
* Default initial capacity.
*/
private static final int DEFAULT_CAPACITY = 10;
至此,可以回答第一个问题,ArrayList默认初始大小就是10,
关于扩容,相关源码如下:
/**
* Increases the capacity to ensure that it can hold at least the
* number of elements specified by the minimum capacity argument.
*
* @param minCapacity the desired minimum capacity
*/
private void grow(int minCapacity) {
// overflow-conscious code
int oldCapacity = elementData.length;
int newCapacity = oldCapacity + (oldCapacity >> 1);
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
if (newCapacity - MAX_ARRAY_SIZE > 0)
newCapacity = hugeCapacity(minCapacity);
// minCapacity is usually close to size, so this is a win:
elementData = Arrays.copyOf(elementData, newCapacity);
}
其中的
int newCapacity = oldCapacity + (oldCapacity >> 1);
表明,扩容时时按照原大小加上原大小的一半进行扩容,这里学到了一个逼格较高的操作,那就是右移一位,等价于除以2,但是效率要更高
②List里面重复数据如何去重
本质都是遍历然后借助相关容器进行去重,比如set,hashmap
③hashmap的实现
底层实现还是数组,通过hashcode确定存放位置,如果同一位置已有数据则采用拉链法解决。
具体就是数组的每个元素做成链表,通过链表进行扩展
5、多线程编程
多线程编程的实现方式,具体参考我整理的相关文章:[JAVA]JAVA实现多线程的三种方式
6、socket编程
7、线程池的使用
创建和关闭
二、javaEE基础
1、springMVC的作用
2、用过Spring的哪些组件
3、Spring Bean的生命周期
4、简述Ioc和AoP
三、SQL基础
关于SQL的基础,参考我转载的:常见的数据库SQL面试题以及答案
四、linux基础
1、如何查看java程序状态
2、linux下的常用命令
五、分布式
1、缓存技术
2、消息队列
3、负载均衡
redis、es、Nginx、solr、rocketMQ
六、项目工具
1、maven常用命令
2、IDEA
3、git常用命令
pull、push、commit、分支概念
4、缺陷管理
用过禅道,okit等
记一次java电话面试的更多相关文章
- 记一次Java面试问题点总结
引言 昨日接了一个阿里外包的电话面试,问了一些技术问题感觉到自己是真的菜,接触Java开发已经也有一段时间,技术方面说来惭愧,一直以来只是局限于框架工具的用法,也没有进行了解其实现的原理,更重要的是一 ...
- JAVA工程师-蚂蚁金服电话面试
今天5点半接到一个杭州的电话,是蚂蚁金服打来的,当时心里一阵发慌,由于还在上班,就和面试官约定6点下班之后再来.挂完电话,心里忐忑的不行,感觉自己这也没准备好,那也没准备好.剩下半个小时完全没有心思再 ...
- 阿里Java开发电话面试经历--惨败
近期准备跳槽,想试试知名大企业--阿里.经过boss直聘上一些内部人员的内推,有幸获得了一次电话面试的机会.(虽然在面试开始之前就大概知道结果是如何,但是也总得试试自己个有多水,哈哈哈...) 跟大家 ...
- Java 笔试面试 基础篇 一
1. Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法, 线程的语法,集合的语法,io 的语法,虚拟机方面的语法. 1.一个".java& ...
- 美团Java实习面试经历(拿到Offer)
美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会.10月23日中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我 ...
- 2019上海爱奇艺大数据Java实习生-面试记录
目录 一轮 电话面试 二轮 代码笔试 三轮 技术面试 总结 附:电话面试问题点解惑 补充:面试未通过 一轮 电话面试 2019.04.28 16:21 [w]:面试官,[m]:我,下面的内容来自电话录 ...
- 面试现场:裸面京东JavaT5第一轮电话面试
人物简介 清辞女朋友,94年资深女程序员一枚,15年非本专业毕业,有过1年测试经验,3年Java开发经验,之前有个1年大公司的工作经历,2年的车联网公司经历,每天打卡式工作,朝九晚七.工作之余没看过一 ...
- 【1】第一次电话面试---上海EMC
时间是2016//11月,投的是上海的EMC2公司的JavaWeb开发岗,第一次接到的电话面试,问的题目很基础基础,很遗憾,本人在掌握的太不好,回答的很乱,目测定挂.下面记下HR问的问题及回答. 首先 ...
- 蚂蚁社招Java-第四轮电话面试【技术终面】
作者:听着歌过面试链接:https://www.nowcoder.com/discuss/64708来源:牛客网 蚂蚁社招Java-第四轮电话面试[技术终面] 转载 (耗时22分钟,其实聊得东西挺 ...
随机推荐
- ftp远端上的文件下载
用linux下的wge下t载比在window下一个个点方便多了,命令如下: wget ftp:// 110.110.110/\*.mseed --ftp-user=username --ftp-pas ...
- Prime ring problem,递归,广搜,回溯法枚举,很好的题
题目描述: A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each ...
- IDEAL 热更新
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- ViewBag赋值Html格式值
今天再给自己总结一下,关于ViewBag赋值Html格式值,但是在web页显示不正常; 例如,ViewBag.Content = "<p>你好,我现在测试一个东西.</p& ...
- 学习Git笔记(更新中)
参考网址:https://blog.csdn.net/zmx729618/article/details/52174373 跟着练习一下,写的很好. Git:是一个分布式版本控制系统. GitHub: ...
- [工作日志] 2019-04-16 入参是list
入参 {"vehicleList":[{"vehicleNo":"赣K81057","plateColor":" ...
- xcode10 出现iPhone has denied the launch request
一般的处理这里不介绍,只要介绍因为证书的问题导致这个原因的.我的现象是,模拟器可以,iOS12以下设备可以,证书全部更新了一遍,只有一个没更新,还真是那个没更新的问题. 从钥匙串查看自己的证书配置,看 ...
- Spark的mlib中的稠密向量和稀疏向量
spark mlib中2种局部向量:denseVector(稠密向量)和sparseVector(稀疏向量) denseVector向量的生成方法:Vector.dense() sparseVecto ...
- 常用的JSP内置对象(1)
常用的JSP内置对象 request对象主要用于处理客户端请求 request对象的作用是与客户端交互,收集客户端的Form.Cookies.超链接,或者收集服务器端的环境变量. request对象常 ...
- Python全栈之路----常用模块----xml处理模块
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的 ...