
JavaEE
文章平均质量分 94
yuuyin
这个作者很懒,什么都没留下…
展开
-
JVM的初步认识
JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。常见的虚拟机:JVM、VMwave、Virtual Box。JVM 和其他两个虚拟机的区别:VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器;JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进行了裁剪。JVM 是一台被定制过的现实当中不存在的计算机原创 2022-07-06 19:31:04 · 872 阅读 · 0 评论 -
Linux的 一些常见指令
Linux 是一个操作系统. 和 Windows 是 “并列” 的关系.Unix & Linux 发展历程图经过这么多年的发展, Linux 已经成为 世界第一大操作系统.Linux 严格意义来说只是一个 “操作系统内核”.一个完整的操作系统 = 操作系统内核 + 配套的应用程序.由于 Linux 是一个完全开源免费的内核, 因此有些公司/开源组织又基于 Linux 内核, 提供了不同的配套程序. 这就构成了不同的 “发行版”.作为Java程序猿,在实际开发过程中,一般不需要使用系统原生的API,但是会经常原创 2022-06-26 15:09:26 · 341 阅读 · 0 评论 -
文件操作和IO
文件操作什么叫做文件平时所谈论到的文件一般都是指存储在硬盘上的普通文件,例如txt,jpg,mp4,rar等文件都可以认为是普通文件,他们都是在硬盘上存储的.在计算机中,文件是一个广义的概念不只是包含普通文件,还包含目录(把目录成为目录文件)普通文件是保存在硬盘中的机械硬盘的基本构造:盘片,存储数据的介质磁头机械硬盘一旦通上电,里面的盘头片就会高速运转,磁头就会在盘片上找到对应的数据受限于机械硬盘的硬件结构,盘片的转速越快,.读写速度越快,因工艺的限制,盘片的转速不可能无限高,原创 2022-04-06 23:13:03 · 117 阅读 · 0 评论 -
多线程进阶下
Synchronized原理基本特点结合锁策略, 我们就可以总结出, Synchronized 具有以下特性(只考虑 JDK 1.8):开始时是乐观锁, 如果锁冲突频繁, 就转换为悲观锁.开始是轻量级锁实现, 如果锁被持有的时间较长, 就转换成重量级锁.实现轻量级锁的时候大概率用到的自旋锁策略是一种不公平锁是一种可重入锁不是读写锁Synchronized典型的优化手段锁膨胀/锁升级充分体现了synchronized自适应的能力JVM 将 synchro原创 2022-04-02 12:58:17 · 121 阅读 · 0 评论 -
多线程进阶上
常见锁策略锁策略和程序员无关,和"实现锁"的人才有关系所提及到的锁策略,和Java本身没有关系,适用于所有和"锁"相关的情况.悲观锁 vs 乐观锁(处理锁冲突的原因)悲观锁:预期所冲突的概率很高乐观锁:预期锁冲突的概率很低悲观锁做的工作更多,付出的成本更多,更低效乐观锁做的工作更多,付出的成本更低,更高效读写锁 vs普通的互斥锁对于普通的互斥锁,只有两个操作 加锁和解锁只要两个线程针对同一个对象加锁,就会产生互斥对于读写锁来说,分为了三个操作加读锁 : 如果代码只是进行了读操原创 2022-04-01 14:16:16 · 313 阅读 · 0 评论 -
多线程基础[下]
文章目录单例模式饿汉模式懒汉模式懒汉模式(多线程版本)阻塞式队列什么是阻塞式队列生产者消费者模型标准库中的阻塞队列阻塞队列的基本实现定时器标准库中的定时器实现定时器线程池标准库中的线程池实现线程池下面介绍几个关于线程安全的实例吧单例模式啥是设计模式?设计模式好比象棋中的 “棋谱”. 红方当头炮, 黑方马来跳. 针对红方的一些走法, 黑方应招的时候有一些固定的套路. 按照套路来走局势就不会吃亏.软件开发中也有很多常见的 “问题场景”. 针对这些问题场景, 大佬们总结出了一些固定的套路. 按照这个套原创 2022-03-30 11:42:20 · 346 阅读 · 0 评论 -
多线程基础(中)
线程的状态线程的所有状态NEW: 安排了工作, 还未开始行动Thread对象创建好了,但是没有调用startt.getState() 通过这个方法可以获取到当前线程的状态.通过t这个对象调用的getState,就是获取到t的状态TERMINATED: 工作完成了.操作系统中的线程已经执行完毕,销毁了,但是Thread对象还在,获取到的状态RUNNABLE: 可工作的. 又可以分成正在工作中和即将开始工作.就绪状态,处于这个状态的线程就是处于就绪队列中,随时可以被调度到C原创 2022-03-27 20:50:27 · 135 阅读 · 0 评论 -
多线程基础(上)
Thread类的认识在Java标准库中提供了Thread类.来表示/操作线程 。Thread类可以视为是Java标准库提供的API创建好的Thread实例,其实和操作系统中的线程是一一对应关系,操作系统提供了一组关于线程的API(C语言风格),Java对于这组API进一步的封装,就成了Thread类创建线程通过Thread类创建线程创建一个子类,继承自Thread,并且重写run方法run方法里写的是每个线程需要被执行的代码start方法被调用之后,线程才会被创建出来.创建一原创 2022-03-24 10:50:22 · 151 阅读 · 0 评论 -
进程和线程的区别
进程啥是进程?按照字面意思可以理解为进程是正在运行的程序这些可执行文件,都是文件,平时都静静地躺在硬盘中。在双击之前,不会对操作系统有任何的影响。一旦执行这些文件,操作系统会将这些 .exe 文件加载到内存中,并且让CPU开始执行这些.exe内部的一些指令(exe里面存放着很多这个程序相对应的二进制指令)。这个时候,这些exe文件就开始进行一些具体的工作了,把这些运行起来的可执行文件,称之为“进程”进程(process)还有另一个名字 任务(task)进程是怎么管理的先描述一原创 2022-03-22 13:19:42 · 1019 阅读 · 0 评论