笔者在今年上半年为所在公司陆陆续续面试了一些前来求职的程序员,一起来看看笔者都出了些什么题目来考他们吧!

1.JAVA中的几种基本类型,各占用多少字节?

下图单位是bit,非字节 1B=8bit

2.ArrayList 和 LinkedList 有什么区别。

ArrayList和LinkedList都实现了List接口,有以下的不同点:

1、ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。

2、相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。

3、LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。

3.讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当 new 的时候, 他们的执行顺序。

此题考察的是类加载器实例化时进行的操作步骤(加载–>连接->初始化)。

父类静态代变量、

父类静态代码块、

子类静态变量、

子类静态代码块、

父类非静态变量(父类实例成员变量)、

父类构造函数、

子类非静态变量(子类实例成员变量)、

子类构造函数。

测试demo:http://blog.csdn.net/u014042066/article/details/77574956

参阅我的博客《深入理解类加载》:http://blog.csdn.net/u014042066/article/details/77394480

4.用过哪些 Map 类,都有什么区别,HashMap 是线程安全的吗,并发下使用的 Map 是什么,他们内部原理分别是什么,比如存储方式, hashcode,扩容, 默认容量等。

hashMap是线程不安全的,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,采用哈希表来存储的,

参照该链接:https://zhuanlan.zhihu.com/p/21673805

JAVA8 的 ConcurrentHashMap 为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计。

参照:https://yq.aliyun.com/articles/36781

5.有没有有顺序的 Map 实现类, 如果有, 他们是怎么保证有序的。

TreeMap和LinkedHashMap是有序的(TreeMap默认升序,LinkedHashMap则记录了插入顺序)。

参照:http://uule.iteye.com/blog/1522291

6.抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接口么。

1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

2、抽象类要被子类继承,接口要被类实现。

3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现

4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

6、抽象方法只能申明,不能实现。abstract void abc();不能写成abstract void abc(){}。

7、抽象类里可以没有抽象方法

8、如果一个类里有抽象方法,那么这个类只能是抽象类

9、抽象方法要被实现,所以不能是静态的,也不能是私有的。

10、接口可继承接口,并可多继承接口,但类只能单根继承。

7.继承和聚合的区别在哪。

继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;

聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

参考:http://www.cnblogs.com/jiqing9006/p/5915023.html

8.请结合 OO 设计理念,谈谈访问修饰符 public、private、protected、default 在应用设计中的作用。

访问修饰符,主要标示修饰块的作用域,方便隔离防护

同一个类同一个包不同包的子类不同包的非子类

Private√

Default√√

Protected√√√

Public√√√√

public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不

仅可以跨类访问,而且允许跨包(package)访问。

private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以

及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。

protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、

属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。

default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访

问。

9.JVM 的内存结构,Eden 和 Survivor 比例。

eden 和 survior 是按8比1分配的

http://blog.csdn.net/lojze_ly/article/details/49456255

10.jvm 中一次完整的 GC 流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的jvm 参数。

11.你知道哪几种垃圾收集器,各自的优缺点,重点讲下 cms,包括原理,流程,优缺点

12.垃圾回收算法的实现原理。

13.当出现了内存溢出,你怎么排错。

14.JVM 内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存等。

15.简单说说你了解的类加载器。

16.讲讲 JAVA 的反射机制。

由于篇幅限制,需要剩下问题答案的朋友可以私信我“java面试题”获取答案

喜欢这篇文章的话,可以为作者点个赞同,点下关注,每天都会分享Java相关文章!

还有不定时的福利赠送,包括整理的学习资料,源码等~~

