下载  >  开发技术  >  Java  > Java面试宝典面试资源文档

Java面试宝典面试资源文档 评分:

如果刚入们的同学们,面试之前必备的资料,祝你面试成功
public BigIntcgcr add( Biglntcger other )i public BigInteger subtrac t(BigInteger other) i public bigInteger multiply(BigInteger other)( public BigInteger divide( BigInteger other)f 备注:要想写出这个类的完整代码,是非常复杂的,如果有兴趣的话,可以参看jk中自带的 java. math. Biglnteger癸的源码。面试的人知道谁都不可能在短时间内写出这个类的完整代码 的,他要的是你是否有这方面的概念和意识,他最重要的还是考查你的能力,所以,你不要因 为自己无法写出完整的最终结果航放弃答这道题,你要做的就是你比别人写得多,证明你匕别 人强,你有这方面的思想意识就可以了,毕竟别人可能连题目的意思都看不懂,什么都没写 你要敢于答这道题,即使只答了一部分,那也与那些什么都不懂的人区别出来,拉开了距离 算是矮子中的高个,机会当然就属于你了。另外,答案中的框架代码也很重要,体现了一些面 向对象设计的功底,特别是其中的方法命名很专业,用的英文单词很精准,这也是能力、经验 专业性、英语水平等多个方面的体现,会给人留下很好的印象,在编程能力和其他方面条件差 不多的情况下,英语好除了可以使你获得更多机会外,薪水可以高出·千元。 10、使用 final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 使用fina关键字 个变量时,是指引用量不能变引用变量所指向的对象 inal String Buffer a-new String Buffer (immutable " 找如下语间告译 ar-newrString Buffer(y) 但是执如包则可以通过编 aappend("brokcn! 有人在定义方法的参数时,可能想采月如丶形式来阻止方法内部修改传进来的参数对象 public void method(imal String Buffer paramt 实际上,这是办不到的,左该方法内部仍然可以增加如下代码来修改参数对象: param append(a; 和 equals方法究竟有什么区别 单狙把一个东西说清楚,然后再说清楚另一个,这样,它们的区别自然就出来了,混左一起 说,则很难说清楚) =葉作符专门用来比较两个变量的值是膂相等,也就是用于比较变量所对应的内存中所存储的 数值是否相同,要比狡两个基本类型的数据或两个引用变量是否相等,只能用==操作符 如桨一个变量指向的数据逹对象类型的,郑么,这候涉芨」两块內存,对象本古用一块内 存(堆内存),变量也古用一块内存,例如 ObEr ob= new objecto;变量o是一个内存,ne bject是方个内存,此时,变量oj所对应的内存中存储的数值就是对象古用的那块内存的 百地址ε对于指向对象类型的变量,如果要比较两个变量是否指闩同一个对象,即要看这两个 变量所对应的內存中的数值是否等,这討候就需要用≡操作符迸行比较。 equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同, 它比较的两个对象是独立的。例如,对于下面的代码 String a-new String("foo") String b=new String("foo") 两条new语句创建了两个对象,然后用a,b这两个变量分别指向了其中一个对象,这是炳个不 同的对象,它们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b将 返回fale,而这两个对象中的内容是相同的,所以,表达式 a equals(b)将返回true 在实际开发中,我们经常要比较传递进行来旳字符串内容是否等,例如, String input input equals(quit”),许多人稍不注意就使用==进行比较了,这是错误的,随便从网上找儿 个项目实战旳教学视频看看,里面就有大量这样的错误。记住,字符串的比较基本上都是使用 equals方法。 如果一个类没有自己定义 equals方法,那么它将继承 Object类的 equals方法, Object类的 equal 方法的实现代码如下: boolean equals(object o i 这说明,如果一个类没有自己定义 equals方法,它默认的eqμuals方法(从 Object类继承的)就 是使用==操作符,也是在比较两个变量指向的对象是合是同一对象,这时候使用 equals和使用 会得到同样的结果,如果比较的是两个独立的对象贝总返冋fake。如昊你编写的类希望能够 比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖 equals方法,由你自已写代码 来决定在什么情况目可认为两个对象的内容是相同的。 12、静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加 static关键字,而实例变量前则不加 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例刈象,其中的实例变量 才会被分配空间,能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以 也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空 间,静态变量就可以被使用了。总之,实树变量必须创建象后才可以通过这个对象来使用, 静态变量贝可以直接使用类名来引用 例如,对于下面的程序,无论创建多少个实例对象,永远都只分配了一个 static var变量,并且 每创建个实例对象,这个 static yan就会加1;但是,每创建个实例对象,就会分配个 ins tance va,即可能分配多个 instance var,并且每个 instance var的值都只自加了1次。 public class VariantTesti public static int static Var =0 public variantTest(i System. out. printIn("static Var"+ static Var+ instance Var=+ ins tanceVar) 备注:这个解答除了说清楚两者的区别外,最后还用一个具体的应用例子来说明两者的差异, 体现了自己有很好的解说问题和设计案例的能力,思维敏捷,超过一般程序员,有写作能力! 13、是否可以从一个 static方法内部发出对非 static方法的调用 不可以。因为非 static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上 进行方法调用,而 static方法调用时不需要创建对象,可以直接调用。也就是说,当一个 static 方法被调用时,可能丕没有创建仼何实例对象,如果从一个 static方法中发出对非 static方法的 调用,那个非 static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个 static方法 内部发出对非 static方法的调用 14、 nteger与mt的侯别 int是java提供的8种原始数据类型之-。Java为每个原始类型提供了封装类, Integer是java 为int提供的封装类。int的默认值为0,而 Integer的默认值为nul,即 Integer可以区分出未赋 值和值为0的区别,it则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成 绩为0的区别,则只能使用 Integero在JSP开发中, Integer的默认为nul,所以用e表达式在 文本框中显示时,值为空白字符串,而nt默认釣默认值为0,所以用e1表达式在文本框中显示 时,结果为0,所以,int不适合作为web层的表单数据的类型。 在 Hibernate中,如果将OID定义为 Integer类型,那么 Hibernate就可以根据其值是否为null 而判断个对象是否是临吋的,如果将OID定义为了int类型,还需要在hbm映射文件中设置 其 unsaved- value属性为0。 另外, Integer提供了多亼与整数相关的操作方法,例如,将一个字符串转换成整数, stager中 还定义了表示整数的最大值和最小值的常量。 15、Math. round(11.5)等於多少?Math. round(11.5)等於多少? Math类中提供了三个与取整有关的方法;ceil、 floor、 round,这些方法的作用与它们的英文名 称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整, Math, ceil(113)的 结果为12,Math.cei(-11.3)的结昊是-11;foor的英文意义是地板,该方法就表示向下取整, Math. ceil116)的结果为11 Math. ceil(-116)的结果是-12;最难掌握的是 round方法,它表示 舍五入”,算法为Math. floord(x+0.5),即将原来的数字力上0.5后再向下取整,所以,Math, round(1.5 的结果为12, Math. round(-1.5)的结果为-1l 16、下面的代码有什么不妥之处? 1. if(username equals(“xx”){} nt x=1. return x==1?true: false 17、请说出作用域 publc, private, protected,以及不写时的Ⅹ别 这四个作用域的可见范围如下表所示。 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示 friendly 作用域当前类同 pac kage子孙类其 package public Ivate 备注:只要记住了有4种访问权限,4个访问范围,然后将全选和范围在水平和垂直方向上分 别按排从小到大或从大到小的顺序排列,就很容易画出上面的图了 18、 Overload和 Override的区别。 Overloaded的方法是否可以改变返回值的类型? Overload是重载的意思, Override是覆盖的意思,也就是重写。 重载 Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即 参数个数或类型不同)。 重写 Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创 建的实例对象调用这个方法时,将调月子类十的定义方法,这相当于把父类中定义的形个完全 相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只 能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一 些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果 父类的方法是 private类型,那么,子类则不存在覆盖的限制,相当于子癸中增加、一个全新的 方法。 至于 Overloaded的方法是否可以改变返回值的类型这个问题,要看你倒底想问什么呢?这个题 目很模糊。如果几个 Overloa ded的方法的参数列表不一样,它们的返回者类型当然也可以不 样。但我估计你想问的问题是:如果两个方法的参数列表完全一样,是含可以让它们的返回值 不同来实现重载 Overload。这是不行的,我们可以用反证法来说明这个问题,因为我们有时候 调用一个方法时也可以不定义返回结果变量,即不要关心其返回结果,例如,我们调用 map. remove(key)方法时,虽然 remove方法有返回值,但是我们通常都不会定义接收返回结果的 变量,这时候假设该类中有两个名称和参数列表完全相同的方法,仅仅是返回类型不同,java 就无法确定编程者倒底是想调用哪个方法了,因为它无法通过返回结果类型来判断。 override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不 同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了 声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在 继承中也可能会在子类覆盖父类中的方法。在覆盖要注意以下的几点: 1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖釣效果; 2、覆盖的方法的返回值必须和被覆盖的方法的返回一致; 3、覆盖的方法所抛出的异常必獗和被覆盖方法的所抛出的异常一致,或者是其子类; 4、被覆盖的方法不能为 private,合则在其于类中只是新定义∫一个方法,并没有对其进行覆盖 overload对我们来说可能比较熟悉,可以翻译为重载,它是指我们可以定义一些名称相同的方 法,通过定义不同的输入参数来区分这些方法,然后冉调用时,VM就会根据不同的参数样式, 来选搔合适的方法执行。在使用重载要注意以卜的几点: 1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,个同的参数个数,不同的 参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int,hoa),但是不能 为fun( int int)) 2、不能通过访问权限、返回类型、抛出的异常进行重载 3、方法的异常类型和数目不会对重载造成影响; 4、对于继承来说,如果某一方法在父类中是访问权限是 priavte,那么就不能在子类对其进行重 载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。 19、构造器 Constructor是否可被 override? 构造器 Constructor不能被继承,因此不能重写 Override,但可以被重载 Overload。 20、接口是否可继承接口?抽象类是否可实现( implements)按口?抽象类是否可继承具体类 ( concrete class)?抽象类中是否可以有静态的main方法? 接口可以继承接口。抽象类可以实现( (implements)接口,抽象类是否可继承具体类。抽象类中可 以有静态的man方法。 备注:只要明白了接口和油象类的本质和作用,这些问题都很好回答,你想想,如果你是jva 语言的设计者,你是否会提供这样的支持,如果不提供的话,有什么理由吗?如果你没有道理 不提供,那答案就是肯定的了 只有记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有 abstract方法 21、写 c lone(方法时,通常都有一行代码,是什么? clone有缺省行为, super. cione);因为首先要把父类中的成员复制到位,然后才是复制自己的成 员 22、面向对象的特征有哪些方面 计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个 对象协作的过程。面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织 和编写,让计筧机系统能够识別和理解用对象方式组织和编写的程序代码,这样就可以把现实 生活中的业务对象映射到计算机系统中 面向对象的编稈语言有封裝、銖承、扣象、多态等4个主要的特征 1封装 封奘是保诎软件部件具有优良的模块性的县础,封装的目标就是要实现软件部件的“高内娶、低 耦合”,防止程序相互依赖性而恺米的变动影响。在面向对象的编程语言中,对象是封装的最基 本单位,面向对象的封装比传统语言的封装更为清昕、更为有力。面向对象的封装就是把描述 个对象的属性和行为的代码封装在一个“模决中,也就是一个类中,属性用变量定义,行为 用方法进行定义,方法可以直接访问同一个对象中的属性。通常情况下,只要记住让变量和访 问这个变量的方法放在一起,将一个关中的成员变量全部定义成私有的,只有这个类自己的方 法才可以访问到这些成员变量,这就基本上实现对象的封装,就很容易找出要分配到这个类上 的方法了,就基本上算是会面向对象的编程了。把握一个原则:把对同一事物进行操作的方法 和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类中。 例如,人要在黑板上画圆,这一共涉及三个对象:人、黑板、圆,画圆的方法要分配给哪个对 象呢?由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属性,如果将它们在类中定义 成了私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性 人以后只是调用圆的画圆方法、表示给圆发给消息而已,画圆这个方法不应该分配在人这个对 象上,这就是面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态 (属怛)由这个对象自己的行为(方法)来读取和改变。一个更便于理解的例子就是,司机将 火车刹住了,刹车的动作是分配给司机,还是分配给火车,显然,应该分配给火车,因为司机 自身是不可能有那么大的力气将一个火车给停下来的,只有火车自己才能完成这一动作,火车 需要调用内部的离合器和刹车片等多个器件协作才能完成刹车这个动作,司机刹车的过程只是 给火车发了一个消息,通知火车要执行刹车动作而已。 抽象: 抽象就是找出一些事物的相似和共性之处,然后将这些軎物归为一个类,这个类只考虑这些事 物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前 目标有关的方面。例如,看到一只蚂蚁和大象,你能够想象出它们的相同之处,那就是油象 抽象包括行为抽象和状态抽象两个方面。例如,定义一个 Person类,如下: class person String name Int 人本来是很复杂的事物,有很多方面,但因为当前系统只需要了解人的姓名和年龄,所以上面 定义的类中只包含姓名和年龄这两个属性,这就是一种抽像,使用抽象可以避免考虑一些与日 标无关的绀节。我对抽象的理解就是不要用显黴镜去看一个事物的所有方面,这样涉及的内容 就太多了,而是要善于划分问题的边界,当前系统需要什么,就只考虑什么。 承: 在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的 类所定义的内容作为白己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特 殊的需要,这就是继承。继承是子类自动共亨父类数据和方法的机制,这是类之间的一种关系 提高了软件的可重用性和可扩展性。 多态 多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时 井不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引 用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在 程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同 的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运 仁吋所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的 灵活忪和扩展性。例如,下面代码中的 Userdao是个接口,它定义引用变量 userIa指冋的 实例对象由 daofactory. hetao(在执行的吋候返回,有吋候指向的是 UserJdbcDao这个实现,有 时侯指向的是 Userhibernate dao这个实现,这样,不用修改源代码,就可以改变 user dao指向 的具体类实现,从而导致 userDao, insertUser(方法调用的具体代码也随之改变,即有时候调用的 是 Userjdbc dao的 insertEr)法,有时候调用的是 User Hibernate dao的 inserter方法: UserDao user Dao= daofac tory getdidoo; user Dao. insertUser(user); 比喻:人吃饭,你看到的是左手,还是右手? 23、jav中实坝多态的机制是什么? 靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法 在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,巾就是内存里王在运行的 那个对象的方法,而不是引用变量的类型中定义的方法。 24、 abstract class和 interface有什么区别? 含有 abstract修饰符的 class即为抽象类, abstract类不能创建的实例对象。含有 abstract方法的 类必须定义为 abstract class, abstract class类中的方法不必是抽象的。 abstract class类中定义抽 象方法必须在具体( Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的 子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为 abs tract类型。 接口( interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的 方法定义默认为 public abstract关型,接口中的成员变量类型默认为 public static final 下面比较下两者的语法区别 1扣象类可以有构造方法,接口中不能有构造方法。 2扣象类中可以有普通成员变量,接口中没有普通成员变量 3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的 普通方法。 4.抽象类中的抽象方法的访问类型可以是 public, protected和(默认类型,虽然 ec lipse下不报错,但应该也不行),但接口中的抽象方法只能是 public类型的,并且默认即为 ublic abstract类型 5.抽象类中以包含静态方法,接口中不能包含静态方法 6.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意 但接∏中定义的变量只能是 public static final类型,并且默认即为 public static final类型 7.一个类可以实现多个接口,但只能继承一个抽象类 下面接着再说说两者在应月上的区别: 接口史多的是在系统架构没计方法发挥作用,主婓用于定义模块之间的通信契约。而抽象类在 代码实现方面发挥作用,叮以实现代码的重厍,例如,模板方法设计模式是抽象类旳一个典型 应用,假设某个项目的所有 Servlet类都要用相同的方式进行权限判断、记录访问日志和处理昇 常,那么就可以定义一个抽象的基类,让所有的 Servlet都继承这个抽象基类,在抽象基类的 service方法中完成权狠判断、记录访问日志和处理异常的代码,在各个子类中只是完成各自的 业务逻辑代码,伪代码如下 public abstract class Baseservlet extends Httpservletf public final void scrvicc( HttpscrvlctRcqucst rcqucst, Http Scrvlctresponsc respo throws IOExcetion, Servlet Exception 记录访问日志 进行权限判断 ⅲf(具有权限){ doservice(request, res ponse catch( Excetpion e) 记录异常信息 protected abstract void do service( Http Servletrequest request HttpservletrEsponse responsc)throws IOExc ction, ScrvlctException /注意访问权限定义成 protected,显得既专业,又严,因为它是专门给子类用的 public class My Servlet extends Baseservlet protected void do servic e(httP servletreqUest request HttpservletrEsponse response)throws IOExcetion, ServletException 本 Servlet只处理的具体业务逻辑代码 父类方法中间的某段代码不确定,留给了类干,就用模板方法设计模弌 备注:这道题的思路是先从总体解释抽象类和接口的基本概念,然后再比较两者的语法细节 最后再说两者的应用区别。匕较两者语法细节区别的条理是:先从一个类中的构造方法、普通 成员变量和方法(包括抽象方法),静态变量和方法,继承性等6个方面逐去比较回答,接着 从第二者继承的角度的回答,特别是最后用了一个典型的例子来展现自己深厚的技术功底。 25、 abstract的 mcthod是否可同时是 static,是否可同时是 native,是否可同时是 synchronized? abstract的 method不可以是 static的,因为抽象的方法是要被子类实现的,而stic与子类扯不 上关系 native方法表示该方法要用另外一种依赖平台的编程语言实现的,不有在着被子类实现的问题, 所以,它也不能是抽象的,不能与 abstract混用。例如, FileOutputSteam类要硬件打交道,底 层的实现用的是操作系统相关的api实现,例如,在 windows用c语言实现的,所以,查看jk 的源代码,可以发现 FileOutputStream的open方法的定义如下: private native void open(String name) throws FileNot Found E xc eption; 如果我们要用java调用别人写的ε语言函效,我们是无法直接调用的,我们需要按照java的要 求写一个c语言的函数,又我们的这个c语言函数去调用别人的c语言函数。由于我们的c语 言函数是按java的要求来写的,我们这个c语言函数就可以与jva对接上,java那边的对接方 式就是定义出与我们这个c函数相对应的方法,java中对应的方法不需要写具体的代码,但需 要在前面声明 native 关于 synchronized与 abstract合用的问题,我觉得也不行,因为在我几年的学习和开发中,从来 没见到过这种情况,并且我觉得 synchronized应该是作用在一个具体的方法上才有意义。而且 方法上的 synchronized同步所使用的同步锁对象是ths,而油象方法上无法确定this是什么。 26、仆么是内部类? Static Nested class和 Inner class的不同。 内部类就是在个类的内部定义的类,内部类中不能定义静态成员(静态成员不是对象的特性, 只是为了找一个容身之处,所以需要放到一个类中而已,这么一点小事,你还要把它放到类内 部的一个类中,过分了啊!提供内部关,不是为让你干这种事情,无珋,不让你干。我想可能 是既然静态成员类似c语言的全局变量,而内部类道常是用于创建内部对象用的,所以,把“全 局变量”放在内部类中就是亳无意义的事情,既然是毫无意义的事情,就应该被禁止),内部类 可以直接访问外部类中的成员变量,内部类可以定义在外部类的方法外面,也可以定义在外部 类的方法体中,如下所示 public class Outer int out x =0: public void methodo Inner I inner= new InnerI0 public class Inner2在方法体内部定义的内部类 public methodo Inner 2 inner 2= new Inner 20; public class Inncr1在方法体外面定义的内部类 在方法体夕面定义的内部类的访问类型可以是 public, protect.默认的, private等4种类型,这就 女像类中定义的成员变量有4科访问类型一样,它们决定这个内部类的定义对其他类是否可见; 对于这种情况,我们也可以在外面创建内部类的实例对象,创建内部类的实例对象时,一定要 先创建外部类的实例对象,然后用这个外部类的实例对象去创建内部类的灾例对象,代码如下 Outer outer= new Outer Outer. nnerl inner=outer. new Innnerl0 在方法内部定义的内部类前面不能有访问类型修饰符,就好像方法中定义的局部变量一样,但 这种内部类的前面可以使用 final或 abstract修饰符。这种内部类对其他类是不可见的其他类无 法引用这和内部类,但是这种内部类创建的实例对象可以传递给其他类访问。这种内部类必须 是先定义,后便用,即内部类的定义代码必须出现在使用该类之前,这与方法中的局部变量必 须先定义后使用的道理也是一样的。这种内部类可以访问方法体中的局部变量,但是,该局部 变量前必须加fnal修饰符 对于这些细节,只要在 eclipse写代码试试,根据开发工具提示的各类错误信息就可以马上了解 到 在方法体内部还可以采用如下语法来创建一种匿名内部类,即定义某一接口或类的子类的同时, 还创建了该子类的实例对象,无需为该子类定义名称 public class o public void start new Thread( ncw RunablcO( public void run( ).st: 最后,在方法外部定义的内部类前面可以加上 static关键字,从而成为 Static Nested Class,它不 再具有内部类的特性,所有,从狭义上讲,它不是内部类。 Static Nested class与普通类在运行 时的行为和功能上没有什么区别,只是在编程引用时的语法上有一些差别,它可以定义成pubi protected、默认的、 private等多和类型;而普通类只能定义成 public和默认的这两种类型。在 外面引用 Static Nested class类的名称为“外部类名内部关名”。在外面不需要创建外部类的实例

...展开详情
2016-01-14 上传 大小:640KB
举报 收藏
分享
java面试宝典 java面试宝典

java面试宝典 java面试宝典 java面试宝典 java面试宝典 java面试宝典 java面试宝典 java面试宝典 java面试宝典 java面试宝典 java面试宝典 java面试宝典 java面试宝典

立即下载
Java面试宝典_2010Java面试宝典_2010Java面试宝典_2010

Java面试宝典_2010Java面试宝典_2010Java面试宝典_2010Java面试宝典_2010Java面试宝典_2010Java面试宝典_2010

立即下载
java面试宝典,java面试宝典

java面试宝典,,java面试宝典,java面试宝典java面试宝典,java面试宝典,java面试宝典

立即下载
java 面试宝典java 面试宝典

收集java 最常见的面试题收集java 最常见的面试题收集java 最常见的面试题收集java 最常见的面试题收集java 最常见的面试题收集java 最常见的面试题收集java 最常见的面试题收集java 最常见的面试题收集java 最常见的面试题收集java 最常见的面试题收集java 最常见的面试题

立即下载
java面试宝典3,java面试宝典

java面试宝典,java面试宝典,java面试java面试宝典,宝典,java面试宝典,java面试宝典

立即下载
java 面试宝典面试宝典

java 面试宝典面试宝典java 面试宝典面试宝典java 面试宝典面试宝典java 面试宝典面试宝典java 面试宝典面试宝典java 面试宝典面试宝典java 面试宝典面试宝典

立即下载
java面试宝典 面试 宝典

java面试宝典 java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典

立即下载
java面试宝典 宝典 宝典

java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典

立即下载
Java面试 Java面试 宝典

Java面试 Java笔试的几乎面试官有可能出的 所有的问题.要耐心看哦

立即下载
java面试宝典 java面试

有面试你想要的东西。学习java的看一下,

立即下载
JAVA葵花宝典 Java面试宝典

JAVA葵花宝典 认真看完一遍面试必过。。

立即下载
JAVA面试宝典 Android面试宝典

目前许多开发者对Java语言及其底层原理掌握不牢固,在面试过程中经常漏洞百出,无法取得好成绩。而招聘单位为了得到高素质的员工往往使出浑身解数,采用各种形式的面试考察求职者,这让面试难度大大增加。求职者要想成功应聘,不仅需要扎实的基本功,还需要经受情商和智商方面的考查。

立即下载
Java面试宝典

Java面试宝典pdf Java面试宝典pdf Java面试宝典pdf Java面试宝典pdf Java面试宝典pdf Java面试宝典pdf Java面试宝典pdf Java面试宝典pdf Java面试宝典pdf Java面试宝典pdf 含书签

立即下载
java面试宝典

java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典java面试宝典

立即下载
Java面试宝典,ssh面试宝典

最新2015年的Java面试宝典,ssh面试宝典,包含java基础,算法和编程,html,JavaScript,servlet和java web,还包含数据库,webservice,j2ee,linux部分,是个全面的面试集锦。

立即下载
java面试宝典面试

java面试宝典高清,试题和答案,给面试的朋友

立即下载
html+css+js制作的一个动态的新年贺卡

该代码是http://blog.csdn.net/qq_29656961/article/details/78155792博客里面的代码,代码里面有要用到的图片资源和音乐资源。

立即下载
Camtasia 9安装及破解方法绝对有效

附件中注册方法亲测有效,加以整理与大家共享。 由于附件大于60m传不上去,另附Camtasia 9百度云下载地址。免费自取 链接:http://pan.baidu.com/s/1kVABnhH 密码:xees

立即下载
电磁场与电磁波第四版谢处方 PDF

电磁场与电磁波第四版谢处方 (清晰版),做天线设计的可以作为参考。

立即下载
压缩包爆破解密工具(7z、rar、zip)

压缩包内包含三个工具,分别可以用来爆破解密7z压缩包、rar压缩包和zip压缩包。

立即下载