接下来我们要处理的是前面实现里另一个 根本性的缺陷 那些实现只适用于字符串,想要实现其他类型数据的队列和栈怎么办呢? 这个问题就涉及泛型的话题了。 有一个广泛采用的捷径是 使用强制类型转换对不同的数据类型重用代码 我们对Object类实现数据结构,Java中所有的类都是Object的 子类,当客户端使用时,就将结果转换为 对应的类型。这个我不想花很多时间来讲 因为我认为这样的解决方案不能令人满意。 第二种方法是用的是泛型 这种方法中客户端程序不需要强制类型转换...
Java 虚拟机对象布局及创建过程
一. 对象创建过程一、类加载 这个阶段其实主要做的就是类的加载验证,以及类的准备等等一系列的工作。为后面的类的初始化和解析做铺垫。 二、类解析 这个阶段主要对上面已经加载入内存的类进行词法语法的解析,形成语法树等操作。 三、类初始化 类初始化执行的就是 <clinit> 方法,以及在类中的各种常量的初始化(放入常量池中的常量)。 四、分配内存 虚拟机对所需要创建的对象分配内存,在类的解析的时候其实已经知道实例变量需要的堆空间了。此时只需要调用...
Java 虚拟机运行时数据区
运行时数据区:Java 虚拟机的运行时数据区按照大的可以分为线程独立使用的数据区,和所有线程共享的数据区。 一.线程独立使用数据区1.程序计数器 程序计数器其实就是 jvm 里面的pc,他指向的都是字节码的偏移量,也就是下一条要执行的字节码 当然这是 jvm 在执行 java 方法的时候,当程序在执行 navtive 方法的时候这时候起作用的其实是我们物理机上的 pc 此时 jvm 的 pc 是空值(undefine) 并且这个地方也是所有的 jvm 内存区完全不会抛出 OutOfMema...
今日总结20180304
八大排序算法 优先队列 红黑树 并查集 左式堆 栈的应用:逆波兰表达式计算、中缀表达式转后缀表达式 队列应用:杨辉三角、 最大子序列的和:分治、贪心 递归的四大原则: 基准情型:所有的递归都有一个基准,或者说是递归停止的界限,他是无序计算就能够得到的 不断推进:向着基准方向不断的推进,也就是递归的过程。 设计法则:我们假定递归的每一个环节都能运行,也就是我们无需考虑递归甚至调试追踪递归内部的情形 合成效益:不要进行重复的计算. 内部类的作用,静态内部类的特点。 二叉树表示表达式,先序...
博客迁移到 coding 了
从这个博客搭建成功到现在已经过了两年了,哎!时间真的过的超快。纪念一下 :) 但是一直以来我的博客都是托管到 github 上面的,每次最讨厌去访问博客了,做一次翻页我的等几秒,用户体验极差(虽然还是我自己写的,要是别人的博客估计直接一个 ctrl+w 伺候着了 )。 后来也是看到简书上有人说使用 coding 也可以部署 hexo 一直想迁移来着,昨天终于是完全的迁移过来了。感觉速度真的没的说,比我用梯子访问 github 不知道快了多...
今日总结20180304
八大排序算法 优先队列 红黑树 并查集 左式堆 栈的应用:逆波兰表达式计算、中缀表达式转后缀表达式 队列应用:杨辉三角、 最大子序列的和:分治、贪心 递归的四大原则: 基准情型:所有的递归都有一个基准,或者说是递归停止的界限,他是无序计算就能够得到的 不断推进:向着基准方向不断的推进,也就是递归的过程。 设计法则:我们假定递归的每一个环节都能运行,也就是我们无需考虑递归甚至调试追踪递归内部的情形 合成效益:不要进行重复的计算. 内部类的作用,静态内部类的特点。 二叉树表示表达式,先序...
博客迁移到 coding 了
从这个博客搭建成功到现在已经过了两年了,哎!时间真的过的超快。纪念一下 :) 但是一直以来我的博客都是托管到 github 上面的,每次最讨厌去访问博客了,做一次翻页我的等几秒,用户体验极差(虽然还是我自己写的,要是别人的博客估计直接一个 ctrl+w 伺候着了 )。 后来也是看到简书上有人说使用 coding 也可以部署 hexo 一直想迁移来着,昨天终于是完全的迁移过来了。感觉速度真的没的说,比我用梯子访问 github 不知道快了多...
SpingBoot笔记一
一.目录配置1、Application.java 建议放到跟目录下面,主要用于做一些框架配置 2、domain目录主要用于实体(Entity)与数据访问层(Repository) 3、service 层主要是业务类代码 4、controller 负责页面访问控制 ##二.pom.xml 配置 引入web模块 1、pom.xml中添加支持web的模块: 1234<dependency> <groupId>org.springframework.boot&...