C#中String的数据类型以及使用new时的对象分配情况
2013-07-16 22:59
369 查看
1 数据类型
数据类型分为两类,值类型和引用类型。内存分为栈空间和堆空间。 栈空间存放值类型数据和堆空间的引用地址,堆空间则存放引用类型的数据。 string 型是特殊的引用类型,所以这里创建了一个string型的对象,在名为str的栈空间中存放了真正存放“abc”的堆空间地址。
2 String s = new String("abc");为什么创建了两个字符串对象?
abc 是字符串的常量 出现“abc” 就在内存中创建了这个字符串 把它用new关键字给了s时 等于是创建一个新的对象s 所以是两个对象 如果你接着写 String a=new String("abc"); a就是第三个对象 字符串常量"abc"会长存与内存 直到程序结束3 String 类申请字符串对象时能不能使用new?
可以new,String a=new String("hello");不过和String a = "hello";内存中有区别, String a = "hello" 如果之前有String对象是hello的值的话那a直接就指向之前的那个对象了,不再重新new一个对象了 String a = new String("hello");无论以前有没有都重新new一个新的
是间接自动使用new 创建的 这种写法是 根据习惯而专门写的一种自动创建对象并赋值的写法
相关文章推荐
- 自动拆箱&自动装箱以及String 和基本数据类型封装类生成的对象是否相等
- 创建表空间以及用户,授予权限,查看表空间名称及大小,物理文件的名称及大小,数据库的创建日期和归档方式,数据库的版本,数据库库对象,表空间的使用情况,表空间读写
- String对象内存分配和基本数据类型的默认值与初始化相关问题
- 对象赋值为null时 内存分配情况,以及什么时候使用效率高
- java中创建String类型对象的两种方式以及在使用equals()和“==”两种方法时的区别
- 【C#】解决进行反序列化时出错:。InnerException 消息是“反序列化对象 属于类型 System.String 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- "int i=1" "int i=new int() "和“String str = "a";” “String str = new String("a")”区别以及c#值类型和引用类型
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
- c#疑难(二)之Access数据库日期数据类型的使用方法和其日期函数简介
- 使用反射在泛型为Integer的ArrayList中添加String类型的数据
- 二十一、标准库类型string的使用、string类介绍、string对象的构造和初始化、string常用成员函数
- json数据解析与JAVA对象转换以及在JQUERY中的使用
- java基本数据类型,String、Integer等类型,Class三种对象引用的箭头,即箭头是怎么指的?
- C# 使用access,报错:标准表达式中数据类型不匹配
- java使用BeanUtils封装file类型表单数据到一个对象中
- c++中优化内存分配:new/delete操作符;allocator类对象的使用;operator new/operator delete函数及定位new表达式
- 使用 hibernate 存取大对象数据类型(clob和blob)
- C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。
- ftl数据类型转换以及list遍历的使用