Skip to main content
 首页 » 编程设计

Java面试题带答案系列四

2022年07月19日149davidwang456

31中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。

(简单来说,中间件并不能提高内核的效率,一般只是负责网络信息的分发处理)

32(1)不管有没有异常抛出,finally{}代码块比return先执行

      (2)多个return是按顺序执行的,多个return执行一个后,后面的return就不会执行了。

33(1).启动一个线程的方法是 start()

      (2).结束线程用的是interrupt()方法,而stop()是强制结束线程,并不推荐使用,同时stop()方法已被弃用

      (3).daemon线程是守护线程,当主线程结束时,守护线程会自动结束

      (4).一个线程等待另外一个线程的方法是wait()方法

34

 

35AOP的概念是Aspected Oriented Programming 面向方面编程。

好处:AOP将程序分解成各个方面或者说关注点。这使得可以模块化,相当横向上分切了。它可以解决OOP和过程化方法不能够很好解决的横切(crosscut)问题,如:事务、安全、日志等横切关注

实现AOP有几种方式:

  (1). Spring 1.2版本中通过ProxyFactoryBean来实现aop,即通过动态代理来实现的,Aspect必须继承MethodBeforeAdvice,MethodAfterAdvice

  (2). Spring 2.0 AOP需要改的是FBI 这个类,而且它也不需要再实现某些接口

  (3). 三使用标注(@AspectJ)实现AOP

36AntMaven都是基于Java的构建(build)工具。理论上来说,有些类似于(UnixC中的make ,但没有make的缺陷。Ant是软件构建工具,Maven的定位是软件项目管理和理解工具。  

Ant特点:

没有一个约定的目录结构 ›必须明确让ant做什么,什么时候做,然后编译,打包 ›没有生命周期,必须定义目标及其实现的任务序列 ›没有集成依赖管理  

Maven特点:  

拥有约定,知道你的代码在哪里,放到哪里去 ›拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程 ›只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情 ›拥有依赖管理,仓库管理。

37hibernate延迟加载:

load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当 我们使用session.load()方法来加载一个对象时,此时并不会发出sql语句,当前得到的这个对象其实是一个代理对象,这个代理对象只保存了实 体对象的id值,只有当我们要使用这个对象,得到其它属性时,这个时候才会发出sql语句,从数据库中去查询我们的对象。

相对于load的延迟加载方式,get就直接的多,当我们使用session.get()方法来得到一个对象时,不管我们使不使用这个对象,此时都会发出sql语句去从数据库中查询出来。

38.计算机中以补码存储。

正数的原码/反码/补码相同,所以

10存储为00000000 00000000 00000000 00001010  

~10的原码为11111111 11111111 11111111 1111010110取反)

~10的反码为10000000 00000000 00000000 00001010(最高位符号位,不变,其余位取反)

~10的补码为10000000 00000000 00000000 00001011(负数的补码=反码+1)

所以~10 = -11

39.要注意的是 switch结构中没有break的话,匹配完不会跳出,会继续匹配下一个case直到整个结构结束。

40Servlet的生命周期一般可以用三个方法来表示:

  init():仅执行一次,负责在装载Servlet时初始化Servlet对象

  service() :核心方法,一般HttpServlet中会有get,post两种处理方式。在调用doGetdoPost方法时会构造servletRequestservletResponse请求和响应对象作为参数。

  destory():在停止并且卸载Servlet时执行,负责释放资源

  初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法。


本文参考链接:https://www.cnblogs.com/wgl1995/p/5841480.html