22道Java架构师面试题及答案分享
1、你认为项目中最重要的过程是那些?
分析、设计阶段 尽量找出进度的优先级
2、如果给你一个4-6人的team,怎么分配?
挑选一技术过硬的人作为我的替补。其它人平均分配任务,每周进行全面的任务分配,每个人领取一周的工作量,每天汇报进度。
3、简述软件开发文档?
需求分析、概要设计、详细设计、操作手册、测试计划
4、你认为一个项目如何才正确?
是企业利益最大化。
5、你经常读那些书?
Java编程思想 Java模式
6、springmvc的工作原理?
客户端请求提交到DispacherServlet由DispacherServlet控制器查询HandlerMapping,找到处理请求的Controller
Controller调用业务逻辑处理后,返回ModelAndView
DispacherServlet查询视图解析,找到ModelAndView指定的视图
视图负责将结果显示到客户端
7、springmvc 和struts2的区别?
机制 :springmvc 的入口是servlet,struts2的入口是filter
性能 : springmvc 会比struts2快一点。springmvc是基于方法设计,struts2是基于类,每次发一次请求都会实例一个action,每个Action都会被注入属性。
参数传递:struts2是在接受参数的时候,可以采用属性来接收参数,这家说明可以让多个方法共享
拦截器机制:struts2有自己的interceptor机制,springmvc用的是独立的AOP方式,strtus2的配置文件还是比springmvc大,springmvc使用简洁,springMVC比struts2开发效率要高、
8、struts2工作原理?
客户端初始化一个执行servlet的请求
这个请求经过一系列的过滤器,被FilterDispatcher调用,询问ActionMapper来决定是否调用Action
FilterDispatcher把请求的处理交给ActionProxy
ActionProxy通过Configuraction Manager询问相关的配置文件,找到需要的Action类
ActionProxy创建ActionInvocation的实例
ActionInvocation调用Action前后的拦截器
Action执行完毕后,根据struts、xml配置文件找到对应的视图页面
9、Hibernate 工作原理?
读取并解析配置文件
创建SessionFactory
打开Session
创建事务:transaction
持久化操作
提交事务
关闭Session
关闭SessionFactory
10、为什么要用spring?
spring能够很好的和各大框架整合
spring 通过IOC容器管理了对象的创建和销毁 工厂模式
在使用hiberna,mybatis的时候,不用每次都编写提交的事务的代码,可以使用spring的AOP来管理事务 AOP其实就是一个动态代理的实现
声明式事务和编程式事务
11、mybatis的优缺点?
优点:SQL写在XML中,便于统一管理和优化
提供映射标签,支持对象和数据库的orm字段关系映射
可以对SQL进行优化
缺点: SQL工作量大
mybagtis移植姓不好
不支持级联
12、谈谈SSH整合?
struts(表示层)+spring(业务层)+hibernate(持久层)
struts是一个表示层的框架,主要用于接收请求,分发请求。struts其实属于MVC中的VC层次的
hibernate是一个持久层的框架,主要负责与关系数据库的操作
spring是一个业务层的框架,是一个整合的框架,能够很好的黏合表示层和持久层。
13、maven是什么?有什么作用?
是一个项目管理、构建工具
作用:帮助下载jar 寻找依赖,帮助下载依赖 热部署、热编译
14、WEB 前端优化?
减少HTTP请求的数量(合并css、js、图片)
利用浏览器的缓存机制
利用GZIP压缩机制:只针对文本类资源有效
把CSS文件放在HTML开头
把javascript文件放在HTML结尾
避免CSS表达式(判断浏览器)
使用javascript压缩
减少DNS查找
避免重定向
使用ajax
15、安全性测试
利用安全性测试技术,找到潜在的漏洞
16、事务隔离级别(4种)
Serializable(串行化):一个事务在执行过程中完全看不到其他事物对数据库所做的更新(事务执行的时候不允许别的事务并发执行,事务只能一个接着一个地执行,而不能并发执行)
Repeatable Read(可重复读):一个事务在执行过程中可以看到其它事务已经提交的新插入的记录,但是不能看到其它事务对已有记录的更新
Read Commited(读已提交数据):一个事务在执行过程中可以看到其它事务已经提交的新插入的记录,而且能看到其它事务已经提交的对已有记录的更新。
Read Uncommitted(读未提交数据):一个事务在执行过程中可以看到其它事务没有提交的新插入的记录的更新,而且能看其它事务没有提交到对已有记录的更新
17、MYSQL存储引擎(4种)
MyISAM它不支持事务,也不支持外键,尤其是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。
每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:、frm(存储表定义) ,YD(MYData,存储数据) , MYI(MYIndex,存储索引),InnoDB,InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
(1)自动增长列
(2)外键约束
MEMORY
memory使用存在内存中的内容来创建表。每个MEMORY表实际对应一个磁盘文件,格式是、frm。MEMORY类型的表访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。
MERGE
merge存储引擎是一组MyISAM表的组合,这些MyISAM表结构必须完全相同,MERGE表中并没有数据,对MERGE类型的表可以进行查询、更新、删除的操作,这些操作实际上是对内部的MyISAM表进行操作。
18、事务传播特性
1、 PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启
2、 PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行
3、 PROPAGATION_MANDATORY: 如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。
4、 PROPAGATION_REQUIRES_NEW: 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
5、 PROPAGATION_NOT_SUPPORTED: 总是非事务地执行,并挂起任何存在的事务。
6、 PROPAGATION_NEVER: 总是非事务地执行,如果存在一个活动事务,则抛出异常
7、 PROPAGATION_NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中、 如果没有活动事务,
19、TCP协议(传输控制协议Transmission Control Protocol )
建立链接:三次握手(1、给对方拨号 2、喂,您好,请问是哪位 3 我是小刘)
关闭链接:四次挥手保证可靠
20、shiro 是什么
Apache Shiro 是一个强大易用的java安全框架,提供了认证、授权、加密和会话管理等功能。
认证 :验证用户来核实他们的身份
授权:会话管理
21、 项目技术
前台:面向的客户
前端:css div js jquery
后端:springmvc spring mybatis
使用的优化技术:
(1)页面静态化(Freemarker)
(2)缓存
1) 页面缓存(OSCache)
2)分布式缓存(memcached)
(3) 图片分离(服务器)
(4)负载均衡(解决高并发终极策略)
后台:(管理对象)
前端:css html js jquery
后端:springmvc spring mybatis
数据库:mysql
图片分离框架:jersey
22、什么RESTful(表现层状态转化)架构?
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
22道Java架构师面试题及答案分享相关推荐
- 备战 2023 秋招,应届生应做好哪些准备,22道Java架构师面试题及答案分享
前言 23 秋招已经开始了!作为应届毕业生求职最友好的季节,今年很多大厂的提前批并没有释放太多岗位,而是选择了秋季招聘.后续的补充和春招,竞争会更加激烈!本文将从以下几个方面与您讨论,如何准备和获得更 ...
- ie 访问 java接口_2019年面试总结,100道Java程序员面试题(含答案)分享
2019年即将结束,一边是大批同学涌入职场,另一边是大群职场人打算跳槽,在这个重要的节点,Java程序员如何才能把握时机,搞定面试官,拿到一份心仪的工作呢? 除了掌握扎实的专业技能之外,你还需要一份& ...
- 1000+道 互联网Java架构师面试题
1000+道 互联网Java架构师面试题 这套 1000+ 道的 Java 面试手册我整理了足足 1 个月,上传到 GitHub 上目前 star 数达到了 30K+ .2022 年的互联网行业竞争越 ...
- java架构师面试题汇总
java架构师是码农们所向往的,成为java架构师以后在薪资水平上也会有很大提升,企业在招聘架构师的时候也会出一些[java面试题]小编就为大家准备了一份java架构师面试题汇总,希望对大家能够有些帮 ...
- JAVA架构师面试题,如何成为架构师
JAVA架构师面试题,如何成为架构师 经常面试一些候选人,整理了下我面试使用的题目,陆陆续续整理出来的题目很多,所以每次会抽一部分来问.答案会在后面的文章中逐渐发布出来. 基础题目 Java线程的状态 ...
- 【Java架构师面试题】设计模式面试专题(共35题含答案)
设计模式(DesignPattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路.它不是语法规定,而是一套用来提高代码可复用性.可维护性.可读性.稳健性以及安全性的解决方案. 本篇为设计 ...
- Java架构师面试题系列之Dubbo面试专题(29题,含详细答案解析)
[Java架构师面试网]收集整理了几乎整个架构师学习途中会遇到的面试题,希望大家都能早日圆自己的架构师梦~ 网站近期在备案和迁移服务器,暂时无法打开,先关注一波公众号吧 公众号:Java架构师面试网, ...
- Java架构师面试题系列之Mybatis面试专题(36题,含详细答案解析)
[Java架构师面试网]收集整理了一些Java面试的常见问题,这些问题可能会在你下一次技术面试中遇到.想成为Java架构师,这些都是不可避免也是必须要掌握的哦,对于其他模块的面试题,我后续也将单独分享 ...
- 一个合格的JAVA架构师需要了解哪些知识?java架构师面试题又会有些什么?
原文 http://www.chinastor.org/gdcc/9259.html 在网上找了一个牛人给出的题目 牛人出的面试题如下: 1. struts,spring,hibernate 这样的 ...
最新文章
- 系统分析与仿真1-单输入单输出质量块+阻尼器系统
- iOS朋友圈,视频播放器、钓鱼小游戏、玻璃动画源码
- npm学习(二)之如何防止权限错误
- 源码分析Dubbo Invoker概述----服务发现、集群、负载均衡、路由体系
- python替换缺失值,处理空值+生成图形+图形标准化
- spring component-scan配置扫描多个包
- linux c++ utf8 gbk,Linux C++ gbk转为utf-8
- HUE与YARN的集成
- js获得浏览器高度和宽度 参数
- QT编程编程入门系列文章之一——QT编程简介
- 如何设计会员体系中心
- 【初识SciPy库】
- CocosCreator学习示例合集v3.4.2
- [转]FlightCaster如何预测飞机准点的
- 高通msm8996启动流程
- html页面怎样打印二分之一,打印二分之一a4纸 大小的纸张 Word该如何设置?
- 对中国标准时间(CST)和中国夏令时(CDT)的不同处理
- 关于android4.4沉浸模式的进入和退出时系统栏状态栏遮盖问题,【Android学习】关于Android4.4沉浸模式的进入和退出时系统栏状态栏遮盖问题...
- App测试之Monkey压力测试
- 韩信点兵(hanxin)--算法竞赛经典习题2-2:相传韩信才智过人,从不清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,他每次只要掠一眼队伍的排尾就知道总数(C++实现)
热门文章
- 163邮箱登录报错xm001 NO LOGIN Login error user suspended
- matlab自带同步电机数学模型,永磁同步电机电机本体数学模型在MATLAB下的仿真_张红生...
- C# 多线程模式 关闭/退出全部线程
- linux poweroff关机信号,理解 Linux 中的 Shutdown、Poweroff、Halt 和 Reboot 命令
- 拓嘉启远电商:如何合理安排拼多多上下架时间
- Fedora17硬盘安装
- Maltego注册问题详解
- 中国大学面积排行榜,最大最小差了1600倍
- android App内监听截图加二维码
- (附源码)springboot课程评价系统 毕业设计 211004