
java
Taylar_where
学习,学而时习之,知新,温故而知新
展开
-
通过树的中序和先序遍历生成二叉树
关于二叉树的概念: 百度百科给的定义是: 二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根结点的度不大于2。有了根结点之后,每个顶点定义了唯一的父结点,和最多2个子结点。然而,没有足够的信息来区分左结点和右结点。如果不考虑连通性,允许图中有多个连通分量,这样的结构叫做森林。 二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: 图一 (1)...原创 2019-05-19 11:25:42 · 860 阅读 · 0 评论 -
Java非阻塞IO NIO之Selector选择器
NIO自从JDK1.4版本以来就添加的一个非阻塞I/O框架,NIO是Java为解决网络通讯中高并发问题的一个类库,Selector是java NIO的一个组件,用于检查一个或多个NIO Channel的状态是否处于可读、可写。如此可以实现单线程管理多个channels,也就是可以管理多个网络链接,所以Selecotr是实现了多路复用的关键。 为什么要使用Selector呢? 用单线程处理多个c...原创 2019-05-26 15:56:11 · 745 阅读 · 0 评论 -
A*搜索算法(Java实现)
引言 1968年,的一篇论文,“P. E. Hart, N. J. Nilsson, and B. Raphael. A formal basis for the heuristic determination of minimum cost paths in graphs. IEEE Trans. Syst. Sci. and Cybernetics, SSC-4(2):100-...原创 2019-05-17 18:39:28 · 3238 阅读 · 0 评论 -
浅谈Java类加载:ClassLoader
关于java文件的编译,我们都知道这是通过虚拟机JVM将源代码装换为源指令,并且以.class为扩展名的类文件中,每个类文件都包含某个类或者接口的定义和代码实现。下面是JVM加载Test.class文件的步骤:(摘录自《java核心技术 卷二》) 1.虚拟机JVM有一个用于加载类文件的机制,例如,从磁盘上读取文件或者请求web上的文件;虚拟机使用该机制来加载Test类文件中的内容。 2.如果T...原创 2019-05-29 21:47:16 · 486 阅读 · 0 评论 -
经典线程问题之哲学家进餐问题
关于哲学家就餐问题,如何确保哲学家们都能就餐而不产生死锁,这个是哲学家就餐问题需要关注的基本也是核心的问题, 如何确保在不产生死锁的情况下尽可能的提高并发度也是我们需要去考虑的问题。 package demo.ConcurrentDemo.practice.demo1; import java.util.concurrent.ExecutorService; import java.ut...原创 2019-07-15 09:38:39 · 532 阅读 · 0 评论