首页 > 编程语言 > 详细

java知识汇总(第五天)

时间:2021-09-12 13:36:45      阅读:51      评论:0      收藏:0      [点我收藏+]
20、abstractclass和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体
现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建
abstract类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的
一个实例。不能有抽象构造函数或抽象静态方法。Abstract类的子类为它们父类中的所有抽
象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的
其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法
都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有
一个有程序体。接口只可以定义 staticfinal 成员变量。接口的实现与子类相似,除了该实现
类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种
接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象
类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口
类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
 
21、heap和stack有什么区别。
栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式
进行处理。堆是栈的一个组成元素
22、forward 和redirect 的区别?
forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内
容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿
来的,所以它的地址栏中还是原来的地址。
redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来
说浏览器会用刚才请求的所有参数重新请求,所以 session,request参数都可以获取。
23、EJB 与JAVABEAN 的区别?
Java Bean 是可复用的组件,对Java Bean 并没有严格的规范,理论上讲,任何一个 Java
类都可以是一个 Bean。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat)的,
所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口
用于实现 Bean 的持久性。Java Bean 实际上相当于微软 COM 模型中的本地进程内 COM 组
件,它是不能被跨进程访问的。Enterprise Java Bean 相当于 DCOM,即分布式组件。它是
基于 Java 的远程方法调用(RMI)技术的,所以EJB 可以被远程访问(跨进程、跨计算机)。
但 EJB 必须被布署在诸如 Webspere、WebLogic 这样的容器中,EJB 客户从不直接访问真正
的 EJB 组件,而是通过其容器访问。EJB 容器是 EJB 组件的代理, EJB 组件由容器所创建
和管理。客户通过容器来访问真正的 EJB 组件。
24、Static Nested Class 和Inner Class 的不同。
Static Nested Class 是被声明为静态(static)的内部类,它可以不依赖于外部类实例被
实例化。而通常的内部类需要在外部类实例化后才能实例化。
25、JSP中动态INCLUDE 与静态INCLUDE的区别?
动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="included.jsp" flush="true" />
它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE
用 include 伪码实现 ,定不会检查所含文件的变化,适用于包含静态页面 <%@ include
file="included.htm" %>
26、什么时候用assert。
assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。
在实现中,assertion 就是在程序中的一条语句,它对一个 boolean 表达式进行检查,一个正
确程序必须保证这个 boolean 表达式的值为 true;如果该值为 false,说明程序已经处于不正
确的状态下,系统将给出警告或退出。一般来说,assertion 用于保证程序最基本、关键的正
确性。assertion 检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion 检
查通常是关闭的。
27、GC 是什么? 为什么要有GC?
GC 是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,
忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的 GC 功能可以自
动监测对象是否超过作用域从而达到自动回收内存的目的,Java 语言没有提供释放已分配内
存的显示操作方法。
28、short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?
short s1 = 1; s1 = s1 + 1; (s1+1 运算结果是 int 型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
29、Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round 方法返回与参数最接近的长整数,参数加 1/2 后求其 floor.

java知识汇总(第五天)

原文:https://www.cnblogs.com/20183544-wangzhengshuai/p/15250314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!