公司名:(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/12399.html
2.set集合和map集合去重时分别调用的哪种方法?结果是否相同?
看源码就发现hashSet是基于HashMap的hashSet的增加元素方法也是调用map的增加方法在此处判断是否重复,相同
https://wenwen.sogou/question/q6435335238565953808.htm
3. 把D:\\JAVA 文件夹中内容复制到E:\\中?
答案见:
https://blog.csdn/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://wwwblogs/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://wwwblogs/LiuChunfu/p/5574383.html
4.myBatis中$()和#()的区别?
#()输出的值为字符串型,默认加上“”
$()输入的值为直接输入,不需要加“”
5.Spring MVC和struts2的区别?
功能上后者高于前者,但效率上前者高于后者。
前者是方法拦截器,后者是类拦截器,所以前者从架构上更容易实现。
后者需要进行对每个request进行封装,所以比较耗费内存。
前者基本独立,所以编码上更加方便。
spring和springmvc是无缝链接。
验证方法上前者集成了ajax更方便。
更多推荐
Java 开发实习生面试题(1)
发布评论