java软件工程师面试基本题共5页.docx

上传人:b****8 文档编号:10121644 上传时间:2023-02-08 格式:DOCX 页数:18 大小:23.82KB
下载 相关 举报
java软件工程师面试基本题共5页.docx_第1页
第1页 / 共18页
java软件工程师面试基本题共5页.docx_第2页
第2页 / 共18页
java软件工程师面试基本题共5页.docx_第3页
第3页 / 共18页
java软件工程师面试基本题共5页.docx_第4页
第4页 / 共18页
java软件工程师面试基本题共5页.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

java软件工程师面试基本题共5页.docx

《java软件工程师面试基本题共5页.docx》由会员分享,可在线阅读,更多相关《java软件工程师面试基本题共5页.docx(18页珍藏版)》请在冰豆网上搜索。

java软件工程师面试基本题共5页.docx

java软件工程师面试基本题共5页

在项目中主要遇到的困难?

讲一下对Springmvc的理解?

SpringMvc是基于过滤器对servlet进行了封装的一个框架,我们使用的时候就是在web.xml

文件中配置DispatcherServlet类;

SpringMvc工作时主要是通过DispatcherServlet管理接收到的请求并进行处理。

Spring用的是注释还是配置文件

注释

讲一下Spring常用的注解

autowrite

Resource

Qualifier

repository

service

controller

requestMapper

responseBody

requestParam

ModelAttribute

 

Scope

Session和cookie的区别?

怎么动手清除cookie?

用代码?

session打开浏览器创建的,每个浏览器对应一个session

cookie是在客户端本地,不会随着浏览器关闭而消失

用户可以自己清除本地cookie,也可以在程序中使用代码清除

“记住我”怎么实现?

吧什么存到session?

使用cookie记住加密的账号和密码

怎么把MyBatis整合到spring?

MyBatis的#和$区别?

MyBatis最重要的配置是数据库连接、SqlSession的创建和sql映射文件

可以将mybatis的数据库连接和SqlSession和对sql映射文件的扫描配置到spring配置文件

mybatis中#可以表示任何数据类型都可以,$单独表示数字

Mybites支持延迟加码吗?

原理是什么?

mybatis支持延迟加载

在查询的时候不会加载出关联表,但是需要用到关联表的时候,不需要再单独写查询语句,

mybatis会自动查询出需要的关联表信息

 

多态的了解?

Java支持多继承吗?

多态按字面的意思就是“多种状态”。

在面向对象语言中,接口的多种不同的实现方式即为

多态

不支持

String和stringbuffer的区别?

什么时候用string,什么时候用stringbuffer?

String和StringBuffer的区别在于String的内容是不可以修改的,而StringBuffer可以被修改,

String一旦被修改或者重新赋值,就会创建出一个新的对象

Hashmap和hashtable的区别?

Hashmap是有序还是无序?

继承的父类不同,hashtable继承自Dictionary类,HashMap继承自AbstractMap类

HashTable线程安全,应为它每个方法都加入了Synchronize,而HashMap是线程不安全的

怎么保证Java的线程安全?

Spring的IOC和AOP?

使用Synchronized关键字,也可以使用特殊变量Volatile

IOC控制反转,就是将设计好的对象交给spring容器来控制,对象内获取依赖对象的方式,

由原来的通过New来创建依赖对象,改变为

通过Spring容器来获取依赖对象

AOP,面向切面编程,它是一种思想,而不是一种实现,Java对Aop的实现有两种方式,

Filter和代理模式,

Spring的AOP是通过JAVA的代理模式来实现的,它是一种动态代理,以Spring的声明式

事务来说,调用Service层的方法时,根据

原来Service层的方法和Spring中配置的事务级别,来动态生成一个代理类,执行代理类的

 

代码而不是执行原来Service层中的代码

数据库用的是什么?

MySQL怎么创建或者自定义函数?

mysql

delimiter//

createfunctionfunction_name(参数列表)

returns返回值类型

begin

方法内部执行的代码

end//

触发器用过没有?

怎么在一个存储过程里面记住一个日志?

触发器没有用过

游标有用过吗?

MySQL怎么实现分页的?

如果一个SQL语句orderby一个字段性能比较慢

要怎么做?

常用的SQL优化手段?

游标没用过

mysql使用limit关键字实现分页

orderby性能慢可以在orderby的字段建立索引

前台做的多不,JQuery有几种选择器?

 

九种

常用的是基本选择器、层次选择器

“#”和“.”的区别?

Html的代码是从上往下执行区还是从下往上?

#是Id选择器,.是类选择器

