暂无个人介绍
Phone List Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11016 Accepted Submission(s): 3805 Problem Description Given a list o
创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum。 调用enum的values()方法,可以返回enum实例的数组,并且该数组中的元素严格保持其在enum中声明时的顺序。ordinal()方法返回一个int值,这是每个enum实例在声明中的次序,从0起。 可以使用==来比较enum实例。Enum类实现了Comparable接口,所以它具有compa
@Override 表示覆盖父类的方法。 @Test 在Package Explorer视图中,右击想要建立单元测试的java文件,然后New|JUnit Test Case。 选中想要测试的方法。 在@Test打头的方法中给出具体实现。然后Run as Junit Test。 两个源文件 @SupressWarnings 用来压制编译器的告警
1. 使用 数组的声明有两种方式。int []a 与 int a[]等价。 为数组创建引用有两种方式,new 与{}直接赋初值。 数组名.lengh指明当前数组的大小。java中数组越界一定会有运行时异常。 demo: 创建非基本类型内容的数组,必须用new挨个初始化,此时用foreach无效。 2.多维数组的foreach遍历 public class XXTes
1.目录 org.apache.lucene.store.Directory 指定索引所在目录。 org.apache.lucene.store.RAMDirectory 存放于内存中的目录。 org.apache.lucene.store.RAMDirectory.RAMDirectory(FSDirectory dir, IOContext context) 构造函数。把
由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”;其实按照面向对象的标准语法,其格式应该为:String s = new String(“abc”); 字符串一旦被初始化,就不可以被改变。 1.==的含义 System.out.println(s1==s2);//false 比较的
问:java中Map与HashMap 的关系是什么? 答:Map是一个接口,HashMap是Map的实现类之一。 Entry 与 Map java.util.Map.Entry<K, V> interface Entry<K,V> 类似于cpp中的pair。 template<class _T1, class _T2> st
ArrayList相当于STL里面的Vector。 快速初始化的方法: ArrayList<Integer> a=new ArrayList<Integer> (Arrays.asList(1,2,3,4,5)); 注意函数Arrays.asList返回的是:类Arrays的静态内部类,该类定义见下: private static clas
接口中可以声明方法与字段,注意方法只能声明不能定义。但在java 8中可以对方法给出默认实现。 1.方法 接口中的方法默认就是public权限,所以你不必显式地写public;当然写了也不会报错。 接口中的方法可以抛出异常。这就要求,调用的地方必须显式处理该异常。 2.字段 接口中的字段只能是 final static类型的,可以省略这两个关键字。这样设计的理由:接口是高层次的抽
1.抽象方法 仅仅是声明,并不给出定义的方法叫抽象方法。形如 abstract void fun(); 2.抽象类 cpp中,包含纯虚函数的类叫抽象类。它没有"抽象"对应的关键字。 如果一个类中有抽象方法,该类必须为抽象类。 如果一个类没中有抽象方法,该类也可以为抽象类。考虑这种情况:有一个类,让其包含任何抽象方法都显得没有实际意义,而且我们也想要阻止产生这个类的任何对象,那么这
final 类似 c 的 const 。1.用于字段 无论作用于基本类型还是引用类型,效果都是,不允许对字段再次赋值。 java没有提供约束对象不变的机制。 final修饰变量,并不意味着变量的值要在编译期间确定。见下面代码。class A{ private static Random rand=new Random(); private final int i1=rand.ne
Description 求连通分量区域坐标集合 Input 多组输入,每组形式见下。 n m startPointX startPointY 代表n行m列的地图(从一计数) 查找连通分量的起始点为(startPointX ,startPointY)(从0计数) |------->x坐标 | | | 向下为y坐标 然后为n行m列的字符。'a'
1.类的访问权限 public 任何地方都可以访问该类。无任何限定符 同一包内可以访问。 2.成员方法与字段的访问权限 private 仅成员函数可以访问。protected 该类的子类的成员函数也可以访问。public 可以通过对象直接访问。无任何限定符 同一包内,可以通过对象直接访问。 3.代码 4.类的实例化顺序 初始化一个java对象,顺序
1.字段与静态方法 子类的字段与静态方法可以与父类同名,但上面不能够有@Override注解,也就是说它们不能被重写。 在同名的情况下,起到了“隐藏”的效果。 例如: Employee man = new Manager(); man.test(); 实例化的这个对象中,声明的man变量是Employee类的,变量名存在栈中,而内存堆中为对象申请的空间却是按照Manager类来的,
find find():在单迭代器序列中找出某值第一次出现的位置。 find_if():在单迭代器序列中找出符合某一元谓词的第一个元素的位置。 若想查找自定义类,必须重载类的==运算符! count count():在序列中统计某个元素出现的次数。 count_if():在序列中统计与某个判断谓词匹配的元素个数。 用法见上面代码。 equal 两个容器内每个元
对信息检索的评价——准确率和召回率。 相关文档:能够较好匹配用户搜索关键字的文档。 准确率,precision。检索出来的文档中,相关文档所占比例。 召回率,recall。全部相关文档中,被检索出来的文档的比例。 垂直搜索,vertical search。针对某一主题(行业、应用)的特殊搜索。 站内搜索:搜索被限定在一个给定网站内。 评价:用户与操作引擎交互的日志是很有价值
函数传参 java传参,类似c的传指针 1.修改形参指向的对象,实际上就修改了实参所指向的对象。 2.形参若指向新的对象不影响实参原来的指向。 可变参数 可变参数,如 void fun(ClassName ... parameterName){}这种形式。 适用于参数个数不确定,类型确定的情况。在形参列表中含有可变参数的函数体内,java把可变参数当做数组处理。 注意:可
一个java源文件中至多有一个public类,该类的名称必须与源文件名称相同。也可以没有public类,文件名与任意一个类名一致即可。 包 类似于cpp的namespace,是对类的再封装,防止命名冲突。 java包的命名规则全部使用小写字母。 定义包: package likeyichu.com; 导入包中的类: import likeyichu.com.cc; //(必须
变量声明 终极基类。java中所有的类最终都继承自单一的基类——Object。 向上转型:子类转换为基类。向下转型与之相反。注意:无论怎么转,都是声明类型互转,运行时类型是自始至终不会变的! String str; //只是创建引用,并没有创建对象。 变量存放 寄存器 c++可以向编译器建议变量存放在寄存器中。而java不能。 栈(一些书称为“堆栈”) 位于内存中。
在 Haskell 中是用空格来将函数名与参数分隔的 常用库函数 min 接受两个可比较大小的参数,并返回较小的那个。 max 同上,返回值大的那个。 succ 返回数的后继,即+1。 函数调用拥有最高的优先顺序,如下两句是等效的:答案都是16. Prelude>succ 9 +max 5 4 +1 Prelude>(succ 9) +(max 5 4)
问:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url。 答:单个文件的大小达到5G*64=320G,所以要拆成小的部分。 1.遍历文件a,对每一个url计算key=hash(url)%1000。相同key的url存放在一个文件里。这样我们得到了1000个文件(a0、a1、...、a999)。 2.对b采用同样的方法。得到
Hadoop的发音是 [‘hædu:p]。 Apache的发音是 [æpæʃ]。 Hadoop是Apache基金会的一个开源项目,用于大量数据的分布式处理。核心为HDFS与MapReduce。 1.HDFS HDFS,Hadoop Distributed File System,Hadoop分布式文件系统。 2.map-reduce思想 mapper将大任务化为小任务,分布
下图所示操作称为对结点Q的右旋,对结点P的左旋。二者互为逆操作。 简单讲,右旋——自己变为左孩子的右孩子;左旋——自己变为右孩子的左孩子。
设计模式是一套理论与经验,它可以提高代码的可重用性、可维护性。比如需求经常变,实现模块之间的松耦合就可以方便维护。 依赖倒置原则 依赖倒置原则,简单说就是面向接口编程。可以减少类间的耦合性,有利于并行开发。 设想这样一个场景:甲负责汽车类的建造,乙负责司机类的建造。在甲没有完成的情况下,乙是不能完全地编写代码的,缺少汽车类,编译器根本就不会让你通过! 两个类之间有依赖关系,
Wait函数 pid_t wait(int *status);//函数原型 头文件<sys/types.h>、<sys/wait.h> 进程一旦调用了wait,就立即阻塞自己,由wait自动分析当前进程的某个子进程是否已经退出,如果它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到,wait就会一直阻塞在
memset void *memset(void *s, int ch, size_t n); //函数原型 函数解释:将s中前n个字节 (typedef unsigned int size_t ),逐个字节地用 ch 替换,最后返回 s 。 作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。 头文件:<cmemory>或<
Tarits,特性的复数。c++萃取技术就是指它。实现方式是模板特化。 STL中涉及到iterator的地方经常能用到它。 gcc的STL与VS的STL略有差别。 vs中下列代码,把鼠标放在iterator上,按F12,找到别名定义,真实类型见注释 #include<vector> using namespace std; int main(){ ve
haskell,一种函数编程语言,既是解释型语言又是编译型语言。 相对Haskell来说,传统的Basic,Pascal,C++,C#,Java,Python等都是命令(imperative)编程语言, 程序语句有一定的执行次序. 函数(functional)编程语言则给出执行的内容, 关注于更高层次的"做什么"而不是"怎么做", 这就是二者最明显的一个区别。函数编程语言的语法功能非
DRM,Digital Rights Management,数字版权管理。 amazon购买的图书会下发到你的kindle设备,电子书格式通常为.azw3,里面包含了DRM,只能在你的设备上使用。所以设备连USB把文件取出来给别人是没用的。 epubee这个软件可用来去除DRM,方便你自由分发。 以Windows Desk环境为例,见下图:
客户端负责场景渲染、物理引擎还有人工智能(模拟玩家)等;服务端负责数据的持久化、网络通信、负载均衡、整体容错性等。都对C++、数据结构、算法、数学、代码优化有较高要求。 uml建模软件,这个东西可以极大的提升你软件的品质。 IOCP,I/O Completion Port,I/O完成端口。IOCP是一个异步I/O的API,它可以高效地将I/O事件通知给应用程序。与使用sel
标准队列是一种先进先出的线性结构。 设想一个用数组实现的容量为2的队列,入队2次后出队1次,再入队一次。传统队列会认为rear已指向末尾,入队失败。而循环队列会将新元素放在arr[0]的位置上,允许rear<front。队空和队满时头尾指针均相等,因此通过元素个数判断更合理。
模板类 模板类也可以继承自模板类。而java不允许这么做。
Windows: sendmessage、postmessage区别与联系 鼠标双击依次对应哪几个事件 线程安全 c++: union map\vector 删除元素后iterator的失效问题 int*a[4] int(*a)[4] 辨析 参见 http://blog.csdn.net/chuchus/article/details/39203441 写代码:不用递归方法
用途及说明见: http://blogread.cn/it/article/3947 c#
excel中的回车(换行):按住Alt键再按回车。 制作斜线表头的单元格:选中单元格|右击|设置单元格格式|选择斜线样式
逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后) 将一个普通的中序表达式转换为逆波兰表达式的一般算法是: 首先需要分配2个栈,一个作为临时存储运算符的栈S1(含一个结束符号),一个作为输入逆波兰式的栈S2(空栈),S1栈可先放入优先级最低的运算符#,注意,中缀式应以此最低优先级的运算符结束。可指定其他字符,不一定
Linux内存的延迟分配:就是在你未使用内存(均指物理内存)的时候,操作系统是不会真正的分配物理内存的。比如: int *p = (int*)malloc(1024 * 1024)如果接下来你没有访问p所指向的内存,那么你会看到进程占用的内存是不是包括这1M空间的。 因此不能通过检测malloc的指针是否为NULL,来判定系统能否支持申请的内存大小(即空闲内存大于申请内存)。 查看
什么是数据冗余? 如果数据库中存在冗余数据,比如两张表中都存储了用户的地址,在用户的地址发生改变时,如果只更新了一张表中的数据,那么这两张表中就有了不一致的数据。
参见MSDN http://msdn.microsoft.com/zh-cn/library/bb383977.aspx
平均复杂度为O(n*log n)的: 归并排序、堆排序、快速排序。 快速排序的最差情况为O(n*n); 其他常见的为O(n*n); 排序效率与待排数组初始状况不敏感的有:归并排序、堆排序、选择排序。 稳定的排序:两个值相等的元素a与b,若排序前后a、b的相对位置不变,称为稳定的排序。 不稳定的排序:由上可得。 希尔排序 算法先将要排序的一组数按某个增量d分成若干组,每组
有两个相等长度的正整数序列A和B,都是有序的(递增排序),同时一个序列中没有重复元素,现在需要求这两个序列的交集序列C,同时打印输出。
fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回,如果返回是0,则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid)。 还有一个很重要的东西是,在fork()的调用处,整个父进程空间会原模原样地复制到子进程中,包括指令,变量值,程序调用栈,环境变量,缓冲区,等等。 //run in linux 程序会输出多少个'-'? int
本文转载自 http://www.cnblogs.com/shanyou/p/3348347.html ServiceStack是一个开源的、支持.NET与Mono平台的REST Web Services框架。同类产品微软自有的是WCF。 Web服务通常有远程过程调用(RPC)和RESTful (HTTP)两类,现在占据主导地位的Web服务是RESTful (HTTP)。
c++内存分为代码、堆、栈、常量和全局//静态存储区。 不同变量的存储位置: 全局/静态存储区——全局变量,static变量; 栈——局部变量、函数调用时的参数。栈的容量一般比较有限; 堆——new运算符分配,需由delete释放;若分配失败,new返回NULL,记得安全性检查。 常量存储区——这是一块比较特殊的存储区,里面存放的是常量。new/delete 与 malloc/f
Long Long Message Time Limit: 4000MS Memory Limit: 131072K Total Submissions: 20935 Accepted: 8622 Case Time Limit: 1000MS Description The little cat is majoring in physics in the capi
int *a[4]与int(*a)[4]区别? 答:前者,a是一个数组,大小为4,存放的是int*类型元素。 后者,a是一个指针,指向int(*)[4]的二维数组。 X86_64环境下: 调试时监视变量非常直观: