Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

C语言指针简单理解

C语言指针简单理解

先放一个程序指针是什么?网上主要有这么几种说法1.指针就是一个存放地址的变量2.指针是无符号整数a3.指针是整型变量a4.指针是地址5.指针是一种类型1.首先 指针肯定不是 整型变量 用sizeof看 是4个字节 而且可以用%d输出。 与其说是整型变量,还不如说是无符号整数呢,但是说指针是无符号整数也存在明显的问题 下面用程序先推翻这两种说法。#include"stdlib.h"#include "stdafx.h"int main(){ int *p...
PHP使用OpenSSL来实现非对称加密

PHP使用OpenSSL来实现非对称加密

PHP使用非对称加密主要是借助OpenSSL的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。1.安装openssl和PHP的openssl扩展2.生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护openssl genrsa -out rsa_private_key.pem 10243.生成公钥:rsa命令用于处理RSA密钥、格式转换和打印信息openssl rsa -in rsa_private_ke...
PHP借助mcript扩展实现对称加密

PHP借助mcript扩展实现对称加密

1.对称加密主要利用相同的密钥来实现,而非对称加密利用公钥和私钥来加密,比较而言对称加密速度快,但是安全性要低非对称加密方式:http://www.linuxidc.com/Linux/2017-01/139851.htm为什么使用base64_encode(),主要是用于传参,直接加密完成后不是我们能理解的字符串,也就是大家所说的乱码2.进行加密(使用mcript扩展,DES类型),关键点在于$key="key:1111",相同的密钥串<?phph...
使用 Visual Basic 编写基于 Unity3D 的计算器

使用 Visual Basic 编写基于 Unity3D 的计算器

随着 .NET 全平台战略的推进,微软正在让以 C# 为先锋的 .NET 拥有跨平台特性。这个过程中一直有人想知道其它 .NET 语言对跨平台的支持有什么改进,熟悉 C# 但是喜欢用 VB 的我也不例外。经过一番摸索,我找到了在 Unity3D 程序开发过程中用 VB 取代大部分情况下的 C# 脚本的方法。本文以用 VB 2017 编写基于 Unity3D 的计算器为例展示如何在 Unity3D 中使用 VB。如何使用 Visual Basic 编写基于 ...
验证 .NET 4.6 的 SIMD 硬件加速支持的重要性

验证 .NET 4.6 的 SIMD 硬件加速支持的重要性

