作者:i春秋核心白帽yanzmi 原文来自:https://bbs.ichunqiu.com/thread-42149-1-1.html 本期斗哥带来Java代码审计的一些环境和工具准备。 Java这个语言相对于PHP来说还是比较复杂的,所以一开始接触到Java源码审计的时候会遇到一些关于环境和配置 ...
分类:
编程语言 时间:
2018-06-28 12:04:47
阅读次数:
280
1.JVM是什么? JVM:Java Virtual Mechinal(Java虚拟机).它是一个虚构的计算机,是通过在实际的计算机上模拟各种功能来实现的。JVM的主要工作是解释自己的指令集(字节码,如java源码编译成class文件在虚拟机上运行)并映射到本地的CPU指令集或OS的系统调用。Jav ...
分类:
编程语言 时间:
2018-06-23 22:46:23
阅读次数:
191
什么是 POM? POM (Project Object Model) 项目对象模型。它是一个XML文件,其中包含有关Maven用于构建项目的项目和配置细节的信息。它包含大多数项目的默认值。例如,构建项目的目录:target;java源码文件目录: src/main/java;测试java源码文件目 ...
分类:
Web程序 时间:
2018-06-20 21:09:13
阅读次数:
203
上文我们讲了HashMap那骚骚的逻辑结构,这一篇我们来吹吹它的实现思想,也就是算法层面。有兴趣看下或者回顾上一篇HashMap逻辑层面的,可以看下HashMap源码解析(一)。使用了哈希表得“拉链法”. 我打算按这个顺序来讲HashMap:几个关键属性 -> 构造方法-> 存取元素方法 ->解决h ...
分类:
编程语言 时间:
2018-06-19 20:41:19
阅读次数:
2616
java.util.LinkedList LinkedList是实现了List接口的双链表实现,拥有list的所有方法并且允许所有元素(包括null)。 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地 ...
分类:
编程语言 时间:
2018-06-13 20:59:01
阅读次数:
186
Java 源码阅读的第一步是Collection框架源码,这也是面试基础中的基础; 针对Collection的源码阅读写一个系列的文章,从ArrayList开始第一篇。 @pdai JDK版本 JDK 1.8.0_110 概述总结 + ArrayList底层是通过数组实现的;其中capacity表示 ...
分类:
编程语言 时间:
2018-06-08 18:05:03
阅读次数:
242
本文源码均来自Java 8 总体介绍 Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。Set和List两个类继承于它。Set中不能包含重复的元素,也没有顺序来存放。而List是一个有序的集合,可以包含重复的元素。 而Map又是另一个接口,它和Collection接 ...
分类:
编程语言 时间:
2018-05-22 19:05:16
阅读次数:
192
大家都知道Android 反编译工具里面就有jd-gui工具查看jar源码,那么怎么保存成class的Java源码。其实设置一下,可以一键保存整个jar的Java源码。 首先设置 在help里面找到Preferences点击,然后去掉下图红色圈中的,两个打钩。一般来说是默认勾上的。 如果勾上,会产生 ...
分类:
编程语言 时间:
2018-05-19 16:54:17
阅读次数:
4339
源代码 思考 为啥是mid + 1 ,mid 1就一个下标感觉没差啊。 回答:调试之后再回想,发现没有什么差别,最终收拢到 low == high 的时候都能算出来,不会错过。 自己手打的代码 ...
分类:
编程语言 时间:
2018-05-17 17:22:58
阅读次数:
177
概要学完Vector了之后,接下来我们开始学习Stack。Stack很简单,它继承于Vector。学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码;最后再通过实例来学会使用它。第1部分Stack介绍Stack简介Stack是栈。它的特性是:先进后出(FILO,FirstInLastOut)。java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过
分类:
编程语言 时间:
2018-05-17 11:50:15
阅读次数:
183