答案补充中。。。

一、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如果不指定大小,默认构造函数是这么实现的:

publicArrayList() {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.

*

*@paramminCapacity the desired minimum capacity*/

private void grow(intminCapacity) {//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电话面试相关推荐

  1. java 头尾 队列_记一次腾讯面试,我挂在了最熟悉不过的队列上

    前记 面试官问:你了解队列和链表的区别吗? 我:了解,blabla 面试官又问:你能自己实现队列吗?具体讲讲怎么实现? 我当时说了用链表来实现队列的存储,并实现push和pop的操作,但回答的不具体, ...

  2. java三元运算_记一次java中三元表达式的坑(避免踩坑)

    近期一直在刷算法,原创文章写的也比较少,今天的主题不算是一个很大的问题,是我做题的时候出来的,而且还曾在A厂的公众号上看到过,今天自己整理一下,避免大家入坑. 这个问题是三元表达式会在计算的时候出现拆 ...

  3. 阿里巴巴 java 电话面试题_记一次阿里巴巴电话面试题

    前几天投了阿里巴巴校招简历,今天晚上突然来了阿里的面试电话,有点紧张又有点激动,面试的问题问的挺全面,但是有些准备不足,因此回答的并不算太满意,现在整理一下分享给大家,希望进阿里的小伙伴可以来踩踩. ...

  4. mongodb java 日志分析_记一次log4j与mongodb集成引发的问题分析

    问题背景 对项目中的关键应用调用链日志需要结构化得统一吐出到mongodb中,同时项目中日志输出使用log4j,故准备使用log4j的Appender直接集成mongodb的输出,同时mongodb采 ...

  5. java mysql死锁_记一次线上mysql死锁分析(一)

    记录一次比较诡异的mysql死锁日志.系统运行几个月来,就在前几天发生了一次死锁,而且就只发生了一次死锁,整个排查过程耗时将近一天,最后感谢我们的DBA大神和老大一起分析找到原因. 诊断死锁 借助于我 ...

  6. java没错泄露_记一次尴尬的Java应用内存泄露排查

    这星期被线上JVM内存占用不断增大的问题所困扰,自己提出了一些假设,然后去实施验证都一一失败了,有一些经验和教训在这里分享下. 之所以是尴尬,是最后因为修复了另一个看似不相关的问题导致内存不再上升,但 ...

  7. 阿里巴巴java社招面试_阿里社招Java面试题总结——面试官分享

    面试题 1.Java中的内存溢出是如何造成的 2.gc的概念,如果A和B对象循环引用,是否可以被GC? 3.Error.Exception和RuntimeException的区别,作用又是什么? 4. ...

  8. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  9. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

最新文章

  1. 找到那些新时代的“操作系统”
  2. erlang: Programming Rules and Conventions。
  3. 2.select_基础运用
  4. 详解Python第三方库(一)-----tqdm库
  5. kafka与zookeeper版本对应关系表
  6. linux下的常用时间函数总结
  7. ZABBIX 3.2.7 (源码包)安装部署
  8. 慕课网 饿了么 vue2.0 项目
  9. python函数手册pdf_Numpy函数手册(中文版).pdf
  10. Info.plist信息
  11. 嵩天python_跟着北京理工大学嵩天老师学习Python
  12. 国开计算机网络作业,国家开放大学 计算机网络 形考作业1 答案
  13. PHP手机号截取前三位后四位
  14. openwrt中br-lan,eth0,eth0.1,eth0.2
  15. 一文带你了解常见的数据指标都有哪些【数据分析】
  16. 天线的极化与圆极化天线
  17. CVE PoC的精选列表(二)
  18. 深度学习之选择GPU或CPU方法
  19. Vue 之 echarts 图表数据可视化的基础使用(简单绘制各种图表、地图)
  20. BLDC 120度方波控制方案 调制方式包含单极性和双极性,反电动势过零点AD采样

热门文章

  1. Bellman-Ford算法图解及手算过程详解 —— C++代码实现
  2. HTTP/1.1(消息格式、连接管理、条件请求、范围请求、缓存、身份验证)
  3. 【VLC开发】libvlc_new函数参数
  4. chapter3 动态分析基础技术-01在线沙箱 微步云沙箱
  5. poi操作word实现分页
  6. MATLAB 彩色图转灰色图处理
  7. 什么是虚拟机,有什么用?
  8. “古董级” 诺基亚功能机跑Linux是怎样的画风?
  9. 2021-2027全球及中国红外探测器芯片行业研究及十四五规划分析报告
  10. 微信公众号推送天气(最近超火的小玩意)