- 博客(126)
- 收藏
- 关注
转载 Java 进行 RSA 加解密时不得不考虑到的那些事儿
本文转自:http://blog.csdn.net/defonds/article/details/427751831. 加密的系统不要具备解密的功能,否则 RSA 可能不太合适公钥加密,私钥解密。加密的系统和解密的系统分开部署,加密的系统不应该同时具备解密的功能,这样即使黑客攻破了加密系统,他拿到的也只是一堆无法破解的密文数据。否则的话,你就要考虑你的场景是否有必要用 RSA 了
2018-02-06 17:55:40
1495
转载 Fiddler 抓包工具总结
阅读目录1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制定规则的请求 5). Filters 请求过滤规则 6). Timeline 请求响应时间2.
2018-01-17 17:16:58
615
转载 33款可用来抓数据的开源爬虫软件工具
要玩大数据,没有数据怎么玩?这里推荐一些33款开源爬虫软件给大家。爬虫,即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化。网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽
2018-01-17 15:01:46
986
原创 SystemC教程-模块和进程(Modules and Processes)
本节包含一个完整的简单设计,以演示SystemC中模块和进程的使用。为了简单起见,它是非常低的水平 - 不是你通常在系统级设计语言期望的编码风格!所展示的要点是创建层次结构所述sc_signal原始信道(专门)端口进程(SC_METHOD,SC_THREAD,SC_CTHREAD)一个简单的测试台(test bench)SystemC背景为什么要看模
2017-11-30 12:36:33
11533
1
转载 SystemCyu语言结构
1.头文件#include”systemc”只包含sc_core和sc_dt,sc_core是 SystemC 基本的内核空间,sc_dt则定义了SystemC的最基本数据类型;#include “systemc.h”包括了除sc_core和sc_dt外的其它仿真中所需要的名字。2.模块模块声明---使用关键字SC_MODULE来声明一个模块,等效于VHDL的ent
2017-11-29 13:58:55
1050
转载 Linux中gdb 查看core堆栈信息
本文转载自:http://blog.csdn.net/suxinpingtao51/article/details/12072559core dump 一般是在segmentation fault(段错误)的情况下产生的文件,需要通过ulimit来设置才会得到的。调试的话输入: gdb filename corefilename就是产生core文件的可执行文件,croe
2017-09-24 21:22:16
2244
转载 GDB中断原理
gdb的断点是基于信号(signal)实现的在某个地址增加一个断点,实际上就是修改那个地址的代码,把原来的代码替换成INT 3指令,同时让gdb捕获这个signal并做相应的处理:包括执行被替换掉的指令,并跳转回来。因此,只要断点不被走到,那么断点就不会影响程序的运行效率;因为程序的其他地方都没改变,该怎么运行还是怎么运行。gdb在遇到断点之后可以做很多事情
2017-08-27 22:02:48
1786
转载 值得推荐的C/C++框架和库
转载于: http://www.ezlippi.com/blog/2014/12/c-open-project.html值得学习的C语言开源项目Libeventlibev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reacto
2017-08-04 10:35:31
700
原创 copy构造函数调用情况
很早知道拷贝构造函数被调用有三种情况:1)类对象初始化该类的另一对象时;2)形参为类对象的函数被调用时;3)返回值为类对象的函数执行完成返回调用者时。但今天才发现理解的和实际情况有偏差,并不是出现赋值运算符=就是调用的赋值操作运算符函数啊,比如这里的1),类对象初始化另一对象时是可以用拷贝构造函数形式,也可以利用赋值符号的形式啊,类似内置类型的初始化,用一个简单的类来验证了该事实。
2017-07-29 11:03:03
420
转载 C++ 对象的内存布局(上)
转自blog:http://blog.csdn.net/haoel前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的问题,也是为了图一些表达上方便
2017-07-28 10:10:41
285
转载 C++ 虚函数表解析
转自Blog: http://blog.csdn.net/haoel前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图
2017-07-27 17:13:56
330
转载 Linux内存管理
本文以32位机器为准,串讲一些内存管理的知识点。 1. 虚拟地址、物理地址、逻辑地址、线性地址 虚拟地址又叫线性地址。linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念。物理地址自不必提。内核的虚拟地址和物理地址,大部分只差一个线性偏移量。用户空间的虚拟地址和物理地址则采用了多级页表进行映射,但仍
2017-07-26 11:01:54
743
转载 如何线程安全的使用HashMap
在周二面试时,一面的面试官有问到HashMap是否是线程安全的,如何在线程安全的前提下使用HashMap,其实也就是HashMap,Hashtable,ConcurrentHashMap和synchronized Map的原理和区别。当时有些紧张只是简单说了下HashMap不是线程安全的;Hashtable线程安全,但效率低,因为是Hashtable是使用synchronized的,所有线程竞
2017-07-20 22:24:41
460
转载 拥塞避免和慢启动
拥塞避免算法是一种处理丢失分组的方法。该算法假定由于分组受到损坏引起的丢失是非常少的(远小于1%),因此分组丢失就意味着在源主机和目的主机之间的某处网络上发生了拥塞。有两种分组丢失的指示:发生超时和接收到重复的确认。如果使用超时作为拥塞指示,则需要使用一个好的RTT算法。拥塞避免算法和慢启动算法是两个目的不同、独立的算法。但是当拥塞发生时,我们希望降低分组进入网络的传输速率,于是可以调
2017-07-20 17:00:08
1160
转载 C++内存地址分配和内存区划分简介
C++内存地址分配简介1 内存地址是从高地址到低地址进行分配的:int i=1; int j=1; cout/*输出:0012FF60(高地址处) 0012FF54(低地址处)*/1231232 函数参数列表的存放方式是,先对最右边的形参分配地址,后对最左边的形参分配地址。 3 Little-endian模式的CPU对操作数的存放方式是从低字节到高字节的 0x1
2017-07-18 09:12:35
1350
转载 Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
转载出处: http://kyang.cc/栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。根据栈的特点,很容易的想到可以利用数组,来实现这种数据结构。但是本文要讨论
2017-07-09 21:29:04
575
转载 谈谈Linux下动态库查找路径的问题
本文转载自:http://blog.chinaunix.net/uid-23069658-id-4028681.html学习到了一个阶段之后,就需要不断的总结、沉淀、清零,然后才能继续“上路”。回想起自己当年刚接触Linux时,不管是用源码包编译程序,还是程序运行时出现的和动态库的各种恩恩怨怨,心里那真叫一个难受。那时候脑袋里曾经也犯过嘀咕,为啥Linux不弄成windows那样呢,装个软件那
2017-06-29 10:37:20
916
原创 sohu一面
奔着C++方向去的,面试官可能更熟悉JAVA,所以没有问关于编程语言的问题。1,设计一个高并发服务器需要考虑哪些因素呢?2,一个算法问题。在二维平面中求一个点,该点满足与其他所有点的曼哈顿距离之和最小。3,多线程问题。某些简单互斥操作可以不加锁来实现,怎样做?------------------自己答的一点都不好,-__-.2017.06.21
2017-06-21 14:10:35
364
转载 数据挖掘系列(10)——卷积神经网络算法的一个实现
前言 从理解卷积神经到实现它,前后花了一个月时间,现在也还有一些地方没有理解透彻,CNN还是有一定难度的,不是看哪个的博客和一两篇论文就明白了,主要还是靠自己去专研,阅读推荐列表在末尾的参考文献。目前实现的CNN在MINIT数据集上效果还不错,但是还有一些bug,因为最近比较忙,先把之前做的总结一下,以后再继续优化。 卷积神经网络CNN是Deep Learning的一个重要算法
2017-05-31 10:24:52
635
转载 数据挖掘系列(9)——BP神经网络算法与实践
神经网络曾经很火,有过一段低迷期,现在因为深度学习的原因继续火起来了。神经网络有很多种:前向传输网络、反向传输网络、递归神经网络、卷积神经网络等。本文介绍基本的反向传输神经网络(Backpropagation 简称BP),主要讲述算法的基本流程和自己在训练BP神经网络的一些经验。BP神经网络的结构 神经网络就是模拟人的大脑的神经单元的工作方式,但进行了很大的简化,神经网络由很多神经网
2017-05-31 10:23:48
1047
转载 Q-学习:增强学习
原文地址:http://mnemstudio.org/path-finding-q-learning-tutorial.htm 有改动。这篇教程通过简单且易于理解的实例介绍了Q-学习的概念知识,例子描述了一个智能体通过非监督学习的方法对未知的环境进行学习。假设我们的楼层内共有5个房间,房间之间通过一道门相连,正如下图所示。我们将房间编号为房间0到房间4,楼层的外部可以被看作是一间大
2017-05-29 09:09:52
750
转载 浅谈几种服务器端模型——多线程并发式(线程池)
引言:上篇文章说到了多进程并发式的服务端模型,如上一篇文章所述,进程的频繁创建会导致服务器不堪负载,那这一篇博客主要讲述的是线程模型和线程池的方式来提高服务端的负载能力。同时比较一下不同的模型的好处与坏处。(如果不加以说明,我们都是考虑开发是基于GNU/Linux的)在Linux下创建一个线程的方式很简单,pthread_create() 函数来创建线程,其中的一个参数的回调函数,也就是线
2017-05-25 16:28:44
1023
转载 卷积神经网络
卷积神经网络转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/41596663自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet、cuda-convnet2。为了增进CNN的理解和使用,特写此博文,以其与人交流,互
2017-05-23 11:15:11
348
转载 linux内核 RCU数据同步机制详解
简介 RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用RCU机制读取数据的时候不对链表进行耗时的加锁操作。这样在同一时间可以有多个线程同时读取该链表,并且允许一个线程对链表进行修改(修改的时候,需要加锁)。RCU适用于需要频繁的读取数据,而相
2017-05-04 11:47:12
690
转载 sockaddr与sockaddr_in,sockaddr_un结构体详解
struct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes of protocol address */};sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_IN
2017-05-03 23:14:24
2179
转载 sys/socket.h
#include 1、构建socket/* Create a new socket of type TYPE in domain DOMAIN, using protocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically. Returns a file descriptor fo
2017-05-03 21:51:18
4062
原创 Peterson算法-软件实现进程(线程互斥)
boolean flag[2]; int turn=0; flag[0]=false; flag[1]=false; void P0 () //进程P0 { while (TURE){ Flag[0]=TURE; turn=1; While
2017-04-28 09:07:38
1800
转载 互斥锁,信号量,条件变量,临界区
原子操作共享数据(全局变量或堆变量)的自增(++)操作在多线程环境下会出现错误是因为这个操作(一条c语句)被编译为汇编代码后不止一条指令,因此在执行的时候可能执行了一半就被调度系统打断,去执行别的代码。我们把单指令的操作称为原子的(Atomic),因为无论如何,单条指令的执行是不会被打断的。为了避免出错,很多体系结构都提供了一些常用操作的原子指令,例如i386就有一条inc指令可以
2017-04-18 11:02:55
786
转载 字符串的经典hash算法
1 概述链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash链表查找的时间效率为O(1)。 设计高效算法往往需要使用Hash链表,常数级的查找速度是任何别的算法无法比拟的,Hash链表的构造和冲突的不同实现方法对效率当然有一定的影响,然而Hash函数是Hash链表最核心的部分,本文尝试分析一些经典软件中使用到的字符串Hash函数在执行效率、离散性、空
2017-04-17 21:17:58
820
原创 堆排序-教训啊
昨天面试在堆排序上载了,只能怪自己之前没有深入理解堆排序的实质和排序过程,今天在这里总结下堆排序,给自己一个交代(基本算法都混了好打脸啊!)。堆排序是一种选择排序,而这种选择排序是基于顺序存储的完全二叉树的,可设为L[1,...,n]。目的就是利用完全二叉树的双亲节点和孩子节点的内在关系。堆定义:堆是n个关键字序列,当且仅当该序列满足:1),L(i)=L(2*i) && L(i)>=L
2017-04-14 14:51:12
332
转载 文本比较算法Ⅱ——Needleman/Wunsch算法
在“文本比较算法Ⅰ——LD算法”中介绍了基于编辑距离的文本比较算法——LD算法。 本文介绍基于最长公共子串的文本比较算法——Needleman/Wunsch算法。 还是以实例说明:字符串A=kitten,字符串B=sitting 那他们的最长公共子串为ittn(注:最长公共子串不需要连续出现,但一定是出现的顺序一致),最长公共子串长度为4。 定义
2017-04-03 21:44:07
825
转载 《More Effective C++》条款27:如何让类对象只在栈(堆)上分配空间?
转自:http://blog.csdn.net/hxz_qlh/article/details/13135433昨天一个同学去网易面试C++研发,问到了这么一个问题:如何限制一个类对象只在栈(堆)上分配空间?一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?仔细想想,其实也是可以滴。在C++中,类
2017-04-02 23:07:57
264
转载 bus error与segment error
在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下段错误:对一个NULL指针解引用。访问程序进程以外的内存空间。 实际上,第一个原因可以规约到第二个原因,在一个c程序的虚拟内存空间中,从低地址到高地址一次是代码区,堆区(向上增长),栈区(向下增长),最上是常量区,其中NULL指针的位置正好是虚拟内存
2017-04-01 19:28:03
4363
转载 优先队列priority_queue 用法详解
优先级队列默认less 大数优先。优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。例如:我们常用的操作就是对数据排序,优先队列默认的是数据大的优先级高所以我们无论按照什么顺序push一堆数,最终在队列里总是top出最大的元素。用法
2017-03-28 10:53:32
735
原创 块设备与字符设备
Unix下的设备有“http://en.wikipedia.org/wiki/Device_file#Block_devices">块设备”和“http://en.wikipedia.org/wiki/Device_file#Character_devices>字符设备的概念,所谓块设备,就是以一块一块的数据存取的设备,字符设备是一次存取一个字符的设备。磁盘、内存都是块设备,字
2017-03-26 19:50:20
511
原创 关于文件描述符
文件描述符在形式上是一个非负整数。内核(kernel)利用文件描述符(file descriptor)来访问文件。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉
2017-03-15 22:21:46
629
转载 HTTP中的GET与POST
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1
2017-03-15 10:30:09
432
转载 Linux makefile 教程 --- 跟我一起写 Makefile
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解
2017-03-11 10:37:16
720
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人