面试题及答案(基础题  
        
      道,代码题  
        
      道) 
     
 
     
          
       相关基础知识 
     
 
     
          
      、面向对象的特征有哪些方面 
       
     
 
     
          
      抽象: 
     
 
     
          
      抽象 
      就是 
      忽略 
      一个 
      主题 
      中与 
      当前 
      目标 
      无关 
      的那 
      些方 
      面, 
      以便 
      更充 
      分地 
      注意 
      与当 
      前目 
      标 
     
 
     
       有关 
      的方 
      面。 
      抽象 
      并不 
      打算 
      了解 
      全部 
      问题 
      ,而 
      只是 
      选择 
      其中 
      的一 
      部分 
      ,暂 
      时不 
      用部 
      分细 
      节 
     
 
     
       抽象包括两个方面,一是过程抽象,二是数据抽象。 
     
 
     
          
      继承: 
     
 
     
          
      继承 
      是一 
      种联 
      结类 
      的层 
      次模 
      型, 
      并且 
      允许 
      和鼓 
      励类 
      的重 
      用, 
      它提 
      供了 
      一种 
      明确 
      表述 
      共java面试基础代码题及答案 
     
 
     
       性的 
      方法 
      。对 
      象的 
      一个 
      新类 
      可以 
      从现 
      有的 
      类中 
      派生 
      ,这 
      个过 
      程称 
      为类 
      继承 
      。新 
      类继 
      承了 
      原 
     
 
     
       始类 
      的特 
      性, 
      新类 
      称为 
      原始 
      类的 
      派生 
      类( 
      子类 
      ), 
      而原 
      始类 
      称为 
      新类 
      的基 
      类( 
      父类 
      )。 
      派 
     
 
     
       生类 
      可以 
      从它 
      的基 
      类那 
      里继 
      承方 
      法和 
      实例 
      变量 
      ,并 
      且类 
      可以 
      修改 
      或增 
      加新 
      的方 
      法使 
      之更 
      适 
     
 
     
       合特殊的需要。 
     
 
     
          
      封装: 
     
 
     
          
      封装 
      是把 
      过程 
      和数 
      据包 
      围起 
      来, 
      对数 
      据的 
      访问 
      只能 
      通过 
      已定 
      义的 
      界面 
      。面 
      向对 
      象计 
      算 
     
 
     
       始于 
      这个 
      基本 
      概念 
      ,即 
      现实 
      世界 
      可以 
      被描 
      绘成 
      一系 
      列完 
      全自 
      治、 
      封装 
      的对 
      象, 
      这些 
      对象 
      通 
     
 
     
       过一个受保护的接口访问其他对象。 
     
 
     
          
      多态性: 
     
 
     
          
      多态 
      性是 
      指允 
      许不 
      同类 
      的对 
      象对 
      同一 
      消息 
      作出 
      响应 
      。多 
      态性 
      包括 
      参数 
      化多 
      态性 
      和包 
      含 
     
 
     
       多态 
      性。 
      多态 
      性语 
      言具 
      有灵 
      活、 
      抽象 
      、行 
      为共 
      享、 
      代码 
      共享 
      的优 
      势, 
      很好 
      的解 
      决了 
      应用 
      程 
     
 
     
       序函数同名问题。 
     
 
     
          
      、 
       是最基本的数据类型吗 
       
     
 
     
         基本数据类型包括 
        
      、 
      、 
      、 
      、 
      、 
      、 
       和 
        
      。 
     
 
     
        
       
        
      类是  
       
        
      类型的,因此不可以继承这个类、不能修改这个类。为了提高效 
     
 
     
       率节省空间,我们应该用 
        
      !" 类 
     
 
     
          
      、 
      和 
      #有什么区别 
     
 
     
          
      提供两种不 
      同的类型:引 
      用类型和原始 
      类型(或内置 
      类型)。 
       
      # 是 
        
       的原始数 
     
 
     
       据类型, 
      # 是 
        
       为  提供的封装类。 为每个原始类型提供了封装类。 
     
 
     
         原始类型封装类 
     
 
     
          
         
      ! 
     
 
     
          
         
      $ 
     
 
     
          
         
      ! 
     
 
     
          
         
       
     
 
     
          
         
      # 
     
 
     
          
         
      % 
     
 
     
          
         
      & 
     
 
     
          
         
      ' 
     
 
     
          
      引用 
      类型 
      和原 
      始类 
      型的 
      行为 
      完全 
      不同 
      ,并 
      且它 
      们具 
      有不 
      同的 
      语义 
      。引 
      用类 
      型和 
      原始 
      类 
     
 
     
       型具 
      有不 
      同的 
      特征 
      和用 
      法, 
      它们 
      包括 
      :大 
      小和 
      速度 
      问题 
      ,这 
      种类 
      型以 
      哪种 
      类型 
      的数 
      据结 
      构 
     
 
     
       存储 
      ,当 
      引用 
      类型 
      和原 
      始类 
      型用 
      作某 
      个类 
      的实 
      例数 
      据时 
      所指 
      定的 
      缺省 
      值。 
      对象 
      引用 
      实例 
      变 
     
 
     
       量的缺省值为 
      ,而原始类型实例变量的缺省值与它们的类型有关。 
     
 
     
          
      、 
      和 
        
      !" 的区别 
     
 
     
         
        
       平台提供了两个类: 和 !",它们可以储存和操作字符串,即包含 
     
 
     
       多个 
      字符 
      的字 
      符数 
      据。 
      这个 
        
       类 
      提供 
      了数 
      值不 
      可改 
      变的 
      字符 
      串。 
      而这 
      个 
        
      !" 类 
     
 
    
 
    
       提供 
      的字 
      符串 
      进行 
      修改 
      。当 
      你知 
      道字 
      符数 
      据要 
      改变 
      的时 
      候你 
      就可 
      以使 
      用 
        
      !"。典型 
     
 
     
       地,你可以使用 
        
      !" 来动态构造字符数据。 
     
 
     
          
      (、运行时异常与一般异常有何异同? 
     
 
     
       异常 
      表示 
      程序 
      运行 
      过程 
      中可 
      能出 
      现的 
      非 
       
      正常 
       
      状态 
      ,运 
      行时 
      异常 
      表示 
       
      虚拟机的通 
      常操 
      作中 
      可 
     
 
     
       能 
      遇到的异 
      常 
      ,是 
      一 
      种常 
       
      见运 
      行 
      错误。 
       
       编译器要 
       
      求方法 
       
      必须声明 
       
      抛出可 
      能 
       
      发生 
      的 
      非运 
     
 
     
       行时异常, 
      但是并不要 
      求必须声明 
      抛出 
      未被 
      捕获的运行时异常。 
     
 
     
          
      )、 
      说出 
        
       的生 
      命周期,并 
      说出 
        
       和 
        
      $*# 的区别。 
     
 
     
        
        
      被服务器实例化后,容器运行其  
        
      方法,请求到达时运行其  
        
      方法, 
     
 
     
       方法自动派 
       
      遣运行与 
      请求对应的 
        
      +++ 方法(*,,)等,当服务器决定将实例销 
     
 
     
       毁 
      的时候调 
      用其  方法。 
     
 
     
       与 
        
       的 
      区 
      别 
      在于 
        
       处于 
       
      服务器进 
      程中 
      , 
      它通 
      过 
      多 
       
      线程 
      方 
       
      式运行 
      其 
        
       方 
      法 
      ,一 
      个 
     
 
     
       实例 
      可 
      以 
      服务于 
      多个 
       
      请求, 
      并 
      且其 
      实 
      例一 
      般 
      不 
       
      会销毁, 
      而 
        
      $*# 对 
      每个 
       
      请求都产生新 
      的 
      进程 
      , 
     
 
     
       服务 
      完成后 
      就销毁 
      ,所以效率上低 
      于 。 
     
 
     
          
      -、 
      说出 
        
      %..%/% 的存储性能和特性 
     
 
     
        
      % 
        
      和  
       
       
        
      都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增 
     
 
     
       加和 
       
      插入元素,它 
      们 
       
      都允 
      许 
      直接 
      按序 
      号索引 
       
      元素, 
      但是 
      插入元素要 
       
      涉及 
      数 
       
      组元素移动 
      等内 
     
 
     
       存操 
      作, 
      所以 
       
      索引 
      数据 
       
      快而 
      插入数 
      据 
      慢, 
       
       由于使用了 0 方法(线程安全), 
     
 
     
       通常性能 
      上较 % 差,而 %/% 使用双向链表实现存储,按序号索引数据需要进行 
     
 
     
       前向或 
      后向 
      遍历, 
      但是 
      插入数据时只需要 
      记录本 
      项的前 
      后项即可,所以 
      插入速度 
      较快。 
     
 
     
          
      1、 
      2! 是基于哪些 
      技术实现的?并 
      说出 
        
      ! 和 
        
      23! 的区别, 
      4! 
     
 
     
       和 
        
      ! 的区别。 
     
 
     
       2! 
        
      包括  
       
      ! 
       
      、23 
      ! 
       
      、5 
      ' 
      ! 
       
      ,基于 6'# 
       
      、75# 
       
      、 
      8 
        
      等技术实 
     
 
     
       现。 
     
 
     
       ! 
        
      在 22 
        
      应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调 
     
 
     
       用其他 
        
      2! 组件。 
      23! 被用来代表应用系 
      统中用 
      到的数据。 
     
 
     
       对于 
      客户机, 
      ! 是一种非 
      持久性对象,它实现某些 
      在服务器上运行的 
      业务逻辑。 
     
 
     
       对 
      于 
      客户机, 
       
      23! 是 
      一 
      种 
      持久性 
      对 
      象 
      , 
      它 
      代表 
      一 
      个 
      存 
      储 
       
      在持久性 
      存储 
       
      器中 
      的 
      实 
       
      体的 
     
 
     
       对象 
      视图,或是一个 
      由现有 
      企业应用程序实现的实 
      体。 
     
 
     
        
       
      ! 
        
       
      还可以再细分为 
       4 
       
       
       
      ! 
        
        
      与 
       
       
       
       
       
      ! 
       
        
      ,这两种的 
     
 
     
       ! 
        
      都可以将系统逻辑放在9 
        
      之中执行,不同的是 
      4! 
       
       
      可以 
     
 
     
       记录呼 
      叫者 
      的状 
      态,因此通常来说 
      ,一个使用者会 
      有一个相对应的 4!的 
     
 
     
       实 
      体。 
      !虽然也是 
      逻辑组件, 
      但是他 
      却不 
      负责记录使用 
      者状态 
      , 
      也就是 
     
 
     
       说 
       
      当使用者 
      呼 
      叫 
       
      !的时候,2!$并不会 
      找 
      寻 
       
      特定的 
     
 
     
        
      ! 
       
      的实体来执行这个 
      9 
      。换言之,很可能数个使用者在执行某个 
       
     
 
     
        
       
      ! 
       
       
      的 
      9 
       
       
      时,会是同一个 
      ! 
       
       
      的 
      # 
       
       
       
      在执行。从内存方面来看, 
     
 
     
        
      4! 
       
      与! 
      比较, 
      4! 
       
      会消耗22 
     
 
     
       较 
      多的内存,然 
      而4!的优势却在于他可以维持使用者的状态。 
     
 
     
          
      、 
      $3和 
      $3 的区别。 
       
     
 
     
          
      $3 是 
      集合类的 
      上级接口,继承与他的接口主要有 
        
      和 
        
      % 
     
 
     
         
        
       
      $3 是 
       
      针对 
      集合类 
      的 
      一 
      个 
       
      帮助类 
      ,他 
      提 
      供 
      一 
      系 
      列 
       
      静态方 
      法 
      实 
      现 
      对 
       
      各种 
       
      集合 
      的 
      搜 
     
 
     
       索 
      、排 
      序、线 
      程安 
      全化等 
      操作。 
     
 
     
          
      :、 
      ;和 
      ;;的区别。 
       
     
 
     
       ; 
      是位运算符,表示按位与运算,;; 
      是逻辑运算符,表示逻辑与( 
      )。 
     
 
    
 
    
          
      、 
      <5= 和 
        
      < 的区别。 
       
     
 
     
         
        
      <5= 是 
        
      < 的 
       
      轻量 
       
      级实 
      现( 
      非 
       
      线程 
       
      安全 
      的 
      实现 
      ) 
      , 
      他 
      们 
       
      都完 
      成了 
        
      5= 接 
      口 
      , 
     
 
     
       主 
      要 
      区 
      别 
       
      在于 
        
      <5= 允 
      许 
      空 
      ( 
       
      ) 
       
      键值 
      ( 
       
      /).由于非线程安全,效率上可能高于 
     
 
     
       < 
       
      。 
     
 
     
       <5= 
        
      允许将  
        
      作为一个  
        
      的 / 
        
      或者  
      ,而 < 
       
        
      不允许。 
     
 
     
       <5= 
        
      把 < 
       
        
      的  
       
        
      方法 去 掉 了 , 改成  
       
       
        
      和  
      > 
       
        
      。 因 为 
     
 
     
        
       
        
      方法容易让人引起误解。 
     
 
     
       < 
       
        
      继承自 '3 
        
      类,而 <5= 
        
      是  
        
      引进的 5= 
      4 
        
      的一个实现。 
     
 
     
       最 
      大 
      的 
      不 
      同 
      是 
      , 
       
      < 的方法是 0 的,而 <5= 不是,在多个线程访问 
     
 
     
       < 
       
        
      时,不需要自己为它的方法实现同步,而 <5= 
       
       
      就必须为之提供外同步(如 
     
 
     
       果 
       
      是 %:%?$30%@A%@BBC如果是 <5=:5= 
     
 
     
       9=?$3 
       
      0 
      5=@A<5=@BBC 
      )。 
     
 
     
       < 
       
        
      和 <5= 
        
      采用的 D 
        
      算法都大概一样,所以性能不会有很大的差异。 
     
 
     
          
      、 
       . . 0 的区别。 
     
 
     
          
       用于 
      声明 
      属性,方法和类,分别表示 
      属性不可变,方法不可 
      覆盖,类不可继承。 
     
 
     
        
        
      是异常处理语句结构的一部分,表示总是执行。 
     
 
     
       0 
       
        
      是 E 
        
      类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可 
     
 
     
       以 
      覆盖此方法提供 
      垃圾收集时的其他 
      资源回收,例 
      如关 
      闭文件等。 
     
 
     
          
      、 
      =@B和 
      A@B有什么区别 
       
     
 
     
          
      = 是 
      线程类( 
       
      8)的 
      方法, 
       
      导致此 
       
      线程暂 
       
      停执行指定 
      时间, 
       
      给执行 
       
      机会给其他 
     
 
     
       线 
      程,但 
      是监控状 
      态依然 
      保持 
      ,到 
      时后会 
      自动恢复 
      。调 
      用 = 不会释放 
      对象锁 
      。 
     
 
     
       A 
        
      是 E 
        
      类的方法,对此对象调用 A 
        
      方法导致本线程放弃对象锁,进入等待此对象 
     
 
     
       的 
      等待锁定 
       
      池,只有 
      针对 
      此对象 
      发出 
        
      34 方 
      法(或 
        
      34) 
      后本 
      线程 
      才进 
      入对象 
       
      锁定 
      池 
     
 
     
       准备获得 
      对象锁 
      进入 
      运行状 
      态。 
     
 
     
          
      、 
      E 和 
        
      E 的区别。 
      E 的方法是 
      否可以改变 
      返回值的类型 
       
     
 
     
         
        
      方 
      法 
      的 
      重 
       
      写 E 和 
      重 
       
      载 E 是 
        
       多 
      态 
      性 
      的 
      不 
      同 
      表 
      现 
      。 
      重 
       
      写 E 
     
 
     
       是父类与子 
      类之间多态性 
      的一种表现, 
      重 
      载 E 是一个类中多 
      态性的一种表 
      现。 
      如 
     
 
     
       果在 
      子类中定义某方法与其父类有相同的名称和参数,我们说 
      该方法被重写 
       
      @EB。 
     
 
     
       子 
      类 
      的 
      对 
      象 
      使 
      用 
      这 
      个 
      方 
      法 
      时 
      , 
       
      将调用 
      子 
      类 
      中 
      的 
      定 
      义 
      , 
      对 
      它 
      而 
      言 
      , 
      父 
      类 
      中 
      的 
      定 
      义 
       
      如同 
      被 
       
      “屏 
     
 
     
       蔽” 
      了。如 
      果在 
      一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数 
     
 
     
       类型, 
      则称为方法的重 
      载@EB。 
      E 的方法是可以改变 
      返回值的类型。 
     
 
     
          
      (、 
       和 
        
      F=3 有什么区别 
     
 
     
          
      表示 
       
      恢复不是不可 
      能 
      但很 
      困难的 
       
      情况下的 
      一种 
      严重问题 
      。 
      比如说内存 
       
      溢出。不可 
     
 
     
       能指 
      望程序能 
      处理这 
      样的 
      情况。 
     
 
     
          
      F=3表示一 
      种 
      设计 
      或实现 
      问题。 
       
      也就 
      是 
      说, 
      它表示 
       
      如果程 
      序运行 
       
      正常, 
      从不 
       
      会发 
     
 
     
       生的 
      情况。 
     
 
     
          
      )、同 
      步和异 
      步有何异同, 
      在什么 
      情况下分别使用他们? 
      举例 
      说明。 
     
 
     
       如果 
       
      数据将在 
      线 
      程间共享。例如正 
      在写 
       
      的数据以后 
      可能被另 
      一个线 
       
      程读 
      到 
       
      ,或者正 
      在读 
       
      的 
     
 
     
       数据可能已 
      经被 
      另一个 
      线程 
      写过了,那么这些数据就是共享数据, 
      必须进行同 
      步存 
      取。 
     
 
     
       当应 
      用程 
      序 
      在对象 
       
      上调用 
      了一 
      个需 
      要 
      花费很 
       
      长时 
      间来 
       
      执行 
      的方 
      法, 
      并且 
      不 
       
      希望让程 
      序 
      等待 
     
 
     
       方法的 
      返回时,就应该使用异 
      步编程, 
      在很多 
      情况下采用异 
      步途径往往更有效率。 
     
 
     
          
      -、 
       和 4 有什么区别 
     
 
     
       声 
      明方法的存在 
      而不去 
      实现它的类被叫做 
      抽象类(),它用于要创建一个体现 
     
 
    
 
    
       某 
      些 
      基 
      本 
      行 
      为 
      的 
      类 
      , 
      并 
      为 
      该 
      类 
       
      声明 
      方 
      法 
      , 
       
      但不 
      能 
       
      在该 
      类 
      中 
      实 
      现 
      该 
      类 
      的 
       
      情况。 
      不 
      能 
       
      创建 
     
 
     
        
       
      类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的 
     
 
     
       一 
      个实 
      例 
      。 
      不 
      能 
      有抽 
      象 
      构 
      造 
      函 
      数 
      或 
      抽象 
       
      静态 
      方法 
      。 
       
      类的子类为它们父类中的所有 
     
 
     
       抽象 
      方法 
      提供 
      实现 
      , 
       
      否则它们 
       
      也是 
      抽象 
      类为 
      。 
      取而代 
      之, 
       
      在子 
      类中 
      实现 
      该方 
      法。 
      知道 
      其行 
     
 
     
       为的其它类可以 
      在类中实现这些方法。 
     
 
     
       接 
      口( 
       
      4)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实 
     
 
     
       现这 
       
      样的 
      接口 
      而 
      获得。接 
      口中 
      的所 
      有方 
      法 
      都是抽 
      象的 
      , 
      没有一 
      个有 
      程序 
       
      体。接 
      口只 
      可以 
      定 
     
 
     
       义 
        
      3  成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。 
     
 
     
       当类 
      实现 
      特殊 
      接口 
      时, 
      它定 
      义( 
      即 
       
      将程 
      序 
      体给予)所 
      有这 
      种接 
      口的 
      方法 
      。 
       
      然后,它 
      可以 
       
      在 
     
 
     
       实现 
      了该 
      接口 
      的类 
      的 
       
      任何 
      对象 
       
      上调用接 
      口的 
      方法 
      。 
      由于有 
      抽象 
      类, 
      它允 
      许使 
      用接 
      口名 
      作为 
     
 
     
       引 
      用 
      变 
      量 
      的 
      类 
      型 
      。 
      通 
      常 
      的 
      动 
      态 
      联 
       
      编将生 
      效 
      。 
      引 
      用 
      可 
      以 
       
      转换到接 
      口 
      类 
      型 
      或 
      从 
      接 
      口 
      类 
      型 
       
      转换 , 
     
 
     
        
      4 
      运算符可以用来决定某对象的类是否实现了接口。 
     
 
     
          
      1、 
      = 和 
        
      / 有什么区别。 
     
 
     
          
       
      栈是 
      一种 
       
      线形集合, 
      其 
      添加和 
       
      删除元素的操 
      作应 
       
      在同 
      一 
      段完成 
      。 
      栈按照后进 
      先出的 
      方 
     
 
     
       式 
      进行处理 
      。 
     
 
     
          
      堆是 
      栈的一个 
      组成 
      元素 
     
 
     
          
      、 
      4A和  的区别 
     
 
     
          
      4A 是 
      服务器请求资源, 
       
      服务器直接访 
      问目标 
      地 
      址的 
        
      G7%,把那 
      个 
        
      G7% 的响 
      应内 
      容 
     
 
     
       读取 
       
      过来,然 
      后 
      把这些内容再 
      发给 
      浏览 
      器 
      ,浏览 
      器根 
       
      本不知道服务 
      器发 
      送 
       
      的内容 
      是从哪儿 
     
 
     
       来的,所以它的地 
      址栏中 
      还是原来的地 
      址。 
     
 
     
        
       
        
      就是服务端根据逻辑. 
      发送一个状态码. 
       
      告诉浏览器重新去请求那个地址,一般来说 
     
 
     
       浏览器会 
      用刚才请求 
      的所有参数重新请求 
      ,所以 .H 参数都 
      可以获取 
      。 
     
 
     
          
      :、 
      2! 与 
        
      !26 的区别? 
     
 
     
          
      !是可复用的组件,对 ! 并没有严格的规范,理论上讲,任何一个  
     
 
     
       类 
       
      都可 
      以 
      是 
      一 
      个 
        
      !。 
       
      但通 
      常 
       
      情况下, 
       
      由于 
        
      ! 是被 
       
      容器所 
       
      创建( 
       
      如 89)的, 
     
 
     
       所 
      以 
        
      ! 应 
      具 
      有 
      一 
      个 
      无 
      参 
      的 
      构 
      造 
       
      器, 
       
      另外, 
      通 
      常 
        
      ! 还要实现 0 接口 
     
 
     
       用于实现 
        
      ! 的 
      持久性。 
      ! 实 
      际上相当于 
      微软 $E5 模型中的本地进程内 
        
      $E5 组件, 
     
 
     
       它 
      是 
      不 
      能 
      被 
       
      跨进 
      程 
      访 
      问 
      的 
      。 
       
      2=!相当于 '$E5,即分布式组件。它是基于 
     
 
     
        
       
        
      的远程方法调用(75# 
      )技术的,所以 2! 
        
      可以被远程访问(跨进程、跨计算机)。但 
     
 
     
       2! 
        
      必须被布署在诸如 I 
      = 
      、I% 
        
      这样的容器中,2! 
        
      客户从不直接访问真正的 
     
 
     
       2! 
        
      组件,而是通过其容器访问。2! 
        
      容器是 2 
      ! 
        
      组件的代理,2 
      ! 
        
      组件由容器所创建和管理。 
     
 
     
       客户 
      通过容器 
      来访问真正 
      的 2! 组件 
      。 
     
 
     
          
      、 
      36$和#$ 的不同。 
     
 
     
          
       
      36$ 是 
      被 
      声明 
      为 
       
      静态 
      ( 
       
      3)的内部类,它可以不依赖于外部类实例被 
     
 
     
       实例化。而通常的内部类需要 
      在外部类实例化 
      后才能实例化。 
     
 
     
          
      、 
      , 中动态 
        
      #6$%G'2 与 
      静态 
        
      #6$%G'2 的区别? 
     
 
     
         
        
      动 
      态 
        
      #6$%G'2 用 
        
      =J 动 
      作 
      实 
      现 
       
      K=J=?L=L?LLDM它 
     
 
     
       总 
      是会检查 
      所含文件 
      中的变化,适合用于包含动态页 
      面,并且可以带 
      参数。 
     
 
     
       静 
       
      态 #6$%G'2 用  伪 
       
      码实现.定不会 
      检 
      查 
       
      所含文 
      件 
       
      的变化,适用于包含静 
       
      态页 
       
      面KNO 
     
 
     
        ?L9LNM 
     
 
     
          
      、什么时候用 
        
      。 
       
     
 
     
          
      3@断言 
       
      B在软件开发中是一种 
      常用的 
      调试方 
       
      式,很多 
      开发语言中 
      都支持这种 
      机制。 
     
 
     
       在 
       
      实现中,3 就是在 
       
      程序中的一条 
       
      语句 
       
      ,它对一个  表达 
      式 
       
      进行检 
      查 
       
      ,一个 
     
 
     
       正 
       
      确程序必 
      须 
       
      保证 
       
      这个  表达 
      式 
       
      的值为 ; 
      如 
      果 
       
      该值为 4,说 
       
      明程序已经 
      处 
      于 
     
 
    
 
    
       不 
      正确的 
       
      状态 
       
      下, 
      系 
       
      统将给出 
       
      警告或 
      退出。 
      一般 
      来 
      说, 
       
      3 用 
      于保 
       
      证程 
      序最 
      基本 
      、关 
     
 
     
       键 
       
      的正 
       
      确性。3 检 
      查 
       
      通常在 
      开 
      发 
       
      和测 
       
      试时开 
      启 
       
      。为了提高性能,在 
      软 
      件 
      发 
      布 
      后 
       
      , 
     
 
     
       3 
        
      检查通常是关闭的。 
     
 
     
          
      、 
      *$ 是什么 
      为什么要有 
        
      *$ 
     
 
     
          
       
      *$ 是 
      垃圾收集的 
      意 
      思( 
       
      *$3) 
      .内存 
       
      处理是 
       
      编程 
       
      人员容易出现 
      问题 
      的地 
      方 
      , 
     
 
     
       忘 
      记或者错误的内存回收会导致程序或系统的不稳 
      定甚至崩溃 
      , 提供的 *$ 功 
      能可以自 
     
 
     
       动 
      监测对 
      象是 
       
      否超过 
      作用 
       
      域从 
      而 
      达到自 
      动 
      回收内 
      存的 
      目的 
      , 
       
       语言 
       
      没有提 
      供 
      释放已 
      分 
      配 
     
 
     
       内存的 
      显示操作方法。 
       
     
 
     
          
      (、 
      ?C?PC有什么 
      错?CP?C有什么 
      错 
     
 
     
          
      ?C?PC( 
      P 运算结 
      果是 
        
       型,需要 
      强制转换类型) 
     
 
     
          
      ?CP?C(可以 
      正确 
      编译) 
     
 
     
          
      )、 
      5@(B等於多 
      少5@Q(B等於多少 
     
 
     
       5 
      @(B?? 
     
 
     
       5 
      @Q(B??Q 
     
 
     
        
        
      方法返回与参数最接近的长整数,参数加 D 
        
      后求其  
       
     
 
     
          
      -、 
      ?A@LF0LBC创建了 
      几个 
        
      E 
     
 
     
       两个 
     
 
     
         
        
      1、 
       
      设计 
        
       个 
      线程 
      , 
      其 
      中 
      两 
      个 
       
      线程 
      每 
      次 
      对 
        
       增 
      加 
        
      , 
       
      另外两 
      个 
       
      线程对 
        
       每 
      次 
       
      减少 。 
       
      写 
     
 
     
       出程序。 
     
 
     
       以 
      下程序使用内部类实现 
      线程,对 
        
       增 
      减的时候 
      没有 
      考虑顺序问题。 
     
 
     
       复制 
      代码 
     
 
     
       =/9 
      FC 
     
 
     
        
     
 
     
       DRR 
     
 
     
       R 
     
 
     
       (ROF 
     
 
     
       )RD 
     
 
     
       -=8 
      '9S 
     
 
     
       1= 
      C 
     
 
     
        
     
 
     
       :=3 
      9@ 
      TUBS 
     
 
     
       8 
      '9V?A8 
       
      '9@BC 
     
 
     
       #?VA#@BC 
     
 
     
       '?VA'@BC 
     
 
     
       4 
      @?:CKCPPBS 
     
 
     
       (8?A8 
      @BC 
     
 
     
       ) 
      @BC 
     
 
     
       -?A8@BC 
     
 
     
       1 
      @BC 
     
 
     
       W 
     
 
     
       :W 
     
 
     
        
     
 
     
       = 
       
      0 
       
      @BS 
     
 
    版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/19595.html