Java基础知识01

前些日子看了并发编程网的一篇文章,自己整理下理解。

https://ifeve.com/java-interview-question/

基础类:

1.Java线程的状态   

  新建、就绪、运行、阻塞、结束

2.进程和线程的区别,进程间如何通讯,线程间如何通讯

 1) 进程通信:管道、信号量、信号、共享内存、套接字、消息队列等

  线程通信:锁机制、信号、信号量

  2)线程通信用于线程同步。线程共享进程资源,执行开销小,拥有自己的栈空间,是资源调用的最小单位。进程是资源分配的最小单位,一个应用程序的执行实例。或者说,进程有自己的地址空间,线程共享进程的地址空间

3.HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别

    链表+数组。因为可能退化成链表,1.7后使用了红黑树。后两者都是现成安全的,但HashTable是每个方法上加Synchronize,开销太大。ConcurrentHashMap分段锁,用可重入锁来实现。

4.Cookie和Session的区别

    Session是保存在服务端的一个数据结构,用来跟踪用户的状态,这个数据一般保存在文件、集群、文件中。Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,是实现Session的一种方式。

5.索引有什么用?如何建索引?

快速查询。索引主要分为聚集索引和非聚集索引。查询较频繁的字段 、区别性高的字段、更新频率低

6.ArrayList是如何实现的,ArrayList和LinkedList的区别?ArrayList如何实现扩容。

数组和链表的区别。添加数据时先判断是否越界,越界则扩容,然后拷贝原数组内容到新数组,将新数组的引用赋值到ArrayList的对象上。

7.equals方法实现

原始等同于== 。常用的是hashcode相等。重写equals一定要重新hashcode方法。

8.面向对象

9.线程状态,BLOCKED和WAITING有什么区别

10.JVM如何加载字节码文件

11.JVM GC,GC算法。

12.什么情况会出现Full GC,什么情况会出现yong GC。

13.JVM内存模型

Happens-Before八个原则

14.Java运行时数据区

15.事务的实现原理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,378评论 11 349
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • 希望你路过的地方一路鲜花盛放。 希望你可爱,希望你温柔。 希望你梦想的事情都可以实现。 三月正好,你说可以去看樱花...
    暖雪飘然而至阅读 239评论 0 0
  • 细细数来,做一名礼仪讲师也好多年头了,从06年考取的第一个职业资格证到现在也近11年了。在课程中也好,生活中也好,...
    刘畅国家高级礼仪讲师阅读 723评论 0 7
  • 林妞妞把妈妈新买的拖鞋咬烂了,稀巴烂 老妈十分生气,就把她从家里赶了出去,看着她在大街上落寞的样子,我挺心疼的,打...
    爱的只是想像阅读 338评论 0 0