变量

Serializable在C#中的作用.NET中的对象序列化

我与影子孤独终老i 提交于 2020-03-10 18:17:26
简介 序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。 在面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡。只要您对此过程有足够的控制能力,就可以使该过程在很大程度上自动进行。例如,简单的二进制序列化不能满足需要,或者,由于特定原因需要确定类中那些字段需要序列化。以下各部分将探讨 .NET 框架提供的可靠的序列化机制,并着重介绍使您可以根据需要自定义序列化过程的一些重要功能。 持久存储 我们经常需要将对象的字段值保存到磁盘中,并在以后检索此数据。尽管不使用序列化也能完成这项工作,但这种方法通常很繁琐而且容易出错,并且在需要跟踪对象的层次结构时,会变得越来越复杂。可以想象一下编写包含大量对象的大型业务应用程序的情形,程序员不得不为每一个对象编写代码,以便将字段和属性保存至磁盘以及从磁盘还原这些字段和属性。序列化提供了轻松实现这个目标的快捷方法。 公共语言运行时( CLR )管理对象在内存中的分布, .NET 框架则通过使用反射提供自动的序列化机制。对象序列化后,类的名称、程序集以及类实例的所有数据成员均被写入存储媒体中。对象通常用成员变量来存储对其他实例的引用。类序列化后

五、JavaScript数据类型(一)

时间秒杀一切 提交于 2020-03-10 18:05:46
1.1 typeof操作符 ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number 和 String。 1种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的。 typeof:检测给定变量的数据类型,对一个值使用 typeof 操作符可能返回下列某个 字符串 : "undefined"——如果这个值未定义; "boolean"——如果这个值是布尔值;  "string"——如果这个值是字符串; "number"——如果这个值是数值; "object"——如果这个值是对象或 null;  "function"——如果这个值是函数。 1 var message = "some string"; 2 alert(typeof message); // "string" 3 alert(typeof(message)); // "string" 4 alert(typeof 95); // "number" 1.2 Udefined类型 Undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变量但未对其加以初始化时, 这个变量的值就是 undefined,例如: var message; alert(message == undefined); /

js变量

元气小坏坏 提交于 2020-03-10 18:02:45
操作的数据都是在内存中进行 js中存储数据使用变量的方式(名字,值----->数据) js中声明变量都用var------>存储数据,数据都有对应的数据类型 js中字符串类型的值都用双引号括起来 js中每一行代码的结束都应该有分号; 变量-----> 存储数据的 变量声明(有var,有变量名字,没有值) var x; 变量初始化(有var,有变量名字,有值) var x = 10; | = 的意义:赋值 变量的命名规范 变量的名字要有意义 变量名一般以字母,$符号,_ 下划线开头,中间或者后面可以有$符号,字母,数字 变量名一般都是小写的 变量名如果有多个单词,第一个单词的首字母是小写的,后面所有单词的首字母都是大写的,这种命名方式称为驼峰命名法 变量名不能已关键字,保留字来命名 变量的名字不能重复 变量交换内容 方法① var num1 = 10; var num2 = 20; //设置一个空的容器 var temp; temp = num1; num1 = num2; num2 = temp; console.log(num1,num2); 方法② var num1 = 10; var num2 = 20; num1 = num2 + num1; //30 num2 = num1 - num2; //10 num1 = num1 - num2; console.log(num1

Anaconda安装过程出现failed to create menu.解决办法

天涯浪子 提交于 2020-03-10 16:49:52
感谢前辈: 参考博客 写的稍微有点不详细,这里加一加。 安装前首先打开系统环境变量设置: 1、右键我的电脑,选择属性 2、选择高级系统设置: 3、选择环境变量: 4、可以看到上面是用户变量,下面是系统变量: 5、选中系统变量的path,点击编辑: 6、点击编辑文本: 7、将path的值全剪切下来,放到桌面的创建一个txt中: 这里如果变量值空了,无法点确定按键,就留一个在里面。 然后点确定,然后在下图中选中剩下的一个变量,点击右侧的删除: 8、点击确定保存,然后选中系统变量的path: 9、进入编辑文本: 在变量值一栏结尾添分号 ‘;’如果有了可以不加,注意要是英文的分号 ,然后把刚才在txt中存的值复制进去。复制完如下: 然后全点击确定保存刚才的设置即可。 然后重新安装Anaconda。 来源: CSDN 作者: 只会git的程序员 链接: https://blog.csdn.net/qq_37668436/article/details/104773971

你必须要知道的锁原理、锁优化、CAS、AQS

