JavaSE 测试题

  1. &&和&的区别(3分)
    短路与,非短路与和位与运算符
    短路与:当两边都为真时结果为真,第一个语句为假时不执行第二条语句
    非短路与:两边无论真假都执行
    位与:要运算的两个数转换为二进制,两边相同时结果为1,不一样为0,结果不会超过最小的那个

  2. continue、break、return的区别(3分)
    Continue为结束当前次循环,执行下一次循环
    Break为结束本层循环,嵌套循环中要跳出外层循环使用breakouter
    return有两个作用
    终止函数运行。
    结束swtch分支。
    返回方法的返回值,在try catch finally语句块try中不执行。

  3. 简述什么是数据结构(4分)
    计算机储存组织数据的一种方式、方法,使用合适的数据结构能提高程序运行效率

  4. 列举常见的数据结构及特征(5分)
    数组:查询修改快,添加删除慢
    长度一旦确定无法更改
    链表:查询修改慢,添加删除快
    散列表:数组链表,综合数组与链表的优点,存储两个元素
    树:二叉查找树和红黑树,
    查询修改快,添加删除慢
    按照某个规则进行排序
    栈:先进后出

  5. 简述类和对象的关系(3分)
    类:定义模板,属性定义变量,行为定义方法
    对象:模板的实例化,属性有了具体的值
    比如:
    类是对一类对象的抽象,对象是类的具体实现

  6. 简述面向对象和面向过程的区别(3分)
    面向过程:需要知道整个程序的实现过程
    面向对象:不需要知道整个程序的过程,交由对象去处理
    通俗讲就是自己做饭与请厨师做饭的区别
    区别:面向对象比面向过程耦合度低,可扩展性和可重用性高,易于维护

  7. Overload和Override的区别(3分)
    Overload是方法重载:方法名称相同,返回值和参数列表不同
    Override是方法覆写:方法名,返回值,参数列表全部相同,不能有更低的访问权限,不能有更宽泛的异常,父类方法无法满足子类

  8. 简述this和super的作用(3分)
    This:代表当前对象,不能出现在静态上下文,区分成员变量与局部变量,写在构造方法第一行用来重载调用其它构造方法
    Super:在子类中表示父类型特征,不能出现在静态上下文,区分子类属性与父类属性,默认在子类构造方法第一行,调用父类无参构造

  9. final、finally、finalize的区别(4分)
    Fianl:修饰符,表示最终的,修饰的类不能被继承,修饰的方法不能被覆写,修饰的变量在整个程序生命周期内不可更改,没有默认值,必须显式赋值
    Finally:与try catch连用,一定会执行,一般用于释放与关闭资源
    Finalize:当没有更多引用指向该对象时,这个对象会被jvm当作垃圾回收,此时自动调用该方法,垃圾回收之前自动调用,可以使用System.gc()进行建议回收

  10. Object类中有哪些方法?并描述方法功能(至少4个)(3分)
    Equals:比较两个值是否相等,需要根据需求覆写
    HashCode:返回类的哈希值,因为只有equals方法无法判断两个对象是否完全相等
    toString:对象的字符串形式描述,需要根据需求覆写,输出一个对象时会自动调用toString方法
    Finalize:垃圾自动回收时自动调用该方法
    Wait:线程通信,让当前线程挂起
    Notify:线程通信,随机唤醒一个在该对象中挂起的线程
    NotifyAll:线程通信,唤醒所有在该对象中挂起的线程

  11. 什么是多态?并简述多态的优点(4分)
    多态:父类引用指向子类对象
    同一个操作对应多种实现,有不同的解释
    多态是同一个行为具有多个不同表现形式或形态的能力。
    优点:降低耦合度,扩展性,复用性

  12. Error和Exception的区别(3分)
    Error:程序无法处理的异常,比Exception更加严重,不容易处理修复
    Exception:运行时异常和编译时异常,可以通过throw创建异常并处理,或通过throws告知调用处处理异常

  13. 什么是设计模式(4分)
    碰到问题的解决方式
    前人编程中总结的编码的最佳实践,长期开发过程中约定俗成的写法,遵循设计模式开发可以提高效率,目标实现高内聚低耦合

  14. 简述sleep()和wait()的区别(3分)
    Sleep():线程睡眠,静态方法,当线程处于睡眠状态时线程仍是执行的,如果是同步方法仍然对方法加锁,不会交出锁,睡眠结束后继续执行,用在任何地方
    Wait():线程挂起,成员方法,当线程处于挂起状态不在执行,进入阻塞状态等待唤醒,释放锁,唤醒后进入就绪状态,当方法没有锁时继续执行,同步加锁的成员方法

  15. TCP和UDP的区别(4分)
    TCP:面向连接,可靠,效率低,点对点连接
    UDP:非连接,不可靠,效率高,一对一,一对多,多对一,多对多的交互通信

  16. 简述Comparator和Comparable的区别(5分)
    Comparator:使用conparator需要新建类继承Comparator或者使用匿名内部类,覆写compare方法进行比较,外部比较器
    Comparable:使用Comparable需要让要比较的类实现Comparable接口,并在类中覆写compareTo方法进行比较,内部比较器
    Comparator优先级高于Comparable
    17 判断一下代码是否有错误,如果有错误请说明错误原因.如果没有请说明打印结果(3分)
    18 int sum;
    19 for (int i = 0; i<=10 ;i++ ){
    20 sum += i;
    21.}
    22 System.out.println( sum );

有错误sum没有初始值,局部变量没有默认值,不赋值不能使用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值