
Java 面试
zl_StepByStep
人是不能太闲的,闲久了,努力一下就以为在拼命!
展开
-
Java中的String类、常量池与intern方法
在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊,它的主要使用方法有两种:①直接使用双引号声明出来的String对象会直接存储在常量池中 ②如果不是双引号直接声明的String对...原创 2018-09-06 22:22:55 · 475 阅读 · 0 评论 -
(四)排序算法(Java实现)
本篇博客中总结了以下经典排序算法:冒泡排序、快速排序、简单插入排序、希尔排序、简单选择排序、堆排序、二路归并排序、计数排序、桶排序、基数排序。经典的排序算法分为下面两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序。时间复杂度不能突破O(nlogn)而得此名称。 线性时间非比较类排序:不能通过比较来决定元素间的相对次序。它可以突破比较排序的时间下限,以线性时间运行而得此称。...原创 2018-05-01 14:10:14 · 4972 阅读 · 0 评论 -
Java高并发编程 (马士兵老师视频)笔记(一)同步器
本篇主要总结同步器的相关例子:包括synchronized、volatile、原子变量类(AtomicXxx)、CountDownLatch、ReentrantLock和ThreadLocal。还涉及到wait和notify/notifyAll。回忆关于线程的几个基本知识点:◆ 线程的概念(程序中不同的执行路径可以放到不同的CPU中同步运行);◆ 如何启动一个线程(继承Thread类 ...原创 2019-03-24 23:20:21 · 2413 阅读 · 0 评论 -
Java垃圾回收
垃圾回收主要回收的是堆内存,基于分代的思想,分为新生代和老年代。本篇主要涉及到JVM中对象分配、对象晋级、对象的生死判定、对象回收、垃圾回收器以及一些垃圾回收的面试题。目录垃圾回收的一些基本概念■JVM中堆内存分配■ 对象分配■ 对象晋级■ 对象生死判定对象回收方法论——分代收集■ 新生代——标记清除法■ 新生代——复制算法■ 老年代——标记整理算法...原创 2019-03-05 21:10:24 · 579 阅读 · 0 评论 -
Java内存模型及内存溢出相关问题
java内存模型是jvm的基础,而jvm是java的基础,所以弄明白java的内存模型是至关重要的!本篇设计到了Java内存模型(堆、栈等)、常见的内存溢出(OOM、StackOutflowError等)。目录一、Java内存模型相关问题JDK1.6、1.7、1.8的jvm(逻辑上的)内存结构栈和堆的区别是什么?JDK1.8为什么要去除方法区(永久区)?二、常见的内...原创 2019-02-17 01:06:07 · 660 阅读 · 0 评论 -
Servlet常见面试题
目录Servlet的概念,JSP与Servlet的区别Servlet的生命周期Servlet中的session的工作原理,以及设置过期时间的方式Servlet中的filter的应用场景JSP的动态include和静态includeweb.xml的作用Servlet的线程安全问题Servlet的概念,JSP与Servlet的区别 servlet是基于j...原创 2019-03-05 23:28:31 · 3821 阅读 · 0 评论 -
对象和对象的引用,值传递和引用传递
刚刚接触Java时应该听说过一句“万物皆对象”,《Java编程思想》一书中也描述对象“将对象视为奇特的变量,它可以存储数据,除此之外,还可以要求它在自身上执行操作。理论上讲,可以抽象待求解问题的任何概念化构件,将其表示为程序中的对象”。对于对象的引用,心里大概知道,却不知怎么表达。还有一个问题就是Java是值传递还是引用传递,在C语言中这个问题看到的比较多,在Java中似乎没怎么探讨过。下面围绕上面两个问题来分析!原创 2018-09-15 16:08:46 · 2959 阅读 · 0 评论 -
Java8新特性之日期处理
在Java8之前,操作日期的话不是很方便,有很多地方需要自己去实现,Java8中在java.time包里新增了很多处理日期的类,通过这些类可以使开发者更加便捷的操作日期,这些类都是final修饰的,且都是线程安全的。下面介绍几个常用类:LocalDate类只能处理日期public class TestLocalDate { public static void ...原创 2018-09-17 23:19:42 · 330 阅读 · 0 评论 -
Java中==与equals()以及hashCode()
说起==和equals()方法,心里大概明白,若是要详解,可能会有些说不清,hashCode()方法用的不是很多,要说它和equals()方法的联系,一时也说不太清,本篇详细分析一下! *Java中==与equals的区别? 对于八大基本数据类型(包括数组)的比较,那一定是用==,因为只有引用类型才有方法嘛!所以对于==和equals()方法的讨论仅限于引用类型。S...原创 2018-09-08 18:55:03 · 315 阅读 · 0 评论 -
String、StringBuffer与StringBuilder
似乎在平时编码中,String、StringBuffer与StringBuilder三者中只用到了String,另外两个很少用到。此篇来总结一下他们三者的区别、适用环境。*String、StringBuffer与StringBuilder三者的区别? 首先应该明确:String是字符串常量,StringBuilder和StringBuffer是字符串变量。其次就是Stri...原创 2018-09-08 13:53:13 · 174 阅读 · 0 评论 -
Java8新特性之stream、map和reduce
Java8新了stream API,需要注意的是Stream和I/O中的流是没有关系的,这个stream主要是要来处理集合数据的,可以将其看作一个高级迭代器。在Collection接口中新增了非抽象的stream方法来获取集合的流。 另外,Java8中新增了一个Optional类用于处理空指针异常,该类位于java.util包下,使用这个类可以更好的支持函数式编程,并且可以简化...原创 2018-09-16 23:07:53 · 49714 阅读 · 4 评论 -
(9)Java多线程
我发现这篇关于线程的文章写的很好,在此强烈推见点击打开链接了解线程之前要了解以下三点:1、线程是进程的一个实体,线程本身是不会独立存在的!2、进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程至少有一个线程,一个进程中的多个线程是共享进程资源的。3、操作系统在分配资源时,把资源分配给了进程,但是CPU资源比较特殊,它是分配...原创 2018-03-25 17:40:52 · 457 阅读 · 0 评论 -
(8)IO流技术
1.IO是什么意思?data source是什么意思?IO:Input Outputdata source:数据流。 2.字节流和字符流有什么区别?输入流输出流有什么区别? 字节流和字符流是流的一种划分,按照处理流的数据单位进行的划分。两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入是使用InputStream;在字符流中输出主要是...原创 2018-03-24 21:36:32 · 833 阅读 · 0 评论 -
接口和抽象类的区别
*接口和抽象类的概念? 接口(interface),是抽象方法的集合,一个类通过实现接口来实现接口中的抽象方法。 切记:接口不是类,接口无法被实例化!类描述对象的属性和方法,接口则包含类需要实现的方法,除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。在Java中,接口类型可以用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。 ...原创 2018-09-03 22:32:57 · 215 阅读 · 0 评论 -
Java中的多态及其实现机制
Java面向对象的三大特征——封装、继承和多态,多态比较难以理解,也通常被考察,所以掌握多态及其实现机制是尤为重要的。本篇主要总结了多态的定义,编译时多态和运行时多态,方法重载和重写的区别、关于多态的例子这些问题。原创 2018-09-03 20:35:57 · 511 阅读 · 0 评论 -
Java高并发编程 (马士兵老师视频)笔记(二)并发容器
本篇主要总结了:线程安全的单例模式和并发容器。其中并发容器包含:ConcurrentHashMap、ConcurrentSkipListMap、CopyOnWriteArrayList和队列相关的内部加锁的并发队列ConcurrentLinkedQueue 以及阻塞队列BlockingQueue (LinkedBlockingQueue、ArrayBlockingQueue 、DelayQu...原创 2019-03-27 17:25:34 · 3039 阅读 · 7 评论