C# lesson2
一、C#数据类型
1、值类型
包括数据相关(short、long、int 、double、float)、布尔(bool)、枚举
2、引用类型
Object 、对象、数组、字符串
二、存储方式
值类型
1、所有的值类型,都是存在栈里面;
2、值类型的赋值,都是值的拷贝;
引用类型
1、引用类型,具体的值是存在堆里面,栈里面存的是他的引用地址;
2、引用类型的赋值,是地址的拷贝;
3、对字符串做修改的时候,不是在堆里面直接修改它的值,而是重新再堆里面开辟新空间。
三、代码解读
命名空间: useing。。。。。。
访问修饰符: public。。。。
数据类型:如 int 返回一个整数
Person p1=new Person();
1、当实例化一个对象的时候,就会在堆里面,将类里面非静态的所有字段、方法声明。
2、当实例化一个对象的时候,类里面的对象不管是一个值类型还是一个引用类型,都是存在堆里面。
3、当实例化另外一个对象的时候,就会在堆里面找之前是否有过水花对象,如果有的话就会把里面的成员(字段)作为模板拷贝一份;
存储位置如下:

4、.net framework里面的GC(垃圾回收机制),会将内存里值为null或者长期不用的对象、变量回收;
内存里面有一个专门的区域叫静态区,专门存放静态数据:

四、装箱和拆箱
装箱:值类型穿转为引用类型;
int i=10;
Console.WriteLine(i.ToString());
拆箱:引用类型转化为值类型;
string s="";
Console.WriteLine(Convert.ToInt32(s));
注:在程序里面要尽可能的避免装箱和拆箱,提高程序性能;
五、运算(同javascript)
特别的:操作符:??
运算规则: a=b??c
意义:b等于null 则a=c 否则a=b
C# lesson2的更多相关文章
- 动手动脑(lesson2)
一·随机数生成问题 //信1605-3 20163683 蔡金阳 package lesson2; public class Suiji { private static final int N = ...
- React.js 小书 Lesson2 - 前端组件化(一):从一个简单的例子讲起
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson2 转载请注明出处,保留原文链接和作者信息. 很多课程一上来就给大家如何配置环境.怎么写 Re ...
- node lesson2
var express = require('express'); var utility = require('utility'); var app = express(); app.get('/' ...
- Lesson2 Thirteen equals one
Lesson2 Thirteen equals one equal ['i:kwəl] v. 等于 He equaled the world record. Nobody equals him i ...
- Lesson2.1:LinkedList、ConcurrentLinkedQueue、LinkedBlockingQueue对比分析
写这篇文章源于我经历过的一次生产事故,在某家公司的时候,有个服务会收集业务系统的日志,此服务的开发人员在给业务系统的sdk中就因为使用了LinkedList,又没有做并发控制,就造成了此服务经常不能正 ...
- lesson2:java阻塞队列的demo及源码分析
本文向大家展示了java阻塞队列的使用场景.源码分析及特定场景下的使用方式.java的阻塞队列是jdk1.5之后在并发包中提供的一组队列,主要的使用场景是在需要使用生产者消费者模式时,用户不必再通过多 ...
- (Lesson2)根据类名称和属性获得元素-JavaScript面向对象
描述:在编写选择器的时候遇到的一根问题,我需要实现Jquery的选择器功能,第一个根据ID获取Element非常简单,第二个根据类(class)去获取Element集合,这个相对复杂,而根据name和 ...
- CryptoZombies学习笔记——Lesson2
第二课是僵尸猎食,将把app变得更像一个游戏,添加多人模式,建立更多创造僵尸的方法. chapter1 依然是简介 chapter2:映射和地址 映射相当于一个索引,指向不同地址,不同地址存储的数据不 ...
- 专题2-通过按键玩中断\2440按键中断编程lesson2
1.程序优化 修改Makefile 把main.c里面的mmu代码复制到mmu.c并修改如下 main.c的修改 由于在bootloader当中一般不会使用MMU,所以 main.c 加入led.c文 ...
随机推荐
- POJ 1033 Defragment
根据http://hi.baidu.com/algorithm/item/d51b15f7a8ea1c0a84d278be这个开始练习ac,刚开始接触这道题时以为是道搜索题,读完之后深思了一下,感觉不 ...
- Android开发(22)--seekBar采用handler消息处理操作
本案例简单实现进度条可走,可拖拽的功能,下面请看源码: 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/ ...
- MySQL 笔记 —— 日期和时间函数
[TOC] 获取当前日期的函数和获取当前时间的函数 CURDATE()和CURRENT_DATE()函数获取当前日期:CURTIME()和CURRENT_TIME()函数获取当前时间. mysql&g ...
- C#中常用关键字的作用
***new关键字:1.在堆中开辟空间 2.在开辟的空间中创建对象 3.调用对象的构造函数***this关键字:1.代表当前类的对象 2.调用自己的构造函数 ***return:1.立即结束本次方法2 ...
- JavaScript的事件机制
JavaScript的事件机制 摘要 事件是将JavaScript脚本与网页联系在一起的主要方式,是JavaScript中最重要的主题之一,深入理解事件的工作机制以及它们对性能的影响至关重要.本文将详 ...
- Swift3.0服务端开发(四) MySQL数据库的连接与操作
本篇博客我们来聊聊MySQL数据库的连接与操作.如果你本地没有MySQL数据库的话,需要你先安装MySQL数据库.在Mac OS中使用brew包管理器进行MySQL的安装是及其方便的.安装MySQL的 ...
- 算法笔记_014:合并排序(Java)
1 问题描述 给定一组数据,使用合并排序得到这组数据的非降序排列. 2 解决方案 2.1 合并排序原理简介 引用自百度百科: 合并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Div ...
- 果园种植系统开发App,游戏+商业模式?
果园种植全返系统开发,英伦果园开发,微信果园种植系统开发,百果生态乐园开发,淘金农夫开发,农场果园种植游戏系统,果园种植APP系统开发,果园种植软件开发找陈牧150-1315-1740(微/电)开发者 ...
- 【LeetCode】29. Divide Two Integers
题意:不用乘除求余运算,计算除法,溢出返回INT_MAX. 首先考虑边界条件,什么条件下会产生溢出?只有一种情况,即返回值为INT_MAX+1的时候. 不用乘除求余怎么做? 一.利用减法. 耗时太长, ...
- __builtin_expect
今天在看内核代码中看到: #define likely(x) __builtin_expect(!!(x), 1)#define unlikely(x) __builtin_expect(!!(x), ...