Java面试题目
文章平均质量分 91
java面试题
CNJomin
这个作者很懒,什么都没留下…
展开
-
计算机操作系统 - 进程管理
计算机操作系统 - 进程管理 文章目录计算机操作系统 - 进程管理前言一、进程与线程1.1进程1.2线程1.3区别(1)拥有资源(2)调度(3)系统开销(4)通信方面二、进程状态的切换三、进程调度算法3.1批处理系统(1)先来先服务(2)短作业优先(3)最短剩余时间优先3.2交互式系统(1)时间片轮转(2) 优先级调度(3)多级反馈队列3.3 实时系统四、进程同步4.1临界值4.2同步与互斥4.3信号量(1)使用信号量实现生产者-消费者问题4.4管程五、经典同步问题六、进程通信6.1管道6.1FIFO6.2原创 2022-01-28 10:01:36 · 1295 阅读 · 0 评论 -
JVM-内存模型
JVM-内存模型 文章目录JVM-内存模型前言一、JVM内存模型?二、运行时数据区2.1线程共享的(1)堆Java7中内存划分Java8中内存划分(2)方法区(3)为什么要元空间取代永久代呢?2.2线程私有(1)虚拟机栈(2)本地方法栈(3)程序计数器总结 前言 Java语言特点是与平台无关性。而Java虚拟机就是实现这一特点的关键。 比如下图是编译后产生文件是**.class文件是二进制的字节码**,字节码是不能直接被机器运行的,通过JVM把编译好的字节码转转换成不同操作系统可以直接识别的机器码指令。原创 2021-09-21 10:12:22 · 235 阅读 · 0 评论 -
JVM-类加载和双亲委派
JVM-类加载和双亲委派 文章目录JVM-类加载和双亲委派前言一、类加载过程?1.1 加载1.2 验证1.3 准备1.4 解析1.5 初始化1.6加载那一步干了什么?1.7类加载器二、双亲委派机制三、如何自定义类加载器? 前言 提示:当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。 一、类加载过程? 其中loadClass的类加载过程如下: 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >原创 2021-09-20 22:23:22 · 81 阅读 · 0 评论 -
java并发编程-Synchronized
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、设计同步器的意义1.如何解决线程并发安全问题?二、synchronized原理详解1.synchronized底层原理2.什么是monitor?三、对象的内存布局1.对象头总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技原创 2021-09-18 20:34:56 · 64 阅读 · 0 评论 -
java并发编程-volatile内存语义
java并发编程-volatile内存语义 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录java并发编程-volatile内存语义前言一、volatile的可见性二、volatile禁止重排优化2.1硬件层的内存屏障2.2JVM提供四种内存屏障双重检测锁总结 前言 提示:volatile有以下两个作用: 保证被volatile修饰的共享变量对所有线程总数可见的,也就是当一个线程修改了一个被volatile修饰共享变量的值,新值总是可以被其他线程立即得知。 禁止指令重排序优原创 2021-09-18 16:54:13 · 90 阅读 · 0 评论 -
java并发编程-JMM模型
java并发编程-JMM模型 JMM模型 文章目录java并发编程-JMM模型一、什么是JMM模型一、JMM不同于JVM内存区域模型1.1主内存1.2工作内存1.3Java内存模型与硬件内存架构的关系二、JMM存在的必要性三、数据同步八大原子操作四、JMM不同于JVM内存区域模型五、并发编程的可见性,原子性与有序性问题六、JMM如何解决原子性&可见性&有序性问题七、JMM如何解决原子性&可见性&有序性问题总结 一、什么是JMM模型 JVM运行程序的实体是线程,而每个线程原创 2021-09-18 15:54:21 · 135 阅读 · 0 评论 -
HashMap 源码解析
HashMap 源码解析 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录HashMap 源码解析一、整体架构1.类注释2.常见属性扩容的门槛,有两种情况,如果初始化时,给定数组大小的话,通过 tableSizeFor 方法计算,数组大小永远接近于 2 的幂次方;如果是通过 resize 方法进行扩容,大小 = 数组容量 * 0.75。二、新增1.新增key,value大概步骤如下:2.链表的新增为什么链表是8才会转红黑树3.红黑树新增节点过程三、查找1 链表查找的关键代码是:2原创 2021-09-17 21:49:50 · 74 阅读 · 0 评论 -
ArrayList源码解析和设计思路
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习..原创 2021-05-25 15:59:42 · 136 阅读 · 0 评论 -
LinkedList 源码解析
LinkedList 源码解析 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录LinkedList 源码解析一、引导语二、整体构架1.Node的组成部分二、源码分析1.追加(新增)1.1 从尾部开始添加1.2 从头部开始添加2 节点删除1.1从头部删除3 节点查询4 迭代器总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、引导语 Linke原创 2021-09-17 15:57:44 · 79 阅读 · 0 评论 -
1 java基础
1 java基础 文章目录1 java基础前言一、面相对像和面向过程的区别1、面向过程2、面向对象二、java语言有哪些特点三、JVM JDK和JRE解答1、java程序到源代码运行2、JVM3、JDK4、JRE四、字符型常量和字符串常量的区别五、构造器Constructor是否可以被Overide?六、重载和重写七、Java三大特性:封装、继承、多态1封装2继承3 多态八、String StringBuffer和String Builder的却别是什么?String为什么是不可变的?1可变性2 线程安全原创 2021-09-16 23:08:16 · 88 阅读 · 0 评论