来源于MLDN:

1.垃圾回收的优点和原理。

将无用的对象空间进行释放。两种回收:自动回收和手动回收。手动回收实际上就是调用System.gc(),调用此方法于调用了Runtime.getRuntime().gc()方法。

2.Error与Exception的区别。

Error由JVM进行处理,是JVM出错。Exception是可以由程序进行处理的。

3.匿名内部类是否可以extends其他类,是否可以实现interface?

允许继承或者实现,因为匿名内部类是在抽象类或者接口的基础上发展起来的。

4.Static Nested Class和Inner Class的不同

使用static声明的内部类就是外部类,可以通过外部类.内部类直接进行访问

普通的内部类是不能直接被外部所访问的,需要通过外部类实例在找到内部类的实例。

5.HashMap和HashTable的区别。

HashMap:采用异步处理方式,性能高,但是属于非线程安全。允许设置null。

HashTable:采用同步处理方式,性能较低,线程安全,不允许设置null。

6.GC是什么?为什么要GC?

GC是垃圾收集。使用GC可以进行垃圾空间的释放操作。

7.sleep()和wait()的区别

sleep()是Thread类中定义的方法,表示线程的休眠,会自动唤醒。Sleep不释放锁。

Wait是object中定义的方法,需要使用notify或者notifyAll方法唤醒。Wait释放锁。

8.Java中的那些类是满足单例模式?

Class类和Runtime类。
9.char能不能存中文?

能,因为使用的是Unicode编码。

10.多线程有几种实现方法?同步有几种方法?

多线程有两种方法:继承Thread类和实现Runnable接口。Thread类是Runnable接口的子类,使用Runnable接口可以实现资源共享的目的,所有的线程操作都必须使用Thread类的start方法启动。

实现同步的方法有两种:synchronized代码块和synchronized方法。

11.String和StringBuffer的区别?

String不能修改,StringBuffer能够修改。

12.Class.forName的作用是什么?

Class.forName属于向容器之中加载驱动程序。

13.说出类集合框架的完整结构。

类集框架最大的几个接口:Connection、Map、Interator、Enumeration

|-Connection:存放单值的:

|-List:允许有重复内容

|-ArrayList:异步处理,新的操作类,非线程安全

|-Vector:同步处理,旧的操作类,线程安全,支持Enumeration输出

|-Set:不允许有重复内容,依靠hashCode和equals记性重复的验证

|-HashSet:无序存放

|-TreeSet:有序排列,按照Comparable排序

|-Map:存放一对值

|-HashMap:新的类,异步处理,非线程安全,允许null

|-HashTable:旧的类,同步处理,线程安全,不允许为null

|-Properties:属性操作类

|-TreeMap:有序排列,按照key排序,根据Comparaable指定排序规则

|-Iterator:迭代输出,依靠Collection接口中的iterator方法输出,是新的输出标准。

|-Enumeration:旧的输出操作。

14.Sting能不能继承?

不能,因为使用final修饰。

15.JSP有哪些内置对象?(ROSEAPPRC(玫瑰应用发行版))

一共九个内置对象。

1.pageContext->javax.servlet.jsp.PageContet.表示页容器

2.request->javax.servlet.http.HttpServletRequest.服务器端取得客户端的信息

3.response->javax.servlet.http.HttpServletResponse.服务器端回应给客户端的信息

4.session->javax.servlet.http.HttpSession.表示每一个用户用于登录验证

5.application->javax.servlet.ServletContext.可以通过this.getServletContext()方法替代.表示整个服务器的上下文,常用方法是getRealPath()。

6.config->javax.servletServletConfig.取得初始化参数,在web.xml中配置

7.exception->java.lang.Throwable.表示错误页的处理操作

8.page->java.lang.Object.如同this一样,表示整个JSP页面。

9.out->javax.servlet.jsp.JspWriter.输出,尽量使用表达式输出。

16.JSP有哪些动作?

所谓的动作,指的是标签指令。

1.<jsp:include>:包含

2.<jsp:forward>:跳转

