java并发编程3-线程运行原理

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 栈 每个线程都有自己的栈, 线程上下文切换 CPU时间片用完 gc 有更高优先级的线程要运行 线程自己sleep,yield,wait,join,park,synchronized,lock     阅读全文
fightinggg's avatar
fightinggg 4月 10, 2020

java并发编程2-创建和运行线程

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 使用Tread创建线程123456789101112131415161718192021package com.wsx.test;import org.junit.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ThreadTest { @Test public void test1() { final Logger logger = LoggerFactory.getLogger(ThreadTest.class); Thread thread = new Thread() { @Override public void run() { logger.debug("running"); } }; thread.setName("t1"); thread.start(); logger.debug("running"); }}     阅读全文
fightinggg's avatar
fightinggg 4月 10, 2020

Java基础

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial Automic是一个原子类型包,其中包含了AtomicBoolean,AtomicInteger,AtomicLong等, 原子操作说是这样说的,然而并不是所有的物理机器都支持原子指令,所以不能保证不被阻塞,一般而言,采用的CAS+volatile+native的方法,避免synchronized的使用,如果不支持CAS那就上自旋锁了     阅读全文
fightinggg's avatar
fightinggg 3月 31, 2020

java并发编程1-进程与线程

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial Where from 快来点我 进程 一个活动的程序,是程序的实例,大部分程序可以运行多个实例,有的程序只可以运行一个实例     阅读全文
fightinggg's avatar
fightinggg 4月 09, 2020

spring12-事务

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial spring支持的事务 似乎都是关于数据库的,可能也是我的水平问题,不知道其他的东西 大概需要实现两个,一个commit,另一个是rollback 事务是基于AOP实现的     阅读全文
fightinggg's avatar
fightinggg 4月 09, 2020

spring11-Jdbctemplate

    阅读全文
fightinggg's avatar
fightinggg 4月 08, 2020

mysql游标

    阅读全文
fightinggg's avatar
fightinggg 4月 08, 2020

网易笔试

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 第一题输入一个n,表示n个点的完全图,输入m表示后续有m个操作,输入s表示你站在s点这个位置接下来m行,每行两个数字x,y 如果x=0 表示与y相连的所有边断开 否则 表示边x-y断开 你需要输出一个数x,表示这m个操作的前x个操作可以让s点与其他所有点断开连接 12345678910111213set<int>se;for(int i=1;i<=m;i++){ cin>>x>>y; if(x==0) { if(y==s) return i; else se.insert(y); }else { if(x==s) se.inesrt(y); if(y==s) se.insert(x); } if(se.size()==n) return i;}return 0; 怎么说呢,我就是这样写的,显然se.size()==n写错了,应该说n-1,跟yg讲这题的时候才想起来,我原地爆炸了,一直怀疑题目有问题,然后只过了10%,到最后都没找到bug     阅读全文
fightinggg's avatar
fightinggg 4月 07, 2020