HTML代码是从上到下执行的

有用过easyUI吗?

Ajax中post和get的区别?

EasyUI没用过

get一般传送一些简单数据,大小在1KB以下,数据会追加到url中

post的传送的数据量比get要大,因为它把数据作为HTTP消息的实体内容发送给WEB服

务器

图片服务器?

图片后台上传的?

图片上传怎么实现?

图片服务器怎么显示吗?

是http的地址还是什么?

直接写Nginx的路径,通过Nginx访问图片服务器

你自己负责的是什么?

推荐商品的表是怎么设计的?

 

讲一下springmvc?

springmvc的核心?

springmvc做配制的时候,怎么配制?

返回是

Json还是数据?

SpringMVC是一个基于MVC设计模式的框架,它的核心是HandlerMapping,SpringMVC的

配置很简单,只需要配置一个InternalResourceViewResolver,解析逻辑视图名,web.xml中,

需要配置一个Servlet,配置SpringMVC的拦截路径,

有用到maven吗?

怎么在本地仓库书写一个架包?

Tomcat怎么部署,session的过期时间

的优先级?

消息队列?

了解过吗?

Spingboot有了解没?

maven是用过的

一般来说,一个jar包要添加到项目中,是要添加到专门管理jar包的父工程中,其他模块

直接依赖父工程中的jar包就可以了

tomcat的部署,tomcat是依赖于jdk的,部署tomcat之前,首先要先安装jkd,有了

jdk,tomcat直接部署和到电脑或服务器上就可以了

程序中的配置>web.xml中的配置>tomcat的配置

讲一下hibernate?

hibernate和mybatis的最大区别?

性能上的区别?

hibernate是一个全自动化的orm实现,内部封装了jdbc操作和大量的sql语句

hibernate和mybatis最大的区别就是对orm的实现一个是半自动化,一个是全自动化,

简单来说就是mybatis需要编写sql语句,所以他的移植性比hibernate差,

如果换了一个数据库,hibernate只需要将方言修改一个,而mybatis基本上需要修改所有

的sql语句

 

讲一下面向对象OOP?

什么是面向对象编程?

Java中的构造函数?

面向对象是基于万物皆对象这个哲学观点.把一个对象抽象成类,具体上就是把一个对象的

静态特征和动态特征抽象成属性和方法

什么是构造函数?

什么是死锁?

JVM的垃圾回收机制?

构造函数就是在实例化对象的时候调用的方法

死锁就是在程序运行时,两个或两个以上的进程由于竞争资源或彼此通信造成的一种阻塞

的现象

jvm运行时,堆用来存放对象实例和数组,垃圾回收机制的主要作用就是自动释放堆里面

对象实例所占用的内存,

有引用指向对象的时候计数器会+1,不再被引用的时候计数器-1,GC会标记所有活着,也

就是计数器大于1的实例,将没有被标记的实例全部回收,释放内存

抽象和封装的不同点?

怎么唤醒一个线程?

储存过程用过吗?

怎么创建一个储存过程?

么建立一下索引?

oracle的优化?

在mybiets中怎么执行批量处理?

为什么说Mybites是半

自动化的ORM的?

与全自动化的区别?

抽象就是将类的特性提取出来,

而封装是将类的属性包装起来,提供一套get/set方法,供外界访问,

外界只需要知道他

的值是多少,而不需要知道他的其它信息

唤醒线程的话首先要讲线程阻塞或休眠,可以使用suspend方法使线程进入阻塞状态,

resume()方法可以将线程从阻塞状态唤醒

创建存储过程

delimiter//

createprocedureprocedure_name(参数列表)

begin

 

需要执行的sql语句

end//

创建索引

createindexindex_nameontable_name(column_name);

oracle优化:

合理的使用索引、使用where代替having、避免使用"*"进行查询、减少对数

据库的访问次数

批量处理可以使用存储过程

mybatis之所以是半自动化的orm实现,是因为他的sql语句需要开发人员自己编写,

这导致了它跟全自动化的orm实现比较起来,移植性低,但是整体来说比较轻量级,在中

小型项目中,mybatis的性能会高过hibernate

12、Xml映射文件会写一个dao接口和工作原理是什么?

xml?

是mybatis的映射文件吗?

mybatis的映射文件提供了一个dao接口,接口只提供方法的声明,而没有方法的实现,映

射文件为接口中的方法提供实现

用户发送请求到控制器,控制器调用业务处理,业务处理调用dao层查询数据库,mybatis

会在初始化的时候提供将mybatis的所有sql语句解析成mappedstatement对象

