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

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

首页 / 操作系统 / Linux

双重检查锁定和延迟初始化

双重检查锁定和延迟初始化

双重检查锁定的由来在Java程序中,有时需要推迟一些高开销的对象的初始化操作,并且只有在真正使用到这个对象的时候,才进行初始化,此时,就需要延迟初始化技术。延迟初始化的正确实现是需要一些技巧的,否则容易出现问题,下面一一介绍。方案1public class UnsafeLazyInit{private static Instance instance;public static Instance getInstance(){if (instance == ...
使用RabbitMQ的RPC

使用RabbitMQ的RPC

笔者不才,根据小弟的经验觉得使用rabbitMQ进行RPC调研不太妥当,需要他能够实现跨语言,但是对于整体来说使用消息队列服务进行RPC调用,通过RabbitMQ的事务来确定消息已经成功处理完毕,然后通过消息队列服务的reply队列返回处理结果。总觉得差点什么,或者你跟我一样发现了一些问题。第一如何处理分布式事务,这个的确有点费解,这个后面在spring和JPA的时候再去说吧。第二个问题也是我还没有弄懂的一个问题,就是如何做到多线程并发处理。为什么我会提出...
Next.js提供了基于React的简单通用JavaScript框架

Next.js提供了基于React的简单通用JavaScript框架

新的通用JavaScript框架Next.js目前已经开源了,它为基于React和服务器的Web应用提供了一个新的可选方案。来自Zeit的团队在React的基础和组件模型上构建了Next.js,同时还提供了一个关键扩展:通过使用名为getInitialProps()的组件生命周期钩子方法,框架能够在服务器上进行初始渲染,如果需要的话,还可以在客户端继续进行渲染。不过这个高级特性是一个很小却功能强大的框架所额外提供的。按照Next.js的最小功能集,它提供了...
Java基础之Calendar类

Java基础之Calendar类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。与其他语言环境敏感一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Ca...
Ajax的概述与实现过程

Ajax的概述与实现过程

一、ajax概述1、Ajax是Asynchronous([?"s??kr?n?s) JavaScript XML的简写,不是一门新技术,而是对现有技术的综合利用。这一技术能够向服务器请求额外数据而无需刷新页面,带来了更好的用户体验2、Ajax技术的核心是XMLHttpRequest对象(简称XHR),这是由微软首先引入的一个特性。在XHR出现之前,Ajax式的通信必须借助一些hack手段来实现,大多数是使用隐藏的框架或内嵌框架。3、XHR为向服务器发送请求...
网络传输协议概述

网络传输协议概述

概述:指服务器和客户端间进行通信时的约束和规范,客户端与服务端的数据交互并不是杂乱无章的,需要遵照(基于)一定的规范进行常见的协议:a) HTTP、HTTPS 超文本传输协议b) FTP 文件传输协议c) SMTP 简单邮件传输协议本文主要介绍http超文本传输协议。1、HTTP协议即超文本传输协议,网站是基于HTTP协议的,例如网站的图片、CSS、JS等都是基于HTTP协议进行传输的。HTTP协议是由从客户机到服务器的请求(Request)和从服务器到客...
JavaScript之继承(原型链)

JavaScript之继承(原型链)

我们知道继承是oo语言中不可缺少的一部分,对于JavaScript也是如此。一般的继承有两种方式:其一,接口继承,只继承方法的签名;其二,实现继承,继承实际的方法。JavaScript不支持签名,因此只有实现继承。其中实现继承主要是依赖于原型链的。下面我将以原型链为重点说说继承的几种主要的方式:原型链继承借用构造函数继承组合继承(重点)第一部分:原型链继承 A 要说原型链继承,不得不首先介绍一下原型链的概念。 想象一下,如果使原型对象等于另一个对象的...
深入理解JavaScript中创建对象模式的演变(原型)

深入理解JavaScript中创建对象模式的演变(原型)

创建对象的模式多种多样,但是各种模式又有怎样的利弊呢?有没有一种最为完美的模式呢?下面我将就以下几个方面来分析创建对象的几种模式:Object构造函数和对象字面量方法工厂模式自定义构造函数模式原型模式组合使用自定义构造函数模式和原型模式动态原型模式、寄生构造函数模式、稳妥构造函数模式第一部分:Object构造函数和对象字面量方法 我之前在博文《JavaScript中对象字面量的理解 http://www.linuxidc.com/Linux/2016-1...
HTML中<meta>标签如何正确使用

HTML中&lt;meta&gt;标签如何正确使用

如果我们在浏览器中按下F12或者Ctrl+shift+J,便可以打开开发者工具,在element中即可看到<head>元素中有不少<meta>元素。对于网页而言,<meta>元素是必不可少的。我们在创建一个html5文档时,就会发现类似于<meta charset="UTF-8">这样的标签,来规定解析文档的字符类型。那么,它还有哪些作用呢?下面,我将一探究竟!我会通过下面几个部分来讲解,如果你希望直接看后面...
JavaScript函数之美

JavaScript函数之美

这篇文章,我将就以下几个方面来认识JavaScript中的函数。函数为什么是对象,如何定义函数?如何理解函数可以作为值被传递函数的内部对象、方法以及属性第一部分:函数为什么是对象,如何定义函数 JavaScript中最有意思的恐怕是函数了,因为和其他语言不同,在JavaScript中,每个函数都是Function类型的实例,而我们知道:Object是一个基础类型,其他所有类型都是从Object继承了基本的行为。也就是说Function也是从Object引...
深入理解JavaScript中的属性和特性

深入理解JavaScript中的属性和特性

JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性。 主要内容如下:理解JavaScript中理解对象的本质、理解对象与类的关系、对象与引用类型的关系对象属性如何进行分类属性中特性的理解第一部分:理解JavaScript中理解对象的本质、理解对象与类的关系、对象与引用类型的关系 对象的本质:ECMA-262把对象定义为:无序属性的集合,其属性可以包含基本值、对象或者函数。即对象是一...
Node.js框架对比:Express/Koa/Hapi

Node.js框架对比:Express/Koa/Hapi

1、介绍 直至今日,Express.js仍然是最为流行的Node.js Web应用程序框架。它似乎已经逐渐成为大多数Node.js Web应用程序的基础依赖框架,包括很多流行的框架,比如Sail.js就是以Express.js为基础搭建的。然而现在我们有了更多“类sinatra”(注:sinatra是一款Ruby框架,代码非常简洁,号称开发一个博客项目只需要100行代码)似的框架可以选择。也就是接下来我们将分别介绍的Koa和Hap...
Python迭代器实现斐波拉契求值

Python迭代器实现斐波拉契求值

斐波纳契数列以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。这个数列从第2项开始,每一项都等于前两项之和,而且当n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618。 用dir(list),dir(tuple),dir(file),dir(dict)来查看不同类型对象的属性,会发现它们都有一个名为__iter__的特殊方法,对象有它,就能通过该方法返回迭代器,所谓的迭代...
进程和线程、协程的区别

进程和线程、协程的区别

现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来。python中也有协程库,tornado中也用了gevent封装好的协程。本文主要介绍进程、线程和协程三者之间的区别。一、概念 1、进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等...
正则表达式基础语法摘要

正则表达式基础语法摘要

什么是正则表达式呢,先来看一下百度百科中的解释:正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。简单来说,正则表达式是一种特定的模式,可以用来对文本进行匹配、替换或删除等操作。正则表达式本身与编程语言无关,是一种强大的文本处理工具。基础概念正则表达式由两种字符构成:元字符和普通文本字符。其中,元字符 即...
C语言之从内存角度理解不同类型的变量

C语言之从内存角度理解不同类型的变量

我们都知道在C语言中不同类型的变量在内存中的存放位置不同的,从内存角度上讲,不同内存块中存放的代码或者变量其属性(主要是作用域、生命周期、链接属性)是不同的。首先我们介绍一下作用域、生命周期已经链接属性的概念1:作用域作用域也就是指变量其作用的范围(1)局部变量为代码块作用域(也就是说局部变量的作用范围是{ })(2)函数和全局变量是文件作用域,进一步讲其作用范围就是函数和全局变量定义或者声明后的部分。2:生命周期生命周期也就是变量的产生时间和消亡时间(1...
C语言之offset_of宏和container_of宏

C语言之offset_of宏和container_of宏

通过结构体整体变量来访问其中各个元素,本质上是通过指针方式来访问的,形式上是通过.的方式来访问的(这时候其实是编译器帮我们自动计算了偏移量)。1:offset_of宏作用:计算结构体中某个元素和结构体首地址的偏移量(其实质是通过编译器来帮我们计算)。定义:#define offsetof(TYPE, MEMBER) ((int) &((TYPE *)0)->MEMBER)参数分析:TYPE是结构体类型,MEMBER是结构体中一个元素的元素名返...
C语言之main函数传参

C语言之main函数传参

1:为什么需要给main函数传参首先要明白一点,给mian函数传参不是必须的,但是有时候我们需要通过给main函数不同的参数来得到的不同的结果,比如我们希望main函数中某个变量的值为0时执行子函数A,该变量值为1时执行子函数B,那么这个时候就可以通过给main函数传参来实现,mian函数传参格式如下:int main(int argc , char *argv[])int main(int argc , char **argv)参数解释:argc:int...
C语言之存储类的相关的关键字

C语言之存储类的相关的关键字

不同的数据在内存中的存储位置是不同的,总体来说内存中存储数据的地方主要有四部分:栈、堆、数据段、bss段,这些地方分别存放着不同的数据,比如栈一般用来存储局部变量,堆内存需要程序员字自己申请以及释放,主要用来存放比较大的数据;数据段主要用来存放显示初始化的全局变量和static关键字修饰的静态局部变量;bss段一般用来存放未显式初始化的全局变量或显式初始化为0的全局变量(C语言中,默认全局变量初始化为0)。C语言还提供了一些关键字来修饰变量,使其附有其他的...
<< 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 >>