面试
samniwu
这个作者很懒,什么都没留下…
展开
-
java异常类
Java的异常类主要包含以下两种:ErrorException其中,Error是指系统或者编译出错情况产生的异常,是不允许捕获的;Exception是指程序运行过程中因各种原因激发java标准库产生的异常,可以被捕获,主要分为运行时异常Runtime Exception和非运行时异常NonRuntime Exception。运行时异常Runtime Exception对应于编译错误,它是指...原创 2019-05-21 07:23:50 · 279 阅读 · 0 评论 -
kafka机制与原理
https://blog.csdn.net/jason_xiaojie_liu/article/details/81746407转载 2019-07-22 23:23:29 · 286 阅读 · 0 评论 -
jvm常见面试题
1. 内存模型以及分区,需要详细到每个区放什么。栈区:栈分为java虚拟机栈和本地方法栈重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。每个方法执行都会创建一个栈帧,用于存放局部变量表,操作栈,动态链接,方法出口等。每个方法从被调用,直到被执行完。对应着一个栈帧在虚拟机中从入栈到出栈的过程。通常说的栈就是指局部变量表部分,存放编译期间可知的8种基本数据类型,及对象引用和指令地...转载 2019-06-16 22:41:27 · 222 阅读 · 0 评论 -
jvm数据区域分析
基本问题介绍下 Java 内存区域(运行时数据区)Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么)对象的访问定位的两种方式(句柄和直接指针两种方式)拓展问题String类和常量池8种基本类型的包装类和常量池1 概述对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个 new 操作去写对应的 dele...转载 2019-06-02 16:50:20 · 215 阅读 · 0 评论 -
synchronized、Lock、volatile、Condition介绍
https://www.cnblogs.com/yiwangzhibujian/p/6219047.html多线程怎么防止竞争资源,即防止对同一资源进行并发操作,那就是使用加锁机制。这是Java并发编程中必须要理解的一个知识点。其实使用起来还是比较简单,但是一定要理解。有几个概念一定要牢记:加锁必须要有锁执行完后必须要释放锁同一时间、同一个锁,只能有一个线程执行synchroniz...转载 2019-05-23 23:25:16 · 168 阅读 · 0 评论 -
java中锁的分类
参考:https://www.cnblogs.com/qifengshi/p/6831055.htmlhttp://ifeve.com/java_lock_see1/公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。对于Java中Reent...转载 2019-05-23 22:55:14 · 204 阅读 · 0 评论 -
java之常见的gc算法
引用计数法 Reference Counting给对象添加一个引用计数器,每过一个引用计数器值就+1,少一个引用就-1。当它的引用变为0时,该对象就不能再被使用。它的实现简单,但是不能解决互相循环引用的问题。根搜索算法 GC Roots Tracing以一系列叫“GC Roots”的对象为起点开始向下搜索,走过的路径称为引用链(Reference Chain),当一个对象没有和任何引用链相连...转载 2019-05-27 23:13:59 · 4765 阅读 · 1 评论 -
java之gc的工作原理
gc概述GC是什么? 为什么要有GC呢?GC是垃圾收集的意思(Garbage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。所以,Java的内存管理实际上就是对象的管理,其中包括对象的分配和释...转载 2019-05-27 22:58:33 · 713 阅读 · 0 评论 -
java乐观锁与悲观锁介绍
乐观锁与悲观锁描述乐观锁,顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中java.util.concurrent.atomic包下面的原子变量类就是使...转载 2019-05-22 23:17:18 · 1392 阅读 · 0 评论 -
java中hashmap的实现原理与底层数据结构
Hashmap是java面试中经常遇到的面试题,大部分都会问其底层原理与实现,本人也是被这道题问惨了,为了能够温故而知新,特地写了这个博客,以便时时学习。Hash结构HashMap根据名称可知,其实现方法与Hash表有密切关系。在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能。数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给...转载 2019-05-25 18:44:13 · 86978 阅读 · 9 评论 -
java中session的用法与原理
https://www.cnblogs.com/xdp-gacl/p/3855702.htmlsession简介在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的s...转载 2019-05-21 23:05:50 · 101007 阅读 · 8 评论 -
java面试系列 基础篇二
final、finally、finalize的区别finalfinallyfinalizefinalfinal是java的一个关键字,可以用来修饰java中的类、方法和变量(包括成员变量和局部变量)。final修饰类时,表明该类不可以被继承,如java中String类就是final类型的类,不可被别的类继承。final类中所有的成员方法都会隐式的定义为final方法。final修饰方法时...翻译 2019-05-12 09:26:35 · 136 阅读 · 0 评论 -
java面试系列 基础篇一
java面试系列 基础篇一面向对象的特征与特性封装继承多态面向对象的特征与特性java语言是一种面向对象的变成语言,其具备面向对象编程的三大特征:封装、继承、多态封装封装主要是将抽象的数据类型和利用这些抽象数据的相关业务功能封装在一个类中,成为一个不可分割的独立个体,实现对数据的保护,隐藏实现过程,只向外提供接口供用户使用,用户不需要关心具体的实现细节。优点:减少耦合:可以独立地开发...翻译 2019-05-11 23:18:05 · 121 阅读 · 0 评论 -
Synchronized实现原理
Java 虚拟机中的同步(Synchronization)基于进入和退出Monitor对象实现, 无论是显式同步(有明确的 monitorenter 和 monitorexit 指令,即同步代码块)还是隐式同步都是如此。在 Java 语言中,同步用的最多的地方可能是被 synchronized 修饰的同步方法。同步方法 并不是由 monitorenter 和 monitorexit 指令来实现同步...转载 2019-08-01 22:30:13 · 314 阅读 · 0 评论