基础与框架-java面试

  • 1、String类能被继承么?
    不能,因为String类被final修饰符修饰,final修饰的类不能被继承;
  • 2、String,Stringbuffer,StringBuilder的区别?
    String 常量,位于字符串常量池中,不可变的对象
    Stringbuffer 变量,线程安全,效率比较低
    StringBuilder变量,线程不安全,效率比较高
  • 3、ArrayList和LinkedList有什么区别
    两者都是list集合的子集
    arrayList是基于动态数组,而LinkedList是基于链表操作;
    arrayList在查询效率方面更高,直接找到索引index返回,而LinkedList则需要进行for遍历查找
    arrayList 一般认为插入和删除效率比较高一些,实际上插入位置位于容量1/10以下的时候,才会发生;LinkedList效率比较高的原因是直接for遍历到元素,插入或者删除,而arrayList则需要移动指针,将指针后的元素都向后推移
  • 4、类的实例化顺序

引用参考
https://segmentfault.com/a/1190000004527951

父类的静态变量
父类的静态初始化代码块
子类的静态变量
子类的静态初始化代码块

子类main方法

父类的变量
父类的初始化代码块
父类的构造函数
子类的变量
子类的初始化代码块
子类类的构造函数

  • 5、hashmap

参考引用
https://yikun.github.io/2015/04/01/Java-HashMap%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE%9E%E7%8E%B0/

基于Map接口实现,可以为null或者空值,非同步,不保证有序,也不保证顺序随时间而不发生变化,存储Entry(hask,key,value,next)对象

put实现原理:
1、对key的hashcode进行hash,再计算索引index
2、如果索引没有碰撞,那么直接放进bucket中
3、如果有冲突,则以链表的形式挂在buckets后,如果链表过长,则将链表转换为红黑树(jdk8之后默认为8)
4、如果节点已经存在,则把原来的值替换
5、如果bucket满了,则需要重新resize(factor默认是0.75)

get实现原理:
1、bucket里的第一个节点,直接命中
2、如果有冲突,则通过key.equals(k)查找对应的entry
3、如果是树,则通过key.equals(k)查找O(logn)
4、如果是链表,则通过key.equals(k)查找O(n)
key的hashcode进行hash(hashcode的高16位和低16位进行异或),
initialCapacity : 初始化容量16
table : Entry<K,V>[] table 是用来存储数据的数组
Entry<K,V> 是HashMap的一个内部类,链表结构

  • 6 ConcurrentHashMap

ConcurrentHashMap 包括两个内部类,hashEntry和segment,hashEntry存储键值对,segment充当锁的作用。
并发性高的原因
1、是由自身特点决定的。当插入一个元素的时候,对hashcode进行hash,计算出索引,得到segment中桶的位置由于hashEntry链的final特性,只能在链头插入元素,不影响遍历;锁住的当前的segment,其他segment读写并不受影响
2、hashEntry的value是volatile变量,不同线程间可以正确的获得值
jdk
1.8 其中抛弃了原有的 Segment 分段锁,而采用了 CAS + synchronized 来保证并发安全性。
hashcode 定位node,如果为空,cas尝试写入,不成功,自旋保证成功
如果都不满足,就synchronized 写入数据

  • 7 抽象类和接口区别
  • 抽象类的修饰符可以public protected default,接口的修饰符只能是public
  • 抽象类强调的是继承,只声明不实现,是单继承,接口强调的实现,是抽象方法的集合,可以多实现。
  • 抽象类可以有构造器,接口没有
  • 抽象类中可以包含非抽象方法,也就是默认实现,而接口的子类实现必须实现所有的方法

类单继承,接口可以多继承,一个类可以实现多个接口


  • 8 jvm
    共享区域:堆(年轻代(eden s0 s1)和老年代)和方法区

方法区:存放已加载类信息、方法信息、常量池

  • 9 栈内存溢出
    递归太深、循环没有出口、静态变量过多、大量字符串拼接、数据未分页
    内存溢出
    Dump机制会帮助我们,可以通过加上VM参数-XX:+HeapDumpOnOutOfMemoryError让虚拟机在出现内存溢出异常时生成dump文件,然后通过外部工具(作者使用的是VisualVM)来具体分析异常的原因
String
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,362评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,567评论 18 399
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,148评论 1 44
  • 你们这些人真的好棒,看到你们的生活过得如此丰富多彩,我望尘莫及,当初我也怀着一腔热血进入大学,加入了学生会和其他学...
    我是洋洋洋洋洋洋洋阅读 274评论 0 1
  • 作者:Mo 设想一下,一个饭局,坐着一堆你并不熟悉的人,那是一种多么痛苦的体会,但你还要保持微笑,碰碰酒杯,说点虚...
    齐亚军阅读 3,695评论 0 1