【JavaEE-面试总结】(未完,待续···)

目录:

1、Java基础html

2、JavaEE基础前端

3、JavaEE进阶git

4、数据库web

5、数据结构&算法redis

6、高级(服务器)算法

 

1、Java基础

  1.1 面向对象(封装、继承、多态)

  • 访问权限修饰符(public,protect,default,private)做用域;
  • 方法重写、重载的概念和区别;
  • 抽象类和接口区别;类是单继承,接口是多实现·····;
  • 代码块执行顺序:静态代码块->构造代码块->构造方法;
  • Object类经常使用方法:hashCode,equals,toString,wait,notify,notifyAll;
  • String,StringBuffer,StingBuild各包含哪些方法,三者区别;

  1.2 集合

    1.2.1 集合框架

图1-1 集合框架mongodb

    1.2.2 各种集合特色

  • List集合:有序,元素可重复;
  • Set集合:无序,元素惟一;
  • List和Set集合皆可经过for循环、for-each、Iterator迭代器遍历。
  • Map集合:以key-value形式存储元素,无迭代器,遍历时经过转Set集合遍历;
  • Map集合转Set集合:方法一:使用keySet方法;方法二:使用entrySet方法。
  • hashtable实现原理:底层由数组+链表实现,有一个叫table的Entry类型数组,索引由链表存放。

  1.3 IO流

    1.3.1 IO流框架

  

  图1-2 IO流框架shell

    1.3.2 IO流分类

  • BIO方式(同步阻塞),适用于链接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4之前的惟一选择,但程序直观简单易理解。
  • NIO方式(同步非阻塞),适用于链接数目多且链接比较短(轻操做)的架构,好比聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。
  • AIO方式(异步非阻塞),使用于链接数目多且链接比较长(重操做)的架构,好比相册服务器,充分调用OS参与并发操做,编程比较复杂,JDK7开始支持。

  1.4 反射

  • 获取class的三种方法:class.forName("类名");类名.class;对象名.getClass()。

2、JavaEE基础

  2.1 JSP&Servlet相关知识点

  • 详见:https://www.cnblogs.com/guoxh/p/6532923.html

  2.2 EL&JSTL

  • 详见:http://www.cnblogs.com/guoxh/p/7586856.html

  2.3 Session&Cookie

  2.4 Filter&Listener

