1、java中Static关键字有哪些特点???
答:
1)、static成员变量
静态变量:属于类,内存中只有一个复制,所有实例都指向同一个内存地址,只要类被加载,静态变量就会本分配空间,调用方式有两种。类.静态变量 和 对象.静态变量
实例变量:属于对象,只有对象被创建,实例对象才会被分配空间,调用方式:对象.实例变量
2)、static成员方法
静态方法:属于类,不需要创建对象,就可以被调用。调用方式:类.静态方法 和 对象.静态方法
非静态方法:属于对象,只能在对象被创建出来之后才可以被使用。
注意:static方法中,不能使用this和super关键字,不能调用非static方法,只能访问所属类的静态成员变量和静态成员方法。
2、java中length属性与length()方法有什么区别???
答:length属性属于数组,用来获取数组的长度;而length()方法属于String 用来计算字符串长度。
3、java中Collections框架是什么???
答:Collection是整个集合框架的基础,它里面存储了一组对象,用于表示不同类型的Collections.主要有一下三种,其特点如下。
1)、set 主要特点集合中元素不能重复。
2)、list有序的Collection,按照对象的进入顺序保存对象,可以重复。
3)、map提供了从键映射到值得数据结构,值可以重复单键必须唯一。
4、java中ArrayList 、Vector 、LinkedList有什么区别???
答:ArrayList 、Vector 、LinkedList类均在java.util包,均为可伸缩数组,即可以动态改变长度的数组。
ArrayList 、Vector 都是基于数组来实现的,数据存储是连续的,支持下标访问元素,查询快,插入慢。
区别在于:ArrayList提供的方法都不是同步的,且线程不安全,但效率高。Vector大部分方法都是同步的,且线程安全,效率低。
LinkedList 采用双向链表来实现,因此访问效率低,插入效率高,且该容器是非线性安全的。
5、java中HashTable与HashMap有什么区别???
答:
1、父类不同:
HashMap是继承自AbstractMap类,而HashTable是继承自Dictionary。但都是实现了Map方法。
2、null值不同:
HashMap可以允许存在一个为null的key和任意个null的value,但是HashTable中的key和value都不允许为null。
3、线程安全性:
hashtable是线程安全的,hashmap不之初线程同步,不是线程安全的
11、同步与异步的区别???
答:所谓的同步,就是发出一个功能调用时,在没有得到结果之前,该调用就不会放回,或继续执行后续操作。简单来说,同步就是必须一件一件的来做,等前一件事做完了,才能做下一件事。
6. throw 和 throws 的区别?
throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。
75. final、finally、finalize 有什么区别?
final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。
finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定要执行的代码方法finally代码块中,表示不管是否出现异常,该代码块都会执行,一般用来存放一些关闭资源的代码。
finalize是一个方法,属于Object类的一个方法,而Object类是所有类的父类,该方法一般由垃圾回收器来调用,当我们调用System的gc()方法的时候,由垃圾回收器调用finalize(),回收垃圾。
7. try-catch-finally 中哪个部分可以省略?
答:catch 可以省略
原因:
更为严格的说法其实是:try只适合处理运行时异常,try+catch适合处理运行时异常+普通异常。也就是说,如果你只用try去处理普通异常却不加以catch处理,编译是通不过的,因为编译器硬性规定,普通异常如果选择捕获,则必须用catch显示声明以便进一步处理。而运行时异常在编译时没有如此规定,所以catch可以省略,你加上catch编译器也觉得无可厚非。
理论上,编译器看任何代码都不顺眼,都觉得可能有潜在的问题,所以你即使对所有代码加上try,代码在运行期时也只不过是在正常运行的基础上加一层皮。但是你一旦对一段代码加上try,就等于显示地承诺编译器,对这段代码可能抛出的异常进行捕获而非向上抛出处理。如果是普通异常,编译器要求必须用catch捕获以便进一步处理;如果运行时异常,捕获然后丢弃并且+finally扫尾处理,或者加上catch捕获以便进一步处理。
至于加上finally,则是在不管有没捕获异常,都要进行的“扫尾”处理。
8. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
答:会执行,在 return 前执行。
2019年Java 最常见的 面试题
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Tags in this post...
Reply on: @reply_date@
@reply_contents@