容器(Container)简单介绍
容器(Container) List(接口有序的) ArrayList 底层:数组(可变) 优点:查询,随机访问效率高 缺点:增删效率低 动态扩容:通过调用Arrays.copyOf()方法进行动态扩容,扩容后新容器的大小是原容量的1.5倍 第一次添加数据初始容量为10,加载因子(0~1):1 新增方法:使用List定义的方法 线程不安全的容器类 LinkedList 底层:双向链表实现 优点:增删效率高 缺点:查询低下 新增方法:新增了一些操作与链表头和链表尾的功能(见名知意的方法使用 Ve
欢反射和Oraclec简单查询
反射
反射是发生在程序运行期的行为
功能
在运行时判断任意一个对象所属的类
在运行时构造任意一个类的对象
在运行时判断任意一个类所具有的成员变量和方法
在运行时调用任意一个对象的方法
生成动态代理
orcle数据库
--注释
查询公式: select *|字段名字1 别名,字段名字2 (as) 别名... from 表名;
执行顺序:--from--select确定结果集
去重 distinct 别名 字段 (as) 别名 表名 别名 ''字符串
oracle部分查询语句
命令分类操作
DDL
create:创建
drop:删除
alter:修改
rename:重命名
truncate:截断
DML
inser:插入
delect:删除
update:更新
select:查询
去重:distinct
别名:as
字符串:''拼接用||
伪列:不存在的列,构建虚拟的列
例:select 1+1 from where tabename
虚表
例:select 1+1 from du
DML和jdbc步骤
数据截断(truncate)
删除数据 不产生事务直接删除,当表中有外键时不能删除
序列(Sequence)
创建
cerate sequence 序列名 start with 起始值 increment by//递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
使用
insert int table (序列名.nextval .....
currval
当前值
增加
insert into table (指定列) value(列的值
JavaScript函数 事件简单介绍
Java Script
函数(function)
作用域的提升
函数声明才有函数作用域的提升的作用,函数表达式不能提升作用域
会提升到当前函数作用域的最上面
js函数中函数可以嵌套
JS中函数就是作用域
this
JS中的this上下文对象,在运行期间动态绑定对象,Java是在编译器绑定对象
this所在的函数是否是通过new使用,指定new的对象
是否通过对象调用的函数,函数中的this指带调用函数的对象
this默认指代window对象
闭
Jquery简单介绍
DOM对象与Jquery的互相转换
$(dom对象)
Jquery根据索引得到dom对象
遍历
each(fucntion)
语法
jquery对象.each(fucntion([当前下标,当前被遍历到的元素]){
}) 注意点 通过原生JS获取节点,如果节点不存在,返回null; 如果通过Jquery获取节点,如果节点不存在,会返回空包装集对象。所以判断Jqury对象是否存在需要使用length 选择器 Id选择器 $("#id属性值") 类选择器 $(".cl
const int *p和 int * const p区别
const int *p : p 是一个指向常整型数的指针;指针指向内存数据不可修改,指针本身可以修改。 int *const p: p是一个常指针;指针指向内存数据可修改,指针本身不可以修改。
当函数的返回值为引用时,不要返回局部变量的引用,可以返回全局变量的引用。
返回局部变量引用时,如果在函数外使用引用变量接收,会遇到它在栈上被释放的弊端。 int& getA(){
int a=10;
return a;
}
int main(){
int &re = getA();
cout<<re<<endl;
cout<<"----------------------"<<endl;
cout<<re<<endl;
}
二级指针的应用场景之一:在函数外定义指针,在函数中对指针进行赋值,函数调用结束后,实现指针赋值;指针引用代替二级指针实现函数内指针赋值。
函数内二级指针完成函数外定义指针赋值: struct teacher{
int id;
char name[64];
};
int get_mem(struct teacher **tpp){
struct teacher *tp = NULL;
tp = (struct teacher*)malloc(sizeof(struct teacher));
if(tp == NULL){
return -1;
}
tp->id = 100;
strcpy(tp->name,"
LCS问题Leetcode583,712
LCS问题,关于字符串下的,最长公共子序列。 最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为:子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列;也就是说,子串中字符的位置必须是连续的,子序列则可以不必连续。 原先的思路是用动态规划去做。 状态: dp(m,n)为s1中0-m,s2 0-n子串中最长的公共子序列的长度值。 转移方程 dp[m,n]
Leetcode516. 最长回文子序列
给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "bbbb"。 示例 2: 输入: "cbbd" 输出: 2 一个可能的最长回文子序列为 "bb"。 思路:动态规划。对问题的解决其实就是,把一个大问题分解成一个个小问题,这好像就是计算机较为普遍的解决办法。也是人脑的思考方向。怎么样去思考,当一维解决不了的时候,就二维,从二维的顶点往下,即自顶向下思考,自下而上写。 原先思考就是单纯的一维数
怎么从redis中查询某一固定前缀的key
想要测试数据,先用Linux脚本插入2千万条数据,再来测试。等会附上bash脚本。 1. #!/bin/bash
for((i = 0;i<=2000000;i++))
do
echo "set k$i v$i" >> ~/redisTest.txt
end 2. vim redisTest.txt :set fileformat=dos //去掉每行结尾的符号 :wq 这就是先把数据按照规定格式插入文件中,再对文件处理成方便reids插入的格式 利用redis pipilne管道技术方便
redis消息的订阅和发布
Pub/Sub redis的消息的订阅和发布,类似与生产者和消费者模式,可以一对一,也能一对多。 客户端可以选择订阅的消息:通过命令 subscribe boo //订阅boo 其他往这个频道发送的消息的时候,订阅了这个频道的客户端,可以收到消息。但是消息是无状态的,可能因为网络原因收不到。 还支持匹配订阅,即通配符模式下的订阅和接受。 先订阅: 再publish:
Leetcode461汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y < 231. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 汉明距离,就是指2个数的二进制数之间1的不同的个数。这个通过异或可以得到。 汉明重量,就可以得到二进制中1的个数。即通过n = n&(n-1).这个可以记下来,以后碰到类似求二进制1的个数直接用。 class Solu
今日推荐
周排行