3、JavaEE进阶

  3.1 经常使用框架(重点

    3.1.1 Struts&SpringMVC

    3.1.2 Spring

图3-1 SpringFramework数据库

  • IOC(控制反转),DI(依赖注入)。
  • AOP(面向切面编程),jdbcTemplate。
  • 事务管理。
  • 核心容器
    • Beans
    • Core
    • Context
    • Expression Language

    3.1.3 Hibernate&Mybatis

  • Hibernate核心API
    • Configuration
    • SessionFactory
    • Session
    • Query
    • Transaction

    3.1.4 SSM整合

  • SSM工做流程

 

图3-2 SSM工做流程编程

 

    3.1.5 前端框架

  • jQuery,easyUI,Vue等

  3.2 多线程(重点

  • Java多线程实现方法:Runnable、Thread;
  • Java内存模型是什么?
  • JVM原理;
  • 线程通讯&线程同步(webservice服务
  • Java中Runnable和Callable有什么不一样?
  • Java中的volatile 变量是什么?
  • Java中堆和栈有什么不一样?
  • 什么是线程池? 为何要使用它?
  • Java线程池中submit()和 execute()方法有什么区别?

  3.3 设计模式(重点

  •  单例模式
  • 工厂模式
  • 代理模式

  3.4 Socket网络编程

    3.4.1 TCP

  • 面向链接,安全可靠,效率低;
  • 如何理解三次握手;
  • 短链接 & 长链接;

    3.4.2 UDP

  • 无链接,不安全,效率高;

  3.5 Java垃圾回收机制GC(重点

    3.5.1内存泄漏

  • 如何处理内存泄漏

  3.6 JVM原理(重点

4、数据库

  4.1 数据库基本操做

  • 数据库的建立和删除;
  • 表的建立、修改和删除;
  • 表中数据的增、删,改,查;
  • 复制表结构;
  • 索引的分类,索引能提升查询效率的原理

  4.2 事务

    4.2.1 事务四大特性(ACID)

  •  A原子性:事务是一个最小的单元,不可再分。
  • C一致性:事务中的全部操做或者所有起做用,或者所有失效,不存在部分起做用,部分不起做用的状况。
  • I隔离性:事务之间相互隔离,彼此相互独立。
  • D持久性:事务对数据库的操做会反映到数据库中。

    4.2.2 事务的隔离级别

  • read uncommitted:一个事务能够读取另外一个事务未提交的数据,这个数据被称为脏数据。
  • read committed:其余事务频繁地提交数据,另个事务(时间跨度大)在未提交以前屡次读取提交的数据,可能出现屡次读取的数据不一致。
  • repeatable read:事务首次从数据库中读取数据,而后将数据保存在内存中,之后不是从数据库,而是从内存中读取数据。这种隔离级别可能致使读取的数据与数据库中数据不一致,出现“幻读”。
  • serializable:一个事务操做完数据之后,其余事务才能够操做。

    详见:http://www.cnblogs.com/guoxh/p/7686657.html

  4.3 数据库链接池

  4.4 存储过程&触发器、

  4.5 数据库索引

    4.5.1 索引分类

  • 主键索引;
  • 普通索引;
  • 惟一性索引;
  • 汇集索引。

    4.5.2 索引类型

  • BTree索引(使用较广);
  • Hash索引。

  4.6 具体数据库

    4.6.1 关系型数据库

  • MySQL
  • SQLServer

    4.6.2 非关系型数据库NoSQL(重点

  • 特色:高并发,高可用,高可扩展,大数据存储;
  • redis
    • 1)Redis数据类型:String,List,Set,Zset;
    • 2)Redis事务管理
      • Redis支持事务,可是不支持回滚,通常在不怎么考虑事务的状况下使用Redis。
      • 使用命令Watch实现相似回滚效果。
      • 命令MULTI:开启事务;EXEC:执行事务队列。
      • discard命令清空事务队列。
    • 3)Redis实现持久化的两种方式
      • 1. filesnapshotting文件快照

          Redis会将数据集的快照dump到dump.rdb文件中。此外,咱们也能够经过配置文件来修改Redis服务器dump快照的频率,在打开6379.conf文件以后,咱们搜        索save,能够看到下面的配置信息:

        save 900 1              #在900秒(15分钟)以后,若是至少有1个key发生变化,则dump内存快照。

          save 300 10            #在300秒(5分钟)以后,若是至少有10个key发生变化,则dump内存快照。

        save 60 10000        #在60秒(1分钟)以后,若是至少有10000个key发生变化,则dump内存快照。

      • 2. AOF日志

          在Redis的配置文件中存在三种同步方式,它们分别是:

        appendfsync always     #每次有数据修改发生时都会写入AOF文件。

        appendfsync everysec  #每秒钟同步一次,该策略为AOF的缺省策略。

        appendfsync no          #从不一样步。高效可是数据不会被持久化。

    • 4)Redis经常使用命令
      • MULTI:开启事务;EXEC:执行事务队列。
      • SET:设置String类型key;LPUSH:设置List类型key;SADD:设置Set类型key;ZADD:设置ZSet类型key。

    •  

 

 

  • mongodb
  • Hbase

 5、数据结构&算法

  5.1 数据结构

    5.1.1 集合结构

    5.1.2 线性结构

  • 线性表->顺序表&链表
  • 栈(Stack)
  • 队列
  • 数组&广义表

    5.1.3 树形结构

    5.1.4 图状结构

  5.2 算法

  • 选择排序
  • 冒泡排序
  • 快速排序
  • 二分法查找
  • 顺序查找
  • ···

 6、高级

  6.1 shell编程

    6.1.1 了解经常使用的Linux命令

    

    6.1.2 熟悉在Linux上部署项目

  •   如何将JavaWeb项目部署到Linux服务器上:https://blog.csdn.net/gulu_gulu_jp/article/details/50994003 / https://www.cnblogs.com/jxgapyw/p/6082451.html

    

  6.2 Java开发工具

  • Eclipse
  • git/svn
  • Maven
  • Myeclipse
  • IDEA

  6.3 服务器(重点

  • Tomcat
  • Nginx

 

  6.4 高并发&大数据处理-解决方案(重点

    集群的主要是IT公司在作,能够保障重要数据安全;负载均衡主要是为了分担访问量,避免临时的网络堵塞,主要用于电子商务类型的网站;分布式服务器主要是解决跨区域,多个单个节点达到高速访问的目前,通常是相似CDN的用途的话,会采用分布式服务器。分布式是指将不一样的业务分布在不一样的地方,集群指的是将几台服务器集中在一块儿,实现同一业务。在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增长吞吐量,增强网络数据处理能力,提升网络的灵活性和可用性。

  • 分布式集群
    • zookeeper工具
  • 缓存
  • 负载均衡
    • 使用Nginx反向代理服务器。
  • SQL优化
  • 数据库分库分表(MyCat)

  6.5 异常处理机制

    6.5.1 抛异常

  • throws
  • throw

    6.5.2 捕获异常

  • try-catch-finally
相关文章
相关标签/搜索