JavaEE常见面试题

MVC

1. 谈谈你mvc的理解

MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。

MVC中的模型、视图、控制器它们分别担负着不同的任务。

视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。

模型: 模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性

控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。

然后根据处理的结果调用相应的视图来显示处理的结果。

MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。

Struts

1. struts1.2和struts2.0的区别?如何控制两种框架中的单例模式?

struts1.2和struts2.0的对比

a、Action类:

struts1.2要求Action类继承一个基类。struts2.0 Action要求继承ActionSupport基类

b、线程模式

struts1.2 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。

单例策略限制了Struts1.2 Action能做的事情,并且开发时特别小心。Action资源必须是线程安全的或同步的。

struts2.0 Action为每一个请求产生一个实例,因此每有线程安全问题。

c、Servlet依赖

struts1.2 Action依赖于Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execut方法。

struts2.0 Action不依赖于容器,允许Action脱离容器单独测试。如果需要,Struts2Action仍然可以访问初始的Request和Response。

但是,其他的元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。

d、可测性

测试struts1.2 Action的一个主要问题是execute方法暴露了Servlet API(这使得测试要依赖于容器)。一个第三方扩展:strutsTestCase

提供了一套struts1.2的模拟对象来进行测试。

Struts2.0 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。

2. 项目中为什么使用SSH

1. 使用Struts是因为struts是基于MVC模式的,很好的将应非用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts有着

丰富的taglib,如能灵活运用,则能大大提高开发效率。

2. 使用Hibernate:因为hibernate为Java应用提供了一个易用的、高效率的对象关系映射框架。hibernate是个轻量级的持久性框架,功能丰富。

3. 使用Spring:因为spring基于IoC(Inversion of Control,反向控制)和AOP构架多层j2ee系统的框架,但它不强迫你必须在每一层

中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;

采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现事务管理(Transcation Managment),等等

3. struts与spring是如何继承的

不懂题目之意:是否是说的struts的action都继承自org.apache.struts.action.Action

而Spring中的继承就不清楚了。

4. struts如何实现国际化

以下以两国语言(中文,英文)为例:

1. 在工程中加入Struts支持

2. 编辑ApplicationResource.properties文件,在其中加入要使用国际化的信息, 例如:lable.welcome.china=Welcome!!!

3. 创建英文资源文件ApplicationResource_en.properites

4. 创建临时中文资源文件ApplicationResource_temp.properites 例如:lable.welcom.china=中国欢迎您!

5. 对临时中文资源文件进行编码转换。可以使用myeclipse的插件,也可以在dos下执行:

native2ascii -encoding gb2312ApplicationResource_temp.properties

ApplicationResource_zh_CN.properties

6. 在jsp中加入struts的bean标记库 <%@

tagliburi="/WEB-INF/struts-bean.tld" prefix="bean"%>

显示信息:

可以在struts-config.xml文件中定义多个资源包,而每个资源包可使用key属性指定包的名称。

5. struts2.0的常用标签

1. 往action里传值:

size="15">

2. 显示标签 property 用于输出指定值:

3. 用于从页面往action中(user)的对象内传值:

4. 判断 用于在页面中判断指定数据

admin">…. ….

5. 迭代用于将List、Map、ArrayList等集合进行循环遍历

6. URL地址标签,用于生成一个URL地址,可以通过URL标签指定的子元素向URL地址发送请求参数

7. 超链接 一般和标签一起使用,用于带多个参数。

">超链接

8. set标签,用于将某个值放入指定的范围内。例如application,session等。

6. struts中怎么配置form-bean、action、tiles

此处配置的是struts1.2的

form-bean配置:(在配置文件struts-config.xml中):

name: 指定form的名字; type指定form的类型:包名+类名;

action配置:(在配置文件struts-config.xml中)

attribute=""

input=""

name=""

parameter=""

scope="request"

type=""

>

path:请求Action的名字; attribute:form的名字,与form-bean中的name对应;

input:输入页的路径;

name:如果配置了attribute,name不起作用,与attribute一样; parameter:使用分发Action时,指定调用分发Action中的方法名;

合集下载

java面试题库java面试题目及答案(3篇)

java面试题库java面试题目及答案(3篇)

第1篇

一、基础知识

1. Java简介

题目:请简述Java的基本特点。

答案:

- 简单易学:Java设计之初就考虑了易学性,使用面向对象编程。

