泛型是什么? 泛型(generic)是C# 2.0和通用语言运行时(CLR)的一个新特性.泛型为.NET框架引入了类型参数(type parameters)的概念.类型参数使得设计类和方法时,不必确定一个或多个具体参数,其具体参数可延迟到客户代码中声明.实现. 为什么需要泛型? 在C#1中,我们的代码中存在大量的强制转换,特别是那些大量使用集合中,几乎每次使用foreach都要隐式的强制转换.只要将 object 作为参数类型或返回类型使用时,就可能涉及强制类型转换.比如下面的需求: 假如我们要…
1.1   垃圾收集器 垃圾收集器是内存回收的具体实现.以下讨论的收集器是基于JDK1.7Update14之后的HotSpot虚拟机.这个虚拟机包含的所有收集器有: 上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用.虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器.接下来笔者将逐一介绍这些收集器的特性.基本原理和使用场景,并重点分析CMS和G1这两款相对复杂的收集器,了解它们的部分运作细节. 直到现在为止还没有最好的收集器出现,更加没有万能的收…
书上关于GCTimeRatio的讲解有点难以理解,查看Oracle的文档后重新理解了下 -XX:GCTimeRatio 运行时间 / GC时间 当GCTimeRatio为19时,运行时间是GC时间的19倍,也就是GC时间不能超过 1 / (1 + 19) = 0.05 附上Oracle的文档原文 -XX:GCTimeRatio=nnn A hint to the virtual machine that it's desirable that not more than 1 / (1 + nnn…
if 选择结构: if(条件){       代码块  //条件成立后要执行的代码.可以是一条语句,也可以是一组语句 } 可以处理单一或组合条件的情况. if-else 选择结构: if(条件){       代码块1 }else{       代码块2 } 可以处理简单的条件分支情况. 多重if选择结构: if(条件1){   代码1 }else  if(条件2){   代码2 }else{   代码3 } 可以处理连续区间的条件分支情况. 嵌套if选择结构: if(条件1){        …
3.58 long decode2(long x, long y, long z) { int result = x * (y - z); if((y - z) & 1) result = ~result; return result; } 3.59 这个题考察的是2.3.4和2.3.5节的一个定理:w比特长度的两个数相乘,会产生一个2w长度的数,不管这两个数是无符号数还是补码表示的有符号数,把结果截取的低w比特都是相同的. 所以我们可以用无符号数乘法指令mulq实现有符号数乘法:先把数有符号扩…
1.概述 2.对象已死吗? 引用计数器 给对象添加一个引用计数器,每当有引用时,计数器加1,引用失效时,计数器减1:任何时刻计数器为0的对象就是不可能再被使用的. 若对象是循环引用,则无法处理.JVM不使用. 可达性分析算法 通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所经过的路径称为引用链(Reference Chain),当一个对象没有任何引用链相连时,表明该对象不可用. Java语言中,可作为 GC Roots的对象包括如下: 虚拟机栈(栈帧中的本地变…
[C++Primer]第五版[学习笔记]习题解答第三章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/10 第三章:字符串,向量和数组 练习3.2: #include<iostream> #include<string> using std::string; using std::cout; using std::cin; using std::endl; int main() { string line; //whi…
偏好是无法度量的. 相比其他的机器学习算法,推荐引擎的输出更直观,更容易理解. 接下来三章主要讲述Spark中主要的机器学习算法.其中一章围绕推荐引擎展开,主要介绍音乐推荐.在随后的章节中我们先介绍Spark和MLib的实际应用,接着介绍一些机器学习的基本思想. 3.1 数据集 用户和艺术家的关系是通过其他行动隐含提现出来的,例如播放歌曲或专辑,而不是通过显式的评分或者点赞得到的.这被称为隐式反馈数据.现在的家用电视点播也是这样,用户一般不会主动评分. 数据集在http://www-etud.i…
自己在写文章的同时,也是在学习,对于书中的语句很多其实没有太好的理解,读一本书,要消化!!!三章都是讲泛型的,最后写一下泛型的限制,对于本章学习的完结,one end,one begin. 看下面的代码 public class Teacher { public enum Flag { Chinese, English }; public string Name { get; set; } } public class ChineseTeacher : Teacher { Flag f = Fl…
第三章 Git使用入门 使用Git的目的是减少各种版本的Linux的压缩大小,提供源代码在Linux上进行编译. 在这一个章节中,其实就是关键步骤的操作,虽然Git与我们学习的android没有很大的联系,但是在开发环境中也是必不可少的.通过学习这个章节,学习到了安装,查看,提取Git的方法.下面将详细讲述. 一.安装Git 可能大多数Linux上已经安装了Git,如果没有可以用下面的命令. Ubuntu10.04版本以下的有-core与原来的区分, 必须的:apt-get install gi…