Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 873|回复: 0

不能忽视的java基础知识

[复制链接]

该用户从未签到

发表于 2011-8-1 21:55:52 | 显示全部楼层 |阅读模式
请不要忽视这些Java基础知识
  第一,Anonymous Inner Class (匿名内部类) 是否可以extends(继续)其它类,是否可以implements(实现)interface(接口)?
  可以继续其他类或完成其他接口,在swing编程中常用此方式。
第二,谈谈final, finally, finalize的区别。  final 用于声明属性,方法和类,分别表示属性不可变,方法不可笼盖,类不可继续。finally是异常处理语句结构的一部门,表示老是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以笼盖此方法提供垃圾收集时的其他资源回收,例如封闭文件等。

  第三,Static Nested Class 和 Inner Class的不同,说得越多越好(口试题有的很笼统)。
  Static Nested Class是被声明为静态(static)的内部类,它可以不依靠于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
  第四,&和&&的区别。
  &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。
  第五,HashMap和Hashtable的区别。
  HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap答应空(null)键值(key),因为非线程安全,效率上可能高于Hashtable.
  第六,Collection 和 Collections的区别。
  Collection是集合类的上级接口,继续与他的接口主要有Set 和List.Collections是针对集合类的一个匡助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操纵。
  第七,什么时候用assert.
  1.4新增枢纽字(语法),用于测试boolean表达式状态,可用于调试程序。使用方法 assert ,表示假如表达式为真(true),则下面的语句执行,否则抛出AssertionError.另外的使用方式assert < boolean表达式>:,表示假如表达式为真,后面的表达式忽略,否则后面表达式的值用于AssertionError的构建参数。留意编译时要增加-source 1.4 参数,否则报错。]运行时要增加 –ea参数,否则assert行被忽略
  第八,GC是什么? 为什么要有GC?
  GC是垃圾收集的意思(Gabage Collection),内存处理是编程职员轻易泛起题目的地方,健忘或者错误的内存回收会导致程序或系统的不不乱甚至崩溃,java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供开释已分配内存的显示操纵方法。
  第九,String s = new String("xyz");创建了几个String Object?
  两个
  第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
  Math.round(11.5)==12Math.round(-11.5)==-11round方法返回与参数最接近的长整数,参数加1/2后求其floor.
  第十一,short s1 = 1; s1 = s1 + 1;有什么错?
  short s1 = 1; s1 += 1;有什么错? short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以准确编译)
  第十二,sleep() 和 wait() 有什么区别?
  sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会开释对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程抛却对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池预备获得对象锁进入运行状态。
  第十三,Java有没有goto? 没有  很十三的题目,假如哪个口试的问到这个题目,我劝你仍是别进这家公司。(完)(job.sohu.com)
  第十四,数组有没有length()这个方法? String有没有length()这个方法?
  数组没有length()这个方法,有length的属性。
  String有有length()这个方法。
  第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
  方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。假如在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义犹如被“屏蔽”了。假如在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
  第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==仍是equals()? 它们有何区别?
  Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
  equals()和==方法决定引用值是否指向统一对象equals()在类中被笼盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
    第十七,CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,  ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
  第十八,error和exception有什么区别?
  error 表示恢复不是不可能但很难题的情况下的一种严峻题目。好比说内存溢出。不可能指望程序能处理这样的情况。
  exception 表示一种设计或实现题目。也就是说,它表示假如程序运行正常,从不会发生的情况。
第十九,abstract class和interface有什么区别?
  声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向详细子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
  接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继续性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继续行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。因为有抽象类,它答应使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

  第二十,List, Set, Map是否继续自Collection接口?
  List,Set是
  Map不是
    第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
  都不能
  第二十二,接口是否可继续接口? 抽象类是否可实现(implements)接口? 抽象类是否可继续实体类(concrete class)?
  接口可以继续接口。抽象类可以实现(implements)接口,抽象类是否可继续实体类,但条件是实体类必需有明确的构造函数。
  第二十三,启动一个线程是用run()仍是start()?
  启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立刻运行。run()方法可以产生必需退出的标志来休止一个线程。
  第二十四,构造器Constructor是否可被override?
  构造器Constructor不能被继续,因此不能重写Overriding,但可以被重载Overloading.
  第二十五,是否可以继续String类?
  String类是final类故不可以继续。
  第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
  不能,一个对象的一个synchronized方法只能由一个线程访问。
  第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前仍是后?
  会执行,在return前执行。
  第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
  有C背景的程序员特别喜欢问这种题目。
  2 << 3
  第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对分歧错误?
  分歧错误,有相同的hash code.
  第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递仍是引用传递?
  是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
  第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
  switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte.long,string 都不能作用于swtich.
  第三十二,编程题: 写一个Singleton出来。
  Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
  一般Singleton模式通常有几种种形式:
  第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
  public class Singleton {
  private Singleton(){}
  //在自己内部定义自己一个实例,是不是很希奇?
  //留意这是private 只供内部调用
  private static Singleton instance = new Singleton();
  //这里提供了一个供外部访问本class的静态方法,可以直接访问
  public static Singleton getInstance() {
  return instance;
  }
  }
  第二种形式:
  public class Singleton {
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //这个方法比上面有所改进,不用每次都进行天生对象,只是第一次
  //使用时天生实例,进步了效率!
  if (instance==null)
  instance=new Singleton();
  return instance;   }
  }
  其他形式:
  定义一个类,它的构造函数为private的,所有方法为static的。
  一般以为第一种形式要更加安全些
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-6-7 04:22 , Processed in 0.408161 second(s), 50 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表