java开发工程师面试总结

  •  重点知识

       JAVA集合类框架(理解框架图、HashMap、ArrayList、HashSet等的关系和区别,其中HashMap的存储机制几乎每次都有问)       

            两大基类,collection和map。Collection表示一组纯数据。

           Set表示不允许有重复元素的集合。有HashSet、LinkedHashSet、TreeSet。

           List表示允许有重复元素的集合。有ArrayList、Vector、LinkerList。

           Queue JDK1.5新增,与上面两个集合类主要是的区分在于Queue主要用于存储数据,而不是处理数据。有PriorityQueue。

           Map表示一组key-value对。有HashTable、LinkHashMap、HashMap、TreeMap(SortedMap)。

           HashMap、ArrayList、HashSet等的关系和区别:实现的接口和底层存储的方式不同。

           HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。简单地说,HashMap 在底层将 key-value 当成一个整体进行处理,这个整体就是一个 Entry 对象。HashMap 底层采用一个 Entry[] 数组来保存所有的 key-value 对,当需要存储一个 Entry 对象时,会根据hash算法来决定其在数组中的存储位置,在根据equals方法决定其在该数组位置上的链表中的存储位置;当需要取出一个Entry时,
也会根据hash算法找到其在数组中的存储位置,再根据equals方法从该位置上的链表中取出该Entry。

      

       JVM内存管理机制和垃圾回收机制

       http://blog.csdn.net/lengyuhong/article/details/5953544

       

       JVM内存调优

       http://www.cnblogs.com/jackyrong/archive/2010/01/21/1653163.html

       http://blog.csdn.net/cutesource/article/details/5907418

     

       设计模式

       http://www.iteye.com/news/18725

       http://blog.sina.com.cn/s/blog_8cc6ff5c0101d4cp.html

       http://www.jb51.net/article/27973.htm

       

       多线程(每次都会问,包括线程和进程、线程状态、线程并发的操作等,需要深入复习)

       线程状态,创建、就绪、运行、阻塞、终止

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

       

       JAVA的异常处理机制(异常的分类、常见的异常有哪些、Try catch finally的使用)

       JVM运行机制(理解JVM是如何运行的)


       Linux基础、shell脚本

       http://www.cnblogs.com/andy-zhou/p/5321839.html

       http://www.linuxidc.com/Linux/2015-06/118736.htm

       http://blog.csdn.net/ggxxkkll/article/details/19761075



  •  框架知识
      Spring框架组成、AOP、IOC 、用到的设计模式、spring事务实现机制
           spring:
         1)开源框架
         2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合。也可以用注解实现。
         3)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性
      
      Dubbo的应用场景,服务降级,zookeeper,基于dubbox做了什么扩展  
           可用场景:
         1,商城做活动流量暴涨:防止系统崩掉 可以通过dubbo来控制访问量
         2,分布式服务器rpc过程调用压力分担
         dubbo
         1,rpc的分布式集群支持:负载均衡是对外提供一个公共地址,请求过来时通过轮询、随机、权重的形式来分摊压力,挂一台补一台
         2,结合zookeeper解藕:(提供者注册和消费者订阅)客户端和服务端启动的时候都会把自己的机器IP注册到zookeeper上。客户端会把zk上的服务端ip拉到磁盘上,文件名为register.192.168.0.1.cache,并记录哪些ip提供哪些服务(服务端启动的时候暴露给zk)。 然后调用的时候客户端会根据ip调用服务端的服务,这时候即使zk挂掉也没关系。
         3:长连接通讯:nio通信抽象封装。
           http://blog.csdn.net/youanyyou/article/details/77451847
           http://blog.csdn.net/u012562943/article/details/76128183
           http://wosyingjun.iteye.com/blog/2320127
          
           Spring Cloud框架、Spring boot框架
           http://blog.sina.com.cn/s/blog_493a84550102wkp2.html
           http://www.cnblogs.com/skyblog/p/5127690.html
        
  •  中间件
        redis实现原理、 redis缓存穿透、缓存雪崩
             http://blog.sina.com.cn/s/blog_c8bffac20102wq04.html
             http://blog.csdn.net/dc_726/article/details/48552531
             http://blog.csdn.net/zeb_perfect/article/details/54135506
       

        rabbitmq实现原理、采用协议、 消息队列作用应用解耦、异步消息、流量削峰、日志处理、消息通讯
             http://www.cnblogs.com/jun-ma/p/4840869.html
             http://blog.csdn.net/cws1214/article/details/52922267


          nginx作用、 nginx健康检查
             http://blog.csdn.net/zhongguozhichuang/article/details/52816887

  •  数据库
      索引优化、如何建立索引、索引类型
       数据库的crud语句的书写

      数据库优化策略、如何优化

      海量数据优化

      事务

      事务中锁分类

      事务特性

      数据库表锁

      行列锁

      临时表

      索引

      存储空间

      视图

      主从同步、读写分离

      分布式事务


 

  •  安全
      http协议、三次握手、加密
           第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

完成三次握手,主机A与主机B开始传送数据。

           http://www.cnblogs.com/jackson0714/p/HTTP1.html




           其他问题汇总

           1、dubbo通信过程

           2、left join执行过程  笛卡尔积作为临时结果集,on条件刷选后加左表未匹配到记录作为新的结果集

           3、rabbitmq怎么保证消息可达性   msgId+重试+幂等+ack

           4、zk状态变更回调通知实现   watch机制

           5、扫描二维码登录实现过程  gid+客户端定时询问+扫描登录授权gid

           6、分表后的字段怎么查询

           7、接口幂等性怎么实现   订单系统查询订单状态+账户系统业务表bizId插入执行记录

           8、高请求pv,怎么减少机子  加tomcat机子或反向代理ip定时透传、过量请求拦截返回

           9、dubbo类拓展机制   spi+adaptive

           10、哪些字段适合建立索引 

           11、阻塞队列实现原理   

           12、原子增长类原理

           13、TreeMap实现原理

           14、给你一个会员系统,考虑怎么实现

                    功能层面: 会员数据如何管理,包括会员主数据、会员交易数据..
                                      会员权益如何支持,包括积分权益、会员价、会员折扣、会员等级升级降级等
                                      会员营销如何做?目前玩的比较多的包括多倍积分、某一时期会员独享、会员买X增Y等等、定向发券也是一种模式;
                    架构稳定性层面:
                                      网站交易量大时,需要不停地与会员模块读写交互,如何保障高并发下的速度和稳定?

           15、怎么拦截恶意https攻击    图形验证码

           16、mybatis实现原理


           


          高级工程师面试总结

      

你可能感兴趣的:(面试)