
javaSE
咸粽
这个作者很懒,什么都没留下…
展开
-
classLoader如何加载class【双亲委托模式】
ClassLoader【双亲委托模式进行类加载】它是用来加载Class文件到JVM(Java Virtual Machine(Java虚拟机)的缩写)。以供程序使用的。我们知道,Java程序可以动态加载类定义,而这个动态加载的机制就是通过ClassLoader来实现的。其中有一个ClassLoader不是用Java语言所编写的,而是JVM实现的一部分,这个ClassLoader就是bo...原创 2019-12-01 00:01:15 · 229 阅读 · 1 评论 -
volatile
还记得之前面某大公司回答volatile当时说的多么的垃圾,幸好当时离秋招还早。。。所以种一棵树最好的时机是十年前,其次是现在 ♡♡♡volatile:是java虚拟机提供的轻量级的同步机制三大特性:1:保证可见性【某一个线程修改数据并写回主物理线程,另外的线程要立刻知道(机制)称为它的可见性】2:不保证原子性【number++在多线程下是非安全的】3:禁止指令重排如何解决原子性...原创 2019-09-26 00:59:34 · 388 阅读 · 1 评论 -
内存泄漏?内存溢出?
内存泄漏: 一个不再被程序使用的对象或者变量还在内存中占有存储空间一次内存泄漏可能不会出现什么影响,但是多次内存泄漏堆积后的后果就是内存溢出内存溢出: 指程序申请内存时,没有足够的内存供申请者使用,或者说给了一块存储int类型的数据的存储空间,但是你却用来存储long类型的数据,结果就是内存不够用,此时就会报OOM,即内存溢出二者的关系:1:内存泄漏的堆积最终会导致内存溢出2:内存溢出就...原创 2019-09-26 00:41:13 · 156 阅读 · 0 评论 -
操作系统-调度算法
1:先来先服务调度算法【FCFS】(1):按照作业提交,或进程变为就绪状态的先后次序分派CPU(2):新作业只有当当期那作业或进程执行完成或阻塞才获得CPU运行(3):被唤醒的作业或进程不立即恢复执行,通常等到当前作业或进程让出CPU(默认非抢占方式)(4):有利于CPU繁忙型的作业,而不利于I/O繁忙的作业(进程)2:短作业【进程】优先调度SJF(非抢占)/SPF(抢占)(1)平均...原创 2019-09-22 16:40:18 · 1012 阅读 · 0 评论 -
类加载器以及双亲委派
类加载器:负责读取java字节码,并转成java.lang.Class类的一个实例双亲委派模式优点:1:双亲委派使得类加载有了层级优先级,通过这种机制来保证加载过的类不会被重复加载【父类加载过则子类无需加载】2:安全问题:Bootstrap ClassLoader 会加载JVM需要的核心java包,这是时传来一个java.lang.Integer的类Bootstrap ClassLoade...原创 2019-09-22 16:13:48 · 130 阅读 · 0 评论 -
CPU调度的是线程吗?线程与进程有什么关系?
来一波之前总结的操作系统调度基本单位:进程【系统为进程分配资源,不对线程分配资源】操作系统调度最小单位:线程cpu调度基本单位:线程线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。进程和线程的关系:(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。(...原创 2019-09-22 15:55:00 · 5529 阅读 · 0 评论 -
java中的守护线程
daemon:守护线程–也称“服务线程”,在没有用户线程可服务时会自动离开。优先级:守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。Java中JVM存在两类线程: User Thread(用户线程)、 Daemon Thread(守护线程)所谓的守护线程,是指用户程序在运行的时候后台提供的一种通用服务的线程,比如用于垃圾回收的垃圾回收线程。这类线程并不是用户线程不可或...原创 2019-08-14 15:39:09 · 142 阅读 · 0 评论 -
JAVA虚拟机之新生代老年代永久代
方法区用于存放已被加载的类的信息,常量,静态变量即时编译器编译后的代码等数据方法区–>动态扩容–>OutOfMemoryErrorJDK8开始移除永久代JVM中的堆一般分为:新生代、老年代、永久代新生代: 用来存放新生的对象,一般占据...原创 2019-06-21 15:48:14 · 1409 阅读 · 7 评论 -
单例模式
单例模式:class Single{ private static Single s=new Single(); private Single(){} public static Single getInstance(){//提供public公共方法用于返回该类唯一对象 return s; }}class SingleDemo{ public static void main(...原创 2019-05-04 21:58:23 · 123 阅读 · 0 评论 -
java的垃圾回收与finalize
当一个对象在堆内存中运行时,根据它被引用变量所引起的状态把他们分为以下三种状态1:可达状态:有一个以上的引用变量引用它2:可恢复状态:某个对象不再有任何变量引用它,进入可恢复状态。 这种状态下,系统的垃圾回收机制准备回收该对象所占用的内存,在回收对象之前,系统调用所有可恢复状态的对象的finalize()方法,...原创 2019-03-31 20:52:47 · 581 阅读 · 4 评论 -
java中的assert
assert有什么作用: 断言作为一种软件调试方法,提供了一种在diamante中进行正确性检查的机制。assert的作用: 对一个boolean表达式进行检查,一个正确运行的程序保证boolean值为true,若为false,则说明程序不正确,系统需要提供警告信息并且退出程序...原创 2019-04-04 17:23:10 · 2301 阅读 · 0 评论 -
循环语句
循环语句do-while循环和while循环:do-while语句先执行循环体一次,然后判断循环继续条件循环体:循环中重复执行的语句部分称为循环体do-while和while语句:通常用于循环次数不确定的情况for循环:一般用于循环次数已知的情况break:立即终止包含break的最内层循环continue:终止当前迭代while(循环继续条件){ 循环体 语句; }do...原创 2018-10-19 23:35:43 · 702 阅读 · 0 评论 -
内存的划分(堆栈内存)
内存的划分1:寄存器2:本地方法区(与系统有关)3:方法区4:栈内存5:堆内存(存放全局变量)栈内存:存储局部变量:(【定义在方法中的变量】),先加载方法然后在方法中再开辟内存给变量,变量所属的作用域一旦结束,该变量会被自动释放局部代码块:限定(决定)变量的生命周期。堆内存:存储数组和对象(数组就是对象);new建立在堆内存中特点:(1):每一个实体都有首地址值(2):堆内存...原创 2018-10-17 15:22:38 · 4829 阅读 · 0 评论 -
SE基础三
选择语句:(1):单if语句 ... if(条件){ 条件为真时,执行此代码块 } ...(2):if-else语句...if(条件){ 条件为真,执行此语句}else{ 条件为假时,执行此语句}if-else语句有时候可以改写为三目运算符,当局部代码块中为具体数字时:if(a>b){ c=200;}else{ c=100;}int c = a&...原创 2018-10-11 21:21:59 · 226 阅读 · 0 评论 -
SE基础二
java基础关键字:事先定义的,有特别意义的标识符,又叫保留字,对java编译器有特殊的意义,它们用来表示一种数据类型或者程序的结构等,关键字不可以用作变量名、方法名、类名、包名、参数等。标识符:为了标识程序中类、方法、和变量的元素而命名标识符使用规则:1:以数字、字母、下划线和$组成;2:不能以数字开头;3:不能为true、false、null注释:命名常量:final dat...原创 2018-10-07 17:55:39 · 299 阅读 · 0 评论 -
SE基础一
JavaSE基础概念:软件:(softwore)特定顺序的计算机数据与指令软件:系统软件(操作系统)、应用软件(主要处理某一领域的问题的软件)。语言分为:计算机语言( 机器语言 )(011100)汇编语言 (MOV AX,5)高级语言(a=2+3)问题:高级语言不能被计算机直接识别,怎么办?解决:静态编译、动态解释静态编译:将代码进行编译生成机器码再运行(java、c)动态解...原创 2018-10-06 20:59:42 · 567 阅读 · 0 评论