孤者浪人 提交于 2020-03-10 16:23:18
1、为什么要用锁? 锁-是为了解决并发操作引起的脏读、数据不一致的问题。 2、锁实现的基本原理 2.1、volatile Java编程语言允许线程访问共享变量, 为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁要更加方便。 volatile在多处理器开发中保证了共享变量的“ 可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 结论:如果volatile变量修饰符使用恰当的话,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。 2.2、synchronized synchronized通过锁机制实现同步。 先来看下利用synchronized实现同步的基础:Java中的每一个对象都可以作为锁。 具体表现为以下3种形式。 对于普通同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前类的Class对象。 对于同步方法块,锁是Synchonized括号里配置的对象。 当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。 2.2.1 synchronized实现原理 synchronized是基于Monitor来实现同步的。 Monitor从两个方面来支持线程之间的同步: 互斥执行 协作 1、Java

androidSDK配置环境变量

旧巷老猫 提交于 2020-03-10 15:50:19
android的开发人员来说,首先要做的就是环境变量的配置。java是需要配置环境变量的。当然,安卓的环境变量需要我们配置adb的使用,将开发平台的两个工具包配置到环境变量里。 工具/原料 android SDK 方法/步骤 在我的电脑右键【属性】打开,点击【高级系统设置】如图。转到第二步。 点击【环境变量】。转第三步。 在系统变量里找到Path选中(图中蓝色那条),点击下面的【编辑】。转第四步。 在变量值里加入androidSDK中platform-tools和tools的目录路径,这里我的是E:\android-sdk_r20.0.3-windows\android-sdk-windows\platform-tools和E:\adt-bundle-windows-x86_64-20130729\sdk\tools。当然两个之间要加个分号“;”。 在windows运行符上运行adb 出现图你成功啦。 如果环境变量没有配置的话,真机测试就启动不成功,一直报adb联机失败 来源: https://www.cnblogs.com/qianzf/p/7351581.html

java 成员变量和局部变量

好久不见. 提交于 2020-03-10 13:58:51
作用范围:   成员变量作用于整个类中   局部变量作用于函数中,或者语句中 存储位置:   成员变量:堆内存中,因为对象的存在,才在内存中存在   局部变量:栈内存中 来源: https://www.cnblogs.com/hongxiao2020/p/12455051.html

跟高手学习LINUX笔记-19

空扰寡人 提交于 2020-03-10 13:19:11
第19节 shell基础 本节所讲内容: 19.1 shell 基本语法 终于在前面的章节把centos7基础介绍完成了,余下的几个章节都围绕这几个方面去介绍。 关于shell及脚本,通过工作中的实际应用总结以下几点,请大家斧正: 1、脚本很重要,特别是在linux自动化运维方面 2、脚本要多多练习,最少能读懂。建议是把别人脚本修改成自己的。 3、正则表达式一定要静下心来好好学学 4、三剑客“grep awk sed”一定要熟练掌握 19.1.1 什么是shell shell:跟它的英文单词的意思一样,是命令解释器,工作在用户与内核之间的命令解释翻译功能 计算机懂什么语言?二进制语言 人类懂什么语言?符号语言 在计算机与人类之间的沟通就需要一个翻译了,这个就是shell横空出现的原因了 通过前面的章节大家知道系统的灵魂是内核,如果每个用户都能去直接操作内核的话,我相信任何一个系统都如玻璃般脆 应用程序-->shell-->内核-->硬件 人类的命令-->键盘输入-->shell-->二进制命令-->内核 输入执行命令的过程 显示命令结果<--显示器显示<--shell<--二进制结果<--内核 输出命令结果的过程 19.1.2 有哪些shell [root@node-1 ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr

python基础

家住魔仙堡 提交于 2020-03-10 11:50:36
执行过程: 例:python3 C:\test.py 1.先启动python3.exe 2.把C:\test.py从硬盘读入内存 3.解释执行文件内容(识别python语法) 引用计数+垃圾回收机制(每个值都会占用一个内存空间) x='qqq' 'qqq'这个值的引用计数为1 y=x 'qqq'这个值的引用计数为2 del x 取消绑定,x!='qqq' 变量的三要素: 1.变量值:用来表示状态(用变量名取到变量值) print(x) 2.变量值的类型:表示不同状态的变量值 print(type(x)) 3.变量值的id: print(id(x)) 组合:print(x,type(x),id(x)) 状态: 数字类型: 1.整型:int x=10 等于 x=int(10) 2.浮点型:float x=20.22 等于 x=float(20.22) 字符串:str 在引号(单引,双引,三引)里定义的一堆字符 deng='male'等于 deng=str('male') info="i'm luoxiaoxu" keke=''' haha jiji gggg ''' 字符只能和字符之前进行+或者* info1='nihao' info2='hello' info3=info1+info2 print(info3) nihaohello print('nihao'*7)