JAVA EE面试重点

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

一、Java基础

二、JavaEE基础

三、JavaEE进阶

四、数据库

五、数据结构&算法

六、高级(服务器)

一、Java基础

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

在这里插入图片描述
图1-1 集合框架

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

BIO方式(同步阻塞),适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。
NIO方式(同步非阻塞),适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。
AIO方式(异步非阻塞),使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持。
  1.4 反射
获取class的三种方法:class.forName(“类名”);类名.class;对象名.getClass()。

二、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
三、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.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内存快照。

  1. 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.1 数据结构
    5.1.1 集合结构
    5.1.2 线性结构
线性表->顺序表&链表
栈(Stack)
队列
数组&广义表

    5.1.3 树形结构
    5.1.4 图状结构
  5.2 算法
选择排序
冒泡排序
快速排序
二分法查找
顺序查找
···
六、高级
  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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值