C#中有两种类型的常量:编译期常量和运行时常量.二者有着截然不同的行为,使用不当将会带来性能上或正确性上的问题. 这两个问题最好都不要发生,不过若难以同时避免的话,那么一个略微慢一些但能保证正确的程序则要好过一个快速但不能正常工作的程序. 考虑到这些,你应该尽量使用运行时常量,而不是编译期常量. 虽然编译期常量略微快一些,但是却没有运行时常量那么灵活.应紧紧在那些性能异常敏感,且常量的值在各个版本之间绝对不会变化时,再使用编译期常量. 运行时常量使用readonly关键字声明,编译期常量则使用c…
C#有两种类型的常量:编译期常量和运行时常量.两者有截然不同的行为,使用不当的话,会造成性能问题,如果没法确定,则使用慢点,但能保证正确的运行时常量. 运行时常量使用readonly关键字声明,编译期常量则使用const关键字声明: //声明编译期常量 public const int Millennium = 2000; //声明运行时常量 public static readonly int ThisYear = 2017; 二者最重要的区别在于,readonly值是运行时解析的,而cons…
作为一个 Java 为主语言的程序员,我偶尔也需要 用 C/C++ 写程序,在使用时让我很烦恼的一件事情就是需要对 new 出来的对象进行 delete/free 操作,我老是担心忘了这件事情,从而导致内存泄漏或溢出.所以,使用Java让我感觉很爽.但理解 Java 的内存区域是很有必要的.对于 Java 的内存,我们大多数的时候都只是在说堆内存(Heap)和栈内存(Stack),但 Java 内存区域的划分实际上更细,了解它可以让我们进一步的去了解这门语言. 运行时数据区 以下为 Java 运…
一.什么是运行时序列化 序列化的作用就是将对象图(特定时间点的对象连接图)转换为字节流,这样这些对象图就可以在文件系统/网络进行传输. 二.序列化/反序列化快速入门 一般来说我们通过 FCL 提供的 BinaryFormatter 对象就可以将一个对象序列化为字节流进行存储,或者通过该 Formatter 将一个字节流反序列化为一个对象. FCL 的序列化与反序列化 序列化操作: public MemoryStream SerializeObj(object sourceObj) { var m…
ARM处理器共有7种运行模式,如下表: 处理器模式 描述 用户模式(User, usr) 正常程序执行的模式 快速中断模式(FIQ, fiq) 用于高速数据传输和通道处理 外部中断模式(IRQ, irq) 用于通常的中断处理 特权模式(Supervisor, sve) 供操作系统使用的一种保护模式 数据访问中止模式(Abort, abt) 用于虚拟存储及存储保护 未定义指令中止模式(Undefined, und) 用于支持用过软件仿真硬件的协处理器 系统模式(System, sys) 用于运行特…
1. Linux的环境变量. 全局环境变量的查看 printenv 一个结果示例 XDG_SESSION_ID=354TERM=xtermSHELL=/bin/bashSSH_CLIENT=10.24.11.245 1606 22SSH_TTY=/dev/pts/0USER=rootKUBECONFIG=/etc/kubernetes/admin.confLIBVIRT_DEFAULT_URI=qemu:///systemMAIL=/var/mail/rootPATH=/usr/local/sb…
<深入了解java虚拟机>高效并发读书笔记--Java内存模型,线程,线程安全 与锁优化 本文主要参考<深入了解java虚拟机>高效并发章节 关于锁升级,偏向锁,轻量级锁参考<Java并发编程的艺术> 关于线程安全和线程安全的程度参考了<Java并发编程实战> 图片参考https://www.processon.com/u/5dee0443e4b093b9f775065c#pc 一丶Java内存模型 1.概述 多任务处理已经是操作系统的必备技能,计算机被要求…
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 构造并发程序的方法 现代操作系统提供了 3 种基本的构造并发程序的方法: 进程:每个逻辑控制流都是一个进程,由内核调度和维护. I/O 多路复用 :在一个进程上下文中显式地调度他们自己的逻辑流.逻辑流被模型化为状态机. 线程:运行在单一进程上下文中的逻辑流,由内核进行调度.可以看作上面两种方式的混…
python高级编程读书笔记(一) python 高级编程读书笔记,记录一下基础和高级用法 python2和python3兼容处理 使用sys模块使程序python2和python3兼容 import sys ver=sys.version_info#(major=3, minor=6, micro=6) if ver<(3,0,0):# 3是版本号,0是此版本号,第二个0修订号.    import urllib2else:   import urllib  获取当前环境所用的python包…
转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔记":   关键词:c++windows 核心 编程 读书笔记   这篇笔记是我在读<windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和windows实际机制可能有出入,但应该是合理的.开头几章由于我…