面试概念题!!

什么是JNDI
关键字: JNDI 
JNDI全称 Java Naming and Directory Interface 
JNDI是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括LDAP、CORBA Common Object Service(COS)名字服务、RMI、NDS、DNS、Windows注册表等等。很多J2EE技术,包括EJB都依靠JNDI来组织和定位实体。 
JDNI通过绑定的概念将对象和名称联系起来。在一个文件系统中,文件名被绑定给文件。在DNS中,一个IP地址绑定一个URL。在目录服务中,一个对象名被绑定给一个对象实体。 
JNDI中的一组绑定作为上下文来引用。每个上下文暴露的一组操作是一致的。例如,每个上下文提供了一个查找操作,返回指定名字的相应对象。每个上下文都提供了绑定和撤除绑定名字到某个对象的操作。JNDI使用通用的方式来暴露命名空间,即使用分层上下文以及使用相同命名语法的子上下文。 
jndi的用途: 
1。你可以用jndi来得到object类的属性 
如:Attribute attr =directory.getAttributes(personName).get("email"); 
String email = (String)attr.get(); 
2。你可以用jndi来搜索对象 
如:foxes = directory.search("o=Wiz,c=US", "sn=Fox", controls); 
查找谁的名字叫Fox在wiz部门的员工? 
3。你可以用jndi通过naming/directory服务查询像printers和databases的对象 
如:查询 Printer 
Printer printer = (Printer)namespace.lookup(printerName); 
printer.print(document); 
4。你可以用jndi列表出命名空间的特殊级别的内容 
如: 
NamingEnumeration list = namespace.list("o=Widget, c=US"); 
while (list.hasMore()) { 
NameClassPair entry = (NameClassPair)list.next(); 
display(entry.getName(), entry.getClassName()); 
} 

EJB:Enterprise JavaBean介绍
http://windy2coast.iteye.com/blog/108903
http://ejbtt.iteye.com/blog/76972

SOAP(Simple Object Access Protocol )

JAVA虚拟机(JVM)的运行本质
LINUX权限问题
判断死锁的标准是什么
数据库存储过程以及相关单词的解释和用处
J2EE提供了哪些技术

Static、final、Abrstract、Interface
Static:用来声明类中的全局类变量,相对于实例变量。如下:
public class StaticTest
{
  int x=1;  //实例变量
  static int y=1;  //全局变量
public StaticTest()
{
   x++;
   y++;
}
public static void main(String[] args)
{
   StaticTest t1=new StaticTest();  //生成实例t1
   StaticTest t2=new StaticTest();  //生成实例t2
   System.out.println("t1.x="+t1.x);  //输出实例t1中的变量x
   System.out.println("t2.x="+t2.x);  //输出实例t2中的变量x
   //System.out.println("StaticTest.x="+StaticTest.x);//无法输出类StaticTest中的

变量x
   System.out.println("StaticTest.y="+StaticTest.y);//输出类StaticTest中的变量y
}
}
//执行后输出结果如下:
t1.x=2
t2.x=2
StaticTest.y=3
在上例中x为实例变量,y为全局变量。当生成StaticTest类的实例t1时系统为实例变量x、全局变量

y初始化分配空间,并执行方法StaticTest();生成第二个实例t2时重新初始化x为1、全局变量y此时

已经赋值为2,执行方法ststictest();实例变量无法由类直接引用,必须在生成实例后由实例进行

引用。

final:只用来修饰类及其的成员:变量、方法;final类无法继承、final变量无法修改、final方法

无法重写。如下:
public final class FinalTest
{
  final int i=10; 
  public FinalTest(){}
  public final int getNumber()
    {
      i =20;//i无法被再次处世化
      return i;
    }   
}
class FinalSub extends FinalTest{}//FinalTest无法被继承FinalSub
class FinalDemo 
  {
    final int getNumber()
      {
       return 10;
      }
  }
class FinalDemoSub extends FinalDemo
  {
    int getNumber(){return 20;}//getNumber()无法重写
  }

Abstract:用来声明类为抽象方法类,被Abstract声明的类中至少有一个方法被Abstract声明为抽象方法并且抽象方法中没有实现内容。含有抽象方法的类必须被声明为抽象类。
    抽象类无法创建对象,只能用来被继承,继承抽象类的子类必须重写所有父类中的抽象方法
。如:
public abstract class Account
  {
    public abstract String getName();
.....
  }

InterFace: 接口是抽象类的一个特例,接口中所有的方法必须为抽象方法,一个类可以实现多个接口,接口可以继承接口。

查看oracle中表的表名:
select   count(*)   from   dba_tables   where   TABLE_NAME   =   '表名'  
  select   count(*)   from   all_tables   where   TABLE_NAME   =   '表名'  
  select   count(*)   from   user_tables   where   TABLE_NAME   =   '表名' 

你可能感兴趣的:(oracle,linux,面试,ejb,SOAP)