- 原生跨平台:Java通过JVM(Java虚拟机)实现跨平台运行。

- 安全性:Java提供了强大的安全机制,如沙箱安全模型。

- 体系结构中立:Java不依赖于特定的硬件或操作系统。

- 高效:Java的运行速度接近C/C++。

- 多线程:Java内置多线程支持,便于实现并发处理。

- 动态性:Java在运行时可以进行扩展和修改。

2. Java虚拟机

题目:请解释Java虚拟机(JVM)的作用。

答案:

JVM是Java程序的运行环境,其主要作用包括:

- 将Java字节码转换为本地机器码。

- 管理内存,包括堆、栈、方法区等。

- 提供垃圾回收机制。

- 管理线程和同步。

3. Java内存模型

题目:请简述Java内存模型的组成。

答案: Java内存模型主要由以下部分组成:

- 堆(Heap):存储对象实例和数组。

- 栈(Stack):存储局部变量和方法调用。

- 方法区(Method Area):存储类信息、常量、静态变量等。

- 本地方法栈(Native Method Stack):存储本地方法调用的相关数据。

- 程序计数器(Program Counter Register):存储线程的当前指令地址。

4. Java关键字

题目:请列举并解释Java中的几个关键字。

答案:

- `public`:表示访问权限为公开。

- `private`:表示访问权限为私有。

- `protected`:表示访问权限为受保护。

- `static`:表示属于类本身,而非对象实例。

- `final`:表示常量或方法不能被修改。

- `synchronized`:表示线程同步。

- `transient`:表示数据在序列化时不会被持久化。

常见java面试题

常见java面试题

常见java面试题

Java作为目前最热门的编程语言之一,在面试中也成为了必问的一个议题,以下是常见的Java面试题:

一、Java基础知识

1. Java的特点和优势;

2. JDK和JRE有何区别?

3. Java语言中final、finally、finalize有何不同?

4. 面向对象的三大特性是什么?

5. 什么是多态?如何实现多态?

6. 如何实现Java程序的多线程?

二、Java集合框架

1. Java集合框架是什么?它都包含哪些集合类?

2. ArrayList和LinkedList的区别是什么?

3. HashMap和HashTable有何区别?

4. ConcurrentHashMap的实现原理是什么?

三、Java高级特性

1. 接口和抽象类的区别是什么?

2. 如何理解反射机制?

3. Java中的注解是什么?它有何作用?

4. 如何进行Java的序列化和反序列化?

四、Web开发相关

1. 什么是Servlet?

2. 什么是JSP?它和Servlet的区别是什么?

3. Spring框架的特点有哪些?

4. 如何进行Java Web的部署?

五、数据库相关

1. JDBC是什么?

2. 如何使用Java连接MySQL数据库?

3. 什么是ORM(对象关系映射)?Hibernate是ORM的一个框架,你熟悉它吗?

六、常见问题与优化

1. 何时使用ArrayList和LinkedList?

2. Java中的异常机制是什么?如何处理异常?

3. 如何进行Java程序的优化和调优?

4. 如何进行Java内存泄漏的排查和修复?

以上是常见的Java面试题,希望对有Java求职意向的朋友能够有所帮助,也建议大家对以上问题进行深入的学习和练习,巩固Java基础知识,提升自己的技能水平。

Spark经典常见面试题

Spark经典常见面试题

问题1 ★★★

var、val、def三个关键字之间的区别;伴生类与伴生对象;

(1)问题分析:主要考察Scala中的基本概念,这些是应该熟练掌握的

(2)核心问题回答

var是变量声明关键字,类似于Java中的变量,变量值可以更改,但是变量类型不能更改

val常量声明关键字

def 关键字用于创建方法(注意方法和函数的区别)

还有一个lazy val(惰性val)声明,意思是当需要计算时才使用,避免重复计算

类和它的伴生对象同名且存在于同一个文件中,二者互为伴生;可以相互访问私有成员(字段和方

法);

问题2 ★★★

case class 是什么,与case object的区别是什么

(1)问题分析:主要考察样例类的理解,样例类在 Scala、Spark 的开发中使用的非常频繁,对其应该

熟练掌握

(2)核心问题回答

样例类是scala中特殊的类。当声明样例类时,如下事情会自动发生:

构造器中每一个参数都成为val。除非它被显示的声明为var(不建议这样做)

提供apply方法。不用new关键字就能够构造出相应的对象

提供unapply方法。让模式匹配可以工作

将生成toString、equals、hashCode和copy方法。除非你显示的给出这些方法的定义

继承了Product和Serializable,即已实现序列化方法和可以应用Product的方法

case class是多例的,后面要跟构造参数,case object是单例的

此外,case class和其他类型完全一样,可以添加方法和字段,扩展它们;

case class最大的用处是用于模式匹配。

(3)问题扩展

模式匹配的相关问题

问题3 ★★★

Spark为什么快,Spark SQL 一定比 Hive 快吗

(1)问题分析:常见问题,但是并不好答,因为只有对两个计算框架有一定程度的理解才能准确回

答。(2)核心问题回答

通常大家只是说Spark是基于内存计算的,速度比MapReduce要快。或者说内存中迭代计算。其实没有

ASP.NET常见面试题及答案(130题)

ASP.NET常见面试题及答案(130题)

常见⾯试题及答案(130题)

1. 简述 private、 protected、 public、 internal 修饰符的访问权限。

答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。

internal: 在同⼀命名空间内可以访问。

2 .列举 页⾯之间传递值的⼏种⽅式。

答. 1.使⽤QueryString, 如....?id=1; response. Redirect().... 2 .使⽤Session变量

3.使⽤Server.Transfer

4.C#中的委托是什么?事件是不是⼀种委托?

答 : 委托可以把⼀个⽅法作为参数代⼊另⼀个⽅法。 委托可以理解为指向⼀个函数的引⽤。

是,是⼀种特殊的委托

5.override与重载的区别

答 :重载是⽅法的名称相同。参数或参数类型不同,进⾏多次重载以适应不同的需要 Override 是进⾏基类中函数的重写。为了适应需要。

6.如果在⼀个B/S结构的系统中需要传递变量值,但是⼜不能使⽤Session、Cookie、Application,您有⼏种⽅法进⾏处理?

答 : this.Server.Transfer Response. Redirect()---QueryString

9.描述⼀下C#中索引器的实现过程,是否只能根据数字进⾏索引?

答:不是。可以⽤任意类型。11.⽤.net做B/S结构的系统,您是⽤⼏层结构来开发,每⼀层之间的关系以及为什么要这样分层?

答:⼀般为3层:数据访问层,业务层,表⽰层。

数据访问层对数据库进⾏增删查改。

业务层⼀般分为⼆层,业务表观层实现与表⽰层的沟通,业务规则层实现⽤户密码的安全等。

表⽰层为了与⽤户交互例如⽤户添加表单。

优点: 分⼯明确,条理清晰,易于调试,⽽且具有可扩展性。

缺点: 增加成本。13.什么叫应⽤程序域?

SpringMVC面试题常问的29道(附答案)

SpringMVC面试题常问的29道(附答案)

SpringMVC⾯试题常问的29道(附答案)

博主整理了29道⾯试中常问的SpringMVC⾯试题及答案,希望对⼤家有帮助哈~

1、什么是Spring MVC?简单介绍下你对Spring MVC的理解?

Spring MVC是⼀个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进⾏职责解耦,把复杂的web应⽤分成逻辑清晰的⼏部分,简化开发,减少出错,⽅便组内开发⼈员之间的配合。

2、Spring MVC的优点

(1)可以⽀持各种视图技术,⽽不仅仅局限于JSP;

(2)与Spring框架集成(如IoC容器、AOP等);

(3)清晰的⾓⾊分配:前端控制器(dispatcherServlet) , 请求到处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)。

(4) ⽀持各种请求资源的映射策略。

3、Spring MVC的主要组件?

(1)前端控制器 DispatcherServlet(不需要程序员开发)

作⽤:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。

(2)处理器映射器HandlerMapping(不需要程序员开发)

作⽤:根据请求的URL来查找Handler

(3)处理器适配器HandlerAdapter

注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执⾏Handler。

(4)处理器Handler(需要程序员开发)

(5)视图解析器 ViewResolver(不需要程序员开发)

作⽤:进⾏视图的解析,根据视图逻辑名解析成真正的视图(view)

(6)视图View(需要程序员开发jsp)View是⼀个接⼝, 它的实现类⽀持不同的视图类型(jsp,freemarker,pdf等等)

