Java面试基础技术
文章平均质量分 83
针对java常用的面试技术,重要的知识点,进行整理归类,并根据个人理解完成博文,便于大家学习共勉,不足之处多多指教,谢谢
点滴寸土
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java面试系列--J2SE基础(一)
从今天开始整理一个系列文章,忘了上次从哪里看到的这些问题,都是些常见的面试题,当时把问题记了下来,今天开始,一一解答学习,顺便提升自己的技术知识基础水平,如有不正确的地方,可提出来共勉,谢谢。------------------------------------------------------------------------------------------------------原创 2018-01-12 16:25:14 · 550 阅读 · 0 评论 -
java面试系列--J2SE基础(二)
9. Map、Set、List、Queue、Stack的特点与用法。参考 https://www.cnblogs.com/yw-ah/p/5841369.htmlCollection 是对象集合, Collection 有两个子接口 List 和 SetList 可以通过下标 (1,2..) 来取得值,值可以重复Set 只能通过游标来取值,并且值是不能重复的ArrayList...原创 2018-01-13 11:33:02 · 341 阅读 · 1 评论 -
java面试系列--J2SE基础(三)
14. try catchfinally,try里有return,finally还执行么?1)、不管是否出现异常,finally块中代码都会执行;2)、当try和catch中有return时,finally仍然会执行;3)、finally是在return后面的表达式运算后执行的,具体返回哪一个,看下面的例子,不建议在finally里return,一般finally用于比如关闭资源等;原创 2018-01-15 21:25:35 · 265 阅读 · 0 评论 -
java面试系列--J2SE基础(四)
16. Java面向对象的三个特征与含义。三大特征是:封装、继承和多态。封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在java中能使用private、protected、public三种修饰符或不用(即默认default)对外部对象访问该对象的属性和行为进行限制。简单的说,一个类就是一个封装了数据以及操作这些数据的代原创 2018-01-18 22:16:48 · 331 阅读 · 0 评论 -
java面试系列--J2SE基础(五)
20. java多态的实现原理。多态可以理解为 “引用”,对于面向对象,多态分为编译时多态和运行时多态。其中编辑时多态是静态的,主要指方法的重载,它是根据参数列表的不同(个数、类型)来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。所以可以这样理解:(可以结合这个定义及下面的代码实原创 2018-01-29 15:15:39 · 271 阅读 · 0 评论 -
java面试系列--J2SE基础(六)
21. 实现多线程的两种方法:Thread与Runable。Thread是Class,要求单一继承,不能再继承其他类,有一定的局限性;Runable是接口Inteface,接口可以实现多个,方便拓展。在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。 第一是创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态。 第二是就绪状态。原创 2018-01-30 10:31:58 · 254 阅读 · 0 评论 -
java面试系列--J2SE基础(七)
22. 线程同步的方法:sychronized、lock、reentrantLock等。synchronized:在资源竞争一般,偶尔需要同步,synchronized是很合适的;因为编译程序通常会尽可能的进行优化synchronize。所以synchronized可读性非常好,容易理解和使用,但是对竞争资源激烈时会降低性能;ReentrantLock: 提供了多样化的同步,可以根据具体情况获取锁...原创 2018-01-30 17:11:49 · 327 阅读 · 0 评论 -
java面试系列--J2SE基础(八)
24. 写出生产者消费者模式。生产者消费者模式介绍:生产者生产数据到缓冲区中,消费者从缓冲区中取数据。如果缓冲区已经满了,不能继续生产,则生产者线程阻塞等待,直到有空闲缓冲区可供继续生产;如果缓冲区为空,不能继续消费,则消费者线程阻塞等待,直到缓冲区有新产生可供消费。常见场景:比如厂家生产一批东西到商场,顾客消费者到商场买东西,厂家即为生产者,商场即为缓冲区,顾客即为消费者。缓冲区作用:1. 解耦...原创 2018-02-08 21:04:01 · 310 阅读 · 0 评论 -
java面试系列--J2SE基础(九)
25. ThreadLocal的设计理念与作用。官方JDK7释义:以下节选自官方api中释义:This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or s...原创 2018-03-03 16:26:25 · 220 阅读 · 0 评论 -
java面试系列--J2SE基础(十)
26. ThreadPool用法与优势。类简介:public class ThreadPoolExecutor extends AbstractExecutorService 一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。线程池解决的问题:1、增强性能;2、绑定和管理资源;线程池可以解决两个不同问题:由于减...原创 2018-03-03 17:00:14 · 271 阅读 · 0 评论 -
java面试系列--J2SE基础(十一)
27. Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。ArrayBlockingQueue介绍:ArrayBlockingQueue是一个由数组支持的有界阻塞队列,继承自AbstractBlockingQueue,实现了BlockingQueue接口(Queue接口和Collection接口)。此队列按 FIFO(先进先出)原则对元素进...原创 2018-03-04 17:10:01 · 346 阅读 · 0 评论 -
java面试系列--J2SE基础(十二)
28. wait()和sleep()的区别。wait是java.lang包的,属于Object的方法,sleep是属于Thread的方法;wait的时候,当前线程会释放资源锁,然后进入等待锁定池,只有针对此对象调用notify方法后本线程才会继续执行,sleep的时候,当前资源锁并没有释放,直到sleep结束然后继续执行;sleep的时候一般都要对异常进行处理,捕捉或外抛,而且sleep方法是一个...原创 2018-03-05 23:27:26 · 251 阅读 · 0 评论 -
java面试系列--J2SE基础(十三)
29. foreach与正常for循环效率对比。foreach与for如何选择:数组结构的数据,建议使用普通for循环,它采用下标访问,检索速度很快,但是foreach性能也还可以。链表结构的数据,一般不要使用普通for循环获取数据,会依次检索,效率低,数据量很大时异常占用资源。代码实例:package com.ws.compareforeach;import java.util.ArrayL...原创 2018-03-09 20:53:38 · 261 阅读 · 0 评论 -
java面试系列--J2SE基础(十四)
31. Java IO与NIO。本文主要来自 http://tutorials.jenkov.com/java-nio/nio-vs-io.html原文是英文版,可以去学习下原文的系列文章,下文主要我在原文的基础上做了翻译和个人理解。在学习Java NIO和IO的API时候,我们很快就会想到这样一个问题:什么时候应该使用IO,什么时候应该使用NIO?在本文中,我将尝试阐明Java NIO和IO之间...原创 2018-04-17 22:10:57 · 268 阅读 · 0 评论