对象的id就是对应接口中的方法名,业务层调用dao层接口中的方法时,mybatis会根据

方法名也就是id来调用mappedstatement对象,执行sql语句

用过Javascript用ajax吗?

Ajax有什么参数?

一般用到什么?

在项目中有没有用到日志?

Xml有哪些解析技术?

ajax常用到的参数主要有:

type、data、datatype、success、error、url

日志是用的log4j

DOM、SAX

 

Nginx怎么配制的?

配制到哪里?

你了解反向代理吗?

原理是什么?

Nginx的配置主要是配置它的配置文件中的server

首先是端口listen

然后是urlserver_name

再来是location配置要读取的文件路径、url真实路径

Springmvc?

Struts了解不?

Struts和Springmvc的区别?

Websrvice了解吗?

struts用过但是了解不深

struts是类级别的拦截,Springmvc是方法级别的拦截

Springmvc中方法基本上是独立的,每个方法独享一个request、response数据

struts方法虽然也是独立的,但是方法之间是共享一个request、response

讲一下WebService的理解?

JMS有了解吗?

讲一下?

WebService是一种跨语言、跨平台的远程调用技术。

webService分为服务器端和客户端

服务器端暴露出Service接口,客户端调用service接口得到想要的数据

JMS,Java消息服务,JMS的客户端可以通过JMS服务进行异步消息传输

JMS有两种消息模型,P2P点对点和PUB/SUB发布订阅

点对点的概念就是发送者发送一条消息到消息队列,接收者接受这条消息(消费),接收者

成功接收消息之后需要向队列应答成功

 

Xml有什么解析技术?

对面向编程的理解?

什么是对象?

使用DOM解析XML

使用SAX解析XML

string是最基本的数据类型吗?

Java中有哪几种基本数据类型?

String不是基本数据类型,String在Java中是引用类型

Java中的基本类型有八种

char、boolean、byte、int、long、short、double、float

String是什么数据类型?

Int和integer的区别?

String是引用类型

int和Integer的区别就在于int是java的基本数据类型是一个值类型,Integer是包装类型,

是对int的包装

构造器可以被重写吗?

重写和重载的区别?

构造器不能被重写,重写和重载的去别在于

重写:

在子类在继承父类的时候,继承了父类的方法,但有时候父类的方法需要做一些调整,

这时候我们可以在子类中将父类的方法重写一个方法名相同,参数相同的方法

重载:

重载指在同一个类中可以有几个同名的方法,但是方法之间的参数是不同的

 

怎么创建储存过程?

讲一下事务?

为什么用到事务?

它的应用场景?

创建存储过程

createprocedureproc_name(params)

begin

sql

end

事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行

在有些业务中,比如电商项目的收款,收款的同时,要将用户的账户余额或银行卡余额扣

款,商品的数量减少,改变订单状态等等操作,涉及到的不止是一张表

一张以上的表如果同时修改的话,有可能会应为其中某一张表的操作出现错误,导致其他

操作也不能正常执行。

这时候就需要用到事务来管理这个操作

数据库mySQL常用函数?

count、avg、sum、max、min、year、month、day、hour、

简单说一下Java集合?

集合排序?

集合就是一个放数据的容器,准确的说是放数据对象引用的容器。

Hashtable?

Hashtale和hashmap哪个是线程安全的?

hashtable线程是安全的

 

单点登陆怎么实现的?

单点登录主要是实现在分布式系统中用户只需要在一个模块登录,登录的信息会共享到所

有的模块中

首先用户登录的话,要跳转到sso模块的登录页面中,或者将登录信息发送到sso中,如

果用户信息正确,登录成功,则将用户信息存入redis中

用redis来保存用户信息,这时候要生成一段口令,用来作为用户信息保存在redis中的键,

将口令保存到cookie中,其他模块只需要根据cookie中的口令

来查询redis中是否有这个用户信息,就可以判断出用户是否登录

消息队列MQ有几种模式?

点对点模式和发布/订阅模式

分布式的理解?

Dubbo

分布式就是将程序的模块拆分出来,每个功能模块负责自己的事情,各个模块之间通过

webservice服务来互相通信

dubbo是一个分布式服务框架

经常使用的框架有哪些?

SSM框架

简单说一下Springmvc实现逻辑?

怎么走的?

 

首先用户发送一个请求到DispatcherServlet

DispatcherServlet查找handlermapping找到处理请求的controller

controller调用业务处理

处理完之后返回modelandview

DispatcherServlet查询视图解析器找到modelandview指定是视图

解析视图,渲染视图,返回结果

