美文网首页
Java基础知识01

Java基础知识01

作者: 千山_暮雪 | 来源:发表于2017-08-27 14:52 被阅读0次

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

    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.事务的实现原理

    相关文章

      网友评论

          本文标题:Java基础知识01

          本文链接:https://www.haomeiwen.com/subject/dsnbdxtx.html