3.<jsp:useBean>:使用JavaBean

4.<jsp:setProperty>:设置属性,通过反射调用方法

5.<jsp:getProperty>:取得属性

6.<jsp:plugin>:插入Applet程序的代码

17.JSP中动态include与静态include的区别

动态include:<jsp:include>,如果包含的是动态页,则先编译之后再进行处理

静态include:<@include%>:直接将内容先包含后处理

18.两种跳转的方式分别是什么,什么区别?

服务器跳转:<jsp:forward>,跳转之后地址栏不改变,可以传递request属性,实际上是ResquestDispatch接口的封装。

客户端跳转:response.sendRedirect(),跳转之后地址栏改变。

19.总结Web开发中会话跟踪的实现。

1.session,最常用的一种

2.Cookie

3.地址重写

4.表单隐藏域

20.说明JSP中的errorPage的作用,应用范围。

表示错误页的操作,在一般的站点中,只要一个程序出现错误或者一行,则可以进行显示。简单的错误页基本上都是在JSP的开发中使用。要先使用errorPage需要满足:

1.       在错误处理的页面上的page指令中,增加isErrorPage=”true”

2.       在每个页面中指定errorPage,指定isErrorPage为true的页面

如果想要建立全局的错误处理,需要在web.xml中进行配置。

21.写JDBC连接Oracle的程序,实现查询。

1.定义一系列的全局常量:驱动路径、连接地址、用户名、密码

2.加载驱动程序

3.连接数据库

4.操作数据库,更新或查询

5.关闭数据库

Public static final String DBDRIVER = “oracle.jdbc.driver.OracleDriver”;

Public static final String DBURL = “jdbc:oracle:thin:@loalhost:1521:CONAN”;

Public static final String DBUSER = “scott”;

Public static final String DBPASSWORD = “tiger”;

Connection conn = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

String sql = “SELECT empno,ename,job FROM emp”;

Class.forName(DBDRIVER);

Conn.Drever,Manager.getConnection(DBURL,DBUSER,DBPASSWORD);

Pstmt=conn.prepareStatement(sql);

rs=pstmt.executeQuery();
while(rs.next())

{

Int empno = rs.getInt(1);

String ename = rs.getString(2);

String job = rs.getString(3);

}

Rs.close();

Pstmt.close();

Conn.close();//正着打开,反着关闭

22.JSP中如何实现分页操作?

分页分为真分页和假分页。

真分页:性能高,基于数据库的操作,只是从数据库中去纯白虎部分的数据进行显示,但可移植性低。

假分页:性能低,查询全部结果,之后依靠算法分页,可移植性高。

实现原理:

1.       定义一些列的变量:curruentPage、lineSize,计算出pageSize和allRecorders

2.       pageSize=(allRecords+lineSize-1)/lineSize

3.       之后的数据查询执行lineSize和currentPage进行数据的查询

4.       通过表单不断的修改currentPage和lineSize就可以实现分页显示

23.Servlet声明周期。

0.加载

1.初始化。正常一次,对应init()方法,有两个inti()方法,其中一个是ServletConfig对象,此方法存在则无参不调用,正常情况下在第一次使用Servlet的时候才进行初始化操作。当然,也可以通过在容器启动的时候自动进行初始化:<load-on-startup>

2.服务。服务多次。所有的服务都由services方法分配,主要由doGet和doPost。

3.销毁。正常一次,调用destroy方法。如果一个servlet长时间不使用,也会自动销毁,而当再次使用时也会重新初始化。

4.卸载。加载和卸载有容器处理。

24.Servlet中的forward和redirect的区别

Forward是RequestDispatcher接口定义的,而redirect是response定义的。一个是服务器端跳转,一个是客户端跳转。

25.MVC各部分的技术,如何实现。

MVC:MODEL、VIEW、CONTROLLER

|-Mode:JavaBean:业务处理、数据处理

|-View:最好不存在Scriptlet,可使用标签消除

|-Controller:控制,接受View传递的内容和调用JavaBean,并根据JavaBean的处理结果进行跳转。