ASP.NET(C#)面试总结面试题大全

ASP.NET(C#)面试总结面试题大全

(C#)⾯试总结⾯试题⼤全

⼀、对于 Web 性能优化,您有哪些了解和经验吗?出现指数:五颗星

主要考点:这道题是博主在博客园的新闻⾥⾯看到的,回想之前⼏年的⾯试经历,发现此题出现概率还是⽐较⾼的。因为它的考⾯灰常⼴,可以让⾯试官很快了解你的技术涉及

⾯以及这些技术⾯的深度。参考答案:这个问题可以分前端和后端来说。

1、前端优化

(1)减少 HTTP 请求的次数。我们知道每次发送http请求,建⽴连接和等待相应会花去相当⼀部分时间,所以在发送http请求的时候,尽量减少请求的次数,⼀次请求能取出

的数据就不要分多次发送。

(2)启⽤浏览器缓存,当确定请求的数据不会发⽣变化时,能够直接读浏览器缓存的就不要向服务端发送请求。⽐如我们ajax⾥⾯有⼀个参数能够设置请求的时候是否启⽤缓

存,这种情况下就需要我们在发送请求的时候做好相应的缓存处理。

(3)css⽂件放 在⾥⾯,js⽂件尽量放在页⾯的底部。因为请求js⽂件是很花费时间,如果放在⾥⾯,就会导致页⾯的 DOM树呈现需要等待js⽂件加载完成。

这也就是为什么很多⽹站的源码⾥⾯看到引⽤的⽂件放在最后的原因。

(4)使⽤压缩的css和js⽂件。这个不⽤多说,⽹络流量⼩。

(5)如果条件允许,尽量使⽤CDN的⽅式引⽤⽂件,这样就能减少⽹络流量。⽐如我们常⽤的⽹站/。

(6)在写js和css的语法时,尽量避免重复的css,尽量减少js⾥⾯循环的次数,诸如此类。

2、后端优化:

(1)程序的优化:这是⼀个很⼤的话题,我这⾥就选⼏个常见的。⽐如减少代码的层级结构、避免循环嵌套、避免循环CURD数据库、优化算法等等。

(2)数据库的优化:(由于数据库优化不是本题重点,所以可选⼏个主要的来说)⽐如启⽤数据库缓存、常⽤的字段建索引、尽量避免⼤事务操作、避免select * 的写法、尽

量不⽤in和not in 这种耗性能的⽤法等等。(3)服务器优化:(这个可作为可选项)负载均衡、Web服务器和数据库分离、UI和Service分离等等。

结构化面试题库(超全面)

结构化面试题类

能力测试

一、专业技能测试 1、 你学的是哪一专业?在该专业领域你有什么研究成果吗?是否发表过相关的论文?

2、 你认为怎样才能成为一名专业人士?

3、 请谈谈你对你所从事专业的理解,在专业方面有哪些重要的成果?

4、 你认为此工作岗位应当具备哪些素质?

5、 《红楼梦》中你最喜爱的人物是哪一位?作者塑造这一人物的个性是什么?

6、 如果我录用你,你将怎样开展工作? 二、行动能力测试 1、 你的主管在给你的邮件里分配了你的任务之后,一周都不在公司。你无法联络到他,而且也不能

完全理解该项工作。你将怎么做? 2、 面对目标,你将如何确立轻重并实现它?

3、 请讲一个你最近在工作中遇到的问题(质量问题、设备问题、工艺问题),你是怎样解决的?

4、 你怎样解决生产过程中出现的问题?

5、 你能解决出现的质量问题吗?

6、 请你举一个实例说明你的工作规范和流程。

7、 给出一个很高难的目标,来说明你采取何种手段来完成这一目标。

8、 概述一种情况:你鼓励别人为了某一个目标而努力,而且你在其中扮演了领导角色来完成你的目

标。 9、 描述一种情形:你寻找外面的有关数据,定义关键点,决定行动步骤。

10、 描述一个你有效地利用事实并且试图说服其他人的事例。

11、 举出一个事例,说明你如何有效地同别人合作来完成一个重要目标。

12、 描述一个你提出的创新性的建议或者计划,对一个活动的成功做出了重要贡献。 13、 提供一个事例说明你详细考察并判定了某一情形并且决定出行动的优先顺序。

14、 提供一个事例说明你如何获得了技术上的细节而且将它们转换成实际的应用。 三、管理能力测试 1、 你是怎样准备这次面试的?

2、 你个人的长期和短期目标分别是什么?你是如何确定这些目标的?你准备怎样实现这些目标?

3、 你在五年内的个人目标和职业目标分别是什么?

4、 从你的自我介绍中知道你做过管理工作,能否请你举一个你认为管理成功的工作例子,详细说明

32道常见的Kafka面试题及答案

32道常见的Kafka⾯试题及答案

1、Kafka 都有哪些特点?

⾼吞吐量、低延迟:kafka每秒可以处理⼏⼗万条消息,它的延迟最低只有⼏毫秒,每个topic可以分多个partition, consumergroup 对partition进⾏consume操作。

可扩展性:kafka集群⽀持热扩展

持久性、可靠性:消息被持久化到本地磁盘,并且⽀持数据备份防⽌数据丢失

容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)?⾼并发:⽀持数千个客户端同时读写

2、请简述下你在哪些场景下会选择 Kafka?

⽇志收集:⼀个公司可以⽤Kafka可以收集各种服务的log,通过kafka以统⼀接⼝服务的⽅式开放给各种consumer,例如hadoop、HBase、Solr等。?消息系统:解耦和⽣产者和消费者、缓存消息等。

⽤户活动跟踪:Kafka经常被⽤来记录web⽤户或者app⽤户的各种活动,如浏览⽹页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka 的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。运营指标:Kafka也经常⽤来记录运营监控数据。包括收集各种分布式应⽤的数据,⽣产各种操作的集中反馈,⽐如报警和报告。流式处理:⽐如spark streaming和 Flink

3、 Kafka 的设计架构你知道吗?简单架构如下

详细如下

Kafka 架构分为以下⼏个部分

Producer :消息⽣产者,就是向 kafka broker 发消息的客户端。?Consumer :消息消费者,向 kafka broker 取消息的客户端。Topic :可以理解为⼀个队列,⼀个 Topic ⼜分为⼀个或多个分区,?Consumer Group:这是 kafka ⽤来实现⼀个 topic 消息的⼴播(发给所有的consumer)和单播(发给任意⼀个 consumer)的⼿段。⼀个 topic 可以有多个 Consumer Group。Broker :⼀台 kafka 服务器就是⼀个 broker。⼀个集群由多个 broker 组成。

常见112个测试英语面试题

常见112个测试英语⾯试题

作者 开⼼果 选⾃:365testing

1. What types of documents would you need for QA, QC, and Testing?

2. What did you include in a test plan?

3. Describe any bug you remember.

4. What is the purpose of the testing?

5. What do you like (not like) in this job?

6. What is quality assurance?

7. What is the difference between QA and testing?

8. How do you scope, organize, and execute a test project?

9. What is the role of QA in a development project?

10. What is the role of QA in a company that produces software?

11. Define quality for me as you understand it

12. Describe to me the difference between validation and verification.

13. Describe to me what you see as a process. Not a particular process, just the basics of having a process.

14. Describe to me when you would consider employing a failure mode and effect analysis.

50个C语言C++常见面试题及答案

C/C++经典面试题

面试题1:变量的声明和定义有什么区别

为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,

但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分

定义。

说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,

如外部变量。

面试题2:写出bool 、int、 float、指针变量与“零值”比较的if语句 bool型数据:

if( flag )

{

A;

}

else

{ B;

} int型数据:

if( 0 != flag )

{

A;

}

else

{ B; }

指针型数:

if( NULL == flag )

{

A;

}

else

{ B;

}

float型数据:

if ( ( flag >= NORM ) && ( flag <= NORM ) )

{ A;

2

}

注意:应特别注意在int、指针型变量和“零值”比较的时候,把“零值”放在左边,这样当把“==”

误写成“=”时,编译器可以报错,否则这种逻辑错误不容易发现,并且可能导致很严重的后果。

面试题3:sizeof和strlen的区别

sizeof和strlen有以下区别:

 sizeof是一个操作符,strlen是库函数。

 sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘\0‘的字符串作参数。

 编译器在编译时就计算出了sizeof的结果。而strlen函数必须在运行时才能计算出来。并且sizeof

计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度。

 数组做sizeof的参数不退化,传递给strlen就退化为指针了。

注意:有些是操作符看起来像是函数,而有些函数名看起来又像操作符,这类容易混淆的名称一定

要加以区分,否则遇到数组名这类特殊数据类型作参数时就很容易出错。最容易混淆为函数的操作符就

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档