java开发面试中经常问到的问题(2019年5月)
1、jsp内置对象有哪些?
* 在jsp页面中不需要创建,直接使用的对象
* 一共有9个:
变量名 真实类型 作用
* pageContext PageContext 当前页面共享数据,还可以获取其他八个内置对象
* request HttpServletRequest 一次请求访问的多个资源(转发)
* session HttpSession 一次会话的多个请求间
* application ServletContext 所有用户间共享数据
* response HttpServletResponse 响应对象
* page Object 当前页面(Servlet)的对象 this
* out JspWriter 输出对象,数据输出到页面上
* config ServletConfig Servlet的配置对象
* exception Throwable 异常对象
2、jsp的四种会话跟踪技术以及jsp中的四个作用域
四种会话跟踪技术:
1、通过Cookie实现
2、通过session实现
3、URL地址重写
4、隐藏表单域
详细介绍参照:jsp的四种会话跟踪技术
四个作用域:
page域 数据在一个页面范围内有效,通过pageContext对象访问
request域 数据在一个服务器请求范围内有效,通过request对象访问
session域 数据在一次会话范围内容有效,通过session对象访问
application域 数据在一个应用服务器范围内有效,通过application对象访问
可参考其他博客:四种会话跟踪技术,JSP的四种范围
3、linux查看端口号
netstat - atulnp会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段
-a :all,表示列出所有的连接,服务监听,Socket资料
-t :tcp,列出tcp协议的服务
-u :udp,列出udp协议的服务
-n :port number, 用端口号来显示
-l :listening,列出当前监听服务
-p :program,列出服务程序的PID
常用:
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -anp
netstat -ntlp //查看当前所有tcp端口·
netstat -ntulp |grep 80 //查看所有80端口使用情况·
netstat -an | grep 3306 //查看所有3306端口使用情况·
linux查看及监控日志?
可参考:Linux如何动态查看日志信息?
比如我们要查看laravel.log日志的内容:
1、tail -f laravel.log
该条命令会输入laravel.log的变化,实现时时监控的目的
2、tail -n 3 laravel.log
该条命令会输出倒数前3条的日志内容
3、tail -n +3 laravel.log
该条命令是从日志的第三条开始打印日志的内容
四、停止命令:
1、ctrl+C
2、kill -9 pid
详细参照:Linux下如何实时查看日志
4、垃圾回收器工作机制,GC 的算法有哪些?
5、ajax的作用,以及ajax的写法
使用jquery的三种写法:
方法一: $.ajax(url,data,fn);
$('#btn').click(function(){
$.ajax({
url:"112.json",
type:"post",
data:{
//传递参数
},
success:function(res){//res表示是否与服务器连接成功
console.log(res);//json中的数据
if (res.status == 'ok') {//当状态为ok时,显示json中的数据
console.log(res.datas[0].name);
}else{
alert('没有相关数据');
}
},
error:function(e){
// 抛弃异常
}
});
});
112.json中的内容
{
"status":"ok",
"datas":[
{"name":"lxs","age":"111"},
{"name":"ssx","age":"1222"}
]
}
方法二:
$.post(URL,data,callback);
$.post("112.json",{
"activeName":activeName,
"sels":sels,
"sels2":sels2,
"start":start,
"end":end
},function(res){
if (res.message == '0') {
alert('成功');
// 向tbody中添加数据
}
});
方法三:$.get(url,callback);$('#btn').click(function(){$.get("112.json",function(res){
if (res.status == 'ok') {
alert('成功');
// 向tbody中添加数据
}
});
}
6、jvm的内存模块
JVM内存运行时数据区的三个重要的地方
堆(heap) : 他是最大的一块区域,用于存放对象实例和数组,是全局共享的.
栈(stack) : 全称为虚拟机栈,主要存储基本数据类型,以及对象的引用,私有线程
方法区(Method Area) : 在class被加载后的一些信息 如常量,静态常量这些被放在这里,在Hotspot里面我们将它称之为永生代
参照:JVM相关面试题及答案
7、redis如何实现与mysql的数据一致性?
回答思路不清晰,我自己没回答上来。
可以参考:redis系列之数据库与缓存数据一致性解决方案
或者:Redis 缓存和 MySQL 数据如何实现一致性?
redis与Mysql的数据一致性
8、AOP是什么?项目中哪些地方会用到AOP?
面向切面编程(AOP)提供另一种角度来思考程序结构,通过这种方式弥补了
面向对象编程(OOP)的不足,除了类(classes)以外,AOP提供了切面。
切面对关注点进行模块化,例如横切多个类型和对象的事务管理。
Spring的一个关键的组件就是Aop框架,可以自由选择使用AOP提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的服务是声明性事务管理,这个服务建立在Spring的抽象事务管理上,允许用户自定义切面,用AOP来完善OOP的使用,可以把Spring Aop看做是对Spring的一种增强!
AOP里面重要名词解释:
切面(Aspect):一个关注点的模块化,这个关注点可能会横切多个对象,事务管理是j2ee应用中的一个关于和企鹅关注点的很好的例子。在Spring AOP中,切面可以使用通用类或者普通类中以@Aspect注解来实现。
AOP代理(AOP Proxy):AOP框架创建的对象,用来实现切面契约(包括通知方法执行等功能),在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。
引入(Introduction): 添加方法或字段到被通知的类。 Spring允许引入新的接口到任何被通知的对象。
目标对象(Target Object): 包含连接点的对象。也被称作被通知或被代理对象。POJO
前置增强:在某个链接之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛出一个异常)
返回后增强:在某个链接正常完成执行的通知。例如:一个方法没有抛出任何异常,正常返回。
抛出异常后增强:在方法抛出异常退出时执行后的通知。
后置增强:当某连接点退出的时候执行的通知。(不论是正常返回还是异常退出)
环绕增强:包围一个连接点的通知。如方法的调用,这是最强大的一种通知类型,环绕增强可以在方法调用前后完成自定义的行为,它也会选择是否继续执行连接点或直接返回他们自己的返回值或抛出异常来结束执行。
环绕增强是最常见的一种通知类型,大部分基于拦截的AOP框架,例如nanning和Jboss4
AOP的优点:
1-降低模块之间的耦合度。
2-使系统容易扩展。
3-更好的代码复用。
AOP的应用场景:
1.日志处理
2.用户登录
3.权限(Authentication )
4.性能优化(Performance optimization)
5.事务(Transactions )
6.记录跟踪 优化 校准(logging, tracing, profiling and monitoring)
7.调试(Debugging)
8.懒加载(Lazy loading)
9.错误处理(Error handling)
10.资源池(Resource pooling)
11.同步(Synchronization)
java开发面试中经常问到的问题(2019年5月)相关推荐
- 前端开发面试中常常问到的问题
这里先对所遇到的问题进行一个总结吧: 一. 网络请求中get和post的区别(虽然我之前背的滚瓜烂熟,但是面试中还是说的不是很全面) get 请求一般用来从服务器端获取数据,但是也可以提交数据.pos ...
- 据说这篇总结覆盖了一般Python开发面试中可能会问到的大部分问题
原文标题:一名python web后端开发工程师的面试总结 先介绍下我的情况 通信背景,工作一年多不到两年.之前一直在做C++的MFC软件界面开发工作.公司为某不景气的国企研究所.(喏,我的工作经验很 ...
- 金九银十!阿里面试官告诉你面试Java后端开发面试会被问到什么问题?面试稳了!
前言 面试java后端开发,基本上会问你一些理论基础,以及你对一些技术点的理解,或者说深一点问一问你所掌握的深浅如何? 如果之前有实习经验,还会问一些你做过的项目,以及你在其中担任的角色,就是说你负责 ...
- java面试 设计模式_Java面试中常问到的设计模式
面试中常问到的设计模式 什么是设计模式? 设计模式是世界上各种各样程序员用来解决特定设计问题的尝试和测试的方法.设计模式是代码可用性的延伸 单例模式 保证被创建一次,节省系统开销 饿汉式:上来不 ...
- java io bio nio面试题_漫画:一文学会面试中常问的 IO 问题!
原标题:漫画:一文学会面试中常问的 IO 问题! 作者 | 漫话编程 责编 | 伍杏玲 本文经授权转载自漫话编程(ID:mhcoding) 周末午后,在家里面进行电话面试,我问了面试者几个关于IO的问 ...
- 初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!
最近事情太多,没太时间写博客.今天抽空再整理整理面试中的那点事吧,帮助那些正在找工作或想跳槽找工作的学弟学妹们. 前面我己写过多篇推文,相信看过我文章的伙伴们已经了解掌握了不少.从目前流行的开发技术. ...
- java开发面试评语
自我评价或是自我介绍(我是Java程序员) 你这里介绍的就挺好啊. 有个条理就行 我前段时间也总参加面试,也是做J2EE,我说下我自我介绍的思路: 1. 先介绍基本情况,哪里人,什么学校毕业在什么公司 ...
- 大厂面试官在校招面试中爱问啥?
如果你在简历中写了这句话,保证能拿到大厂面试机会:扎实的计算机基础,良好的数据结构与算法功底. 然后,你就会被问到头皮发麻. 虽然是段子,但也一定程度上说明了大厂非常注重计算机基础,也是真的喜欢问计算 ...
- 2023字节、腾讯、阿里等6家大厂Java开发面试真题+高频面试题总结
又是一年求职面试旺季,不管你是新进职场小白还是职场老鸟,这些关于java程序员面试应准备的东西你都应该知道. 面试前需要准备 1. Java 八股文:了解常考的题型和回答思路: 2. 算法:刷100- ...
最新文章
- 机器学习基础 --- pandas的基本使用
- 页面生成周期中的两个Application池的详情小弟了解
- 第三章:3.7 傅里叶变换性质(一)
- 查找算法:二分查找、顺序查找
- 1071svm函数 r语言_如何利用R语言中的rpart函数建立决策树模型
- 《纵向切入ASP.NET 3.5控件和组件开发技术》笔记:高效率事件集合对象
- 【JS】教你如何在对象内任意位置插入任意属性
- win7下import pytorch报错AttributeError: function 'AddDllDirectory' not found
- DB中字段为null,为空,为空字符串,为空格要怎么过滤取出有效值
- java 图片线条_JAVA 关于JFrame的问题,我的图片会被线条给覆盖住,怎样让图片在上面呢...
- Windows 10 份额突破 40%,Windows 7 连跌四月终回升
- 人工智能+智能运维解决方案_人工智能驱动的解决方案可以提升您的项目管理水平
- 2021全国大学生电子设计竞赛论文(智能送药小车(F题))(电赛论文模板)
- java毕业设计springboot框架 java在线视频点播系统毕业设计开题报告功能参考
- cad 打开硬件加速卡_CAD:“你的图纸缺少shx字体!”不知道该怎么办?不存在的!...
- 家谱排版制作软件怎么三步成谱
- NAND FLASH大页和小页
- python基础(八):封装、继承、多态
- linux在root安装软件,避免使用root安装软件
- 使用FFMPEG制作gif图片
热门文章
- spring cloud微服务之间调用Feign
- springBoot中shiro与Redis整合的配置文件
- java 冗余,java代码冗余
- python导入dat数据_Kaggle影评数据集,Python数据分析小例子14
- JQ实现单击按钮 倒计时获取验证码
- 边框border(HTML、CSS)
- 字符串连接符(Java)
- z-index 绝对定位的盒子居中
- java 读取本地文件_java 读取本地文件实例详解
- druid 手动指定数据源_Spring Boot2 系列教程(二十)整合JdbcTemplate 多数据源