Java 开发实习生面试题(1)

公司名:(HR)

一面:

面试题:

逻辑题(1)

 通过前两个图形的形状变换来确定,第三个图形变换后的形状。

基础测试题:

(1)工业4.0事()政府《高技术战略2020》确定的未来十大项目之一,已经成为国家战略。

A、美国     B、德国(真)C、中国  D、日本

  (2) 互联网思维中最重要的是(用户思维)

数据库:

表名 userinfo ,字段名 uname ,步长 5

写出该表中姓张的人员的所有信息,展示第八页的信息。

用mysql和oracle来写出对应的sql语句。

答:分页查询公式:select * from table limit (start-1)*limit,limit;

select uname from userinfo limit(8-1)*5,5

where uname = "张*"

Java基础

1、抽象类与接口的区别?

      抽象类:是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。

       接口:是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。具体见:http://www.importnew.com/12399.html

2.set集合和map集合去重时分别调用的哪种方法?结果是否相同?

看源码就发现hashSet是基于HashMap的hashSet的增加元素方法也是调用map的增加方法在此处判断是否重复,相同

      https://wenwen.sogou.com/question/q6435335238565953808.htm

3. 把D:\\JAVA 文件夹中内容复制到E:\\中?

答案见:

https://blog.csdn.net/NightChenRight/article/details/85217711

4.sleep()和wait()区别?

    对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。

     sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备,获取对象锁进入运行状态。

5.线程关闭的方式有几种?

      终止线程的三种方法
      1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。
      2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。
      3. 使用interrupt方法中断线程:
          (1)线程处于阻塞状态,如使用了sleep方法。
          (2)使用while(!isInterrupted()){……}来判断线程是否被中断。

二、web基础

1.servlet为什么被设计成单例多线程?

Servlet容器默认是采用单实例多线程的方式处理多个请求的:
1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在一个Servlet实例);
2.容器初始化化Servlet主要就是读取配置文件(例如tomcat,可以通过servlet.xml的<Connector>设置线程池中线程数目,初始化线程池通过web.xml,初始化每个参数值等等。
3.当请求到达时,Servlet容器通过调度线程(Dispatchaer Thread) 调度它管理下线程池中等待执行的线程(Worker Thread)给请求者;
4.线程执行Servlet的service方法;
5.请求结束,放回线程池,等待被调用;
(注意:避免使用实例变量(成员变量),因为如果存在成员变量,可能发生多线程同时访问该资源时,都来操作它,照成数据的不一致,因此产生线程安全问题)

从上面可以看出:
第一:Servlet单实例,减少了产生servlet的开销;
第二:通过线程池来响应多个请求,提高了请求的响应时间;
第三:Servlet容器并不关心到达的Servlet请求访问的是否是同一个Servlet还是另一个Servlet,直接分配给它一个新的线程;如果是同一个Servlet的多个请求,那么Servlet的service方法将在多线程中并发的执行;
第四:每一个请求由ServletRequest对象来接受请求,由ServletResponse对象来响应该请求;
2.jsp的作用域有哪些?

(1)page(2)request(3)session(4)a'pplication

https://www.cnblogs.com/whgk/p/6427759.html(详解)

3.转发和重定向的区别:

转发在服务器端完成的;重定向是在客户端完成的 
转发的速度快;重定向速度慢 
转发的是同一次请求;重定向是两次不同请求 
转发不会执行转发后的代码;重定向会执行重定向之后的代码 
转发地址栏没有变化;重定向地址栏有变化 
转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成

4.HTTP的请求方式有几种?分别时什么?

post、get、delete、head、put、option。

三、框架知识

1.struts2中的session的传值方式有几种?

两种,(1)通过ActionContext类中的方法getSession得到

             (2)通过Action实现org.apache.struts2.interceptor.sessonaware接口方式来对session进行操作

2.habernate中save()和merge()的区别?

save()的对象时临时对象,是将其先存入缓存中,进而变成持久对象。

merge()新new一个对象,如果对象设置了ID,则这个对象就当作游离状态处理:

当id在数据库中不能找到 时,用update的话肯定会报一场,然而用merge的话就会insert。

3。spring声明对象的方式有几种?

(1)构造函数创建对象

(2)通过静态方法创建对象

(3)通过工厂方法创建对象                                   链接:https://www.cnblogs.com/LiuChunfu/p/5574383.html

4.myBatis中$()和#()的区别?

#()输出的值为字符串型,默认加上“”

$()输入的值为直接输入,不需要加“”

5.Spring MVC和struts2的区别?

功能上后者高于前者,但效率上前者高于后者。

前者是方法拦截器,后者是类拦截器,所以前者从架构上更容易实现。

后者需要进行对每个request进行封装,所以比较耗费内存。

前者基本独立,所以编码上更加方便。

spring和springmvc是无缝链接。

验证方法上前者集成了ajax更方便。

 

 

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值