title: 搬砖笔记(四)
date: 2020-06-14 09:40
categories:
tags:
作为码农平时搜集一些小知识点个人认为是个不错的习惯,书上说
好记性不如烂笔头
我想即使是以前忽略或者新get的很简单的东西,自己动手记下来不管如何印象也会更深刻。
java虚拟机
java对象实例存放在堆中;常量存放在方法区的常量池;虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据放在方法区;以上区域是所有线程共享的
栈是线程私有的,存放该方法的局部变量表(基本类型、对象引用)、操作数栈、动态链接、方法出口等信息。
一个java程序对应一个JVM,一个方法(线程)对应一个Java栈
Runnable与Callable接口区别
Runnable | Callable |
---|---|
执行方法run() | 执行方法call() |
没有返回值 | 有返回值 |
run()不能抛异常(需要内部处理) | call()方法可以抛异常 |
可以提交给Thread直接启动线程(也可以提交给ExcuteService来执行) | 一般是提交给ExcuteService来执行 |
实现Runnable接口相比继承Thread的好处
1、避免Java语言单继承的局限性,一个类可以实现多个接口
2、Thread类本身也是实现了Runnable接口的
函数式接口
如果接口只有一个[抽象]方法,成为函数式接口。函数式接口可以添加@FunctionInterface注解,该注解不是必须的,加上注解能够更好地让编译器检查。如果接口不符合“函数式接口”定义,但是加上了@FunctionInterface注解,编译器会报错。
java keytool生成ssl证书
这个是自制证书,浏览器不认,可以用于本地测试
在自己分支提前代码过程
例如 在dev分支建立dev_liquanhong
提交代码前在远程仓库拉取dev合并到dev_liquanhong请求->本地pull拉取代码->解决冲突(如有)->提交代码到远程仓库->拉取dev_liquanhong合并到dev的请求->完成
正确流程:本地代码暂存->先在本地拉取dev分支->切换到自己的分支->合并分支->解决冲突–>本地修改代码还原–>解决冲突-提交代码
对应命令:git stash—>git checkout dev、git pull origin—>git checkout dev_liquanhong—>git merge dev—>git commit -m “提交注释”,git push—>git stash apply stash@{0}或者git stash pop 后者会删除stash
其他命令:git reset --hard还原变更、git status查看状态、git stash list、git log、查看所有提交日志、git show commit的Id 查看本地提交详情
git commit后撤回
git reset --soft HEAD^
参数说明:
HEAD^ 是上一个版本的意思
–mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
–soft
不删除工作空间改动代码,撤销commit,不撤销git add .
–hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后 按esc退出编辑->输入:wq保存就好了。
注意:如提示文件默认readonly 用:w!强制保存 再退出
mysql修改表语句
alter table 表名 rename to 新表名
自定义分页的limit
(pageVo.getCurPage()-1)*pageVo.getPageSize,pageVo.getPageSize
备注:limit a,b 表示从第a+1条开始取 取b条
cookie添加httponly属性避免XSS攻击
打开.jar 报could not find the main class解决方法
(根本原因是jar包打开方式绑定问题)
管理员进入cmd
1、ftype|find “jarfile” 查看
2、ftype jarfile=“javahome/jre/bin/javaw.exe” -jar “%1” %*修改
3、type|find “jarfile” 再次查看是否运行成功
BurpSuite测试找不到的上传图片接口
前置条件:知道接口路径但页面找不到
大致步骤:先拦截一个上传接口,替换接口路径,如果拦截的接口不能上传图片需要替换其文件流数据。
替换文件流步骤:把文件流的文件名改为"xxx.png",把文件类型改为"Content-Type:image/png",文件内容改为"xxx等任意文本"
这样就可以请求成功了。
markdown表格语法
| 左对齐 | 右对齐 | 居中对齐 |
| :-----| ----: | :----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |
说明:
效果如下所示:
左对齐 | 右对齐 | 居中对齐 |
---|---|---|
单元格 | 单元格 | 单元格 |
单元格 | 单元格 | 单元格 |
markdown的图片大小修改
把markdown的插入图片代码改为html的img标签,如下所示:
<img src="" width="460px" align="center"></img>