答案补充中。。。

一、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电话面试的更多相关文章

  1. 记一次Java面试问题点总结

    引言 昨日接了一个阿里外包的电话面试,问了一些技术问题感觉到自己是真的菜,接触Java开发已经也有一段时间,技术方面说来惭愧,一直以来只是局限于框架工具的用法,也没有进行了解其实现的原理,更重要的是一 ...

  2. JAVA工程师-蚂蚁金服电话面试

    今天5点半接到一个杭州的电话,是蚂蚁金服打来的,当时心里一阵发慌,由于还在上班,就和面试官约定6点下班之后再来.挂完电话,心里忐忑的不行,感觉自己这也没准备好,那也没准备好.剩下半个小时完全没有心思再 ...

  3. 阿里Java开发电话面试经历--惨败

    近期准备跳槽,想试试知名大企业--阿里.经过boss直聘上一些内部人员的内推,有幸获得了一次电话面试的机会.(虽然在面试开始之前就大概知道结果是如何,但是也总得试试自己个有多水,哈哈哈...) 跟大家 ...

  4. Java 笔试面试 基础篇 一

    1. Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法, 线程的语法,集合的语法,io 的语法,虚拟机方面的语法. 1.一个".java& ...

  5. 美团Java实习面试经历(拿到Offer)

      美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会.10月23日中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我 ...

  6. 2019上海爱奇艺大数据Java实习生-面试记录

    目录 一轮 电话面试 二轮 代码笔试 三轮 技术面试 总结 附:电话面试问题点解惑 补充:面试未通过 一轮 电话面试 2019.04.28 16:21 [w]:面试官,[m]:我,下面的内容来自电话录 ...

  7. 面试现场:裸面京东JavaT5第一轮电话面试

    人物简介 清辞女朋友,94年资深女程序员一枚,15年非本专业毕业,有过1年测试经验,3年Java开发经验,之前有个1年大公司的工作经历,2年的车联网公司经历,每天打卡式工作,朝九晚七.工作之余没看过一 ...

  8. 【1】第一次电话面试---上海EMC

    时间是2016//11月,投的是上海的EMC2公司的JavaWeb开发岗,第一次接到的电话面试,问的题目很基础基础,很遗憾,本人在掌握的太不好,回答的很乱,目测定挂.下面记下HR问的问题及回答. 首先 ...

  9. 蚂蚁社招Java-第四轮电话面试【技术终面】

    作者:听着歌过面试链接:https://www.nowcoder.com/discuss/64708来源:牛客网 蚂蚁社招Java-第四轮电话面试[技术终面] 转载   (耗时22分钟,其实聊得东西挺 ...

随机推荐

  1. Xcode Archive打包失败问题

    ionic3项目 完成 模拟器 真机测试均可以打包安装成功  在Archive的时候报错了 错误如下 code signing is required for product type 'Applic ...

  2. python之99乘法表

    #99乘法表 fir=1 while fir<=9: sec=1 while sec<=fir: print(str(fir)+'*'+str(sec)+'='+str(fir*sec)) ...

  3. Openflow协议详解

    http://www.h3c.com/cn/d_201811/1131080_30005_0.htm# 1 OpenFlow背景 转发和控制分离是SDN网络的本质特点之一 .在SDN网络架构中,控制平 ...

  4. json&pickle模块

    序列化:我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化 反序列化:把变量内容从序列化的对象重新读到内存中,这一过程称为反序列化 为什么要序列化? 1.持久保存状态 一个软件的执行就是在处 ...

  5. github仓库主页介绍、用git管理本地仓库和github仓库、搭建网站

    github仓库主页介绍 名词解释: 工作区: 添加.编辑.修改文件等动作 暂存区: 暂存已经修改的文件,最后统一提交到git中 git(仓库): 最终确定的文件保存到仓库,成为一个新的版本,并且对他 ...

  6. Applets的分析

    一.有关Java Applet的基础 1.JavaApplet就是用Java语言编写的小应用程序,可以直接嵌入到网页中,并能够产生特殊的效果.包含Applet的网页被称为Java-powered页,可 ...

  7. win11.2.0.4lsnrctl status hang

    以前听客户说监听日志大于4G,监听出现问题.本次另一个客户也出现这个问题,表现为监听lsnrctl start,status长久hang住 匹配mos WINDOWS: Listener Hangs ...

  8. MSP430G2553 TimerA中断说明

    一.TimerA中断向量. G2553一共有2个TimerA,分别是TimerA0和TimerA1,中断入口地址分别是: TimerA0中断向量名称     <--> 中断源 ------ ...

  9. 采用NoteExpress参考文献导入和导出

    1.NoteExpress使用 该软件分为企业版和个人版,但目前看来个人版已经不能用了,我用的是我们学校购买的软件,感觉还是很方便的. (1)首先建立数据库: (2)可以通过导入原文选项将下载好的文章 ...

  10. vue插件

    Vue.js提供了插件机制,可以在全局添加一些功能.它们可以简单到几个方法.属性,也可以很复杂,比如一整套组件库. 注册插件需要一个公开的方法install,它的第一个参数是Vue构造器,第二个参数是 ...