java基础

1、JAVA中的几种基本数据类型是什么,各自占用多少字节。

2、String类能被继承吗,为什么。

3、String,Stringbuffer,StringBuilder的区别。

4、ArrayList和LinkedList有什么区别。

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

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

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

它摒弃了Segment(锁段)的概念,而是启用了一种全新的方式实现,利用CAS算法,段锁性能也不是很高,而CAS操作是CPU支持的操作,是一种原子操作

1、下面讲一下concurrentHashMap的结构

ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成(一个segment里面有一个hashEntry数组)。Segment是一种可重入锁ReentrantLock,在ConcurrentHashMap里扮演锁的角色,HashEntry则用于存储键值对数据。一个ConcurrentHashMap里包含一个Segment数组,Segment的结构和HashMap类似,是一种数组和链表结构


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

    TreeMap,有序,通过红黑树的左旋或者右旋实现有序(根节点大于他的左节点)

     LinkedHashMap: 保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.在遍历的时候会比HashMap慢。key和value均允许为空,非同步的。

    https://blog.csdn.net/chenssy/article/details/26668941

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

http://www.importnew.com/12399.html

10、继承和聚合的区别在哪。

11、IO模型有哪些,讲讲你理解的nio ,他和bio,aio的区别是啥,谈谈reactor模型。

    内存IO、网络IO、磁盘IO

    1.阻塞IO模型:请求发起,内核缓存中没有数据请求磁盘,等待磁盘返回成功(阻塞socket、Java BIO,进程阻塞挂起不消耗cpu)

    2.非阻塞IO:请求发起,内核缓存中没有数据,返回错误,进程轮询调用,消耗cpu直查询到磁盘数据并返回

    3.IO复用模型:有一个select函数,它是一个文件描述的集合,对这些的文件描述符进行循环监听,当某个文件描述符就绪的时候,就对这个文件描述符进行处理(属于阻塞的IO。但是由于它可以对多个文件描述符进行阻塞监听,所以它的效率比阻塞IO模型高效) NIO

    4.信号驱动IO:安装一个信号处理函数,进程继续运行并不阻塞,当IO时间就绪,进程收到SIGIO信号。然后处理IO事件。

    5.异步IO模型:程序调用aio_read函数,该函数取数据,同时应用程序做其他的事情,当数据准备完毕,通知应用程序

12、反射的原理,反射创建类实例的三种方式是什么。

13、反射中,Class.forName和ClassLoader区别 。

Class.forName(className)方法,内部实际调用的方法是Class.forName(className,true,classloader);

第2个boolean参数表示类是否需要初始化,  Class.forName(className)默认是需要初始化。

一旦初始化,就会触发目标对象的 static块代码执行,static参数也也会被再次初始化。

ClassLoader.loadClass(className)方法,内部实际调用的方法是  ClassLoader.loadClass(className,false);

第2个 boolean参数,表示目标对象是否进行链接,false表示不进行链接,由上面介绍可以,

不进行链接意味着不进行包括初始化等一些列步骤,那么静态块和静态对象就不会得到执行

数据库链接使用 Class.forName(className)

14、描述动态代理的几种实现方式,分别说出相应的优缺点。

15、动态代理与cglib实现的区别。

jdk动态代理是通过反射机制,生成一个实现代理接口的匿名类

16、为什么CGlib方式可以对接口实现代理。

cglib通过字节码技术,为类创建一个子类,子类中采用方法拦截技术,拦截父类中所有方法的调用,所以可以对接口实现代理

17、final的用途。

1、被final修饰的类不可以被继承

2、被final修饰的方法不可以被重写

3、被final修饰的变量不可以被改变

18、写出三种单例模式实现 。

19、如何在父类中为子类自动完成所有的hashcode和equals实现?这么做有何优劣。

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

21、深拷贝和浅拷贝区别。

22、数组和链表数据结构描述,各自的时间复杂度。

23、error和exception的区别,CheckedException,RuntimeException的区别。

24、请列出5个运行时异常。

25、在自己的代码中,如果创建一个java.lang.String类,这个类是否可以被类加载器加载?为什么。

26、说一说你对java.lang.Object对象中hashCode和equals方法的理解。在什么场景下需

27、要重新实现这两个方法。

28、在jdk1.5中,引入了泛型,泛型的存在是用来解决什么问题。

可以在编译期对类型进行检查,减少运行期因为参数类型问题所引发的异常

29、这样的a.hashcode() 有什么用,与a.equals(b)有什么关系。

30、有没有可能2个不相等的对象有相同的hashcode。

    有

31、Java中的HashSet内部是如何工作的。

32、什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决。

33、java8的新特性。

34、java的四种引用

强引用: 如Object object = new Object() 这个Object()就是一个强引用了,如果一个对象具有强引用。垃圾回收器就不会去回收有强引用的对象

弱引用:只要垃圾回收器在自己的内存空间中线程检测到了,就会立即被回收

软引用:如果内存空间足够,那么垃圾回收器就不会回收它

虚引用:如果一个对象只具有虚引用,那么它就和没有任何引用一样,随时会被jvm当作垃圾进行回收

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容

  • 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消...
    Blizzard_liu阅读 1,327评论 0 6
  • 九种基本数据类型的大小,以及他们的封装类。(1)九种基本数据类型和封装类 (2)自动装箱和自动拆箱 什么是自动装箱...
    关玮琳linSir阅读 1,883评论 0 47
  • J2SE基础 1. 九种基本数据类型的大小,以及他们的封装类 注:事实上应该是八种基本数据类型,String类并不...
    呵鲲阅读 467评论 0 0
  • 八种基本数据类型的大小,以及他们的封装类Switch能否用string做参数equals与==的区别自动装箱,常量...
    西部小笼包阅读 542评论 0 0
  • 我想和你在一起 看时光幻转变化 我想和你一起旅行 穿过千山万水 用我们的脚步 丈量世界的胸膛 无论怎样 就想与你在...
    夜下小雨阅读 160评论 0 0