10 2012 档案
摘要:1、找零时刻(货币计算问题)
2、条件运算符
3、赋值运算符(复合赋值表达式)
4、String “+” 连接操作:畜牧场
阅读全文
摘要:1、实现单链表逆置
2、判断单链表是否有环
3、如果单链表有环,则找到环的入口点
4、判断两个单链表是否相交,如果相交,给出相交的第一个点(两个链表都不存在环)
阅读全文
摘要:命名空间std
C++ 标准中引入命名空间的概念,是为了解决不同模块或者函数库中相同标识符冲突的问题。有了命名空间的概念,标识符就被限制在特定的范围呢,不会引起命名冲突。最典型的例子就是std 命名空间,C++ 标准库中所有标识符都包含在std命名空间中。
阅读全文
摘要:四、类模板的默认模板类型形参
1、可以为类模板的类型形参提供默认值,但不能为函数模板的类型形参提供默认值。函数模板和类模板都可以为模板的非类型形参提供默认值。
2、类模板的类型形参默认值形式为:template class A{};为第二个模板类型形参T2提供int型的默认值。
3、类模板类型形参默认值和函数的默认参数一样,如果有多个类型形参则从第一个形参设定了默认值之后的所有模板形参都要设定默认值,比如templateclass A{};就是错误的,因为T1给出了默认值,而T2没有设定。
4、在类模板的外部定义类中的成员时template 后的形参表应省略默认的形参类型。比如template class A{public: void h();}; 定义方法为template void A::h(){}。
阅读全文
摘要:模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。
模板是一种对类型进行参数化的工具;
通常有两种形式:函数模板和类模板;
函数模板针对仅参数类型不同的函数;
类模板针对仅数据成员和成员函数类型不同的类。
阅读全文
摘要:引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
引用的声明方法:类型标识符 &引用名=目标变量名;
阅读全文
摘要:1*2*3*......*3000相乘结果的末尾有多少个0?
阅读全文
摘要:说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史远远比Java久远,
1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考:
GC需要完成的三件事情:
哪些内存需要回收?
什么时候回收?
如何回收?
经过半个世纪的发展,内存的动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么我们还要去了解GC和
内存分配呢?答案很简单:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自
动化”的技术实施必要的监控和调节。
阅读全文
摘要:对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每
一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。
对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现
内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切都很美好。不过,也正是因为Java程序员把内存控制的权力交给了Java虚拟机,一旦
出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误将会成为一项异常艰难的工作。
阅读全文
摘要:JVM与JRE、JDK关系?
JVM:Java Virtual Machine(Java虚拟机),负责执行符合规范的Class文件
JRE: Java Runtime Environment (java运行环境),包含JVM和类库
JDK: Java Development Kit(java开发工具包),包含JRE和开发工具包,例如javac、javah
阅读全文
摘要:什么是线程同步?
当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题。
阅读全文
摘要:巨人网络的三道坑爹改错题
看看你能中几枪。。。
阅读全文
摘要:实现Runnable接口相对于扩展Thread类来说,具有无可比拟的优势。这种方式不仅有利于程序的健壮性,使代码能够被多个线程共享,而且代码和数据资源相对独立,从而特别适合多个具有相同代码的线程去处理同一资源的情况。这样一来,线程、代码和数据资源三者有效分离,很好地体现了面向对象程序设计的思想。因此,几乎所有的多线程程序都是通过实现Runnable接口的方式来完成的。
阅读全文
摘要:每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代码创建一个新 Thread 对象时,该新线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时,新线程才是守护程序。
阅读全文
摘要:阿里巴巴一道笔试题题目:有两个有序整数集合a和b,写一个函数找出它们的交集?
如果你有好的算法,就来笔笔速度吧!!!
阅读全文
摘要:有N个传教士和N个野人来到河边渡河, 河岸有一条船, 每次至多可供k人乘渡。问传教士为了安全起见, 应如何规划摆渡方案, 使得任何时刻, 河两岸以及船上的野人数目总是不超过传教士的数目(否则不安全, 传教士有可能被野人吃掉)。即求解传教士和野人从左岸全部摆渡到右岸的过程中, 任何时刻满足M(传教士数)≥C(野人数)和M+C≤k的摆渡方案。
阅读全文
摘要:最早提出遍历问题的是对存储在计算机中的表达式求值。例如:(a+b×(c-d))-e/f。表达式用树形来表示,如图8-11-1所示。运算符在树中放在非终端结点的位置上,操作数放在叶子结点处。
当我们对此二叉树进行先序、中序和后序遍历后,便可得到表达式的前缀、中缀和后缀书写形式:
前缀:-+a*b-cd/ef
中缀:a+b*c-d-e/f
后缀:abcd-*+ef/-
其中,中缀形式是算术表达式的通常形式,只是没有括号。在计算机内,使用后缀表达式易于求值。
阅读全文
摘要:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url
阅读全文
摘要:题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式?
阅读全文
摘要:1.有三根杆子A,B,C。A杆上有若干碟子
2.每次移动一块碟子,小的只能叠在大的上面
3.把所有碟子从A杆全部移到C杆上
阅读全文
摘要:经典洗牌算法
阅读全文
摘要:将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面
阅读全文
摘要:类通过实现java.io.Serializable接口可以启用其序列化功能。未实现次接口的类无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。
阅读全文
摘要:String: char[] + 方法(操作, API功能)
StringBuilder: char[] + 方法(操作char[] 的内容)
String:内部包含内容不可变的char[],表现为String对象不可变。String包含操作(API方法),是对char[]操作,但不改变原对象经常返回新的对象,很多String API提供了复杂的性能优化算法,如:静态字符串池。
StringBuilder:内部也是一个char[],但是这个数组内容是可变的,并且自动维护扩容算法,因为数据内容可变,所以叫:可变字符串。StringBuilder API方法,是动态维护char[]内容,都可以改变char[]内容。
阅读全文
摘要:浅层复制: 被复制的对象的所有成员属性都有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅层复制仅仅复制所考虑的对象,而不复制它所引用的对象。(概念不好理解,请结合下文的示例去理解)
深层复制:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不是原有的那些被引用的对象。换言之,深层复制要复制的对象引用的对象都复制一遍。
阅读全文
摘要:Java Arrays中提供了对所有类型的排序。其中主要分为Primitive(原始的)和Object两大类,分别使用了快速排序与归并排序。本章以int[] 的排序,讲解Java对Primitive排序。
阅读全文