java default修饰符_2019最新java面试题附答案相关推荐

  1. java default修饰符_Java修饰符看这一篇就够了

    java中的修饰符分为类修饰符,字段修饰符,方法修饰符.根据功能的不同,主要分为以下几种: *权限访问修饰符(可以用来修饰类.方法和字段) public:对任何人都是可用的. protect:继承的类 ...

  2. java default修饰符_Java基础语法二

    Java循环结构 for循环 /* for(初始化;布尔表达式;更新) {执行代码 } */ for(int i=0; i < 5; i++) {System.out.println(i); } ...

  3. Java final修饰符的作用,Java中的final修饰符

    1.什么时候可以选择final修饰符 如果想让一个类不被其他类继承,不允许在有子类,这时候就要考虑用到final来修饰. 2.用final修饰的类 首先大家要明白,用final修饰的类是不能被继承的, ...

  4. 2022最新软件测试面试题附答案

    以下面试题为个人在面试过程中所遇到的,仅供参考!如有错误,望指出. 1.软件测试方法有哪些分类?各有什么特点? 1)白盒.黑盒.灰盒 2)单元测试.集成测试.系统测试.验收测试.回归测试.Alpha ...

  5. java访问修饰符_Java访问修饰符

    java访问修饰符 Java access modifiers are used to provide access control in java. Java provides access con ...

  6. 十八、深入Java 访问修饰符和非访问修饰符

    @Author:Runsen @Date:2019/10/29 Java的修饰符主要分为2类,分别访问修饰符和 非访问修饰符 文章目录 访问修饰符 访问控制四个修饰符 非访问修饰符 成员变量 Stai ...

  7. 详解java访问修饰符

    *************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...

  8. Java 作用域修饰符

    Java作用域修饰符 在java语言中,可以使用访问修饰符来规定对类.变量.方法和构造方法的访问. 文章目录 一.访问修饰符 二.非访问修饰符 一.访问修饰符 1.私有的访问修饰符private: 声 ...

  9. java的修饰符_java默认的修饰符是什么

    默认什么都不加,就是default(不用把default写出来). 意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多.' Java访问修饰符包括p ...

最新文章

  1. swoole 要求php版本,swoole哪个版本支持php5
  2. SAP 固定资产减值准备配置及期初导入
  3. 如何填写微软2007MVP申请表格以及相关建议
  4. 多重背包单调队列优化思路_动态规划入门——多重背包与单调优化
  5. 02如何抓住重点,系统高效地学习数据结构与算法?
  6. Linux的实际操作:查询用户id切换用户su -
  7. css布局方式_网页布局都有哪种?一般都用什么布局?
  8. LF 第一模块 考试总结
  9. 【JVM】CMS垃圾回收器(不推荐使用的垃圾回收器)
  10. 分享:利用tcp_wrappers 保护服务安全
  11. 【一天一个C++小知识】012.C++11常用新特性汇总
  12. android使用的数据,在 Android 应用中使用数据 - Xamarin | Microsoft Docs
  13. HMC5883L 电子指南针用树莓派进行磁场干扰过滤 校准
  14. 2021-06-02使用Digispark(ATTINY85)制作一个Badusb
  15. JUC的常用辅助工具
  16. 手机dlna到linux,linux dlna服务器
  17. 增加PRODUCT_BOOT_JARS及类 提供jar包给应用
  18. C/C++订餐管理系统
  19. 7年iOS开发经验,教你写一份脱颖而出的简历,进入大厂机会翻3倍!
  20. python 输入与输出函数 IPO模式 200307

热门文章

  1. 10G_Ethernet_04 10G Ethernet Subsystem IP 的快速验证(万兆以太网IP的快速验证)
  2. php动态网页设计教材,PHP动态网页设计(第2版)
  3. 怎样用计算机算分数乘分数,《分数乘分数》教案.pdf
  4. java encode in ansi_Java应用中的编码问题
  5. linux打开图形化命令,在Linux命令行中以图形化窗口打开文件夹
  6. 本科不是985\211都会被歧视?
  7. C语言太简单?这14道C语言谜题,你能答对几个?
  8. php查找特定字符并替代,php怎样查找替代字符串_后端开发
  9. oracle如何处理死锁,Oracle死锁处理实例
  10. linux 基因组数据下载,linux下用Aspera从NCBI上下载SRA格式宏基因组数据