Structs

virtual memory(4)

。_饼干妹妹 提交于 2021-02-14 09:33:42
Linux organizes the virtual memory as a collection of areas (also called segments ). An area is a contiguous chunk of existing (allocated) virtual memory whose pages are related in some way. Figure 9.27 highlights the kernel data structures that keep track of the virtual memory areas in a process. The kernel maintains a distinct task structure (task_ struct in the source code) for each process in the system. The elements of the task structure either contain or point to all of the information that the kernel needs to run the process (e.g., the PID , pointer to the user stack, name of the

java怎样将一组对象传入Oracle存储过程

故事扮演 提交于 2021-02-13 21:51:14
注:本文来源 《 java怎样将一组对象传入Oracle存储过程 》 java怎样将一组对象传入Oracle存储过程 java怎样将一组对象传入Oracle存储过程。须要注意的是jar包是有要求的,假设使用不当会导致仅仅有数字能传过去,字符串传只是去。 假设是Oracle11g则须要选用例如以下的jar包,F:\app\Administrator\product\11.2.0\dbhome_1\jlib\orai18n.jar、D:\program\weblogic\oracle_common\modules\oracle.jdbc_11.2.0\ojdbc6.jar 1:存储过程 1 CREATE OR REPLACE TYPE TEST_OBJECT AS OBJECT 2 ( 3 id number, 4 name varchar 2(32) 5 ); 6 CREATE OR REPLACE TYPE TABLES_ARRAY AS VARRAY(100) OF TEST_OBJECT; 7 drop table test purge; 8 create table test 9 ( 10 id number, 11 name varchar 2(32) 12 ); 13 create or replace procedure t_list_to_p(arr_t in

[译]C# 7系列,Part 2: Async Main 异步Main方法

对着背影说爱祢 提交于 2021-02-05 02:47:07
原文: https://blogs.msdn.microsoft.com/mazhou/2017/05/30/c-7-series-part-2-async-main/ 你大概知道,C#语言可以构建两种程序。 一种是带有入口点(entrypoint)的程序,这样操作系统就可以加载程序并从入口点执行; 另一个是没有入口点的程序。 操作系统不能直接执行程序,程序可以被其他有入口点的程序引用,这样就可以执行其中的代码。 必须有入口点的应用程序类型有:Windows Forms应用程序、UWP应用程序、控制台应用程序、WPF应用程序、ASP.NET 和ASP. NET Core应用程序和Xamarian App。 不需要入口点的应用程序类型有:类库(/t:lib)、模块(/t:module)。 Main方法 像其他语言一样,C#程序从Main方法开始。 有四个重载被认为是Main方法的有效签名。 public static void Main(); public static int Main(); public static void Main( string [] args); public static int Main( string [] args); C#的入口点方法必须是静态的,方法名必须是Main,这个方法的返回类型可以是void或者int,它可以有一个字符串数组的参数

[译]C# 7系列,Part 4: Discards 弃元

允我心安 提交于 2021-02-02 03:45:15
原文: https://blogs.msdn.microsoft.com/mazhou/2017/06/27/c-7-series-part-4-discards/ 有时我们想要忽略一个方法返回的值,特别是那些out参数,一个典型的例子是检查一个字符串是否可以解析成另一种类型: bool parsedValue; if ( bool .TryParse( " TRUE " , out parsedValue)) { /* 其他代码 */ } 这里我们要忽略parsedValue。 我们还希望使这个变量不可访问,以便开发人员不能引用它。 C# 7.0有一个叫做discards(译注:官方翻译:弃元)的新特性,可以在这个场景中用来实现我们的目标。 弃元 弃元是可以赋值但不能从中读取的局部变量。 也就是说,它们是“只写”的局部变量。 它们没有名称,而是用_(下划线)表示。_是上下文关键字,与var非常相似,并且_不能被读取(即不能出现在赋值的右侧)。 如果我们将弃元应用到上面的代码,它将看起来像这样: if ( bool .TryParse( " TRUE " , out bool _)) { /* 其他代码 */ } 因为_是不可读的,所以它不会出现在IDE的智能感知中,也不会编译代码。 弃元适用的场景 带有out修饰符的声明表达式,例如:bool. TryParse(“字符串”

.NET面试题系列(十八)常用关键字

会有一股神秘感。 提交于 2021-01-30 10:15:31
序言 const 和 readonly 关键字 private protected public internal的区别 out ref out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 普通参数是“值类型传递拷贝,引用类型传递引用”,但是都不能在函数内部修改外部变量的指向,这时候要用ref或者out(相当于把变量都传进去了),他们的作用不同:ref的作用“方法内部修改外部变量的引用”;out的作用“方法内部给外部变量初始化,相当于一个函数多个返回值”。 1、使用ref型参数时,传入的参数必须先被初始化,方法中可以不赋值。对out而言,必须在方法中对其完成初始化,方法外部不用初始化,初始化也没用。 2、使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字。以满足匹配。 3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 值类型和引用类型 class 和 struct 的区别 class 是引用类型存在堆上,structs是值类型存在栈上。 Dispose()、Close()、Finalize()的区别详解 其实不管是Dispose,Close,Finalize方法﹐最终应该都是执行相同的代码 区别﹕ Finalize方法﹕只能由微软调用

Why are C# structs immutable?

丶灬走出姿态 提交于 2020-12-25 03:24:43
Compiler Error CS1612 Cannot modify the return value of 'expression' because it is not a variable class Transform { public Point p { get ; set ; } public Point p2; public void ShowV() { Console.WriteLine(p.X + " ... " + p.Y); } } [Test] public void TestChuck() { Transform t = new Transform(); t.p.X = 1 ; t.p2.X = 2 ; t.ShowV(); Console.Read(); } t.p = new Point(); 这个可以,set可以工作。 但是get出来的是value Why are C# structs immutable? 问题 I was just curious to know why structs, strings etc are immutable? What is the reason for making them immutable and rest of the objects as mutable. What are the things

以太坊开发去中心化投票DApp与智能合约实例

时间秒杀一切 提交于 2020-12-13 19:38:26
在整个加密货币市场的市值超过7000亿美元之后,加密货币市场在过去几个月太疯狂了,但这只是一个开始。随着区块链系统的不断发展和扩展,进入这一新领域并利用这项技术的一个好方法是使用去中心化应用程序,也称为dApps。 CryptoKitties 以其使以太坊区块链拥挤而闻名,是dApp的一个很好的例子,它将可养殖和可收藏的概念与区块链相结合。这个耸人听闻的游戏只是一个创造性的例子,几乎有无限的机会。 虽然看似非常复杂,但已经开发出某些框架和工具来抽象你与区块链和智能合约的交互。在这篇博文中,我将通过一种方式在以太坊上创建一个去中心化的投票应用程序。我将简要介绍以太坊,但你可能应该对它有所了解,以便充分利用本指南。另外,我希望你知道Javascript。 为什么要开发去中心化投票应用? 从本质上讲,利用区块链技术的去中心化应用程序允许你在没有可信赖的第三方的情况下执行与今天相同的操作(如转移资金)。最好的dApp具有特定的真实世界的用例,以便利用区块链的独特特征。 从本质上讲,区块链是一个共享的,可编程的,加密安全的,可信赖的分类账本,没有任何一个用户可以控制,任何人都可以查询。- Klaus Schwab 即使投票应用对大家来说可能不是一个伟大的应用程序,但是我选择使用它作为本指南,这是因为区块链解决的主要问题:透明度,安全性,可访问性,可信任,是困扰当前民主选举的主要问题。

颠覆了我对Spring的认知-阿里P9架构师推荐的Spring领域巅峰之作

陌路散爱 提交于 2020-11-21 04:18:09
写在前面 你第一次接触spring框架是在什么时候?相信很多人和我一样,第一次了解spring都不是做项目的时候用到,而是在网上看到或者是听到过一个叫做spring的框架,这个框架号称完爆之前的structs和structs2,吸引了不少人的注意。 今天给大家分享一份阿里P9架构师推荐的Spring领域巅峰之作 《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》 ,我读完这本书之后彻底颠覆了我对Spring的认知。 本书从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的出色架构和设计思想,还能从Spring优雅的实现源码中一窥Java语言的精髓。 适读人群: 无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从本书中受益。 转发+关注, 即可获得《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》电子版的免费领取方式 内容结构 本书主要内容分为三个部分,分别阐述了Spring的核心、组件和应用三个方面。在展开这三个部分的内容之前,第1章对Spring的项目情况和整体架构进行了简要的介绍,这一章就像一个热身活动,为本书的主要内容做铺垫,如果您已经很熟悉Spring的使用,这一章可以自行跳过

[译]C# 7系列,Part 6: Read-only structs 只读结构

时光总嘲笑我的痴心妄想 提交于 2020-11-14 01:27:31
原文: https://blogs.msdn.microsoft.com/mazhou/2017/11/21/c-7-series-part-6-read-only-structs/ 背景 在.NET世界中,有两种基本类型:引用类型和值类型。简单地说 ,引用类型是可以继承/扩展的类,当传递引用类型对象时,传递的是一个“指针”; 值类型是不能继承/扩展的结构,当传递值类型对象时,传递的是一个“副本”。 C#中的struct是一个值类型,它“内部继承”自System.ValueType。 (我说的是结构之间没有继承。) 当在参数中使用struct时,会生成struct的副本,使用struct可能是高效的,因为它减少了堆对象分配的时间。 在许多场景中,开发人员使用结构作为传递值的有效方法,例如方法的返回对象,或者跨应用程序使用的基本数据结构。 只读结构 只读结构是其公共成员为只读的结构,就好像“this”变量一样。 看一下下面的声明: public struct S { public int Age { get ; set ; } public string Name { get ; set ; } public S( int age, string name) { this .Age = age; this .Name = name; } public S(S other) {

在Docker中自定义Jenkins镜像

三世轮回 提交于 2020-11-06 09:35:16
一. 构建Jenkins slave. 1. 构建镜像需要三个步骤: (1) 创建Dockerfile (2) 构建镜像 (3)在master上改变agent的配置 2. 以下是创建一个服务Python项目的jenkins slave. 为了简单起见,该实验用的evarga/jenkins-slave镜像为基础。 (1)创建Dockerfile文件 [root@c720120 docker]# cat Dockerfile FROM evarga/jenkins-slave RUN apt-get update && \ apt-get install -y python (2)构建镜像,执行以下命令 [root@c720120 docker]# docker build -t jenkins-slave-python . (3)配置master. 在setting Docker agent章节中,把evarga/jenkins-slave 替换为jenkins-slave-python. 二. 构建Jenkins master. 1. 案例1: 创建jenkins master镜像,并已经安装docker-plugin和设置同时执行数量设置为5. 需要以下步骤: (1)在config.xml中创建Groovy脚本和设置执行数量为5. (2