11 2016 档案
摘要:一个 Class 文件描述了类或接口的字段,方法,父类,访问权限等全部信息。其实,它只是一种能被 JVM 识别的数据格式,就和 UDP 8字节头部一样,这就是规范,标准!所谓“不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之,学至于行而止矣,行之,明也”。本文最后将动手分析一个 Class 文件的字节和反编译后的伪汇编语言,来探讨其结构。 本文将介绍: Class 头部信息 Cl...
阅读全文
摘要:整理如下,用于以后查找: Opcode Mnemonics Note Constants 0x00 nop 无动作 0x01 aconst_null 把 null 推到操作数栈 0x02 iconst_m1 把 int 常量 –1 推到操作数栈 0x03 iconst_0 把 int 常量 0 推到操作数栈 0x04 iconst_1 把 int 常量 1 推到操作数栈 ...
阅读全文
摘要:这是最基本的三种数据结构,每个程序中都至少使用一种,比如说栈,递归程序其实就是借助方法调用栈来实现的,站在计算机的角度,没有什么问题是栈解决不了的。本文对这些数据结构进行说明。随后会在这个 GitHub 整理出相应的练习题和对应标签的 LeetCode 题目解答。 本文将讨论: 表、栈和队列相关概念,特点和基本操作 1. 表 表是一种逻辑结构,表示元素之间的相邻关系。按照元素在内存中...
阅读全文
摘要:算法就是一系列解决问题的指令,对于给定的输入,能够在有限时间内获得预期的输出。一个好的算法和一篇好的文章一样,都是不断努力,反复修正的结果。算法分析主要从运行时间和存储空间两方面讨论算法的效率。相信有些人会有这样的感觉,对于一些算法,有时一眼就能看出它的时间复杂度,但就是无法比较规范的表达出来。本文就系统的整理一下如何规范推导算法的时间和空间复杂度。 算法分析的一个依据是,输入规模(又称问...
阅读全文
摘要:Shell 是一门脚本语言(又称解释型语言),Shell 其实就是一个纯文本文件,通常以【#!/bin/bash】开始。脚本自上而下,从左至右分析并执行,其中【#】后面的为注释。脚本有以下几种运行方式:(1) 【bash shell.sh】 (2)【sh shell.sh】(3)【./shell.sh】当前目录下执行,用户必须有可执行权限 (4)【. ./shell.sh】或【source s...
阅读全文