实现原理:所有的JSP将内容提交给Servlet,Servlet接受这些内容并调用相应的JavaBean进行业务及数据的处理,JavaBean完成业务的操作。之后Servlet将其提交给JSP显示。

26.实现国际化的思路。

Local、属性文件、ResourceBundle

国际化程序的实现,是根据本机操作系统的语言类型,根据不同的属性文件,所有的程序代码基本一样,但是文字显示不一样,所以将内容作为属性文件出现之后,可以值显示属性文件中的字。

27.描述JSP和Servlet的区别、共同点、各自应用的范围。

JSP:先有Servlet,再有JSP。Servlet是在Java中嵌入HTML,JSP是在HTML中嵌入Java代码。

JSP可以完成的,Servlet都可以完成,但是对于过滤器、监听器只能由Servlet完成。

应用范围:JSP用于显示,Servlet用于控制。

28.简述web.xml的作用

称为部署描述符,在整个Java中是容器都会存在部署描述符,此部署描述符可以控制整个web中各个组件的运行状态。

北风网笔试面试精讲

1.    找奇数:public static Boolean isOdd(int i){return i%2==1;}

忽略了对负数进行考虑。比如-1%2就是false,但是-1是奇数。应该为return i%2!=0;

2.    浮点数想加减:System.out.pirntln(2.0-1.1);输出结果为0.9999999999

Java默认为double,因此输出的小数位数长。可改为System.out.printf(“%.2f”,2.0-1.1);输出为0.9.

3.    长整除:final long MICRO = 24*60*60*1000*1000;final MILL = 24*60*60*1000;System.out.println(MICRO/MILL);结果不为1000;

应该为:final long MICRO = 24L*60*60*1000*1000;final MILL = 24L*60*60*1000;因为之前都是int型,最终MICRO和MILL都是int型,计算式溢出。可以通过在其中一个数加上L提升整体的类型为long型。

4.    交换变量:int x =1948;int y = 2001; x^=y^=x^y=y;

C/C++中可以这样,但是Java中应该改为:y=(x^=(y^=x))^y

5.    System.out.proint(‘H’+’a’);

输出结果为169。因为单引号表示字符char,相加的会自动提升为int型。

6.    字符数组:char[] numbers = {’1’,’2’};System.out.println(number);输出为12.而如下语句System.out.println(“number”+number);输出为number@2342.

因为跟字符串运算时默认调用toStirng方法,数组的toString默认为Object的toString,打印出来的是hashCode。

7.         转义字符:System.out.println(“a\u0022.length()+\u0022b”.length());

输出结果为2。因为\u0022表示的是双引号的转义字符。

8.         打印输出类名:MyClass.class.getName().replaceAll(“.”,”/”+”.class”);

还是需要注意转义字符的使用。“.”应该改为“\\.”。

9.    StringBuffer的使用;

StringBuffer构造时有StringBuffer(int capacity),因此使用StringBuffer sb = new StringBuffer(‘p’);需要格外注意, ‘P’表示的是int类型的数!!!可改为“P”。

10.   Math.rand(-11.5)=-11.四舍五入往前如!

11.   I/O时finally中其实也不能写close关闭语句,因为close关闭语句也会抛出异常。

