• 知识大全集


    1. struts1的Action是线程不安全的,struts2却是安全的

    2.spring的主要作用在于使j2ee的开发变得简单

    3.ExtJs与jQuery优缺点

      ext:

        100%面向对象和组件化的思想,一致的语法,全局的命名空间

        Ext简化了很多工作,让开发更简洁,更方便,但也带来了很多麻烦,给我们留下了更小的选择空间,

       缺点:

        为重量级的框架(包含大量UI),体积大。较复杂。

      jquery:

        优点:

        体积小

        jQuery兼容性良好

        局域网里面我们可以使用EXT,但是在互联网上请优先jQuery

        缺点:

        由于设计思想是追求高效和简洁,没有面向对象的扩展。

    4. java支持的数据类型有五种

    他们分别是:

    byte、char、short、int、枚举 

    以上是JDK1.6以前的版本。JDK1.7时,又增加了String,所以相对于JDK1.7而言就是六种了

    5.java实现同步的方法有2种:分别是synchronized,wait与notify

    6.为何不能使用stop和suspend方法

    反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,当在一个线程对象上调用stop()方法时,这个线程对象所运行的线程就会立即停止,假如一个线程正在执行:synchronized void { x = 3; y = 4;} 由于方法是同步的,多个线程访问时总能保证x,y被同时赋值,而如果一个线程正在执行到x = 3;时,被调用了 stop()方法,即使在同步块中,它也干脆地stop了,这样就产生了不完整的残废数据。而多线程编程中最最基础的条件要保证数据的完整性,所以请忘记线程的stop方法,以后我们再也不要说“停止线程”了。而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果 很难检查出真正的问题所在。

    suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此 时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就 会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用 wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程

    7.集合类的判断相等

     List 集合: 被比较的对象要重写equals()方法, 调用List中contains()方法,就是用equals()方法比较的.

                      List 集合 (允许重复元素,允许空值) 

     HashSet集合(不允许重复元素,允许空值): 被比较的对象要重写hashCode()方法和重写equals()方法, 两个都要. 

     TreeSet集合.(不允许重复元素):

        方法一:被比较的对象(如学生类)实现Comparable接口,重写CompareTo()方法.--(不允许空值)

        方法二:TreeSet的构造方法,传入Comparator接口的实现类,他是重写了compare()方法.--(允许空值) 

     HashMap集合: 与HashSet情况一样. 

     TreeMap集合: 与TreeSet情况一样.  

      顺便说一下, 对List排序可用Collections类的sort()方法.要用到Comparable或Comparator接口.

    8.list和set继承自collection接口,map不是。

    9.线程的基本状态及状态之间的关系

    程的基本概念:线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。

    Java中的线程有四种状态分别是:运行、就绪、挂起、结束。
    一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每个线程上都关联有要执行的代码,即可以有多段程序代码同时运行,每个程序至少都有一个线程,即main方法执行的那个线程。如果只是一个cpu,它怎么能够同时执行多段程序呢?这是从宏观上来看的,cpu一会执行a线索,一会执行b线索,切换时间很快,给人的感觉是a,b在同时执行,好比大家在同一个办公室上网,只有一条链接到外部网线,其实,这条网线一会为a传数据,一会为b传数据,由于切换时间很短暂,所以,大家感觉都在同时上网。
    状态:就绪,运行,synchronize阻塞,wait和sleep挂起,结束。wait必须在synchronized内部调用。
    调用线程的start方法后线程进入就绪状态,线程调度系统将就绪状态的线程转为运行状态,遇到synchronized语句时,由运行状态转为阻塞,当synchronized获得锁后,由阻塞转为运行,在这种情况可以调用wait方法转为挂起状态,当线程关联的代码执行完后,线程变为结束状

    10.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized

    都不可以,因为abstract申明的方法是要求子类去实现的,abstract只是告诉你有这样一个接口,你要去实现,至于你的具体实现可以是native和synchronized,也可以不是,抽象方法是不关心这些事的,所以写这两个是没有意义的。然后,static方法是不会被覆盖的,而abstract方法正是要子类去覆盖它,所以也是没有意义的。所以,总的来说,就是java语法不允许你这样做,事实上,也没有意义这样做。

     

     

  • 相关阅读:
    2016.7.22.noip2012D2
    2016.7.21.noip2014D2
    LIS最长上升子序列O(n^2)与O(nlogn)的算法
    vijos1910解方程
    vijos1909寻找道路
    viojs1908无线网路发射器选址
    P1907飞扬的小鸟
    P1906联合权值
    P1905生活大爆炸版 石头剪刀布
    poj1274(匈牙利算法)
  • 原文地址:https://www.cnblogs.com/jianglong-liang/p/4340888.html
Copyright © 2020-2023  润新知