SIMD 的意思是 Single Instruction Multiple Data。顾名思义,一个指令可以处理多个数据。.NET Framework 4.6 推出的 Nuget 程序包System.Numerics.Vectors 里面的 Vector`1 类型是有硬件加速功能的。这个硬件加速功能就是指即时编译的时候根据硬件环境选用一些 SIMD 的指令让程序运行更快。这个硬件加速功能的威力可以用下面的方式得到验证。用单线程的程序重复 10000000H...
VB 2015 的 闭包(Closure)

VB 2015 的 闭包(Closure)

是的,你没看错,这篇文章讲的不是 ECMAScript 。目前 VB 14 比 C# 6 领先的功能里面,有个即将在 C# 7 实现的功能,叫做“本地方法”。这个功能与“匿名委托”的区别是:匿名委托不能直接存储到自动推断类型(在C#为var)的变量里,必须赋值给已经指定委托类型的变量,或者作为参数传递。而且匿名委托不允许声明为迭代器。利用这个特性,可以 随便抄网上的JS/ES的代码更方便地使用委托,但是需要注...
VS “15” 预览 5 中 VB 15 新增的功能

VS “15” 预览 5 中 VB 15 新增的功能

VS "15" 预览 5 给 VB 带来了更新。这次的更新内容有3个:* 值元组 ValueTuple这个功能能把一组计算结果成组返回。为了使用这个功能,我们要安装 System.ValueTuple 包。这是测试版的包,并且之前只仔细测试过 C# 的值元组功能。装上之后,定义一个简单的函数VBFunction TupleTest() As (Integer, b As String) Return (1, 2)End Function这个函数的返回值包...
Java 10将带来升级版的Lambda

Java 10将带来升级版的Lambda

一个新的JEP将用于增强lambda功能,提出的更改包括更好的消岐、对未使用的参数用下划线标注和外部变量的跟踪。虽然这些更改会使Java中的lambda表达式更类似于其它语言,但是初步讨论表明大家都不同程度地支持这个方案。这个JEP补充了一系列其他建议来改进Java语言,包括局部变量类型推断和增强的枚举,所有这些改进都可能出现在Java 10中。尽管上述三个更改都与lambda功能有关,但它们之间是相互独立的,其中一些可能会被舍弃,而其他的则取决于反馈情况...
单例模式详解

单例模式详解

关键代码:构造函数是私有的。优点:1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。单例模式的几种实现方式单例模式的实现有多种方式,如下所示:1、懒汉式,线程不安全是否 Lazy 初始化:是是否多线程安全:否实现难度:易描述:这种方式是最基本的实现方式,这种实现最...
装饰器模式详解

装饰器模式详解

目的:动态地给一个对象添加一些额外的职责。一般我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。在不想增加很多子类的情况下扩展类。将具体功能职责划分,同时继承装饰者模式。使用场景: (1)需要在不影响其他对象的情况下,以动态、透明的方式给对象添加职责。 (2)如果不适合使用子类来进行扩展的时候,可以考虑使用装饰器模式。具体例子: (1)组件对象的接口,可以给这些对象动态的添加职责public abstr...
多线程TCP的socket通信

多线程TCP的socket通信

应用多线程来实现服务器与多客户端之间的通信。基本步骤:1.服务器端创建ServerSocket,循环调用accept()等待客户端的连接2.客户端创建一个socket并请求和服务器端的连接3.服务器端接收客户端的请求,创建socket与该客户端建立专线连接4.建立连接的两个socket在一个单独的线程上对话5.服务器端继续等待新的客户端的连接Server.javapublicclassServer{publicstaticvoidmain(String[]...
基于TCP协议的socket通信

基于TCP协议的socket通信

一、服务器端1、创建serverSocket,即服务器端的socket,绑定指定的端口,并侦听此端口ServerSocket server = new ServerSocket(8888);2、调用accept()方法,开始侦听,等待客户端的连接,在未连接成功之前,处于阻塞状态,返回的socket,用于与客户端连接Socket socket = server.accept();3、获取输入流,用来读取客户端发来的信息InputStream is = soc...
Spring IOC的简单实现

Spring IOC的简单实现

IoC则是一种 软件设计模式,简单来说Spring通过工厂+反射来实现IoC。原理简单说明:其实就是通过解析xml文件,通过反射创建出我们所需要的bean,再将这些bean挨个放到集合中,然后对外提供一个getBean()方法,以便我们获得这bean。通俗来讲就如同婚姻介绍所,只需要告诉它找个什么样的女朋友,然后婚介就会按照我们的要求,提供一个mm,如果婚介给我们的人选不符合要求,我们就会抛出异常。简单实现:1.需要引用maven依赖: <depen...
C++ 头文件系列(vector)

C++ 头文件系列(vector)

简介vector头文件包含vector的类模版以及该模版的显示特化版本vector< bool >。vector是C++容器库中非常通用的一种容器,如果你不知道该决定使用哪一种容器,或者没有足够的理由使用其它容器,那么就用它,没错的!从整体上来看,vector就像是一种动态数组,它拥有数组的所有功能并且能够动态增长。 它主要有以下性质:序列性容器动态增长可定制的内存分配策略内存分配器如果在一些特殊的应用场景中,默认的内存分配策略拉低了运行效率,...
C++ 头文件系列(map)

C++ 头文件系列(map)

简介该头文件包含两个概念相似的容器----map、multimap。 而这两个容器反映的概念就是 映射。这两个容器 相同 的属性有:关联性映射动态增长键(Key)唯一性这两个不相同的属性是:映射关系容器类别既然说到关联性容器,自然得说说标准库的容器类别。 C++库容器主要能分成以下几类:序列性容器: 将存储对象组织成线性模型,使用户能够像线性数组那样存取。关联性容器: 将存储内容以键(Key)相关联 ,通过键来存取内容。乱序容器: 存储对象以乱序存储,不具...
C++ 头文件系列(forward_list)

C++ 头文件系列(forward_list)

简介forwrad_list字面意思为前向列表,但实际上它是一种单向列表,只能从单一方向遍历。单向链表实现forward_list内部是用单向列表实现的,并且设计该库的时候就是以近乎手写的单向链表的运行效率(时间上和空间上)为目的的。 这导致了它是唯一一个C++标准库容器中没有size成员函数的容器, 因为维护这样一个信息会造成效率上的轻微损失。作为单向链表,它有以下几个属性:潜在可能的非连续内存分配线性时间的元素位置获取常数时间的元素插入、删除、移动与l...
C++ 头文件系列(list)

C++ 头文件系列(list)

简介list实现的实际上是双向链表,所以叫它doubly-linked list也许更好。 因为实现的是双向链表,所以它有两个非常重要的性质:双向链表双向双向意味着----给定一个元素,我们能够知道后一个元素和前一个元素。而这在单项链表里是不可能实现的,因为单向链表只维护了单个方向的元素信息。这种具体实现决定了,list的迭代器是双向迭代器(Bidirectional Iterator)。链表优点链表, 即 链?表。 它暗示了链接的实质,也就是说,链表中的...
<< 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 >>