Java、Java Web面试题(来源于MLDN、北方网)相关推荐

  1. java web面试_超实用的Java web面试题

    Java web面试题 1.Tomcat的优化经验 答:去掉对web.xml的监视,把jsp提前编辑成Servlet. 有富余物理内存的情况,加大tomcat使用的jvm的内存 2.HTTP请求的GE ...

  2. Java Web解决跨域请求,java初级面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  3. java web面试题

    java web面试题 第1题.  编写一个Filter,需要() A.  继承Filter 类 B.  实现Filter 接口 C.  继承HttpFilter 类 D.  实现HttpFilter ...

  4. java web面试题大全_Java经典面试题之Java web开发汇总(附答案)

    1.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? 答:Web 容器加载Servlet 并将其实例化后,Servlet 生命周期开始,容器运行其init 方法进行Servle ...

  5. Java并发编程面试题(2020最新版)

    转载自  Java并发编程面试题(2020最新版) 基础知识 并发编程的优缺点 为什么要使用并发编程(并发编程的优点) 充分利用多核CPU的计算能力:通过并发编程的形式可以将多核CPU的计算能力发挥到 ...

  6. 分享18道Java基础面试笔试题

    转载自 分享18道Java基础面试笔试题(面试实拍) 1.你最常上的两个技术站和最常使用的两个app分別进什么?主要解决你什么需求? 2.请简述http协议中get请求和post请求的区别. 3.请简 ...

  7. java的xml面试题_Java程序员的10个XML面试问答

    java的xml面试题 XML面试问题在各种编程工作面试中非常受欢迎,包括针对Web开发人员的Java面试 . XML是一项成熟的技术,通常用作从一个平台传输数据的标准. XML面试问题包含来自各种X ...

  8. JAVA程序员面试题集合

    JAVA程序员面试题集合 分类: 编程语言 2012-12-08 12:10 50人阅读 评论(0) 收藏 举报 1.面向对象的特征有哪些方面 (1)抽象: 抽象就是忽略一个主题中与当前目标无关的那些 ...

  9. 第八十四期: Java、Web 和移动程序员学习的 12 个框架

    今天的文章中,我将分享一些你可以学习的框架,以提升你在移动和Web开发以及大数据技术方面的知识. 作者:芒果教你学编程 在今天的文章中,我将分享一些你可以学习的框架,以提升你在移动和Web开发以及大数 ...

  10. 2019 阿里Java 4轮面试题,含必考题答案参考!

    Java一面 hashmap源码问题 HashMap底层结构 put操作讲一下 HashMap.HashMap如何保证线程安全.ConcurrentHashMap JVM有哪些回收算法,对应的收集器有 ...

最新文章

  1. JAVA设计模式初探之——装饰者模式
  2. Boost:宏BOOST_NO_RTTI的使用实例
  3. 你与数据科学家只差这26条python技巧
  4. mysql按中文拼音字母排序_解析MySQL按常规排序、自定义排序和按中文拼音字母排序的方法...
  5. . Two Sum(C, C++, Python)
  6. bzoj 3513: [MUTC2013]idiots【生成函数+FFT】
  7. 如何用Apache POI操作Excel文件-----如何对一个单元格加注解?
  8. Js面向对象学习之function
  9. C# 判断输入的字符串是否只包含数字和英文字母
  10. 感觉非常经典的一片博文(关于缓存)
  11. Atitit 群控云控资料索引index cyonkon yunkon cyonkonYonkon群控云控方面资料.rar C:\Users\ATI\Documents\cyonkonYonko
  12. 人工智能数学之信息论
  13. 最全iOS12捷径库收集整理,iOS12捷径推荐
  14. 计算机基础单位:位,字节,兆等关系
  15. 万恶淫为首,此言不虚。举要言之,邪淫者有如下十大不如意果报:
  16. python 战舰_419. 甲板上的战舰(Python)
  17. 出现nginx: [emerg] unknown directive “]“ in /usr/local/openresty/nginx/conf/nginx.conf:74
  18. 违反卖家评论政策被警告了应该怎么操作?
  19. 二进制除法移位相减_二进制除法计算器
  20. [QNX Hypervisor 2.2用户手册]10.4 vdev hpet

热门文章

  1. Alex 的 Hadoop 菜鸟教程: 第7课 Hbase 使用教程
  2. mysql关联查询关键字_MySQL数据高级查询之连接查询、联合查询、子查询
  3. Docker修改MySQL默认端口
  4. Altium Designer 17安装教程
  5. Win10桌面背景(壁纸)导出工具
  6. <2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(八)—— 终篇总结
  7. 微信开通检测软件的原理及使用方法
  8. AlterID.exe 报错问题
  9. Eclipse| Eclipse安装中文版本教程
  10. 2021五一杯数学建模B题 消防救援问题