zoukankan      html  css  js  c++  java
  • java面试及答案

    一、Java基础 
    1.String类为什么是final的。 
    2.HashMap的源码,实现原理,底层结构。 

    hashmap
    3.反射中,Class.forName和classloader的区别 
    4.session和cookie的区别和联系,session的生命周期,多个服务部署时session管理。 
    5.Java中的队列都有哪些,有什么区别。 
    6.Java的内存模型以及GC算法 
    7.Java7、Java8的新特性(baidu问的,好BT) 
    8.Java数组和链表两种结构的操作效率,在哪些情况下(从开头开始,从结尾开始,从中间开始),哪些操作(插入,查找,删除)的效率高 
    9.Java内存泄露的问题调查定位:jmap,jstack的使用等等

    二、框架 
    1.struts1和struts2的区别 
    2.struts2和springMVC的区别 
    3.spring框架中需要引用哪些jar包,以及这些jar包的用途 
    4.springMVC的原理 
    5.springMVC注解的意思 
    6.spring中beanFactory和ApplicationContext的联系和区别 
    7.spring注入的几种方式 
    8.spring如何实现事物管理的 
    9.springIOC和AOP的原理 
    10.hibernate中的1级和2级缓存的使用方式以及区别原理 
    11.spring中循环注入的方式

    三、多线程 
    1.Java创建线程之后,直接调用start()方法和run()的区别 
    2.常用的线程池模式以及不同线程池的使用场景 
    3.newFixedThreadPool此种线程池如果线程数达到最大值后会怎么办,底层原理。 
    4.多线程之间通信的同步问题,synchronized锁的是对象,衍伸出和synchronized相关很多的具体问题,例如同一个类不同方法都有synchronized锁,一个对象是否可以同时访问。或者一个类的static构造方法加上synchronized之后的锁的影响。 
    5.了解可重入锁的含义,以及ReentrantLock 和synchronized的区别 
    6.同步的数据结构,例如concurrentHashMap的源码理解以及内部实现原理,为什么他是同步的且效率高 
    7.atomicinteger和volatile等线程安全操作的关键字的理解和使用 
    8.线程间通信,wait和notify 
    9.定时线程的使用 
    10.场景:在一个主线程中,要求有大量(很多很多)子线程执行完之后,主线程才执行完成。多种方式,考虑效率。

    四、网络通信 
    1.http是无状态通信,http的请求方式有哪些,可以自己定义新的请求方式么。 
    2.socket通信,以及长连接,分包,连接异常断开的处理。 
    3.socket通信模型的使用,AIO和NIO。 
    4.socket框架netty的使用,以及NIO的实现原理,为什么是异步非阻塞。 
    5.同步和异步,阻塞和非阻塞。

    五、Linux 
    1.常用的linux下的命令 
    2.大的log文件中,统计异常出现的次数、排序,或者指定输出多少行多少列的内容。(主要考察awk) 
    3.linux下的调查问题思路:内存、CPU、句柄数、过滤、查找、模拟POST和GET请求等等场景 
    4.shell脚本中#!的作用

    六、数据库MySql 
    1.MySql的存储引擎的不同 
    2.单个索引、联合索引、主键索引 
    3.Mysql怎么分表,以及分表后如果想按条件分页查询怎么办(如果不是按分表字段来查询的话,几乎效率低下,无解) 
    4.分表之后想让一个id多个表是自增的,效率实现 
    5.MySql的主从实时备份同步的配置,以及原理(从库读主库的binlog),读写分离 
    6.写SQL语句。。。 
    7.索引的数据结构,B+树 
    8.事物的四个特性,以及各自的特点(原子、隔离)等等,项目怎么解决这些问题

    七、设计模式(写代码) 
    1.单例模式:饱汉、饿汉。以及饿汉中的延迟加载 
    2.工厂模式、装饰者模式、观察者模式。

    八、算法 
    1.使用随机算法产生一个数,要求把1-1000W之间这些数全部生成。(考察高效率,解决产生冲突的问题) 
    2.两个有序数组的合并排序 
    3.一个数组的倒序 
    4.计算一个正整数的正平方根 
    5.说白了就是常见的那些查找排序算法(排序转载:http://mp.weixin.qq.com/s?__biz=MjM5MTAzMTE4Nw==&mid=204838393&idx=2&sn=e9b50c8ef689e2cb6436110a8dc148a3&scene=5#rd

    九、缓存 
    1.为什么用缓存,用过哪些缓存,redis和memcache的区别 
    2.redis的数据结构 
    3.redis的持久化方式,以及项目中用的哪种,为什么 
    4.redis集群的理解,怎么动态增加或者删除一个节点,而保证数据不丢失。(一致性哈希问题)

  • 相关阅读:
    Creating a generic Web Parts for hosting ASP.NET User Controls
    Speed Up SQL Server Apps 提高SQL Server应用程序的运行效率 (Part 1)
    How to use CreateChildContorls method inherited from System.Web.UI.Control
    How to quickly access Web Part Management Page
    SQL Script tips for MS SQL Server
    How to enable single signon service on the SPS
    A brief summary of UML & Rational Rose – Use Case Diagram, Part II
    Borland Together for Visual Studio.Net V2.0 安装问题
    Speed Up SQL Server Apps 提高SQL Server应用程序的运行效率 (Part 2)
    体验ReSharper V1.0 for VS.Net 2003 Part I
  • 原文地址:https://www.cnblogs.com/wjh123/p/7739259.html
Copyright © 2011-2022 走看看