zoukankan      html  css  js  c++  java
  • Java基础题目汇总

    一、集合框架

    1. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别

    答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等
         equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值

    2. 数组和集合的使用区别

    ①、数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)

    ②、集合可以存储和操作数目不固定的一组数据

    ③、数据重复问题,Set可以解决数据重复问题

    3. 什么是iterator?

    为了方便处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素,例如删除和获取集合中的元素,该对象就叫做迭代器iterator。Iterator接口提供了很多对集合元素进行迭代的方法。每一个集合类都包含了可以返回迭代器实例的迭代方法。迭代器可以在迭代的过程中删除底层集合的元素。

    二、异常

    1. 常见的RuntimeException有哪些?

    答:常见的运行时异常有如下这些ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

    2. errorexception有什么区别

    答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况
         exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况

    3. 空指针异常

    ①、指针,就是java中的对象的引用。比如String s  这个s就是指针;

    ②、空指针,就是指针的内容为空,比如上面那个s,如果令它指向null,就是空指针;

    ③、空指针异常,就是一个指针是空指针,还要去操作它,既然它指向的是空对象,他就不能使用这个对象的方法。比如上面的s假如为null,还要使用s的方法,就会产生空指针异常

     三、基本数据类型

    1. short s = 1, s=s+1错误是什么?   short s=1,s+=1的错误是?

     short s=1;s=s+1的错误是会失去精度,由于1是int类型,s=s+1返回的是int类型,int类型赋值给short就会数据类型转换错误。要强制类型转换。s+=1没有错误。s+=1就是s=(Short)s+1;

    2. 说出下面程序的问题。

      byte  b1=1;

      byte  b2=2;

      byte  b3=1+2;

      byte  b4=b1+b2;

    byte  b4=b1+b2;有问题,b1和b2是变量,变量的值是不确定的可以变化的,在编译的时候,编译器javac不确定b1+b2的结果是什么,因此会将结果以int类型进行处理,所以int不能赋值给byte,编译失败;

    b3=1+2;没有问题,1和2为常量,在编译的时候,编译器已经确定了1+2的结果没有超过byte的取值范围。可以赋值给b3,所以b3=1+2正确。

    2. Integer和int的区别?

    ①Integer是int的包装类,int是Java的基本数据类型;

    ②Integer默认值是null,int是0;

    ③Integer需要实例化后才能使用,int不需要;

    ④Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值。

    四、线程

    1. sleep()和wait()的区别?

    ①、sleep()方法是Thread类的静态方法,单线程;wait()是Object超(父)类的成员方法。

    ②、sleep()没有释放锁;wait()释放了锁 。sleep导致了线程暂停执行指定时间,让出CPU该其他线程。但是它的监控状态依然保持着。当指定的时间到了又会自动恢复运行状态。

    ③、sleep()需要进行异常处理,try catch;而wait方法不需要

    ④、sleep()可以在任何地方使用,而wait()只能在同步方法和同步代码块使用

    五、封装、继承、多态、抽象

    1. 什么情况下使用抽象类?

    、其他

    1. 跳出多重嵌套循环的几种方法?

    ①标号方式,在外层定义循环标记【ok:】,break ok。代码示例:

     1 public static void main(String[] args)  {
     2         OK:
     3             for(int i=0;i<10;i++){
     4                 for(int j=0;j<10;j++){
     5                     System.out.println("i,j: "+i+","+j);
     6                     if(i==2){
     7                         break OK;
     8                     }
     9                 }
    10             }   
    11 }

    ②使用布尔值变量作为flag,变量值放到for循环的条件中。代码示例:

     1 public static void main(String[] args)  {
     2         boolean forBreak = true;
     3             for(int i=0;i<10;i++){
     4                 for(int j=0;(j<10)&&(forBreak);j++){
     5                     System.out.println("i,j: "+i+","+j);
     6                     if(i==2){
     7                         forBreak = false;
     8                     }
     9                 }
    10             }       
    11     }

    ③抛出异常

     

  • 相关阅读:
    python 生成器和推导式
    python 函数名 ,闭包 ,迭代器
    python 函数
    python BMI指数
    python 实现购物车的优化
    python 文件操作
    python set集合 深浅拷贝(难点)
    css中的float和position
    css一些简单的例子
    SQL测试题
  • 原文地址:https://www.cnblogs.com/elian91/p/15455873.html
Copyright © 2011-2022 走看看