zoukankan      html  css  js  c++  java
  • Java 基础面试

    1.如何正确的退出多层嵌套循环

    • 使用标号和break;

    • 通过在外层循环中添加标识符

    2.内部类的作用

    内部类可以有多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立.在单个外围类当中,可以让多个内部类以不同的方式实现同一接口,或者继承同一个类.创建内部类对象的时刻不依赖于外部类对象的创建.内部类并没有令人疑惑的”is-a”关系,它就像是一个独立的实体.

    3、final,finalize和finally的不同之处

    final 是一个修饰符,可以修饰变量、方法和类。

    finalize 方法是在对象被回收之前调用的方法,给对象自己最后一个复活的机会,但是什么时候调用 finalize 没有保证。

    finally 是一个关键字,与 try 和 catch 一起用于异常的处理。finally 块一定会被执行,无论在 try 块中是否有发生异常。

    4、final有哪些用法

    1.被final修饰的类不可以被继承 
    2.被final修饰的方法不可以被重写 
    3.被final修饰的变量不可以被改变.如果修饰引用,那么表示引用不可变,引用指向的内容可变. 
    4.被final修饰的方法,JVM会尝试将其内联,以提高运行效率 
    5.被final修饰的常量,在编译阶段会存入常量池中.

    回答出编译器对final域要遵守的两个重排序规则更好:

    1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序. 
    2.初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序

    5、static都有哪些用法?

    静态变量、静态方法、静态块、静态内部类、静态导包

    6、深拷贝和浅拷贝的区别是什么?

    浅拷贝:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅拷贝仅仅复制值,而不复制它所引用的对象。

    深拷贝:被复制对象的所有变量都含有与原来的对象相同的值,而那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深拷贝把要复制的对象所引用的对象都复制了一遍。

    7、String,StringBuffer和StringBuilder区别

    String是字符串常量,final修饰;StringBuffer字符串变量(线程安全); StringBuilder 字符串变量(线程不安全).

    String和StringBuffer主要区别是性能:

    String是不可变对象,每次对String类型进行操作都等同于产生了一个新的String对象,然后指向新的String对象.所以尽量不在对String进行大量的拼接操作,否则会产生很多临时对象,导致GC开始工作,影响系统性能.

    StringBuffer是对对象本身操作,而不是产生新的对象,因此在有大量拼接的情况下,我们建议使用StringBuffer.

    但是需要注意现在JVM会对String拼接做一定的优化: 
    String s=“This is only ”+”simple”+”test”会被虚拟机直接优化成String s=“This is only simple test”,此时就不存在拼接过程.

    StringBuffer是线程安全的可变字符串,其内部实现是可变数组.StringBuilder是jdk 1.5新增的,其功能和StringBuffer类似,但是非线程安全.因此,在没有多线程问题的前提下,使用StringBuilder会取得更好的性能.

    8.栈(stack)、堆(heap)、静态存储区

    • stack的空间由操作系统自动分配和释放,heap的空间是手动申请和释放的,heap常用new关键字来分配。
    • stack空间有限,heap的空间是很大的自由区。

    String str=new String(“hello”);

    上面的语句中str放在栈上,用new创建出来的字符串对象放在堆上,而“hello”这个字面量放在放在静态存储区。

  • 相关阅读:
    机器人对话小程序
    partial关键字的含义
    TreeView控件常用写法
    电话本管理程序(实现增删改查功能)
    三层架构
    c# RegistryKey 的相关简单操作
    VS2010程序打包操作(超详细的)
    一些中文.net讲座
    对象表单自动数据邦定
    AspNetForums 2.0中的全文检索
  • 原文地址:https://www.cnblogs.com/mcahkf/p/9186247.html
Copyright © 2011-2022 走看看