首页
精选文章Graphviz查看全文Graphviz 是一个开源的图形编辑语言,可以进行图形的可视化编辑,绘制结构化的图标和图形非常方便。Graphviz 使用 DOT 语言来表示图形。 DOT语言可以用简单的文本来表示结点,连线,布局等。 DOT语言描述结点,连线,布局的文本都非常简单,而且从文本本身可以推测中起含义。 结点 DOT语言描述结点的方式是`NodeName`[label=`LabelName`]。 结点可以分为普通的节点和列表节点,列表节点可以使用竖线分隔多个Label来表示,`NodeName`[label=`LabelName1|LabelName2|LabelName3|...|LabelNameN`]。 列表节点的展示可以横排或者竖排,横排使用中括号[]还包裹列表元素,竖排使用{}包裹列表元素。 连线 使用`NodeName1`->`NodeName2`的方式可以绘制一条从节点1到结点2的直线。 `NodeName1`->{`NodeName2` `NodeName3`},可以使NodeName1的结点指向用{}包裹,空格分隔的多个结点。 splines=false;可以强制连线都是直线。 布局 布局可以分为水平布局(左右布局)和垂直布局,rankdir=LR;指定水平布局,在全局范围内生效。 水平布局的时候,可能有一些record需要垂直摆放,label="{}",如果和randdir一致,则不需要{}。 技巧 绘图过程中可以创建一些隐藏结点使得图形对齐。 Hash表 B+树 叶子节点对齐的时候注意,如果是普通的record节点,rank=same,不同的weight权重…Neo4j查看全文Neo4j是著名的图数据库。图数据库是图数据库管理系统的简称,使用图形化的模型进行查询的数据库,通过节点、边和属性等方式来表示和存储数据,支持增删改查(CRUD)等操作。 存储引擎 Neo4j采用了免索引邻接的数据库引擎中,每个节点都会维护相邻节点的引用。每个节点都表现为其附近节点的微索引,通过这些微索引可以直接定位数据的位置信息。从而使得数据检索的时间复杂度从 O(log(n)) 优化到 O(1) 。反射【Java】查看全文反射是Java语言的一种机制,可以在运行时获取操作对象的具体类型,而且通过类型可以获取类的构造,包括成员变量以及成员方法,并且可以动态的调用这些方法或者改变这些变量的值。Java一般认为是一门静态语言。静态语言是指编译时就可以确定变量的数据类型的语言,大多数静态语言要求在使用变量之前必须声明数据的类型。常见的静态语言有C、C++、Golang等,Java通常也被认为是静态语言。 PHP、JavaScript、Python、Perl等语言的变量在使用前不需要声明数据类型,在运行时根据被赋值的值类型才确定数据的类型,此类语言称为动态语言。 而通过反射的能力,Java语言可以动态的改变对象的值,甚至可以动态改变数据类型,所以反射使得Java语言具备了动态语言的能力。 Java主要通过Class类来实现反射的能力,JVM在完成一个类的加载过程之后,在堆内存会构造一个Class类型的对象,该对象包含了类完整的构造信息,通过该类可以窥视到Java类的结构,通过Class类可以实例化类的对象,获取类的方法,修改方法的值。 反射是一种“语义同像”,语义同像将程序的一些内部状态,例如对象的属性,对象的方法指针等暴露给程序的运行态,通过这种能力,程序可以在运行时动态修改对象的值。 反射需要存储或者可以关联对象的元信息,因为静态语言在编译时已经可以确定对象的类型,所以这些信息不是运行时的必须信息,为了执行效率,这些信息往往在编译后的信息中剥离,如果要支持反射,就需要存储这些相关的信息。 反射违反了面向对象编程中的封装性。 Java中反射的核心来自Class类。 Class类是描述对象类型信息的类,除了Class类自身之外,所有类都有一个Class类型的对象… |
热门分类开源Golang消息队列JavaJavascriptLinuxMysqlNLPPHP事务内存管理分布式理论分类存储常用存储开源软件操作系统画图网络编程数据库算法虚拟化前端存储理论常用算法微服务数据结构算法应用计算机原理中间件共识算法分布式分治动态规划容器并发排序架构组件绘图工具网络协议编程语言理论算法思想树缓存架构C++字符串算法工程思想搜索
算法题库精选内容 |