读书笔记-String】的更多相关文章

[String]就是对char[]数组进行封装的对象,由三部分组成: 1, char数组:它是String对象所表示的字符串的超集: 2, 3, offset和count,表示了String对象表示的字符串在char数组中的起始段: String是特定设计的,包含以下三个特点: 1, 不变性: 不变模式immutable,节省了同步和锁等待的消耗: 2, 针对[常量池]的优化: 变量 内存空间 常量池 String str1 = “abc” ———————> String str2 = “abc…
1 string与stringbuilder 并不是stringbuilder任何时候都在性能上占优势,在少量(大约个位数)的字符串时,并不比普通string操作快. string慢的原因不是string.conact(),而是string大量操作时,产生新的对象以及GC回收对象而造成的性能低下. stringbuilder使用前,最好估算一下大约的长度,否则默认16.每次超过长度后将自动翻倍增长. string.concat本质速度比stringbuider的append快,因为本质都是增加字…
前言 上次在公司开会时有同事分享windebug的知识, 拿的是string字符串Concat拼接 然后用while(true){}死循环的Demo来讲解.其中有提及string操作大量字符串效率低下的问题, 刚好自己之前也看过类似的问题, 于是便拿出来记录一下.本文内容: 参数传递问题剖析, string与stringbuilder详解 1,参数传递问题剖析 对于C#中的参数传递,根据参数的类型可以分为四类: 值类型参数的按值传递 引用类型参数的按值传递 值类型参数的按引用传递 引用类型参数的…
汉=BABA(内码)=-A0A0=2626(区位码)字=D7D6(内码)=-A0A0=5554(区位码) 各种编码查询表:http://bm.kdd.cc/ “啊”字是GB2312之中的第一个汉字,会以两个字节,0xB0(第一个字节)0xA1(第二个字节)储存.难=C4D1=50385汉=BABA=47802字=D7D6=55254中=D6D0=54992文=CEC4=52932国=B9FA=47610华=BBAA=48042夏=CFC4=53188吴=CEE2=52962A=65€=128À=…
汉=BABA(内码)=-A0A0=2626(区位码)字=D7D6(内码)=-A0A0=5554(区位码) 各种编码查询表:http://bm.kdd.cc/ 汉(记住它,以后碰到内存里的数值,就会有敏感性了,会方便测试)utf8 = E6 B1 89unicode = 6C 49 ,在Delphi2010的dfm里存储的是它的十进制 27721GBK = BA BA 吴utf8 = E5 90 B4unicode = 54 34 ,在Delphi的dfm里存储的是它的十进制 21556GBK =…
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Library,任务并行库)和PLINQ(Parallel LINQ,并行LINQ). 18.1 独立线程的运行和控制 通过 System.Threading.Tasks.Task 类在托管代码中公开各种API,该类代表的是一个异步操作.然而,一个 Task 并不直接映射到一个非托管线程.相反, Tas…
<C#高级编程>读书笔记 C#类型的取值范围 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号的整数 -128~127(−27−27~27−127−1) short System.Int16 16位有符号的整数 -32 768~32 767(−215−215~215−1215−1) int System.Int32 32位有符号的整数 -2 147 483 648~2 147 483 647(−231−231~231−1231−1) long System.Int…
js读书笔记 基本类型的基本函数总结 1. Boolean() 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 ""(空字符串) Number 任何非零数值(包括无穷大) 0和NaN Object 任何对象 null Undefined n/a undefined 2. Number():可以用于任何数据类型 数据类型 返回值 true or false 1和0 数字值 简单传入和返回 null 0 undefin…
C#中表示不变的量(常量)的两种形式:const 和readonly const 是静态常量 readonly 是动态常量 严格的来讲:const 应该称为常量 而readonly 则应称为只读变量.为什么这么说呢,继续往下看. 使用上的不一样 const 常量在声明时必须初始化 readonly.static readonly 在声明时可以不初始化 readonly 声明的常量通过以下两种方式进行初始化 声明时初始化,构造函数初始化(非静态构造函数) static readonly 声明的常量…
因为偶然的机会,在图书馆看到<深入理解C++ 11:C++11新特性解析和应用>这本书,大致扫下,受益匪浅,就果断借出来,对于其中的部分内容进行详读并亲自编程测试相关代码,也就有了整理写出这篇读书笔记的基础.C++作为踏入编程的最初语言,一直充满感情,而C++11作为新标准虽然推出一段时间了,却因为总总原因直到现在才去开始真正了解,不过一句话回荡在脑中:当你认为为时已晚的时候,恰恰是最早的时候!从C++98到C++11, C++11标准经历了10几年的沉淀,以全新的姿态迎接新的挑战,长话短说,…
TJI读书笔记17-字符串 不可变的String 重载”+”和StringBuilder toString()方法的一个坑 String上的操作 格式化输出 Formatter类 字符串操作可能是计算机程序设计中最常见的行为之一. 而我们常见的字符串类型有String类,StringBuffer类和StringBuilder类. 其中,String类型代表的是一个不可变的字符串类型,而StringBuffer是一个线程安全的可变字符串序列. StringBuilder类是一个可变的字符串序列,但…
TJI读书笔记16-异常处理 概念 基本异常情形 异常的捕获 自定义异常 异常说明 捕获所有异常 栈轨迹 重新抛出异常 Java标准异常 使用finally 异常的限制 构造器 异常的匹配 其他乱七八糟 概念 在早期没有专门的异常处理机制的时候,比如C语言,会通过一些约定俗成的东西来处理异常. 比如让程序返回某个特殊的值或者设置某个标记. 然后对返回值进行检查以判断程序是否出错. 还记得以前C语言的时候,return 0和return -1对异常处理的实现可以追溯到BASIC中的on error…
TJI读书笔记15-持有对象 总览 类型安全和泛型 Collection接口 添加元素 List 迭代器 LinkedList 栈 Set Map Queue Collection和Iterator Foreach与迭代器 总结 总览 It’s a fairly simple program that only has a fixed quantity of objects with known lifetimes. 埃大爷开篇说了那么一句话. 通常情况下,程序总在运行时才知道根据某些条件创建新…
  TJI读书笔记14-闭包与回调 闭包与回调 为什么要使用内部类?内部类继承自某个类或者实现某个接口,内部类的代码可以操作外嵌类的对象. 这不是使用内部类的理由. 那么为什么使用内部类呢? 我觉得如果使用其他办法可以更好的解决需求问题,那为什么要使用那么复杂的内部类呢? 内部类的好处之一,可以提供更强的封装性. 像前面一篇中的实例,很多时候,我们甚至都不需要知道内部类的具体类型就可以使用它了. 但是这个理由说服力度不够,更重要的是,内部类提供了一种更合理的多重继承的解决方案. 因为每个内部类都…
