一、基础篇 JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别 Java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final 垃圾回收 内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 JVM参数及调优 Java对象模型 oop-klass、对象头 ...
分类:
编程语言 时间:
2019-06-28 21:04:23
阅读次数:
179
1.多线程 线程和进程各自有什么区别和优劣呢? 进程是资源分配的最小单位,线程是程序执行的最小单位。 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的 ...
分类:
编程语言 时间:
2019-06-28 20:57:55
阅读次数:
129
本文主要是介绍jvm内存模型 废话不多说,这里直接上图 首先上一个粗略草图,大体可以了解清楚 1.jvm大概是有三大部分组成,分别为类装载子系统,运行时数据区和执行引擎组成 2.运行时数据区大概分为5大部分,分别为:堆,栈,本地方法栈,方法区,程序计数器 3.栈,本地方法栈,程序计数器线程是共享的, ...
分类:
其他好文 时间:
2019-06-23 14:09:06
阅读次数:
95
我们从二叉树的遍历谈起。 众所周知,在对二叉树的遍历过程中,根据遍历每一个结点的左子树、结点本身、右子树的顺序不同可将对二叉树的遍历方法分为前序遍历、中序遍历、后序遍历。我们摒弃数据结构教科书上复杂的遍历方式,而是使用我们在上一章所重点讨论过的递归程序来简单的实现它。 假设二叉树结点由以下结构体表示 ...
分类:
编程语言 时间:
2019-06-22 21:15:27
阅读次数:
173
根本原因就是Oracle的process和session已经达到了甚至超过了最大值,解决办法如下: 查看process和session的参数和占用值: show parameter processes; select count(*) from v$process; select count(*) ...
分类:
其他好文 时间:
2019-06-22 17:08:57
阅读次数:
544
题目链接:https://www.nowcoder.com/questionTerminal/5759c29a28cb4361bc3605979d5a6130 AC代码: ...
分类:
其他好文 时间:
2019-06-22 01:28:46
阅读次数:
171
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。 堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的 ...
分类:
其他好文 时间:
2019-06-21 14:22:41
阅读次数:
112
数据结构部分,复习栈,队列,数组,链表和红黑树,参考博客和资料学习后记录到这里方便以后查看,感谢被引用的博主。 栈 栈(stack)又称为堆栈,是线性表,它只能从栈顶进入和取出元素,有先进后出,后进先出(LIFO, last in first out)的原则,并且不允许在除了栈顶以外任何位置进行添加 ...
分类:
编程语言 时间:
2019-06-21 09:16:30
阅读次数:
116
1.JVM(java virtual mechinal) 2.JVM虚拟机主要有堆、栈、本地方法栈、方法区组成 (1)堆 (2)栈 (3)本地方法栈 (4)方法区 1)一个普通的java对象A出生在新生代的Eden区,当Eden区新生对象太多时,对象A会被调去Survivor区。 2)Survivo ...
分类:
其他好文 时间:
2019-06-20 14:11:24
阅读次数:
78
算法总结-深搜 由于是深度优先,后进入的结点需要先读取,因此选取堆栈实现,在栈中保存从起始结点(状态)到当前结点的路径上的所有结点。一般用递归实现。 非递归框架 递归框架 在深度优先搜索中,状态空间的图结构并不一定需要显式地保存下来。 该做法需要一个全局数组array来存放每个走过的node,arr ...
分类:
编程语言 时间:
2019-06-19 17:23:36
阅读次数:
101