- 博客(6)
- 收藏
- 关注
原创 《深入理解java虚拟机》笔记--------------------虚拟机字节码执行引擎
虚拟机字节码执行引擎:1. 栈帧a) 是虚拟机栈的栈元素。b) 每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。c) 栈帧需要的内存大小在编译时已经确定,不会受运行时的影响。d) 栈帧结构 i. 局部变量表1. 用于存放方法参数和方法内部定义的局部...
2018-03-30 22:17:49 148
原创 《深入理解java虚拟机》笔记---------------------JVM内存区域
Java虚拟机运行时数据区域:1.程序计数器a) 类似于计算机组织原理中PC计数器。b) 线程私有。c) 唯一一个没有OOM的区域。2.Java虚拟机栈a) 线程私有。b) 相当于栈内存,每个元素为一个栈帧。3.本地方法栈a) 用于执行Native方法(所谓Native方法就是用C语言等较底层语言写的方法)。4.Java堆a) ...
2018-03-30 22:12:19 192
原创 完全背包问题,java解法
有N种物品和一个容量为V 的背包,每种物品都有无限件可用。放入第i种物品的费用是Ci,价值是Wi。求解:将哪些物品装入背包,可使这些物品的耗费的费用总和不超过背包容量,且价值总和最大。 import java.util.ArrayList; public class entireBagProblem { static class Item {//表 int totalV...
2018-03-27 21:11:17 1607
原创 0/1背包问题,java解法
读《背包问题九讲》笔记,大家可以搜一下这份资料,讲的很好,但是只有伪代码,下面贴出我自己用java写的解法问题: 有N件物品和一个容量为V 的背包。放入第i件物品耗费的费用是Ci,得到的价值是Wi。求解将哪些物品装入背包可使价值总和最大。 没学过动态规划看到此题大概会想到用穷举法,也就是自底向上的思维,一个个加起来求最优解。但是这种解法十分耗神,我们应该学会用递归的思维(也就是自顶向...
2018-03-26 21:42:12 610
原创 关于jdk1.8容器hashmap中的变量table加了transient修饰后如何序列化。Serializable
众所周知,transient修饰符的作用是使该变量在序列化的时候不会被储存。transient Node<K,V>[] table; 但是hashmap中的变量table是储存了容器中所有的元素,在序列化中不被储存,那么反序列化后hashmap对象中岂不是个空容器? 后来通过细想,table里存的只是引用,就算在序列化中储存到硬盘里,反序列化后table变量里的引用...
2018-03-12 11:13:24 1904
原创 关于jdk1.8的容器hashmap中的entrySet()函数实现。
因为没使用过这个函数就直接看hashmap的源码,所以我以为entrySet()函数返回的应该是个数组之类的东西。但是研究了半天也看不出来是这样实现的,下面贴出代码:public Set<Map.Entry<K,V>> entrySet() { Set<Map.Entry<K,V>> es; return (es = ...
2018-03-12 10:59:12 1445
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人