下面介绍的是java编程相关的基础知识:

1、EJB与JAVA BEAN的区别?

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组件。

2、Static Nested Class 和 Inner Class的不同。

Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

3、JSP中动态INCLUDE与静态INCLUDE的区别?

动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>

4、什么时候用assert。

assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。

5、GC是什么? 为什么要有GC?

GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

6、

  1. short s1 = 1; s1 = s1 + 1;
  2. short s1 = 1; s1 += 1;

有什么错?

  1. short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
  2. short s1 = 1; s1 += 1;(可以正确编译)   http://open.189works.com/product/product.htm

7、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

  1. Math.round(11.5)==12
  2. Math.round(-11.5)==-11

round方法返回与参数最接近的长整数,参数加1/2后求其floor.

8、String s = new String("xyz");创建了几个String Object?

两个

9、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。

  1. public class ThreadTest1{
  2. private int j;
  3. public static void main(String args[]){
  4. ThreadTest1 tt=new ThreadTest1();
  5. Inc inc=tt.new Inc();
  6. Dec dec=tt.new Dec();
  7. for(int i=0;i<2;i++){
  8. Thread t=new Thread(inc);
  9. t.start();
  10. t=new Thread(dec);
  11. t.start();
  12. }
  13. }
  14. private synchronized void inc(){
  15. j++;
  16. System.out.println(Thread.currentThread().getName()+"-inc:"+j);
  17. }
  18. $False$
  19. private synchronized void dec(){
  20. j--;
  21. System.out.println(Thread.currentThread().getName()+"-dec:"+j);
  22. }
  23. class Inc implements Runnable{
  24. public void run(){
  25. for(int i=0;i<100;i++){
  26. inc();
  27. }
  28. }
  29. }
  30. class Dec implements Runnable{
  31. public void run(){
  32. for(int i=0;i<100;i++){    http://open.189works.com/product/product.htm
  33. dec();
  34. }
  35. }
  36. }
  37. }

10、Java有没有goto?

java中的保留字,现在没有在java中使用。

11、启动一个线程是用run()还是start()?

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

12、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?

SessionBean:Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例。

EntityBean:Entity Beans能存活相对较长的时间,并且状态是持续的。只要数据库中的数据存在,Entity beans就一直存活。而不是按照应用程序或者服务进程来说的。即使EJB容器崩溃了,Entity beans也是存活的。Entity Beans生命周期能够被容器或者 Beans自己管理。

EJB通过以下技术管理实务:对象管理组织(OMG)的对象实务服务(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),开发组(X/Open)的XA接口。

13、应用服务器有那些?

BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat

14、给我一个你最常见到的runtime exception。

ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

15、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

16、List, Set, Map是否继承自Collection接口?

List,Set是,Map不是

17、说出数据连接池的工作机制是什么?

J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。

客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

18、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

都不能

19、数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。String有有length()这个方法。

20、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。 
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

21、构造器Constructor是否可被override?

构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

转载于:https://blog.51cto.com/189works/920453

JAVA编程语言的基础知识(2)相关推荐

  1. JAVA编程语言的基础知识(六)

    JAVA代码查错: 1. abstract class Name { private String name; public abstract boolean isStupidName(String ...

  2. 黑马程序员 一、java 概述与基础知识

    获取更多资源关注Java帮帮IT资源分享网 一.黑马程序员-java 概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果 的过程. 为了使 ...

  3. java 网络爬虫 正则表达式_【干货】Java网络爬虫基础知识

    原标题:[干货]Java网络爬虫基础知识 引言 Java 网络爬虫具有很好的扩展性可伸缩性,其是目前搜索引擎开发的重要组成部分.例如,著名的网络爬虫工具 Nutch 便是采用 Java 开发,该工具以 ...

  4. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  5. Java核心技术卷一基础知识第10版demo实例

    Java核心技术卷一基础知识第10版demo实例 第三章 JAVA的基本程序设计结构 3.7输入与输出 3.7.1读取输入 3.8控制流程 3.8.3循环 3.10数组 3.10.6多维数组 第四章 ...

  6. java的一些基础知识(引用BlogJava 落花飞雪)

     java的一些基础知识(引用BlogJava 落花飞雪) <Practical Java>笔记 1. 声明是什么? String s = "Hello world!" ...

  7. java to go 基础知识与区别入土指南

    java to go 基础知识与区别入土指南 文章目录 java to go 基础知识与区别入土指南 @[toc] 基础篇 关于基础类型 关于复合数据类型 关于切片 关于Map 关于sync.map ...

  8. 【Java】【基础知识】【Java的基本使用】

    [Java][基础知识][Java的基本使用] 基于jdk8 仅个人理解,或有疏漏 基于 java疯狂讲义 第三版和第四版 java核心技术卷一 第十版和第十一版 廖雪峰java课程 一.基本数据与结 ...

  9. Java 网络编程基础知识

    Java 网络编程基础知识 基础概念 计算机网络的基本概念 ​ 网络:多台计算机使用网络设备互联在一起,计算机之间可以进行通信,这样就组成了一个计算机网络. ​ 网络设备:集线器(HUB),路由器,交 ...

最新文章

  1. 7行Python代码,搭建可以识花的机器学习App|视频教程
  2. hadoop8088端口查看历史打不开,但是在虚拟机上可以打开的解决办法
  3. 如何做618数据复盘?你需要掌握这8大思路
  4. 006_CSS类选择器
  5. 总结Java访问权限
  6. 网站集成paypal快捷支付
  7. 广域网宽带接入技术九ADSL技术
  8. 飘刃 v0.0.10 首次发布,超快执行速度的 Vue 项目构建工具
  9. Python绘制圆锥曲线动画
  10. bootmgr快速修复win7_这可能是史上最简单的一键安装虚拟机win7系统了
  11. Photoshop之快速蒙版Q
  12. 冯诺依曼计算机的英文简称,冯诺依曼计算机,von neumann machine,音标,读音,翻译,英文例句,英语词典...
  13. 经济寒冬之后,是人工智能的春天
  14. FPGA入门实验-基于状态机实现串口回环收发
  15. 【Jetson Nano 入门】环境配置汇总
  16. C语言教程:十进制转换任意进制
  17. 联合办公空间该如何继续发展?
  18. 《医学免疫学:细胞因子》读书笔记
  19. PHP Startup: Unable to load dynamic library 解决办法
  20. 软件测试题目某市电话,软件测试题

热门文章

  1. Placement new的用法及用途【转】
  2. unity3D ——自带寻路Navmesh入门教程(一)(转)
  3. Windows10搭建PHP7开发环境
  4. IOS KVO与NSNotificationCenter简单使用
  5. eclipse maven plugin 插件安装和配置
  6. [转载]一个图形爱好者的书架/白话说学计算机图形学
  7. 重定向程序中的系统输入输出
  8. qcow2、raw、vmdk等镜像格式
  9. RAS、AES、DES加密
  10. 在SUM()行数中使用SQL变量导致不可预测结果