摘要: 在日常开发中Map可能是Java集合框架中最常用的一个类了,当我们常规使用HashMap时可能会经常看到以下这种代码: Map<Integer, String> hashMap = new HashMap<>(); hashMap.put(user.getId,user.getUsername); 阅读全文
posted @ 2019-04-28 16:03 泰阁尔 阅读(460) 评论(3) 推荐(1) 编辑
摘要: 前言 查阅了网上许多关于通过DFS算法对有向图中所有简单回路的查找,发现有很多关于使用DFS求解有向回路中所有简单回路的帖子,(在按照节点编号情况下)但大多数仅仅寻找了编号递增的回路。又或者未对结果去重。P.S.下述有向图中所有节点均使用数字进行编号,如节点0、节点1 \(\cdots\) ##1. 阅读全文
posted @ 2019-04-09 22:28 泰阁尔 阅读(4988) 评论(0) 推荐(1) 编辑
摘要: 前言 生产者和消费者问题是多线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。 在JAVA中实现生产者消费者问题时,有三种常用的方式: 使用Object的wait/n 阅读全文
posted @ 2019-04-02 23:39 泰阁尔 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 如下图所示,Java的类加载机制主要分为三个部分,分别为加载、链接、初始化。其中链接又分为三个小部分——验证、准备、解析。 加载——在经过对Java代码进行编译后,JVM将Java类编译后的二进制文件即字节码文件以二进制的形式加载到内存放中,以便后面的步骤进行,如果没有找到指定的类,就会抛出错误,进 阅读全文
posted @ 2019-03-24 21:19 泰阁尔 阅读(2272) 评论(0) 推荐(3) 编辑
摘要: JVM运行时数据区分为五个部分: 程序计数器、虚拟机栈、本地方法栈、堆、方法区。 如下图所示,五部分其中又分为线程共享区域和线程私有区域,下面将分别介绍每一部分。 1. PC程序计数器 程序计数器是一块较小的空间,他的作用可看作是当前线程所执行的 字节码的行号指示器。 一个线程的挂起和恢复依赖于本区 阅读全文
posted @ 2019-03-18 14:24 泰阁尔 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 最近在做一个求解有向图中回路的问题,老师说求解图中全部回路是一个NP难问题。突然想到P、NP、NPC、NP hard的描述一致不是很清楚,所以又学习了一下。 在解释这四个概念之前,我们需要先知道两个问题 多项式时间 和 规约 ,我们首先来看多项式时间,一个算法可以在多项式时间内解决即指一个算法的时间 阅读全文
posted @ 2019-03-10 22:41 泰阁尔 阅读(1749) 评论(0) 推荐(1) 编辑
摘要: 在讨论这个问题之前,首先应该明白的就是线程与进程区别,这个问题百度搜索定义已经是够全了,在此不过多赘述,只是前几天在知乎上看到一个描述感觉十分恰当。 开个QQ,开了一个进程;开了迅雷,开了一个进程。在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。所以运行某个软 阅读全文
posted @ 2019-03-06 16:26 泰阁尔 阅读(271) 评论(0) 推荐(1) 编辑
摘要: 是什么? GET与POST是在客户机和服务器之间进行 请求 响应 时,两种最常被用到的方法: GET 从指定的资源请求数据。 POST 向指定的资源提交要被处理的数据。 所以我们从语义上就能看出两者最明显的区别——GET用来得到数据而POST用来提交数据,具体到应用场景,比如在微博这个环境下,当你打 阅读全文
posted @ 2019-03-03 22:50 泰阁尔 阅读(334) 评论(2) 推荐(2) 编辑
摘要: 1.引言 图的连通性问题是图论研究的重要问题之一,在实际中有着广泛的应用。例如在通信网络的联通问题中,运输路线的规划问题等等都涉及图的连通性。因此传递闭包的计算需要一个高效率的算法,一个著名的算法就是warshall在1962年提出的WarShall算法。 2.算法描述 使用n阶布尔矩阵$R^{(k 阅读全文
posted @ 2019-03-03 15:12 泰阁尔 阅读(5696) 评论(5) 推荐(3) 编辑