linux指令学习

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial MAN 操作手册学linux,必须知道如何使用man,首先是安装man,或者在这里逛逛 1yum -y install man-pages SCP上传本地文件到服务器1scp -P [ssh端口] /path/filename username@serverhost:/path 下载HTTP文件下载东西可以使用curl指令,如 1curl baidu.com -O -L 也可以使用wget指令,如 1wget baidu.com Linux运行级别 linux一共有7个级别,分别为0关机、1单用户、2无网多用户、3有网多用户,4保留,5图形界面,6重启。在文件/etc/inittab中指定了级别。 查看运行级别 查看文件/etc/inittab 修改运行级别1init 3 如何找回root密码 进入单用户模式,然后修改密码,因为进入单用户模式不需要密码就可以登陆。 进入grub中,按e编辑指令,修改kernel,输入1进入单用户级别,输入b启动,用passwd root修改密码 mkdir 在用户文件夹下创建hello 1mkdir ~/hello 多级目录需要加上-p参数 1mkdir ~/h/h/h rmdir 删除空文件夹 1rmdir ~/hello 删除非空文件夹 1rm -rf touch 创建文件,我常用vim 1touch a.txt b.txt c.txt cp 将a.txt拷贝到用户目录下 1cp a.txt ~/ 将a这个文件夹全部拷贝到用户目录,-r指的是递归 1cp -r a/ ~/ \cp可以强制覆盖不提示,在mac中直接覆盖了,不需要\cp rm 删除a.txt, 1rm a.txt 删除目录a, -r为递归 1rm -r a/ 删除目录a,-f为不提示 可与-r合并为-rf 1rm -r -f a/ mv 将a.txt重命名为b.txt 1mv a.txt b.txt 将a.txt一定到用户目录,如果那有的话,mac不提示是否替换,直接替换,有点不人道了。 1mv a.txt ~/ cat cat是浏览文件 就能看到配置文件了 1cat ~/.vimrc -n 能够显示行号 1cat -n ~/.vimrc more是一个类似于vim的东西,能够把文件分页,用空格看下一行,用enter看下一页,用<C-F>和<C-B>翻页,用=输出行号,用fb也可以翻页。 1cat -n ~/.vimrc | more more 直接完成 1more ~/.vimrc less 基于显示的懒加载方案,打开文件非常快 几乎和more一样,就是开大文件快一点,可以用来打开日志。 1less ~/.vimrc > 和>> >是输出重定向,会覆盖内容,>>是追加,不会覆盖 例子 ls -l 会输出一些内容,这些叫输出,>a.txt会写入a.txt,当然也可以用>>来追加,后面只演示>,不演示>>了 1ls -l > a.txt 例子2 将cat的输出重定向到b.txt中 1cat a.txt > b.txt echo 输出 abcde 1echo "abcde" 将abcde写入a.txt 1echo "abcde" > a.txt cal cal显示日历 将日历输出到a.txt 1cal > a.txt echo 一般用于输出信息, 输出了abc 1echo "abc" 输出环境变量, 1echo $PATH head 查看文件的前几行 看vim配置文件前10行 1head ~/.vimrc 看vim配置文件的前20行,-n表示行数 1head -n 20 ~/.vimrc tail 查看结尾几行,同上 监控a.txt,当他被追加的时候,输出追加的信息 1tail -f a.txt ln 建立软链接(快捷方式) 创建一个用户目录的软链接到当前目录,这个软链接叫mylink 1ln -s ~ mylink history 查看最近执行的指令 mac中不太一样,history 10 表示查看第10条指令到现在的指令 查看最近执行的10条指令 1history 10 执行第10调指令 1!10 date date可以看到时间,后面是格式设置 1date "+%Y-%m-%d 星期%w %H:%M:%S" 设置日期 -s 表示设置时间 1date -s "2021-1-1 1:1:1" cal cal直接查看当前月的日历 看2020n年的日历 1cal 2020 find 在用户文件夹下找名为.vimrc的文件 1find ~ -name .vimrc 在用户文件夹下找名为.vimrc属于用户s的文件 1find ~ -user s -name .vimrc 在用户文件夹下找大于100M的文件 1find ~ -size +100M 在用户文件夹下找小于100M的文件 1find ~ -size -100M 在用户文件夹下找等于100M的文件 1find ~ -size 100M 通配符 1find ~ -name *.txt locate 根据数据库快速定位文件的位置,更新数据库 1updatedb 根据数据库快速定位a.txt 1locate a.txt 管道 将前一个指令的输出传递给后一个指令处理 1| grep 寻找let,并输出行号和行数据,-n表示输出行号,-i表示不区分大小写, 1grep -n -i let ~/.vimrc 通过管道将cat的结果传递给grep,同上 1cat ~/.vimrc | grep -ni let gzip gunzip 将hello.txt压缩为hello.txt.gz 1gzip hello.txt 将hello.txt.gz解压为hello.txt 1gunzip hello.txt.gz zip 与 unzip 把用户目录下的所有文件压缩到res.zip中 1zip -r res.zip ~ 把res.zip解压到~/res中 1unzip -d ~/res res.zip rar 与 unrar 有这东西,很少用 tar -z是打包同时压缩,-c是产生.tar文件,-v是显示详细信息,-f是指定压缩后的文件名 res.tar.gz是打包后的文件,其后为打包文件 1-zcvf res.tar.gz a.txt b.txt 对a文件夹打包 1-zcvf res.tar.gz a/ 解压到当前目录 1-zxvf res.tar.gz 指定解压到~中 1-zxvf res.tar.gz -c ~ netstat netstat可以显示网络状态, script1netstat -a netstat可以显示网卡 script1netstat -i     阅读全文
fightinggg's avatar
fightinggg 3月 27, 2020

redis

    阅读全文
fightinggg's avatar
fightinggg 4月 07, 2020