Redis有用到吗?

怎样创建Redis?

标示redis创建成功的图形是什么?

在linux环境中,将redis的解压包解压缩

使用make命令编译文件夹

单机版的redis就创建好了

图形是redis是图标,一个立体的图标

构建maven有遇到什么问题?

本地仓库?

下载报错怎么处理?

jar包的冲突

删除之前下载的错误的jar包,重新下载,如果还是有问题,可以考虑换一个镜像地址

前端主要用了JQuery?

类选择器;标签选择器;ID选择器分别怎么用的?

类选择器使用"."+class的名称

ID选择器使用"#"+id的名称

标签选择器可以直接根据标签的名称来使用

 

数据库主用要用什么?

转换日期用的是什么?

(MySQL中的)

说一下SQL性能的优化?

创建一个索引之后,在查询的时候什么情况下失效?

简单说一下对MVC模式的理解?

http协议请求的方法里面有几种形式?

它们有什么区别?

除Tomcat没有用过其他服务器?

Tomcat配制服务器怎么做的?

对ajax的理解?

异步怎么设置成同步?

需要增加什么?

Jsp和servlet的区别?

 

在商家促销中的限时抢购是怎么实现的?

时间是怎么控制的?

怎么判断这个商品是抢购商

品?

优惠劵是怎么发给客户的?

项目有没有手机端?

商品交易管理的投诉管理是怎么实现

的?

投诉管理功能实现用了几张表?

投诉管理中怎么区别商家和用户发送信息的时间?

个功能模块的思路?

有与物流集成吗?

Solr全文搜索服务器有哪几种?

除了Jquery用过其他的框架吗?

解析XML的几种形式?

Jsp的内置对象?

在EL表中常用到哪些?

Ifelse什么情况下使用?

Switch

case什么情况下使用?

文件获取有没有用过?

现在有现在有一个文件,你怎么把文件拿出来?

并且读出文件里面的内容?

简单说一下你

的解析思路

Java的设计模式有哪些?

23种?

说一下单例模式?

或者23种中常用的?

对Tomcat服务器的优化?

有哪几种方式?

Java集合类框架有哪些集合?

往集合里添加元素那个不能添加重复的元素?

Arraylist和linkedlist的区别?

你比较常用的数据库的函数中对字符操作的函数有那些?

Oracle数据库连接查询有哪几种方式?

支付的话,主要实现了什么?

支付宝、微信、银联?

怎么调用接口?

怎么传值?

Springmvc的核心?

AOP、IOC的概念和理解?

 

Spring底层架构是用的哪种设置模式?

不用new怎么实例化一个实例?

加载的过程是什么

样的?

商城里高并发怎么处理的?

两个人同时占一个商品怎么处理?

简单说一下你对事务的理解?

用过Spring的定时器吗?

拦截器和过滤器的区别?

简单说一下你对MVC的理解?

Java的JDK更新到什么版本?

JDK和J2ee的区别?

Static的环境下能访问非Static变量吗?

Java的基本类型中哪些是值传递?

哪些是引用传递?

值传递和引用传递的区别?

多线程有没有用过?

创建多线程有几种方式?

线程在执行的时候有哪几种状态?

内连线、左连线、右连线的区别?

Unionon和union有用过吗?

数据库oracle中的分页怎么实现的?

怎么创建视图?

视图和表的区别?

数据库删掉表中的

内容有几种方式?

Delete和truncate的区别?

哪个删除之后可以恢复?

用什么恢复?

现在有一个需求,有一些商家信息是错误的。

有一个excel表格,里面有商家的正确信息,

要把这个表格里面的数据与需求中相匹配,怎么实现?

(直接用SQL操作)

1.hashmap和hashtable的区别

HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分

别。

主要的区别有:

线程安全性,同步(synchronization),以及速度。

(1)HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接

受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。

(2)HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线

程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不

 

能共享HashMap的。

Java

HashTable的扩展性更好。

5提供了ConcurrentHashMap,它是HashTable的替代,比

(3)另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的

enumerator迭代器不是fail-fast的。

所以当有其它线程改变了HashMap的结构(增加或者

移除元素),将会抛出ConcurrentModificationException,但迭代器本身的remove()方法移除

元素则不会抛出ConcurrentModificationException异常。

但这并不是一个一定发生的行为,

要看JVM。

这条同样也是Enumeration和Iterator的区别。

(4)由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap

要慢。

如果你不需要同步,只需要单一线程,那么使用HashMap性能要好过Hashtable。

(5)HashMap不能保证随着时间的推移Map中的元素次序是不变的

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1