- 博客(40)
- 收藏
- 关注
原创 【笔记】java中线程和同步件的实现原理
线程线程就是一个执行控制流(进程是关于内存空间隔离)每个线程都有自己的程序计数器和栈指针,合称为线程上下文linux内核中所有任务共享内存空间,所以严格来说内核级别没有进程,只有线程。进程只存在用户空间,用户空间为每个进程建立了隔离的虚拟内存空间线程在os的设计硬件线程<–>内核线程<–(用户空间->)–>本地线程本地线程也称为os线程本地线程之上的线程库通常称为用户层线程或绿色线程java api中,调用Thread.start()会启动线程Threa
2022-02-21 21:35:59 439
原创 单元测试
单元测试不同于集成测试的优点:将问题解耦成各个原子模块,单个原子的覆盖测试都正确,那个整个问题都正确。要出问题肯定在某个原子模块中,避免出现几个模块耦合后反而将某个测试修正,暴露不出问题。难点:如何解耦出原子模块(参考《龙书》中1+2X3=的问题)如何覆盖出所有测试...
2019-08-08 21:53:05 310
原创 关于CPLEX的IDE中文乱码问题
我使用12.7.1版本的IBM ILOG CPLEX Optimization Studio(window10)在代码报错的时候中文字符会乱码,如下图。尝试了很多方法没有成功。后来发现在命令行中运行中文不会乱码。通过这种方法可以先弄懂报错的原因。具体方法如下:如果有多个运行配置时,首先给需要运行的运行配置设置缺省值在 Windows 命令提示符中,切换到目录C:\Program Fil...
2019-02-27 16:14:57 5471 1
原创 【Java集合类】LinkedList源码分析(jdk1.8)
ArrayList和LinkedList是List接口的两种实现,具有相同的查找、插入、删除操作,只是底层的实现方式不一样。LinkedList是以双向链表形式实现的集合类。其增删操作由于不需要移动底层数组数据,只需要修改链表节点指针,所以效率较高。但是随机访问时的定位操作效率较低,需要遍历链表节点。(ArrayList与之相反)数据结构底层基于双向链表实现的。并且元素允许 null 的存在...
2018-10-17 21:06:30 361
原创 【Java集合类】ArrayList源码分析(jdk1.8)
ArrayList就是一个以动态数组形式实现的集合类。所以优势是随机访问元素,但是在list中间插入和移动元素时较慢。数据结构底层基于数组实现容量大小动态变化。并且元素允许 null 的存在。...
2018-10-09 16:56:39 279
原创 【搭建物联网后台】基于Workerman的物联网后端管理平台设计
项目地址:https://github.com/Laity000/SmartBed-Workerman-AngularJS在线演示(手机端登录虚拟设备admin1):部分功能展示:通过二维码绑定设备:控制设备并实时反馈:查询设备历史数据:写在前面最近开发了一款关于物联网项目的后端管理平台,可以实现对设备的管理,包括设备的连接、区分,状态反馈...
2018-09-20 09:20:56 19945 21
原创 排序算法总结
插入排序基本思想:将待排序表看做两个部分:无序区、有序区。整个排序过程就是将无序区的元素逐个插入到有序区中(注意插入时如何移动有序区的元素是关键),已构成新的有序区。直接插入排序折半插入排序希尔排序直接插入排序基本思想将待排序表分为左右两个部分,无序区在左边,有序区在右边。-------○■----------○■-------------○■这里的■代表...
2018-08-13 22:27:42 477
原创 用户端与服务器具体的消息类型
Json格式用户端与服务器通信的消息由于是Json封装的(主要是定义好key和value),项目中采用Gson库,将消息抽象成类似Java中的bean类,每种消息就是一种对象。json字符串&amp;amp;amp;amp;amp;amp;amp;lt;——&amp;amp;amp;amp;amp;amp;amp;gt;消息对象(数组),可以在开发中快速的转化。——&amp;amp;amp;amp;amp;amp;amp;gt;具体包括如下几个
2018-07-05 20:23:46 1237 1
原创 angular-websocket学习笔记
主要记录在开发中angular-websocket的学习心得,可以直接跳过「前言」,如有错误请批评指正。前言最近一直在学习开发一款物联网项目。通过后端管理平台,可以将设备的信息反馈到用户端,并实时控制。后端用的workerman+websocket技术,可以实现长连接,双向通信。主要是通信协议和指令的设计。设备端和用户端先在PC端模拟,demo通过JavaFX基本实现。因为考虑可以通过...
2018-06-27 15:58:43 4873
原创 设备数据包格式
发送消息类型CONNECTDISCONNECTPOSTUREDONEUNDONE接收消息类型QUERY_POSTUREQUERY_PIDSERVER_FEEDBACKCONTROL_POSTURE 字段\类型 from(帧头) len(长度) type(指令类型) content(指令内容) sum(校验) 发送消息类型:...
2018-06-21 19:54:57 1539
原创 最大流问题
问题描述具体的最大流问题定义、术语以及特性,前人已经描述的很详细了:最大流算法之EK(最短路径增广算法)最大流(网络流基础概念+三个算法)我们需要注意以及几个方面:流量守恒约束:这个无需多言。后向边(反向边):尾列在头的前面:1→…→i←j→…→n。引入后向边的目的在于寻找到更多可能的增益路径,而无需回溯后寻找,减少时间复杂度。生成增益路径的方法决定了问题的时间复杂度。...
2018-03-26 15:29:27 3590 1
原创 计数排序
计数排序的时间复杂度比快速排序,合并排序(O(nlongn))都要好O(n),但是是以空间代价换取的,并且在范围较小的整数数中使用。在介绍技术排序之前先补充时空权衡的思想。时空权衡时空权衡的思想就是以空间资源换取时间效率,在算法设计中经常遇到。需要注意的是:并不是所有的情况下,时间和空间这两种资源都是相互竞争的。实际上,他们可以联合起来达到最小化。这种情况需要一个高效的数据结构...
2018-03-07 23:18:28 782
原创 解决微软自带的rdp远程桌面分辨率问题
如果是win10的电脑可以通过智能缩放来匹配远程服务器的分辨率。由于win7的远程桌面连接不带智能缩放功能。网上有几类解决方案:https://jingyan.baidu.com/article/19192ad835016ee53f570765.html 试了下不行,mmp。只是改变了窗口的大小,远程桌面的分辨率不变。接着往下还可以通过导出rdp文件修改。导出的方法在“选项”中保存r
2018-01-06 11:39:19 59347 1
原创 VNF放置问题(Resource Allocation in NFV)
什么是NFV?网络功能虚拟化(Network Function Virtualization)又是一个不同的研究方向,这里只是结合研究的模型做简单的介绍。从字面理解,NFV=NF+V。——>NF又是什么呢?[2]:Network functions (NFs), also known as ”middleboxes”, are playing an increasingly important r
2017-11-07 17:42:22 6169
原创 Optimizing Rule Placement in Software-Defined Networks for Energy-aware Routing
什么是EAR?能量感知路由(EAR):就是以节约能耗为目的来规划转发流的路由。 energy-aware routing (EAR) approach aims at minimizing the number of used network elements while all the traffic demands are routed without any overloaded link
2017-09-14 17:56:37 621
原创 aOFFICER: Adaptive OpenFlow Rules Placement
通过上文的OFFICER模型的启发式算法,我们得到了一个优化的流矩阵A(|F|-by-|L+| binary matrix)。但是对于一个大型的网络拓扑,流矩阵A的规模将十分巨大,无法实际处理。——>如何减少A的规则呢?网络中的流可以分为两种:small flows :老鼠流。流量(流的大小)小,但是数量多large flows:大象流。流量大,但是数量少。为此,我们可以只考虑大象流,即将重要
2017-08-16 17:11:41 463 2
原创 OFFICER: A general optimization framework for OpenFlow rule allocation and endpoint policy enforceme
OFFICER——>转发规则放置问题——>什么是规则放置问题?一组规则如何放置到容量有限的交换机上,以满足上层应用的策略(ACL、流转发)。规则用来匹配流,其action是策略的执行者。这里研究的交换机可以是一个交换机(规则缓存问题考虑规则依赖,如cacheflow),也可以是一组以路径形式的交换机。(本文是后者)对于那些匹配不到的流执行默认规则(优先级最低),可以丢弃,转发到控制器,转发到下一跳节
2017-07-28 21:23:18 454
原创 分治法中的合并排序和快速排序
分治法分治法的步骤:分:将问题分解为同一类型、规模更小且最好相同的子问题;治:对这些子问题求解(一般是递归方法);合:将已解决的子问题合并,最终得出“母”问题的解。如果不合并,可以考虑用贪心法或动态规划法。在划分阶段治:快速排序 在合并阶段治:合并排序时间复杂度算法运行时间的递推公式:T(n)=aT(n/b)+f(n)一个规模为n的实例可以划分为b个规模为n/b的实例,其中a个实例是需要求
2017-07-25 20:07:52 3835
原创 Heterogeneous Flow Table Distribution in Software-Defined Networks笔记
一、几个概念homogeneous flow table:同构流表(策略) 一个入口交换机应该执行相同的策略(ACL)——>由于TCAM容量限制,入口交换机的策略可以分配到由此导出的每条路径上——>为确保每条路径上的流都能匹配到规则,应该在每条路径上存贮相同的规则集(palette),这些被分割的相同的规则集就是同构流表。 总结:流的需求一样——>所有流经过的路径规则集都一样homogene
2017-06-21 16:46:36 695
原创 全排列生成算法笔记
我们知道n的全排列组合共有n!——>何将将这n!全排列的组合打印出来?为次,我们简单起见,假设对元素全排列的集合是从1到n的简单正整数集合{1,2,…,n}。一、递归算法首先递归的思想涉及到减治法的概念。PS:减治法与分治法1、减治法:把一个问题分成一个小问题来解决——>缩小(扩大)问题增量法:自底而上的扩大问题——>迭代减治法:自顶而下的缩小问题——>递归3种主要的变化形式: 减去一个常量
2017-05-23 11:49:50 1083
原创 基于JavaFX的聊天室设计(两种后端实现:workerman和Java TCP socket)
项目地址:https://github.com/Laity000/ChatRoom-JavaFX主要的版本控制:V1.0:(2017-5-17)V1.1.0:(2017-5-31) 支持emoji,改进消息气泡,优化stage控制器及其基类。V1.2.1:(2018-3-13)增加workerman服务端,更新UI使客户端支持两种协议(服务端)的选择一、写在前面...
2017-05-17 00:13:48 15309 9
原创 The Overview of Rule Placement Problem in SDN(规则放置问题的概述)
一、写在前面SDN的出现,使控制层与转发层相分离,方便了对网络的配置和管理。通过抽象的思想,在数据中心、校园网乃至城域网,我们将转发层设备(不管是你是什么设备,思科还是华为,是交换机还是路由器)都抽象成一个大的switch,并提供接口,隐藏其复杂性。这样,用户不需要关心低层的细节,只需要实现高层的策略。就像几千条的汇编语言只需一两条python语句就可以完成,大大简化了操作。——>如何将你的策略(你
2017-05-14 00:36:11 1085
原创 基于埃拉托色尼质数筛选法求最大公因数(java)
import java.util.Scanner;//埃拉托色尼质数筛选法public class sieveofEratosthenes { static final boolean DEBUG = true; //输入:一个整数n(n大于1) //输出小于等于n的质数的数组L public static int[] getPrime(int n){
2017-04-07 22:59:20 1888
原创 Palette: Distributing Tables in Software-Defined Networks笔记
前言解释table:表,规则的集合small table、subtable:子表、小表,被分割后的表large table:原始表,待分割的表largest table:大表,规则数最多的表table size:表中规则的数量,表的大小bits:位,匹配符或数据包头中的字符位一句话总结将原始规则表分割成均等的C个子表,(其中图中最短路径的长度是C的上界)然后使用彩虹路径方法将子表放入交
2017-03-08 23:13:31 551
原创 Optimizing the “One Big Switch” Abstraction笔记
rule-placement algorithm概述主要介绍了一种规则放置算法(rule-placement algorithm)以达到“One Big Switch”的抽象。由于switch容量有限,将所有规则放入一组switch 集群中,以抽象成一个 big switch。input:①端点策略(end-point policy)和②路由策略(routing policy),以及③网络拓扑(n
2017-02-28 00:03:30 630
原创 measure机制流程理解
初始入门,没有看具体的源码,只是用到时结合几篇文章得出自己目前的理解。有很多错误的地方,以后在学习研究内核剖析时在深入研究参考:(推荐)Android View框架的measure机制Android中mesure过程详解 (结合Android 4.0.4 最新源码)Android View 测量流程(Measure)完全解析(1)最外层根视图得到MeasureSpec的流程对于每一个View
2017-01-30 18:29:02 585
原创 内部类学习笔记
非静态内部类非静态内部类对象里保存了一个它寄存的外部类对象的引用存在非静态内部类对象→则一定存在外部类对象存在外部类对象→不一定存在非静态内部类对象 规则:静态成员不能访问非静态成员注①:当外部类属性、内部类属性、内部类方法的局部变量都同名时注②:不能直接访问,必须显示创建内对象注③:不能在外部类的静态成员(包括静态方法和静态初始化块)中使用非静态内部类,原因很简单:非静态内部类可看作是外
2017-01-26 14:09:20 226
原创 ListView学习
概述第一行代码(第二版)Android研究院之应用程序ListView 详解 (六)其中在自定义ListView中涉及到如何动态加载布局,即XML流→实例化布局得到View对象,便于实现该布局中的各个控件。Android LayoutInflater原理分析,带你一步步深入了解View(一)XML PULL解析以及:Android视图绘制流程完全解析,带你一步步深入了解View(二)(
2017-01-24 23:45:23 295
原创 Wildcard Rules Caching For SDN笔记
目录基本概念三个Rules Caching算法一个Cache Replacement的思路总结及实现基本概念一、packet classificationhttp://blog.csdn.net/u013480581/article/details/54173059The process of categorizing packets into “flows” in an Internet
2017-01-13 17:57:55 844
原创 Packet Classification笔记
The process of categorizing packets into “flows” in an Internet router is called packet classification. All packets belonging to the same flow obey a pre-defined rule and are processed in a similar man
2017-01-07 13:45:03 1599
原创 Rule-Caching Algorithms for Software-Defined Networks(论文笔记)
写在前面这算是看的第一篇完整的论文,对算法的地方整理了笔记和做了理解。如有错误之处,请指正。其中有很多不足,比如目前还缺乏对数据层规则放置问题及其他相关研究这一点的整体理解。路漫漫其修远兮。回顾摘要TCAM用来存储(cache)规则(rule)的,数据包(packet)可以通过TCAM快速查找到高优先级的规则。TCAM的优势众所周知,但是这里有几点问题,也是文章的解决思路:TCAM容量限制:两种s
2017-01-05 16:26:38 623
原创 01背包 学习笔记
学习背包问题之前首先要了解动态规划的思想动态规划作者:王勐 链接:https://www.zhihu.com/question/23995189/answer/35429905 来源:知乎 著作权归作者所有,转载请联系作者获得授权。动态规划是通过拆分问题(不管问题有没有时间轴的概念,抽象成时间先后关系)状态的定义状态转移方程的定义阶段是状态的容器问题的分类由阶段中状态的转移方式决定的:
2016-12-30 17:06:20 294
原创 openflow v1.0学习笔记
本部分(二)主要是对openflow的理解,汇报时间2016-12-7openflow v1.0内容概述openflow 案例分析openflow v1.3一些新特征参考资料OpenFlow Switch Specification v1.0 手册内容:OpenFlow PortsOpenFlow TablesSafety ChannelOpenFlow Protocol
2016-12-08 00:19:48 3994
原创 对SDN概念的理解
本部分(一)主要是对SDN概念的理解,汇报时间2016-12-07目录传统网络的一些问题SDN概念的理解传统网络的一些问题(也是SDN发展的动力和方向)网络厂商杂,设备类型多,设备数量多,命令不一致,导致部署困难,管理麻烦。→导致研究人员对实验的实验困难→openflow的开端独立计算→接力棒交互→分布式框架,产生网络瓶颈。传统网络中主机的迁移,对网络的快速收敛要求很高。(类比足球的例子:
2016-12-07 23:20:42 4716
原创 关于回调函数的理解
回调函数网上关于回调函数的例子很多。以下下是我的理解:神话版:调用,回调。直述版:A让B做某事,B做着做着发现:哎呀,不对呀,这事具体应该怎么做呀?于是,回调A中询问事件具体的实现形式。(或者理解:这事我做完了接下该你A来做了,于是回调A的方法——以异步回调的角度)然后完成事件。——以同步回调的角度抽象版:首先A有某事要完成,分为动作①和动作②。A让B做某事的动作①(在B中实现动作①),B做完
2016-12-01 10:41:18 568
转载 三态内容寻址存储器(TCAM)工作原理
转载CAM是Content Addressable Memory的缩写,即“内容寻址存储器”的意思,它是在传统的存储技术的基础上实现的联想记忆存储器,关于CAM的基本操作有三种:写操作:输入地址和数据,将数据写到指定的地址上,写入速度与RAM相同;读操作:输入地址,返回该地址上的数据,读取速度与RAM相同;查找操作:输入待查数据,返回该数据被存储的地址。这也是CAM的最主要用途,它能够从巨大的
2016-11-23 15:22:12 30341
原创 基本概念笔记
传统分布式网络一、RIB、FIB、LIB、LFIB对RIB、FIB、LIB、LFIB的一些理解RIB (路由信息库)全,知道到所有的地方怎么走,但是速度慢。FIB (转发信息库)快,只知道常走的路怎么走,速度快。一般在设备的控制和数据平面保持镜像关系。 在大部分路由器中,RIB表现为路由表的形式, FIB则表现为高速缓存的形式,此在内容上是路由表的一个子集,是依靠路由表来生成的。如果是分布式设
2016-11-08 19:36:06 667
原创 Socket多线程接发指令
基础知识多线程消息机制基于TCP协议的网络通信创建多线程的方法一种是,继承Thread类 Thread类代表线程类,它的两个最主要的方法是: run()——包含线程运行时所执行的代码 Start()——用于启动线程另一种是,实现Runnable接口 实现Runnable接口,让类实现Runnable接口,然后把run方法单独提出来两种方法的区别: Callable、Fut
2016-10-31 23:28:15 819
原创 SmartBed2.0的上位机部分设计构思
SmartBed2.0的上位机部分(草稿)一、整体框架更新:2016-10-29 更新:2016-11-9 通信协议 更新:2016-11-17 通信协议补充远程模式 SmartBed1.0版本时序图Created with Raphaël 2.1.0用户、设备连接建立的过程用户主机用户主机服务器主机服务器主机设备主机设备主机连接请求,携带PID(设备标识符)记录PID允许连接发送设备
2016-10-29 17:07:14 993 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人