redis zset
maven是用来下载依赖和打包代码的工具。
本章主要简单介绍maven的下载以及配置
1.maven的下载与安装
maven可以直接从官网下载最新的版本。
maven版本太高或者太低都会有兼容性问题,目前(2021/7)推荐使用3.3.*至3.6.*之间。其中binaries是编译好的文件,source是源代码,需要重新编译。推荐下载binaries版本。
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/
下载后直接解压即可,我将目录移至了C:\Program Files下,如图
2.环境变量的配置
配置maven前,需要检查Java是否已经配置。
如果没有的话,需要同时配置java和maven的环境变量
如下图,在环境变量的系统变量中添加JAVA_HOME和MAVEN_HOME,分别为安装路径
之后将java和maven的bin、路径分别添加到path中
win10以下版本如下图
![win7 maven](C:\Users\admin\Desktop\win7 maven.JPG)
最后在cmd中输入mvn-v ,可以正常查到即可
3.配置文件的配置
打开maven目录下的conf目录,
打开settings.xml配置仓库的本地路径和远程仓库路径。
如果不配置,那么远程仓库路径是国外路径,速度较慢;默认依赖下载路径为
C:\Users\admin\.m2\repository
C盘用户下的repository路径。
在settings中添加
<localRepository>D:\repository</localRepository>
在mirrors中添加
1 | <mirror> |
最后结果如图
4.idea设置
idea的设定分为项目设定和全局设定,如果要每次打开idea都使用配置好的maven,在打开界面选择
Configure->Settings->Maven
Maven home directory选择设定好的版本,local repository就会自动变更,如果没有自动变更说明上一步配置文件设置错了,至此maven就已经配置好了。
Reentranlock
thread1 执行业务代码lock
把aqs里的state改成1 cas操作aba,aba操作加版本号
park和unpark可以指定线程
非公平锁的体现,前线程执行完以后,unpark的线程和新来的线程同时抢占锁
公平锁和非公平锁的区别:
只能队列里面的抢占,可以队列里面的线程和刚进来的线程
lock和synchronize的区别
1.lock支持公平与非公平锁,synchronize非公平锁
2.
excute–addworker—
int c = ctl.get()
判断线程池线程数量是不是小于corepoolsize
addworker
new 一个worker
worker.start
runworker
run方法
111 01111
apt-get install git
apt-get install nodejs
apt-get install npm
node -v
npm -v
install -g hexo-cli
hexo -v
hexo init myblog
cd myblog //进入这个myblog文件夹
npm install
hexo g
hexo server
打开hexo的服务,在浏览器输入localhost:4000就可以看到你生成的博客了。
创建一个和你用户名相同的仓库,后面加.github.io
新建分支仓库
master用于存放hexo数据,分支用于存放代码,用于分布式使用
git config –global user.name “yourname”
git config –global user.email “youremail”
git config user.name
git config user.email
ssh-keygen -t rsa -C “youremail”
ssh -T git@github.com
deploy:
type: git
repo: https://github.com/YourgithubName/YourgithubName.github.io.git
branch: master
hexo clean
hexo generate
hexo deploy
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment
ACID
原子性:一起提交
一致性:都对都错
隔离性:都有事务
持久性:保持到磁盘
required_new 多个事务
required 一个事务
netst 分成多个事务
事务失效:this,not public ,
是否私有 | ||
---|---|---|
程序计数器 | 私有 | 没有oom |
虚拟机栈 | 私有 | 局部变量表,每个方法是一个栈帧,方法返回地址,静态链接,动态链接,基本数据类型 |
本地方法栈 | 私有 | 调用native方法 |
方法区(元空间) | 公有 | 类信息,常量,静态变量,数据符号引用 |
堆 | 公有 | 老年代,新生代(eden,s0,s1);stw,minorgc,majorgc,fullgc;new产生的实例 |
虚拟机栈:
静态链接:Map map = new HashMap();
动态链接:map.get();
堆:
stw:内存满了,垃圾回收,触发stw。
新生代为什么分为Eden区,s0,s1;避免垃圾回收产生大量碎片
新:老=1:2
//虚拟机栈:8中基本数据类型,对象引用
//堆:new
//方法区:类的描述信息,常量,静态变量,符号引用
IOC流程
1.我们要把所有托管给spring管理的bean拿到,beandefination并且放到一个map里面
2.getbean 实例化,进行属性注入,
3.初始化bean,是否实现了beannameaware
4.是否实现了beanpostprocessor类,调用postprocessbefore…
5.初始化方法
6.是否实现了beanpostprocessor类,调用postprocessafter… aop在这里实现
入口在refresh()里面
1.默认会扫描当前目录以及子目录下@service @component @controller @repository
spring.factories