JAVA容器共包括两类,Colletcion和Map。其中Collection又有List和Set两个接口、Collection可以使用迭代访问Iterator,使用hasNext()和next()实现遍历。List就是数组,堆栈、队列等都是用List。其中LinkedList是链表,ArrayList是数组。快插快删使用LinkedList,随机访问使用ArrayListVector跟Array
51CTO博客开发大牛的技术博客
求两个数的最大公因子,使用“辗转相除法”。 原理如下:若r=a%b,则gcd(a,b)=gcd(b,r)。 简单推导: 因为r=a%b,所以a=bq+r,r=a-bq。 a=bq+r,能被b,r整除的,则一定能被a整除,自然也能被a,b整除 r=a-bq,能被a,b整除的,则一定可以被r整除,自然也能被b,r整除 显然gcd(a,b)=gcd(b,r)。 &n
1、命令模式与插入模式 vi 有两种模式:命令模式(commond mode)和插入模式(insert mode)。命令模式下 命令模式下:控制光标的移动、删除、移动、复制等 插入模式下:编辑文件 命令行模式下 按[i]键可以进入插入模式;插入模式下按[ESC]键可以回到命令模式。 2、保存并退出文件 :w 保存文件 :q! 不存盘强制退出vi :w
cat 从头开始显示内容 tac cat反写 倒过来,从尾开始显示内容 more 分页显示内容 less 与more类似,但可以向前翻页 nl 显示的时候也显示行号 tail -n 10 filename 显示后10行内容 head -n 10 filename 显示前10行内容 od 以二进制方式阅读
1. whoami 查看当前登陆用户名 2. who 查看所有登入系统的用户 3. groups 查看当前登陆用户所在组的所有用户 4. groups user1 查看用户user1所在组的所有用户 5./etc/group 包含所有的组 6./etc/passwd和/etc/shadow 包含所有的用户 7.usermod -g group1 user1 修改用户所在的组
C++标准库中的头文件大多数都不包含.h,比如<iostream> 当使用C的库时,可以#include <stdio.h>,也可以#include <cstdio> cstdio是C++从C的stdio.h继承来的,在前面加c同时不用.h后缀,两者内容一样。区别:cstdio头文件中定义的名字被定义在命名空间std中,这样使用后者就会带来额外的负担,你必须
C编译生成机器可识别的二进制目标代码.obj,然后链接把多个obj文件以及用到的库.lib组合生成可执行文件 JAVA是解释执行的。首先javac编译.java,生成字节码.class,java .class由JVM解释执行。
True Positive (真正, TP)被模型预测为正的正样本;可以称作判断为真的正确率 True Negative(真负 , TN)被模型预测为负的负样本 ;可以称作判断为假的正确率 False Positive (假正, FP)被模型预测为正的负样本;可以称作误报率 False Negative(假负 , FN)被模型预测为负的正样本;可以称作漏报率 True Pos
题目:如何查找单链表的倒数第n个指针 算法一:第一次遍历到链表末尾,找到链表长度N;第二遍遍历,找到第N-n个节点。 算法二:设立两个指针,p1指向头节点,p2往前走n步,这样,p2与p1之间间隔n个指针。这样,当p2到达末尾是,p1则为倒数第N-n个节点。 Node *lastN(Node *head) { &
题目: 有个桌子,两个人交替往桌子上放硬币,当桌子被填满时,最后一个放硬币者获胜。求常胜策略。 方法: 每次都第一个先放,放在桌子中心,之后始终放在对方的对称位置。
单例模式定义: 保证一个类仅有一个实例,并提供一个它的全局访问点。例如操作系统只能有一个窗口管理器,数据库只能存在一个实例等。 单例模式实现的三个要点: (1)有一个私有的静态指针变量指向类的唯一实例。 (2)私有的构造方法 (3)公有的静态的获取实例的方法。 具体实现: class Singleton { private: &nb
题目:给定数组 str[],循环左移m位。即如果str="ABCDEF",循环左移2位得到 "CDEFAB" 算法:使用两个倒序,倒序AB得到BA,倒序CDEF得到FEDC,最后全部BAFEDC全部倒序CDEFAB #include <string.h> #include <iostream&g
一、使用锁的可串行性实现 两阶段锁协议:在每个事务中,所有封锁请求先于所有解锁请求 树协议 二、使用时间戳的并发控制(多版本时间戳) 三、使用有效性确认的并发机制
事务与数据库交互时,有三个地址空间 (1)保存DB元素的磁盘 (2)内存缓冲区管理的虚存或者主存地址空间 (3)事务的局部地址空间 事务读取DB2元素时,首先从磁盘读取数据到主存的一个或者多个缓冲区中,接下来,缓冲区的内容可以被读到其局部地址空间中。 事务为DB元素写入一个新值要沿相反的方向。 因此,事务原语包括: (1) INPUT(x) 将X从DISK拷贝到BUFFER (2)
DB2中,表空间是指数据库以及存储在数据库中的表之间的逻辑层。表空间在数据库中创建,而表在表空间中创建。 使用表空间的好处:将数据合理的分布存储在不同的磁盘上或者存储在磁盘的不同位置上,有利于提高存储效率。 DB2表空间管理方式:系统管理空间(System Management Space, SMS)和数据库管理空间(Database Management System, DMS)
对于一个频繁使用的短小函数,C/C++用什么实现比较高效?C中宏定义,C++中使用inline。 #include <file.h>和#include "file.h"的区别?前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 待续……
函数调用时: 主函数的下一条指令的地址入栈 函数的参数入栈,从右往左入栈 函数的局部变量入栈。注意:静态变量不入栈。 函数执行结束后: 局部变量出栈 参数出栈 栈顶指针指向最开始存的地址,也就是主函数的下一条指令,程序由该点继续执行。
C/C++中内存分为以下五个部分: 1.栈区: 存放函数的参数值,局部变量等。由编译器自动分配释放,大小固定,一般为2M或者1M 2.堆区:使用malloc或者new出来的对象存放的区域,可以由程序员自己申请和释放。 3.全局区(静态区):存放全局变量和静态变量。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和静态变量在相邻的另一块区域。 4.常量区:常量字符串等
如果遇到两个类A和B互相引用的情况,如下: class A { B b; } class B { A a; } 则无论编译器首先遇到哪一个类,由于另一个类还没有编译,所以编译是无法通过的。解决的办法很简单,只要在引用类前面加上class关键字就可以咯, 编译器就知道了你的引用类型为clas
题目: 有n个小球。你与另一个进行比赛,两个人轮流取这n个小球,规则是每个人一次可以取其中的1个或者2个小球。取到最后一个小球的人为胜利者。给出一个策略:保证你每次都会胜利。 方法: 若n为3的倍数,则让对方先取。如果他取1个,则接下来你取2个。 若n为3m+1,则你先取1个。剩下3的倍数个小球,转化为第一种情况。 若n为3m+2,则你先取2个。剩下3的倍数个小球,转化为第一种情况。
/* **题目:上楼梯,一次可以走一个台阶或者两个台阶,列举走n个台阶的所有可能的走法 **解法:使用递归方法,一次走一个或者两个台阶,因此可以将n个台阶分解为(1,n-1)或者(2,n-2) */ #include <stdio.h> #include <stdlib.h> static&nb
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号