自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux控制导出到so文件的函数名

1、在文件里面最前面加上:#define extern “C” DLL_PUBLIC _attribute_ ((visibility(“default”)))2、在文件里面需要导出的函数前加上:DLL_PUBLIC3、Linux下动态库(so)编译时默认不导出,在gcc命令中需要添加参数:-fvisibility=hidden如上操作后,nm -D xxx.so,就会看到要导出的函数符号和函数名定义相同,方便后续通过dlsym获取函数函数地址...

2020-09-30 15:00:42 1141

原创 Socket自定义协议

基于socket简单通信协议实现(c/c++)博客分类: C/C++Linux1 场景当用socket进行进程通信,传输数据的时候,会出现以下一些情况:(1)完整的一条消息被系统拆分成几条发送,例如要发送一条消息:Hello World ,却被系统分成两条消息发送,分别为:Hello 和 World。(2)几条独立的消息被系统合成一条消息发送,例如要发送两条消息分别为:a memory ...

2020-09-12 15:42:00 601

原创 Scala学习笔记——3

一、随笔1、scala的每个表达式都是有返回值的2、scala函数的最后一个表达式就是函数的返回值,scala不建议使用return语句3、scala访问数组的方式是(),而不是[]例如:val a=Array[1,2,3]println(a(2))二、while循环1、最好不要用var索引来枚举数组元素2、foreach方法例子://使用上面的常量aa.foreach(...

2020-09-12 15:41:13 163

原创 C++学习笔记——1

网络编程

2020-09-12 15:40:06 181

原创 Scala——yield的用法

Scala中的yield的主要作用是记住每次迭代中的有关值,并逐一存入到一个数组中。用法如下:for {子句} yield {变量或表达式}具体举例如下,该例子获取文本文件中包含指定关键字的相关行,并统计各相关行字数,先把文本文件内容贴出来:I love Scala.I love Spark.I love Hadoop.下面是程序代码:object YieldDemo {...

2020-09-12 15:37:53 375

原创 C#调用JAVA代码

一、将已经编译后的java中Class文件进行打包;打包命令JAR如:将某目录下的所有class文件夹全部进行打包处理;使用的命令:jar cvf test.jar -C com/ .其中test.jar为要生成的jar包;com/ . 为指定的当前目录下的文件夹,该文件夹包括子文件夹及class文件;二、到IKVM官方网站下载IKVM需要的组件 http://www.ikvm.net/ikvm-0.42.0.3.zipikvmbin-0.42.0.3.zipopenjdk6-b16-stri

2020-09-12 15:36:50 662

转载 C++编程规范

C++命名规范常见命名法:匈牙利命名法:基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原=则。保证名字的连贯性是非常重要的。Camel命名法:即骆驼式命名法,原因是采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏。Camel命名法有两种形式:混合使用大小写字母和单词之间加下划线,例如runFast和run_fast都属于Camel命名法。Pascal命名法:与Camel命名法类似,不过Pascal命

2020-09-10 17:52:47 559

原创 不是创建此预编译头时使用的 idb 文件,请重新创建预编译头。

打开中间目录文件,删除所有文件,点击重新编译生成即可原因:在链接器——输出文件中改了程序名导致生成的idb文件覆盖问题

2019-10-23 17:42:09 557

转载 Visual Studio项目属性的一些配置项的总结

转载自这几天刚好要做一个决策支持系统软件的框架搭建,看到网上一些较好的资料整理了下,给大家分享。一、Visual Studio 项目的文件组织方式VC6.0之后的VC (VS)系列使用解决方案(Solution)来替代原来的工作空间,用于组织和管理多个相关的项目(Project)。VS中的每个管理器(解决方案或项目)都会对应一个总的文件夹,这个管理器文件夹下存放本管理器的配置文件以及子管理器...

2019-09-16 19:19:41 1323

原创 MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fclose already defined in LIBCD.lib(fclose.obj)

工程设置->Link->Input->忽略特定库MSVCRTD.lib

2019-09-05 10:21:05 393

转载 递归删除目录或文件时FindClose的重要性

在清空文件夹时,调用了RemoveDirectory,在调用前已经删除了文件夹中所有文件,但就是不能成功调用。分析来分析去,其实原因很简单,但也很具有欺骗性。其实是在调用FindFirstFile和FindNextFile这套函数组合后,没有执行FindClose。本质原因就是要删除的文件夹仍然处于被访问状态,不能被删除。当然还一点就是要保证被删除的文件夹为空。如果要删除多层文件夹,那只好使用...

2019-08-27 14:44:50 258

原创 “IFileDialogEvents”: 未定义基类

在VS2008的项目属性中,在C/C++ --> 预处理器 --> 预处理器定义 中,把_WIN32_WINNT=0x0500改成_WIN32_WINNT=0x0600 , 然后清除以前编译的东西,再完全重新编译即可。(即重新编译预编译的东西即可)...

2019-08-08 15:28:29 357

原创 VC++学习——3

目录WIN32API文件操作、 1、WIN32API文件操作文件的创建和打开CreateFile函数,可以创建或打开下列对象,返回一个可以读取对象的句柄文件、管道、邮槽、通信资源、磁盘设备(仅限于Windows NT平台)、控制台、目录(仅适用于打开操作)HANDLE CreateFile( LPCTSTR lpFileName,//对象名称 D...

2019-05-27 15:14:48 264

原创 连续调用两次socket函数

note_2019_05_07在一个进程的一个函数中连续调用socket函数赋值给两个不同的SOCKET类型变量,第二个调用socket的变量总是INVALID_SOCKET,不知是何原因。解决方法:在两个不同的线程中分别调用socket在时间上两个线程几乎是同时调用socket函数的,但是没有发生上述错误,两个数据发送的是正确的...

2019-05-10 08:17:56 1208

原创 VC++学习——1

目录1、概念2、消息和消息队列1、概念Windows程序设计:事件驱动的程序设计用户在窗口进行一些操作时,操作系统感知到这一事件,然后将这一事件打包成消息,投递到应用程序的消息队列中,然后应用程序从消息队列中取出消息并进行响应。窗口过程:当“发送消息”时,操作系统调用应用程序中一个专门负责处理消息的函数,这个函数叫做窗口过程。窗口句柄:窗口是通过窗口句柄(HWND,Handle to...

2019-04-09 10:29:53 1093

原创 VC++学习——2

目录编译器生成默认构造函数的情况函数重载this指针子类调用父类的自定义构造函数三种继承方式及三种访问权限友元、、回到目录1、编译器生成默认构造函数的情况三种情况:如果类有虚拟成员函数或虚基类时如果类的基类有构造函数(可以是自定义的构造函数,或者是编译器提供的默认构造函数)类中所有非静态的对象数据成员,他们所属的类中有构造函数(可以是自定义的构造函数,或者是编译...

2019-04-09 10:29:39 771

原创 JAVA——面向对象程序设计

1、一些基础概念,有利于理解JAVA程序设计的思路,更能理清代码结构层次,用对象去解决问题从根本上说,只要对象能够满足要求,就不必关心其功能的具体实现过程。项目开发中可以根据预算和时间,购买对象。面向过程:先确定算法,再决定如何组织数据(数据结构)面向对象:先确定数据结构,再考虑要进行什么操作(算法)构造 construct实例 instance类实例=对象封装 encapsula...

2019-01-16 20:23:57 247

原创 JAVA——多维数组1

1、与一维数组一样,在调用new对多维数组初始化之前,不能使用该多维数组。2、for each访问多维数组for(double[] row:a)    for(double value:row)        do someting with value3、我们知道Arrays类的静态toStirng(type[] a)函数可以快速的打印一个一维数组,同理多维数组也存在着类似功...

2019-01-16 15:39:27 148

原创 大数据相关软件、环境(伪分布式)搭建全记

前言:因为升级了下电脑的硬件,所以重装了下系统,重新安装软件的过程中发现还没有记录过安装的整个过程,所以来csdn记录下,以便以后安装时参考。需要安装的软件及环境VirtualBoxCentOsVirtualBox1、下载地址:Oracel virtualbox官网2、选择virtualbox的原因:查了下,virtualbox占用资源比vmware小很多,运行集群时消耗较小。而...

2018-11-23 23:38:48 377

原创 Scala学习笔记——2

一、if表达式1、if表达式是有返回值的例如:val some=if(time>4) 1 else 0结果some:int 1另一种写法:if(time>4) some=1 else some=02、if和else子句要返回的值的类型可以不同,返回的类型为Any3、else子句可以省略,默认else值的类型为unit4、 Scala代码书写风格类似于python,不需要加...

2018-11-23 13:38:38 135

原创 Scala学习笔记——1

Scala简介:Scala是基于JVM的一门编程语言,Scala代码需要编译为字节码交给JVM来执行。Scala因此可以任意调用Java代码Scala解释器(也称为REPL):REPL:Read(取值)——》Evalution(求值)——》Print(打印)——》Loop(循环)Scala内置变量:在Scala命令行中,若没有指定变量来存放计算结果的值,那么默认存放在内置变量res中,...

2018-11-21 23:19:36 171

原创 Java——不可变类

可以遵照以下几点来编写一个不可变类:1. 类应该定义成final,避免被继承。将类声明为final (强不可变类),或者将所有类方法加上final(弱不可变类)。或者使用静态工厂并声明构造器为private。2. 声明属性为 private 和 final 。3. 不要提供任何可以修改对象状态的方法:不仅仅是set方法,还有任何其它可以改变状态的方法。4. 如果类有任何可变对象属性,那么当...

2018-11-21 21:34:22 196

原创 算法-------动态分配策略

动态分区分配算法1.首次适应算法(First Fit) 算法思想:将空闲分区链以地址递增的顺序连接;在进行内存分配时,从链首开始顺序查找,直到找到一块分区的大小可以满足需求时,按照该作业的大小,从该分区中分配出内存,将剩下的空闲分区仍然链在空闲分区链中。 优点:高址部分的大的空闲分区得到保留,为大作业的内存分配创造了条件; 缺点:(1)每次都是优先利用低址部分的空闲分区,造成低址部分产生大量的...

2018-11-21 10:37:31 1170

原创 Spark学习笔记——1

一、Spark简介1、Spark:完全基于Hadoop的一种计算框架2、计算框架——》适用场景:Spark RDD——》离线批处理Spark Core——》流式计算Spark SQL——》交互式查询(基于Hive)Spark Streaming——》实时流式计算Spark MLlib——》机器学习Spark GraphX——》用于图计算3、Spark用于计算,Hadoop生态系...

2018-11-21 10:36:24 569

原创 大数据学习资源

第四阶段(不断学习阶段)每天都会有新的东西出现,需要关注最新技术动态,不断学习。任何一般技术都是先学习理论,然后在实践中不断完善理论的过程。备注1)如果你觉得自己看书效率太慢,你可以网上搜集一些课程,跟着课程走也OK 。如果看书效率不高就很网课,相反的话就自己看书。2)企业目前更倾向于使用Spark进行微批处理,Storm只有在对时效性要求极高的情况下,才会使用,所以可以做了解。重...

2018-11-20 15:37:57 310

原创 Python——运算符

逻辑运算符Py中True为非0非空,False为0或空数据类型 False True 整型 0 其他 浮点型 0.0 其他 字符串 ‘’ 其他 字典 {} 其他 元组 () 其他 列表 [] 其他 None None    and  :a an...

2018-11-20 15:37:36 149

原创 Python——数据类型转换函数

UTF-8一个汉字的长度是3long型整数  后面加个L16进制数表示:0x8进制数表示:02进制数表示:0b         都是0打头py2.x中整数除整数,只能得到整数,将其中一个改成浮点数即可得到浮点数print 'hello \        my name is '                 可以在字符串中加 ‘\’既可以换行,否则不行 int(...

2018-11-20 15:37:18 1608

原创 Python——循环语句

while .....  :   else: while语句正常跳出(非break)后,else执行同样也有for.....else...语句 

2018-11-20 15:37:03 193

原创 Python——变量作用域

在对象内部访问外部变量python能够改变变量作用域的代码段是def、class、lamda.

2018-11-20 15:36:55 136

原创 Python——内置函数

cmp(a,b)    比较a,b两个字符串,若相同返回0,即平局的意思,a比b大返回1,a比b小返回-1比较原理:1.   对两个列表的元素进行比较.000000000000000000000002.   如果比较的元素是同类型的,则比较其值,返回结果.3.   如果两个元素不是同一种类型,则检查它们是否是数字.     a. 如果是数字,执行必要的数字强制类型转换,然后比较.  ...

2018-11-20 15:36:37 318

原创 python——格式化输出(借鉴笔记)

Python格式化输出今天写程序又记不清格式化输出细节了……= =索性整理一下。python print格式化输出。1. 打印字符串print ("His name is %s"%("Aviad"))效果:2.打印整数print ("He is %d years old"%(25))效果:3.打印浮点数print ("His height is %f ...

2018-11-20 15:36:16 149

原创 Python——math模块 cmath模块

math:对浮点数运算的函数cmath:对负数运算的函数import mathimport cmath查看math模块函数:print dir(math)                                  print dir(cmath)Python数学函数函数 返回值(描述) abs(x) Absolute Value    返回绝对值...

2018-11-20 15:36:07 769

原创 Python——Python和C语言的除法余数符号的问题

Python中,除法向负无穷取整C中,除法向0取整Python:-9/7=-1.29=-2.....5C:-9/7=-1.29=-1.....-2

2018-11-20 15:35:56 1352

原创 网络安全---------arp挂马攻击

原理:arp中间人攻击,实际上相当于做了一次代理。 正常时候: A---->B ,A是访问的正常客户,B是要攻击的服务器,C是被我们控制的主机 arp中间人攻击时候: A---->C---->B B---->C---->A 实际上,C在这里做了一次代理的作用 那 么HTTP请求发过来的时候,C判断下是哪个客户端发过来的包,转发给B,然后B返回HTTP响应的时...

2018-11-20 15:35:47 770

原创 数据库-------三大范式:数据库设计规范

什么是三大范式:第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。第三范式:设R是一个满足第一范式条件的关系模式,X是R...

2018-11-20 15:35:40 263

原创 操作系统-------动态分区分配算法

动态分区分配算法1.首次适应算法(First Fit) 算法思想:将空闲分区链以地址递增的顺序连接;在进行内存分配时,从链首开始顺序查找,直到找到一块分区的大小可以满足需求时,按照该作业的大小,从该分区中分配出内存,将剩下的空闲分区仍然链在空闲分区链中。 优点:高址部分的大的空闲分区得到保留,为大作业的内存分配创造了条件; 缺点:(1)每次都是优先利用低址部分的空闲分区,造成低址部分产生大量的...

2018-11-20 15:35:27 1990

原创 Java——nextInt()之后的nextLine()读取不到键盘输入的情况

今天在刷题过程中遇到一个奇怪的问题。 Scanner in = new Scanner(System.in); int count= in.nextInt(); String pile = in.nextLine(); String[] piles = pile.split(" ");因为需要接收传入的两个参数,第一个为int类型,所以调用nextInt()方法...

2018-11-20 15:35:14 245

原创 java——jvm堆

对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在Java 虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配①,但是随着JIT 编译器的发展与逃逸分析技术的逐渐成熟,栈上分配、标量...

2018-11-20 15:34:47 106

原创 Java——堆内存设置

 原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。 Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),New 即 年轻...

2018-11-20 14:09:46 538

原创 Java——线程安全的Map的实现方式3种

1. HashMap,TreeMap 未进行同步考虑,是线程不安全的。2. HashTable 和 ConcurrentHashMap 都是线程安全的。区别在于他们对加锁的范围不同,HashTable 对整张Hash表进行加锁,而ConcurrentHashMap将Hash表分为16桶(segment),每次只对需要的桶进行加锁。3. Collections 类提供了synchronize...

2018-11-20 14:05:35 3077

IKVM-0.42.0.3

基于.NET的Java虚拟机意味着我们可以让Java程序跑在.NET上,可以通过虚拟机这个中介让Java程序和.NET应用程序一起协同工作。更难能可贵的是,IKVM同时支持微软的.NET Framework 和 Mono。

2020-09-10

openjdk6-b16-stripped.zip

ikvm-0.42.0.3.zip ikvmbin-0.42.0.3.zip openjdk6-b16-stripped.zip 基于.NET的Java虚拟机意味着我们可以让Java程序跑在.NET上,可以通过虚拟机这个中介让Java程序和.NET应用程序一起协同工作。更难能可贵的是,IKVM同时支持微软的.NET Framework 和 Mono。

2020-09-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除