1.组织按钮冒泡
意义:大按钮,小按钮,点击小的按钮,不会触发大的按钮事件
例子:
document.onclick = function() { //这个是点击页面触发
if($('.tableBox .title .add span').next().css("display")=='block'){
$('.tableBox .title .add span').next().toggle();
}
}
$('.tableBox .title .add span').click(function(event){ //这个是点击新增按钮触发
$(this).next().toggle();
event.stopPropagation(); //组织冒泡方法
})
2.vue绑定select下拉框选中事件
html: v-on:change="gueryTime()"
方法: gueryTime:function(){
document.getElementById('d3').value //选中的value
},
3.基本数据类型所占字节数:
byte:1字节 默认值0
short::2字节 默认值:0
int:4字节 默认值:0
long:8字节 默认值0
float:4字节 默认值0.0f
double:8字节 默认值0.0d
char:2字节 默认值 '\u0000'
boolean:4字节 默认值:false
4.求一个范围的质数 以10为例
int num=10;
int j=0;
for(int i=2;i<=num;i++){
j=2;
while(i%j!=0){ 只能被1和它本身整除,所以,只有不被整除的,才能进来
j++;
if(j==i){
System.out.println(i);
}
}
}
5.时间计算:
Calendar calendar = Calendar.getInstance(); //当前时间 月份比当前时间少1(这里是从0开始的。主要用的时候得处理)
calendar.add(Calendar.DATE, -1); /前一天
calendar.set(Calendar.YEAR, 0); //设定当前时间
cal.getTimeInMillis(); //获取时间戳
6.a.indexOf(b):是在a中找b,找不到 返回-1
7.分页(假分页)
itemList是已经查询出来的数据集合
List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();
int pageBegin=pageSize*(pageNo-1);
int pageEnd=pageSize*(pageNo-1)+pageSize;
for(int i=0;i<=itemList.size()-1;i++){
if(i>=pageBegin && i<pageEnd){
items.add(itemList.get(i));
}
}
resultVo.setPageNo(pageNo); //页数
resultVo.setPageSize(pageSize); //每页显示的个数
resultVo.setTotal((long)(itemList.size())); //总数
resultVo.setCurrentPage(pageNo); //页码暂存器
resultVo.setPages(pageNo); //当前的页码
resultVo.setRows(items);
备份表:
CREATE TABLE 备份表名 SELECT * FROM 原表名
批量换掉字符:
UPDATE 表名 SET 列名=REPLACE(列名,'原字符','新字符')
```clike
map的四大遍历方式
方式一:
/**
* 最常见也是大多数情况下用的最多的,一般在键值对都需要使用
*/
Map <String,String>map = new HashMap<String,String>();
map.put("熊大", "棕色");
map.put("熊二", "黄色");
for(Map.Entry<String, String> entry : map.entrySet()){
String mapKey = entry.getKey();
String mapValue = entry.getValue();
System.out.println(mapKey+":"+mapValue);
}
方式二:在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能上比使用entrySet较好;
Map <String,String>map = new HashMap<String,String>();
map.put("熊大", "棕色");
map.put("熊二", "黄色");
//key
for(String key : map.keySet()){
System.out.println(key);
}
//value
for(String value : map.values()){
System.out.println(value);
}
方法三:通过Iterator遍历;
Iterator<Entry<String, String>> entries = map.entrySet().iterator();
while(entries.hasNext()){
Map.Entry<String, String> entry = entries.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+":"+value);
}
方法四:通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作;
for(String key : map.keySet()){
String value = map.get(key);
System.out.println(key+":"+value);
}
sql语句强转:
sql语句中把字符类型转换成数字类型:
oracle:num(字符)
例:select * from A order by num(字符字段)
mysql:+0
select * from A order by 字符字段+0;
与es公用的kibana默认端口:5601
mysql:3306;
oracle:1521
重载:方法名相同,参数个数、参数类型不同,跟返回值没有什么关系
重写:用于继承,子必须重写父的方法才能被调用
java中的内存(jvm)
1.寄存器:是最快速的存储机构,位于处理器内部,无法用代码对其产生影响,只能看着
2.本地方法区:在本地方法栈中执行的非java代码,如C;C++等等
3.方法区:再java虚拟机创建是就启动,是所有线程共享的内存区域,存储已经被虚拟机加载的类信息,常量,静态变量,以及编译器编译后的代码数据(包含所有的class类和static变量)。
4.堆:用于存放数组和对象,也就是实体,更直白点就是封装多个参数的实体类,还有成员变量(直接定义在类中的变量)(可被所有的线程共享,不会存别的对象的引用)
5.栈:存放的都是局部变量(函数中声明的变量,函数上的参数),只要函数结束,就会释放
补充:
栈:main方法是在栈中的
ApiPageVO result= new ApiPageVO();
new的时候内存中执行的操作:
1.先将硬盘上指定位置的ApiPageVO.class文件记载进内存。
2.执行main方法,在栈内存中开辟main方法的空间(压栈-进栈),然后在main方法的变量。
3.在堆内存中开辟一个实体空间,分配了一个内存首地址值,new
4.在该实体空间中进行属性的分配空间,并默认初始化
5.对空间中的属性进行显示初始化
6.对实体的构造代码块进行初始化
7.调用该实体对应的构造函数,并出池化
8.将首地址值赋给result,result变量就引用了该实体
栈内存和堆内存的区别
1.栈内存很小,可以通过-Xss定义栈的大小,堆内存很大,可以通过-Xms和-Xmx JVM选项定义开始的大小和堆内存的最大值
2.栈内存速度很快,堆内存相对慢
3.栈内存生命周期,在大括号内存活,堆内存,生命周期从程序运行开始到结束;存在堆内存中的对象可以被任何程序访问,栈内存不能被其他线程使用
5.应用程序所有的程序部分使用堆内存,栈内存是通过一个线程来调用
6.无论对象什么时候创建,它始终存在堆内存中,栈内存只保留它的引用
图解:
1.项目运行起来,方法区中加载application类中的main方法,这个是整个程序的入口,并且声明了方法中的属性,常量池:旺财
2.与此同时,有于main方法中调用其他的类或者方法,所以,栈中也加载main方法
3.程序走到Pat dog=new Pat()的时候,调用加载pat这个类,以及类中的属性还有方法,方法区中,加载Pat这个类,以及方法和属性,常量等等,栈中开辟出空间存放dog这个属性,并指向因此在堆中开辟空间new Pat()的地址,并在堆中给其中的属性初始化,以及方法的加载(这里其实调用了方法区中的Pat的方法),然后把方法区中的类中的属性复制的常量旺财复制给堆中new Pat()的name值,至此堆中的所有的属性和方法都可以使用了
4.方法中区有快特殊的区域,就是静态方法区,就是static修饰的东西,这个写东西是跟main方法一起加载的。
5.方法区,就是堆中的一块区域
6.任何地方调用静态方法区中的东西,都是可以直接调用的
关于static关键字的知识点
1.statici修饰的变量,是静态变量 比如:private static int i=0;
2.statici修饰的方法,是静态方法:比如 public static void a(){}
3.static:static{} 就是一个静态块
4.static修饰的类,是静态类,public static class A{}
5.执行顺序:静态变量(静态块,谁在前谁先执行)--静态方法(调用才执行)
6.静态资源实在类初始化的时候就加载的,非静态资源只有在调用的时候再加载
7.几个注意
1. 静态方法不能调用非静态资源,因为静态资源是在初始化的时候,加载的,但是,非静态资源只有在new的时候才加载,由于加载时间不同。两个根本不认识,所以不能
2. 静态方法可以调用静态资源,都是同时加载的,所以认识
3. 非静态资源可以引用静态资源,因为静态先加载,非静态资源new的时候肯定认识静态资源了,所以可以调用
按照时间段分组
mysql:关键字 DATE_FORMAT
eg:select count(*) from base_book_version GROUP BY DATE_FORMAT('2011-05-04 00:00:00','2019-02-25 00:00:00')
常用的dos命令:
cd切换磁盘: cd /d c:
创建test的文件夹: md test md (目录名)
在test里面创建文件:cd>a.txt cd>(文件)
在test里面删除a.txt:del a.txt del(文件)
的目录中删除test文件夹:rd test rd (目录名)
打开计算机:calc
打开记事本:notepad
打开画图工具:mspaint
退出:exit
jdk官方文档:
https://docs.oracle.com/javase/7/docs/api/ 这个是jdk7的官方文档