Java面试常被问到的题目+解答】的更多相关文章

第一,anonymousinnerclass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 不行,对于匿名内部类,看到的一句话说的很到位: new <类或接口> <类的主体> 这种形式的new语句声明一个新的匿名类,他对一个给定的类进行扩展,或实现一个给定的接口.他还创建那个类的一个新实例,并把他作为语句的结果而返回. 这就是匿名类的实质,它本身就是一个类的继承或一个接口的实现,所以继承其它类或借口是无意义的.在…
并发.JVM.分布式.TCP/IP协议 1)Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,HashMap,TreeMap这一类的.以下简单模拟一个数据结构的连环炮. 比如,面试官先问你HashMap是不是有序的? 你肯定回答说,不是有序的.那面试官就会继续问你,有没有有顺序的Map实现类? 你如果这个时候说不知道的话,那这个问题就到此结束了.如果你说有TreeMap和LinkedHashMap. 那么面试官接下来就可能会问你,TreeMap和LinkedHas…
一:java基础1.简述string对象,StringBuffer.StringBuilder区分string是final的,内部用一个final类型的char数组存储数据,它的拼接效率比较低,实际上是通过建立一个StringBuffer,让后台调用append(),最后再将StringBuffer toSting(),每次操作Sting 都会重新建立新的对象来保存新的值.这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.StringBuffer也是final,线程安全的,中采用一个c…
原文地址:http://www.lilongdream.com/2014/04/10/94.html(为转载+整理) 以下从Java的角度总结了面试常见的算法和数据结构:字符串,链表,树,图,排序,递归 vs. 迭代,动态规划,位操作,概率问题,排列组合,以及一些需要寻找规律的题目. 1. 字符串.数组和矩阵 首先需要注意的是和C++不同,Java字符串不是char数组.没有IDE代码自动补全功能,应该记住下面这些常用的方法. [java] view plaincopy toCharArray(…
对于Java系学生而言,Java虚拟机中的垃圾收集算法是一个很重要的面试考点. 常用的垃圾收集算法主要可划分为以下三类: 1. 标记-清除算法 标记清除算法是一种比较简单的方法,直接标记内存中待回收的对象,然后直接清除.但是存在的一个问题是效率过低,标记和清除的过程耗时过高:第二个问题是空间问题,存在较多的内存碎片,导致相应的内存使用率过低. 2. 复制算法 为解决效率问题,复制算法将内存划分为大小相等的两部分,每次使用完其中的一部分,将存活的对象复制到另外一块上,然后清除已经使用过的对象. 这…
1.  什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译.Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性. 2.  JDK和JRE的区别是什么? Java运行时环境(JRE)是将要执行Java程序的Java虚拟机.它同时也包含了执行app…
基础知识: 1.C++或Java中的异常处理机制的简单原理和应用. 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常.违反语义规则包括2种情况.一种是JAVA类库内置的语义检查.例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException.另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常.所有的异常都是jav…
Java现在的热度虽然有所下降,但是,学Java的人依旧很多..Java的岗位也是渗透很多.那么,那些经典的Java知识点,你能看到问题就能说出一二三吗?来一起看看.. 1.JDK和JRE的区别 2.final.finally.finalize之间有何差异? 3.线程和进程的区别 4.Java中的HashMap的工作原理是什么? 5.Java中垃圾回收有什么目的?什么时候进行垃圾回收? 6.Java中的两种异常类型是什么?他们有什么区别?* 7.数据库连接池是什么意思? 8.什么是cookie?…
1.Vue的双向数据绑定原理是什么? 答 : vue是采用数据劫持,并且使用发布-订阅者的开发模式.原理是观察者observer通过Object.defineProperty()来劫持到各个属性的getter setter,在数据变动的时候,会被observer观察到,会通过Dep通知数据的订阅者watcher,之后进行相应的视图上面的变化 具体实现步骤,感兴趣的可以看看 第一步:需要observe的数据对象进行递归遍历,包括子属性对象的属性,都加上 setter和getter 这样的话,给这个…
一.冒泡排序 原理:比较两个相邻的元素,较大的放在右边 N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次 最好时间复杂度为O(N) Cmax = N(N-1)/2 = O(N2) Mmax = 3N(N-1)/2 = O(N2) 冒泡排序的最坏时间复杂度为O(N2) 冒泡排序的平均时间复杂度为O(N2) 复制代码 public void bubbleSort(int[] list) { int temp = 0; // 用来交换的临时数 boolean bChange =…