1、简述线程安全及死锁
2、http协议的最大不好处
3、如何实现事务管理?(发送邮件给对方,对方收到并打开邮件后再插入数据库一条数据)4、用C语言编写exe文件如何用java调用。
5、如何实现?通过门户网站访问asp应用(必须经过门户网站登陆,两个服务器不在一起)6、mvc模式相对客户不好的地方7、ORMapping 懒实例化
8、Struts控制器是否线程安全?Struts的action状态
9、Hibernate一级缓存和二级缓存分别放在什么地方?
10、servlet 线程的模式
11、jsp运行机制
12、java native interface
13、3种异常及区别

解决方案 »

  1.   

    面试的什么职位呢 
       怎么又有C 和  net的
    是JAVA 的还是 C#  方面的啊
      

  2.   

    回答13题
    在java里有3种异常类型:
    1.检查型异常,继承于Excetpion,在编译期间需要检查
    2.运行时异常,继承于RuntimeException,该类异常在编译时系统不进行检查
    3.系统错误,一般是JVM出现异常时抛出的异常
      

  3.   

    12题
    Java Native Interface,缩写即JNI,它允许Java代码和其他语言写的代码进行交互,简单的讲就是在Java中调用非Java代码。11题
    当有一个对JSP页面的客户请求到来时,JSP容器将JSP页面转换为Servlet源文件,然后调用javac工具类编译Servlet源文件生成字节码文件。然后,Servlet容器加载Servlet类,实例化一个对象处理客户端的请求,在请求处理完成后,响应对象被JSP容器接收,容器将响应信息反馈给客户端。
      

  4.   

    9.一级缓存放在session里 二级缓存放在 sessionfactory
      

  5.   

    这到底是面试什么职位啊  什么都考..
    1.死锁我的理解就是 A等待B B同时在等待A 最后就是A B都不能执行 也可以延伸到 C D E...
      

  6.   

    6、mvc模式相对客户不好的地方 
    这是问MVC的缺点么?
      

  7.   

    http协议的最大不好处 就是http是无状态的。
      

  8.   

    第一题:
    线程安全就是指在多线程处理时能够保证多线程对一个对象进行处理而不相互干扰,不出现“写后读”或“读后写”的状态
    死锁就是多个方法(或程序单元)各自手持一定的资源,等待别人占有的资源进行工作,从而造成任何一方都因不能得到足够资源而使得程序停止的状况。第二题:
    最大的不好处是一次数据传输需要多次“握手”,虽然保证了一定的正确性但时间消耗太多。第四题:
    是不是将C语言的程序编译成动态链接库文件,然后用Java库提供的loadLibrary()方法加载?第十二题:
    就是在Java里使用其他语言的接口。我也是初学者,不知道对不对,还望高人指点~!
      

  9.   

    8、Struts控制器是否线程安全?Struts的action状态 
    不是线程安全的,下一个应该是"struts的action的类型吧"?
      

  10.   

    1、线程安全就是并发操作,多个线程不可以同时修改一个数据或者数据块!死锁就是假设一个动作的执行需要三样物件!
    而这三个物件却在三个不同的线程手中!1等2,2等3,3等1!
    2、不安全吧!无状态!无连接!
    3、简单的可以用pv操作吧!hibernate中用乐观锁比较好吧!
    4、
    5、
    6、
    7、懒加载吧!就是在真正用到的时候,程序才会进行数据库操作!
    8、不是线程安全的!
    9、session和sessionfactory中!
    10、单实例的!
    11、先转换为servlet,在运行!
    12.jni 
    13、runtime exception和checked exception!前者无需捕获和抛出!后者必须!
      

  11.   

    1、简述线程安全及死锁 
        死锁和安全
         通常,当同时执行两个或两个以上的线程时,如果每个线程都占有一个资源并请求另一个资源,这时就会出现死锁情况。因为如果一个线程不能获取资源,则所有线程都不能继续执行,我们称那个特定的线程被阻塞;如果每个线程都由于同组中另一个线程所占有的资源而被阻塞,我们就称这个线程组被死锁。
         数据库死锁 
       在数据库中,如果一个连接占用了另一个连接所需的数据库锁,则它可以阻塞另一个连接。如果两个或两个以上的连接相互阻塞,则它们都不能继续执行,这种情况称为死锁。
         跨资源死锁 
         当死锁情况不完全局限于数据库时,将更难找到它。数据库对占有和请求的锁有识别能力,所以能检测整个数据库中的死锁;此外,数据库事务在确定哪些东西是原子、哪些不是方面提供了一个良好的界线,所以能轻松地回滚事务,使其从死锁中恢复。其他环境(如Java虚拟机)中的死锁或可跨环境的死锁更加危险,因为环境不能(或没有)检测到这些死锁并尝试恢复。更糟糕的是,这些死锁会产生综合效果——如果两个线程占有某些资源集时出现死锁,则其他任何尝试访问其中一个资源的线程也将被阻塞,该线程已经获取的所有资源也被阻塞。这些死锁常常不易发现,但对常见模式有一定的了解将有助于识别和修复死锁问题。
       在Java里,线程安全一般体现在两个方面: 
       1. 多个thread对同一个java实例的访问(read和modify)不会相互干扰,它主要体现在关键字synchronized。如ArrayList和Vector,HashMap和Hashtable(后者每个方法前都有synchronized关键字)。如果你在interator一个List对象时,其它线程remove一个element,问题就出现了。 
       2. 每个线程都有自己的字段,而不会在多个线程之间共享。它主要体现在java.lang.ThreadLocal类,而没有Java关键字支持,如像static、transient那样。
    2.http协议的最大不好处
     http协议不安全。例如:没有任何一家银行采用http 协议处理网银登录请求,这说明了什么?http 协议不安全
    3、如何实现事务管理
    Spring提供了很好的事务管理
    4.没太明白,直接调用就可以了,例如:
    public static void main(String[] args) {
       Runtime rn = Runtime.getRuntime();
       Process p = null;
       try
       {
        String str = "\"D:\\Program Files\\aaaa.exe\"" ;
        p = rn.exec(str);
       }
       catch (Exception e)
       {
        System.out.println("Error to run the exe");
       }
    }
    6.目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。
    7.Hibernate主要开发ORMapping(对象关系映射),通过对一个类的操作来代表对数据库的操作,用类的方法来代替SQL语句。...业务层采用spring框架的控制反转(依懒注入)管理业务层,使各层间藕合度大大减弱,使系统易于维护。
    8.是比较安全的,Action负责对系统数据状态的保持,而Action则负责根据业务逻辑的需要,对数据状态进行修改,在改变系统状态后,ActionForm则自动的回写新的数据状态并保持。
    9.一级缓存是session级,二级缓存是SessionFactory级别
    10.单线程模式和多线程模式,是不是问的这个?
    11.jsp运行分为转换阶段(translation phase)和执行阶段(execution phase)。当有一个对JSP页面的客户请求到来时,JSP容器检验JSP页面的语法是否正确,将JSP页面转换为Servlet源文件,然后调用javac工具类编译Servlet源文件生成字节码文件,这一阶段是转换阶段。接下来,Servlet容器加载转换后的Servlet类,实例化一个对象处理客户端的请求,在请求处理完成后,响应对象被JSP容器接收,容器将HTML格式的响应信息发送到客户端,这一阶段是执行阶段。
    12.JNI是Java Native Interface的缩写。从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许 J ava代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 
       使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少保证本地代码能工作在任何Java 虚拟机实现下。 
      

  12.   

    补充总结楼上:
    1、synchronized为关键,防止死锁。
    2、http协议是不经过加密的,所以可以被拦截后处理和查看请求的内容,所以不安全。
    3、事务的RollBack,commit等
    4、使用Runtime对象的exec方法。
    5、使用单点登录
    6、客户是感受不到MVC的,他只能在V层点来点去
    7、mapping配置文件中,Class节点配置lazy=”true”
    8、只要不配置单例,就是安全的。。就是在action中判断对象是否为空。action就是一个servlet
    9、同上
    10、servlet是单例多线程模式。
    11、编译成java类来执行。
    12、同上
    13、哪三种?
      

  13.   

    首先,这份面试题涵盖了相当多的知识,既有java基础也有流行框架,和一些设计,效率,优劣方面的问题,而且还有一些网络问题,
    以及java,c,.net之间调用和访问,可以说没有工作三年以上,没有过N个项目的人是不会遇到这些东东的....
    其次,不知道是哪家公司出的这份题,估计出题者是想看看应聘人的知识面的广泛程度以及面对问题的解决方案,可以说能把上述问题一一答对的人是不多的,所以也不毕怕(你答不对其它人也未必就会,只是通过这份题,出题者能从试卷上了解应聘人的情况罢了....)
    再次,各位不要被这份题目吓着,毕竟大多数出题者还是比较客观的,除了一些常用基础外,掌握几个常用框架,再加上一些项目经验,一般是不会有问题的,公司更多的是想要一个有"学习能力"的人,他不怕你不会,怕的是你学不会....