JavaScript系列目录

  • 读书笔记
    • 《高性能JavaScript》
    • 《Effective JavaScript》
  • 问题剖析

前言

本系列罗列日常工作学习中遇到的工具问题以及相应的解决方案,写下来供后续自己参考的同时也作分享一波!

编程相关

Sublime Text 3

win10下解决中文输入法光标不跟随问题

国内一大老Fork并修改之后的IMESupport主页地址,在win10下使用完美解决。看下图所示:
使用效果

阅读全文 »

前言

本系列主要写关于Java集合框架的一些细节:包括部分类的内部实现、算法探讨、性能分析、相关设计模式等等。Java8集合类中的部分类(比如常用的HashMap)内部实现机制已不同于以往,本系列之余也尽可能会纵向比较Java7版本与Java8框架之间的差异所在。
系列文章在追求尽可能的详而细致的描述,难免会有错误不当之处~

集合框架介绍

在Java8 Api文档中是这么描述集合框架的:

A collection is an object that represents a group of objects (such as the classic Vector class). A collections framework is a unified architecture for representing and manipulating collections, enabling collections to be manipulated independently of implementation details.

意在指明Java集合框架总体所需要做的事情:代表并操作各种集合类型。
集合框架有如下几点主要优点[^1]:

  • 减少编程工作量[Reduces programming effort]:集合类中提供了大量的数据结构和算法的实现,你无需亲自去编写。
  • 提高性能[Increases performance]:提供很多高性能的数据结构以及算法的实现。因许多接口的实现均是通用的[interchangeable],因而可以根据需要实现相应的接口。
  • 提供在无关API之间的互通[Provides interoperability between unrelated APIs]:建立一个通用语言来回传递集合类
  • 降低学习API的工作量[Reduces the effort required to learn APIs]API:需要学习众多特定[adhoc]集合的API
  • 加速软件重用[Fosters software reuse]:为操作它们提供了许多标准化的集合和算法
    阅读全文 »

Java系列目录:

  • Core Java
    • 集合类
  • JVM
  • Java多线程
  • JavaFX

Java版本版本特性归纳

阅读全文 »

基本操作

参照《数据结构》一书中关于线性表的抽象数据类型的基本操作介绍,简化罗列出相关操作定义。

  • InitList()
    • 操作结果:构造一个空的线性表L。
  • DestroyList()
    • 初始条件:线性表L已存在
    • 操作结果:销毁线性表L。
  • ClearList()
    • 初始条件:线性表L已存在
    • 操作结果:将L重置为空表
  • ListEmpty()
    • 初始条件:线性表L已经存在
    • 操作结果:若L为空表,则返回TRUE,否则返回FALSE
  • ListLength()
    • 初始条件:线性表L已经存在
    • 操作结果:返回L中数据元素个数
  • GetElem(i, e)
    • 初始条件:线性表L已存在,$1 \leq i \leq ListLength()$
    • 操作结果:用e返回L中第i个数据元素的值
      阅读全文 »

前言

罗列一些基本概念,供后续文章使用,后续系列文章中不再过多阐述。

结构特点

在数据元素的有限集中:

  1. 存在唯一的一个被称作“第一个”的数据元素
  2. 存在唯一的一个被称作“最后一个”的数据元素
  3. 除第一个之外,集合中的每个数据元素均只有一个前驱
  4. 除最后一个之外,集合中每个数据元素均只有一个后继[^1]
    阅读全文 »

如果debugging是一种消灭bug的过程,那编程就一定是把bug放进去的过程。
Edsger Dijkstra

前言

一起学习,一起成长,全篇优先用Java实现,必要时会补上伪代码,其它语种再说。
如有错误或纰漏之处,请不吝赐教,谢谢!

写作背景

废话一段,可以直接略过
算法一直以来都是我的弱项,不仅是因为其枯燥无味,更多是因为自身的原因,没有坚持下来。
在工作中越来越发现,算法的重要性,并不是说在你在工作中一定能用到多少,而是算法思想的重要性!

阅读全文 »
0%