1.error 和Exception 有什么区别?
error 和 exception 均是表示异常<表示程序运行过程中可能出现的非正常状态>
是Throwable的子类
error :表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
excepetion:表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
若出现问题,用户可以用try-catch-fianlly来进行捕获
2.请写出你学过的不可被继承的类?**
String ,Byte等原始类型封装类,
3.String ,StringBuilder和Stringbuffer有什么区别***
3个都是final class
String :
字符串是常量;它们的值在创建之后不能更改
String 对象是不可变的,所以可以共享。
方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写
提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持:<字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的>
StringBuffer:
不同步
可以使用StringBuffers来动态构造字符数据。
线程安全的可变字符序列
通过某些方法调用可以改变该序列的长度和内容
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步
StringBuffer 上的主要操作是 append 和 insert 方法
StringBuilder:
不执行同步,所以速度更快
用在字符串缓冲区被单个线程使用的时候
在 StringBuilder 上的主要操作是 append 和 insert 方法
4.GC是什么?为什么要有GC?***
+GC:是垃圾收集器,垃圾收集器的唯一目的就是要将那些不能再为程序所用的内存恢复出来,释放该内存
+GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
5.面向对象的特征有哪些?
面向对象的特点:封装性,继承性,多态性,对象性
6.一个".JAVA"源文件是否可以包括多个类,有什么限制?
一个".JAVA"源文件可以包括多个类,这个源文件是被称为:宿主类,在宿主类中的类被称为:内部类
内部类只能被宿主类调用,其范围也仅限于宿主类
内部类可以访问宿主类的方法和数据成员
内部类对象的创建是与宿主类对象有关的。创建内部类的前提是要获得宿主类的reference
7.线程同步有哪些方法?***
wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
8.JAVA中会存在内存泄漏吗?请简单描述.****
JAVA中存在内存泄漏.
当一个对象引用另外的一个对象时,但是另外的那个对象不为实时会出现内存泄漏
9.J2EE是什么?它包含哪些技术?有哪些API?
J2EE(Java 2 Platform,Enterprise Edition)是SUN公司定义的一个开发分布式企业级应用的规范。它提供了一个多层次的分布式应用模型和一系列开发技术规范
它包含的技术:
1)组件技术
< J2EE的核心思想是基于组件/容器的应用。每个组件提供了方法、属性、事件的接口。组件可以由多种语言开发。组件是可以重用的、共享的、分布的。>
(2)Servlets和JSP
(3)EJB技术
< EJB规范提供了一种开发和部署服务器端组件的方法。每个EJB是按功能逻辑划分的,开发时不必关注系统底层细节问题,只关注具体的事务分析。EJB开发完毕后,按规范部署在EJB容器,完成相应的事务功能。EJB支持分布式计算。真正体现了企业级的应用。>
(4)数据库访问
提供了JDBC API使多种数据库操作简单、可行。>
(5)分布式通信技术
<分布式通信技术是分布式企业系统的核心技术。J2EE框架为Web应用和EJB应用提供多种通信模式。
为了使运行于某一机器上的对象调用另一台机器的对象,J2EE实现了如下通信方式:
Java RMI(Remote Method Invoke):远程方法调用
Java IDL(Java Interface Defilation Language):接口定义语言
JNDI(Java Naming and Directory Interface):Java命名和目录接口
JMS(Java Message Service):Java消息服务>
API:
10.请解释WSDL,UDDI 以及SOAP
WSDL:是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。
SOAP:即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。
UDDI: 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
11.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
Set里的元素是不能重复的,即不能包含两个元素e1、e2(e1.equals(e2))。那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
12.EJB与JAVA Bean 的区别?
+ EJB:EJB应用的基本模式是容器/组件应用模式。容器对应EJB服务器或应用服务器,如Weblogic Server等;组件就是EJB程序。
+ JAVABEAN:是一个轻量级的EJB
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组件。
13.char 型变量中能不能存储一个中文汉字?为什么?
char 型变量中能存储一个中文汉字。
因为一个中文汉字是2个字节,而char型变量的字节数是:16
14.Jsp和Servlet 有哪些相同点和不同点.它们之间的联系是什么?
JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
16.JAVA 中有哪几种访问修饰符?它们提供了哪些访问权限?
位置 private 默认 protected public
同一个类 是 是 是
同一个包内的类 否 是 是 是
不同包内的子类 否 否 是 是
不同包并且不是子类 否 否 否 是
18.JAVA中有哪些基本数据类型?所占用的内存空间为多少>?
byte 8
char 16
boolean 1
short 16
int 32
long 64
float 32
double 64
20.什么是checkedException?什么是runtimeException?写出你最常用的runtimeException
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类
最常用的runtimeException:
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBound***ception, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException