面试
一点一滴g
这个作者很懒,什么都没留下…
展开
-
基于java的生产者和消费者三种实现方式
1、概述生产者和消费者问题是一个经典的线程同步问题。生产者(Producer)生产产品(Product),放入仓库(Repertory);消费者(Consumer)消费产品,从仓库里获取。仓库爆满时生产者等待消费者消费,仓库为空时消费者等待生产者生产。2、实现2.1、synchronized生产者Producer:public class Producer implements Run...原创 2019-07-07 17:22:36 · 116 阅读 · 0 评论 -
init方法与clinit方法的区别
< clinit>:在jvm第一次加载class文件时调用,包括静态变量初始化语句和静态块的执行< init>:在实例创建出来的时候调用,包括调用new操作符;调用Class或java.lang.reflect.Constructor对象的newInstance()方法;调用任何现有对象的clone()方法;通过java.io.ObjectInputStream类的get...原创 2019-07-07 17:28:19 · 295 阅读 · 0 评论 -
Java对象的创建过程
关于对象的创建过程一般是从new指令(我说的是JVM的层面)开始的,JVM首先对符号引用进行解析,如果找不到对应的符号引用,那么这个类还没有被加载,因此JVM便会进行类加载过程。符号引用解析完毕之后,JVM会为对象在堆中分配内存,HotSpot虚拟机实现的JAVA对象包括三个部分:对象头、实例字段和对齐填充字段,其中要注意的是,实例字段包括自身定义的和从父类继承下来的(即使父类的实例字段被子类覆盖...原创 2019-07-07 17:58:22 · 316 阅读 · 0 评论 -
Java面试基础(1)
注:编号不代表优先级,每个问题同等重要!!!注:编号不代表优先级,每个问题同等重要!!!注:编号不代表优先级,每个问题同等重要!!!1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为...原创 2019-07-08 14:33:06 · 547 阅读 · 0 评论 -
Linux用户态和内核态
当我们说“从用户态切换到内核态”时(例如在进行系统调用read或fork时),是指当前的进程从一种状态进入了另一种状态(并没有进程的切换)?还是指当前的进程被挂起了,另一种特殊的内核进程被调度(发生了进程切换)?即:内核态是指一个特殊的进程,还是指进程的一种特殊状态?Linux用户态和内核态Unix/Linux的系统架构如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核...转载 2019-07-29 16:59:01 · 206 阅读 · 0 评论 -
死锁详解
1.定义:所谓死锁: 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。官方定义:死锁的规范定义:集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该组进程是死锁的。2.产生死锁的原因主要是:(1) 因为系统资源不足。...转载 2019-07-29 17:22:21 · 224 阅读 · 0 评论 -
进程和线程
进程进程是一个动态的实体,它是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位。每一个进程都有它自己的地址空间。进程由程序、数据、进程控制块PCB(Process Control Block)组成。进程控制块是进程存在的惟一标识,系统通过PCB的存在而感知进程的存在。代码段存放程序的可执行代码。数据段存放程序的全局变量、常量、静态变量。堆栈段中的堆用于存放动态分配的内存变量,堆栈段...原创 2019-07-25 17:29:45 · 120 阅读 · 0 评论 -
进程通信的方式
进程通信,是指进程之间的信息交换(信息量少则一个状态或数值,多者则是成千上万个字节)。因此,对于用信号量进行的进程间的互斥和同步,由于其所交换的信息量少而被归结为低级通信。所谓高级进程通信指:用户可以利用操作系统所提供的一组通信命令传送大量数据的一种通信方式。操作系统隐藏了进程通信的实现细节。或者说,通信过程对用户是透明的。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。...原创 2019-07-26 13:13:05 · 245 阅读 · 0 评论 -
Spring面试合集
1. Spring的IOC初始化流程Spring IOC的核心是BeanFactory其实SpringIOC初始化的过程就是准备好BeanFactory的过程。(1)定位并获取资源文件因为对象和对象之间的关系存储在xml或properties等语义化配置文件中,首先要定位到配置文件。用资源加载器ResourceLoader将资源文件路径转换为对应的Resource(2)解析资源文件(3...原创 2019-08-07 15:55:22 · 121 阅读 · 0 评论