【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类型数组,索引由链表存放。
1.3 IO流
1.3.1 IO流框架

图1-2 IO流框架
1.3.2 IO流分类
- 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内存快照。
- 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。
- 4)Redis常用命令
- 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
【JavaEE-面试总结】(未完,待续···)的更多相关文章
- Python面试2未完待续
Python面试重点(基础篇) 注意:只有必答题部分计算分值,补充题不计算分值. 第一部分 必答题(每题2分) 简述列举了解的编程语言及语言间的区别? c语言是编译型语言,运行速度快,但翻译时间长py ...
- javascript有用小功能总结(未完待续)
1)javascript让页面标题滚动效果 代码如下: <title>您好,欢迎访问我的博客</title> <script type="text/javasc ...
- ASP.NET MVC 系列随笔汇总[未完待续……]
ASP.NET MVC 系列随笔汇总[未完待续……] 为了方便大家浏览所以整理一下,有的系列篇幅中不是很全面以后会慢慢的补全的. 学前篇之: ASP.NET MVC学前篇之扩展方法.链式编程 ASP. ...
- 关于DOM的一些总结(未完待续......)
DOM 实例1:购物车实例(数量,小计和总计的变化) 这里主要是如何获取页面元素的节点: document.getElementById("...") cocument.query ...
- 我的SQL总结---未完待续
我的SQL总结---未完待续 版权声明:本文为博主原创文章,未经博主允许不得转载. 总结: 主要的SQL 语句: 数据操作(select, insert, delete, update) 访问控制(g ...
- virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续)
virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续) 第一次接触到 linux,不知道linux的确很强大,然后用virtualbox ...
- MVC丶 (未完待续······)
希望你看了此小随 可以实现自己的MVC框架 也祝所有的程序员身体健康一切安好 ...
- 一篇文章让Oracle程序猿学会MySql【未完待续】
一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...
- [python]爬代理ip v2.0(未完待续)
爬代理ip 所有的代码都放到了我的github上面, HTTP代理常识 HTTP代理按匿名度可分为透明代理.匿名代理和高度匿名代理. 特别感谢:勤奋的小孩 在评论中指出我文章中的错误. REMOTE_ ...
- IOS之KVC和KVO(未完待续)
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
随机推荐
- bzoj 3261 最大异或和【可持久化trie】
因为在后面加数字又求后缀和太麻烦,所以xor[p...n]=xor[1...n]^xor[p-1...n]. 首先处理出来区间异或前缀和,对前缀和建trie树(在最前面放一棵0表示最开始的前缀和 然后 ...
- 【Tip】Python
『基本操作』 [查看Python所在目录] import os print(os.__file__) [查看已安装的包] pip list [获取当前脚本所在目录] import sys import ...
- Spring boot整合redis实现shiro的分布式session共享
我们知道,shiro是通过SessionManager来管理Session的,而对于Session的操作则是通过SessionDao来实现的,默认的情况下,shiro实现了两种SessionDao,分 ...
- Java正确URL解码方式:URLDecoder.decode
//解码,为了解决中文乱码 String str = URLDecoder.decode(request.getParameter("orderJson"),"UTF-8 ...
- [转]Adaboost 算法的原理与推导
看了很多篇解释关于Adaboost的博文,觉得这篇写得很好,因此转载来自己的博客中,以便学习和查阅. 原文地址:<Adaboost 算法的原理与推导>,主要内容可分为三块,Adaboost ...
- bzoj 4456 [Zjoi2016]旅行者
题面 https://www.lydsy.com/JudgeOnline/problem.php?id=4456 题解 分治 设当前work的区间为(x1,y1,x2,y2) 我们将长边分成两半 不妨 ...
- Xml文档数据提取到Excel表中
近期,财务一位同事,吐槽:<某XX开票软件>导出数据文档只有Xml格式,竟然没有Excel文档,工作起来非常不方便,希望我想想办法.上图: 需求分析:Xml数据----> 提取到Da ...
- 列表、margin和padding的探讨、标签的分类
一.列表 列表分为无序列表.有序列表和自定义列表 1.无序列表 <ul></ul> 1).内部必须有子标签,<li></li> 2).ul天生自带内 ...
- windows 查看某端口被占用情况
百度经验 http://jingyan.baidu.com/article/3c48dd34491d47e10be358b8.html 基本命令 netstat -ano
- SEO 第二章
SEO第二章 1. 掌握搜索引擎工作原理(重点) 2. 了解百度算法 3. 关键词的分类 一.什么是搜索引擎? 搜索引擎是用来实现搜索服务的,说白了搜索引擎也属于一种网站. 浏览器是用来加载网站 ...