说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 这一部分我们重点讨论下Silverlight的网络与通讯功能.2.0版起,Silverlight支持多种模式的网络访问,从最原始的Silverlight控件支持的JavaScript方法,到Silverlight Framework内置的通过C#操作的各种类,几乎可以实现任意你想实现的功能.下面我们逐一讨论这些方法: 通过Silverlight控件的J…
说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 模板允许用任何东西完全替换一个元素的可视树,而不影响其他功能,WPF中每个控件的默认外观都定义于模板中(针对不同的Windows主题有不同的默认模板,详见皮肤与主题一节),这个特性对于开发自定义控件也是很重要.控件的功能代码与可视树代码是相分离的,基于这个出发点WPF中控件的大部分属性是控制功能的,而控制外观的属性尽可能的少,因为这个需要放到模板(包括…
本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.类型初窥:掀起你的盖头来 (1)C程序是一组函数和数据类型,C++程序是一组函数和类,而C#程序是一组类型声明: (2)类型是一种模板:模板本身不是数据结构,但它详细说明了由该模板构造的对象的特征: (3)C#提供了16种预定义类型:13种简单类型(数值类型:int,float,double,decimal等:非数值类型:bool,char),3种非简单类型(object,string,dynamic): 所有的预…
本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.委托初窥:一个拥有方法的对象 (1)本质:持有一个或多个方法的对象:委托和典型的对象不同,执行委托实际上是执行它所“持有”的方法.如果从C++的角度来理解委托,可以将其理解为一个类型安全的.面向对象的函数指针. (2)如何使用委托? ①声明委托类型(delegate关键字) ②使用该委托类型声明一个委托变量 ③为委托类型增加方法 ④调用委托执行方法 (3)委托的恒定性: 组合委托.为委托+=增加方法以及为委托-=移…
本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.接口那点事儿 (1)什么是接口? 一组函数成员而未实现的引用类型.只有类和结构能实现接口. (2)从IComparable接口看接口实例: 假设有如下一段代码,它使用Array类的一个静态方法Sort对一个未排序的int类型数组进行排序,并输出排序后的结果. using System; class Program { static void Main() { , , , , }; // Create an arra…
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.对象  (1)出生:系统首先会在内存中分配一定的存储空间,然后初始化其附加成员,调用构造函数执行初始化,这样一个对象实体就完成了出生过程. Person aPerson = ); (2)旅程:在某种程度上就是外界通过方法与对象交互,从而达到改变对象状态信息的过程.这也和人的生存之道暗合. aPerson.ChangeName("Edison Chou"); (3)插曲: 3.1 继承之…
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.单一职责原则 (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因 (2)常用模式:Facade模式.Proxy模式 (3)基本方法:Extract Interface 抽取接口.Extract Class 抽取类.Extract Method 抽取方法 (4)DEMO:数据库管理系统中根据不同权限进行CRUD操作(这里是使用Proxy模式重构后的代码) public interface IDB…
这是一篇很长的博客 终于把权威指南给买回来了,之前一直犹豫,第一:书太厚,怕买了不能坚持看完.第二:觉得太贵,最少100¥.现在实习也能发点工资了,给自己定了一个志愿:把一个月的工资用于买书.这么一想买本100¥的书也不是太大开销.好!买!为了坚持看完,我会把读书笔记发到博客上,督促自己,挑出知识点,弥补不足,也能加深自己的印象,一举n得,就这么定了. 开始reading: 1. js中的“ 假值” :false, undefined,null,0,-0,NaN,""(空字符串)  共…
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is interpreted. type命令:展示命令的类型. which which—Display which executable program will be executed. which命令:展示可执行命令的位置. 因为可执行命令有可能会有多个版本,所以有必要根据位置来判断究竟是哪个. which仅对可执行程序…
TJI读书笔记13-内部类 TJI读书笔记13-内部类 创建内部类 内部类和外部类的关系 .this和.new 内部类和向上转型 局部内部类 匿名内部类 匿名内部类的定义和初始化 使用匿名内部类来实现工厂模式 嵌套类 内部类的继承 覆盖内部类 局部内部类和匿名内部类的区别 我最恶心的两部分内容,一个叫lambda表达式,一个叫内部类. 智商有限,一直理解不了… 简单来说,将一个类的定义放在另一个类的内部就是内部类. 内部类的好处在于,将一些逻辑上相关的类组织在一起,并控制位于内部的类的可视性.内…
TJI读书笔记12-接口 抽象类和抽象方法 接口 完全解耦和策略模式 接口间的继承关系 工厂模式 乱七八糟不知道怎么归类的知识点 接口和抽象类为我们提供了更强又有力的接口和实现分离的方法. 抽象类和抽象方法 抽象类的目的是为了给子类提供一个通用接口,通过这样一个通用的接口,可以操纵一系列的子类. 也就是说,只需要通过相同的接口调用就可以操作不用的实现. 这也就是所谓的接口和实现的分离. 抽象类简单来说就是包含抽象方法的类. 那么,要了解抽象类就得先了解抽象方法. abstract void f(…
TJI读书笔记11-多态 再说说向上转型 多态的原理 构造器和多态 协变返回类型 使用继承进行设计 多态是数据抽象和继承之后的第三种基本特征. 一句话说,多态分离了做什么和怎么做(再次对埃大爷佩服的五体投地,简直精辟啊). 是从另外一个角度将接口和实现分离开来. 封装通过合并特征和行为来创建新的数据对象,通过私有化隐藏细节,把接口和实现分离开来. 多态则是消除类型之间的耦合关系. 继承是允许将对象视为自己本身的类型或者基类型来处理. 再说说向上转型 把某个对象的引用视为对其基类型的引用的做法被称…
TJI读书笔记10-复用类 组合语法 继承语法 代理 final关键字 final的数据 final的参数 final的方法 final的类 初始化和类的加载 乱七八糟不知道怎么归类的知识点 代码复用是java众多牛逼哄哄的功能之一(好像OOP语言都可以呢…),代码复用的理想状态是,使用类但是又不破坏现有代码. 当然住了复制粘贴以外还有其他的方法. 一个叫组合,一个叫继承. 组合语法 其实刚开始我非常不理解什么叫组合. 后来才知道,在一个类中置入一个对象的引用就可以了. 学术范儿就是这样,把一些…
TIJ读书笔记08-数组的初始化和可变参数形参 数组 数组的声明 数组的初始化和赋值 可变参数列表 数组 相同类型的,用一个标识符名称封装到一起的一个对象序列或者基本数据类型序列叫数组.(多么严谨的概念) 数组的声明 int[] a1和int a1[]都可以表示一个数组. 前者是java风格的,后者是C/C++风格的.但是java数组不允许指定数组的大小. 因为对于java来说,这个标识符就是一个引用. java觉得这玩意儿就是一个引用,指定一个引用的大小是件很傻的事情. 对于数组,初始化动作可…
TJI读书笔记07-初始化 成员初始化 构造方法初始化 初始化块 初始化的顺序 成员初始化 java尽量去保证每个变量在使用前都会得到初始化. 对于方法局部变量,java不会自动初始化他们,如果没有显式的初始化,编译器会报错. 对于类的数据成员,java会自动初始化成一个”空”“的值.简单来说,这个空的值对于基本数据类型就是,0,false,和空格. 对于引用类型就是null. (只是类的数据成员会隐式初始化,这个我之前还真没有太在意,一直以为java默认的初始化是对所有类型的变量都生效的. )…
TIJ读书笔记05-this关键字 概述 this的用法 static方法 概述 两个对象同时调用一个方法,那么jvm怎么知道是哪个方法调用的呢. 我们在书写的时候会写成a.fun(1) 或者b.fun(1)如果按照更容易理解的角度来看的话,或许可以写成: Banana.fun(a,1)这样就更符合OOP的”发送消息给对象”的原则了. 但是java帮助我们做了很多事情,在调用每个方法的时候,默认第一个传入的参数就是调用该方法的对象的引用. 让我们可以写成a.fun(1). 理解了函数调用的方法,…