考公上岸笔记
言语判断
排序
.NET从零开始
JAVA与C#:https://zhuanlan.zhihu.com/p/25106669
转义符转义符指的就是一个\+一个特殊的字符,组成了一个具有特殊意义的字符。
\n:表示换行
\":表示一个英文半角的双引号
\t:表示一个tab键的空格
\b:表示一个退格键,放到字符串的两边没有效果。
@符号
1、取消\在字符串中的转义作用,使其单纯的表示为一个\
2、将字符串按照编辑的原格式输出
类型转换Convert.ToInt32("sda122");
int.Parse("123asd");
int.TryParse("123",out 变量);//返回boolean,尝试将字符串转为int,转换成功后赋值给变量,返回true;
产生随机数Random r = new Random();
int rNumber = r.Next(1,10);
三种特殊参数
属性对字段(field)的二次封装处理。
1234567891011//普通属性private string _name;public string Name{ ...
Java八股
关于ThreadLocal?在每一个线程Thread对象中,都维护了一个ThreadLocalMap对象,ThreadLocal的生命周期和线程相同。ThreadLocalMap中又维护了一个k v 形式的Entry对象,key指向了当前ThreadLocal对象,value就是在ThreadLocal中存储的值。this.threadLocalName.set(要存的值),this.get(threadLocalName)。
为什么会出现内存泄露?正常来说,ThreadLocal会随线程结束而销毁,然而在线程池等场景下线程会一直复用。在Entry中的key存储的是ThreadLocal的弱引用。所以,在当前线程正在运行的时候,发生GC时,在ThreadLocal对象没有被其它地方强引用时,key指向ThreadLocal的虚引用就会立即断开(被垃圾回收掉),这时,就会出现ThreadLocalMap中存在key为null的Entry,只要当前线程不结束,该ThreadLocalMap对象就会一直存在,永远无法回收。
Entry对象的key为什么要使用弱引用,有什么好处?其实,Thre ...
JUC学习笔记
虚假唤醒当一个条件满足时,很多线程都被唤醒了,但是只有其中部分是有用的唤醒,其它的唤醒都是无用功1.比如说买货,如果商品本来没有货物,突然进了一件商品,这是所有的线程都被唤醒了,但是只能一个人买,所以其他人都是假唤醒,获取不到对象的锁
解决:使用while替换if,即使唤醒判断之后,下次被唤醒仍会进行条件判断
CopyOnWrite写入时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种通用优化策略。其核心思想是,如果有多个调用者(Callers)同时访问相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者修改资源内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。此做法主要的优点是如果调用者没有修改资源,就不会有副本(private copy)被创建,因此多个调用者只是读取操作时可以共享同一份资源。
通俗易懂的讲,写入时复制技术就是不同进程在访问同一资源的时候,只有更新操作,才会去复制一 ...
RabbitMQ操作手册
部分参考消息队列-RabbitMQ篇章- 专栏 -KuangStudy
安装先下好erlang和rabbitmq安装包,对应目录下执行:
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
yum install socat -y
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
开机启动chkconfig rabbitmq-server on
启动服务/sbin/service rabbitmq-server start
查看状态/sbin/service rabbitmq-server status
开启网页插件rabbitmq-plugins enable rabbitmq_management
创建网络插件的用户:
rabbitmqctl add_user admin 123
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" " ...
Docker使用手册
下载DockerInstall Docker Engine on CentOS | Docker Documentation
基本操作启动dockersystemctl start docker显示docker的版本信息docker version显示docker的系统信息,包括镜像和容器的数量docker info帮助命令docker 命令 --help查看所有本地主机上的镜像docker images搜索镜像docker search下载镜像docker pull删除镜像docker rmi -f 镜像id新建容器并启动docker run 镜像id列出所有运行的容器docker ps容器id 删除指定容器docker rm删除指定的容器(这里示范删除全部容器)docker rm -f $(docker ps -aq)启动容器docker start 容器id重启容器docker restart容器id停止当前正在运行的容器docker stop 容器id强制停止当前容docker kill 容器id查看容器中的进程信息docker top 容器id
进入容器终端docker ex ...
Redis指令手册
清除当前数据库 (默认16个数据库,0—15)flushdb
清除全部数据库的内容 FLUSHALL
查看所有的keykeys *
设置key过期时间EXPIRE name 10
查看当前key的剩余时间ttl name
查看当前key的一个类型type name
判断某一个key是否存在EXISTS key1
追加字符串,如果当前key不存在,就相当于setkeyAPPEND key1 "hello"
可以设置步长,指定增量INCRBY views 10
截取字符串 [0,3]GETRANGE key1 0 3
设置key3 的值为 hello,30秒后过期setex key3 30 "hello"
如果mykey 不存在,创建mykey;如果mykey存在,创建失败setnx mykey "redis"
同时设置多个值mset k1 v1 k2 v2 k3 v3
同时获取多个值mget k1 k2 k3
以上同时操作存在原子性,同时成功或同时失败。
设置一个user:1 对象 值为 json字符来保存一个对象set ...
阿里云的这群疯子
电影里才有疯子。麦克墨菲在疯人院里带领一群精神病人揭竿而起,怼天怼地;饿了三天的黑皮为了抢一口面包被店主追上高架桥,末路狂奔;杰克和泰勒在午夜的搏击俱乐部里挥拳相向,鲜血淋漓。屏幕对面,我们把爆米花塞进嘴里,哭成狗或者笑成狗。电影散场,各自回家。
真正的疯子,从来不看电影。
他们把别人的目光变成聚光灯,把自己的生活变成真人秀,手提钢刀用肉身串演一个浓重的角色。他们的人生结局无外乎两种:黄袍加身,或者玉石俱焚。
阿里云这群疯子,就用56度的荷尔蒙,在横跨十年的悠长画布上涂抹了这样一个故事。
一、一个大问题
2008年9月,王坚加入阿里巴巴。马云把他从微软亚洲研究院常务副院长的位置挖来,是因为阿里巴巴面临一个重大的危机——公司的“脑力”快不够用了。
阿里巴巴的“脑力”,其实就是“计算力”。几亿用户无论是在淘宝剁手,还是支付宝上转账,这一切都要靠巨大的计算力来思考、记忆。
恰恰和人一样:
如果这个“大脑”记忆被填满,就没办法储存新的商品和交易记录。
如果这个“大脑”思维速度跟不上,就没有办法让用户及时下单、付款。
2008年,中国虽然已经加入 WTO,还把国际友人请来热热闹闹地开了一次奥 ...
Linux常用命令
基本目录操作
ls: 列出目录
cd:切换目录
cd ~: 跳转到当前用户的home目录
cd- : 返回进入此目录之前所在目录
pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
cp: 复制文件或目录
rm: 移除文件或目录
mv: 移动文件与目录,或修改文件与目录的名称
ls -lrt: 查看文件修改时间
查看文件
cat a.txt //查看文件最后一屏内容
less a.txt //PgUp向上翻页,PgDn向下翻页,”q”退出查看
more a.txt //显示百分比,回车查看下一行,空格查看下一页,”q”退出查看
tail -100 a.txt //查看文件的后100行,”Ctrl+C”退出查看
find -name “*.txt” //查找文件
grep -rl 关键字* //查找文件中的关键字
cat liu.txt >> 123 //把前面文件的内容追加到后面的目录上
端口操作
firewall-cmd --zone=public - ...
java项目打包的两个小问题
maven下载爆红无法创建springboot项目,无依赖冲突却爆红一片,多半是maven寄了。
重装maven:http://t.csdn.cn/YflB4
并在idea路径 Settings | Build, Execution, Deployment | Build Tools | Maven 中设置maven及仓库路径。
打完包提示 jar包中没有主清单属性检查jar包同目录下有没有jar包名.original文件,若果没有,检查插件依赖是否完整。
默认配置下插件依赖中存在
1<skip>true</skip>
删掉即可
提示端口被占用1Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
解决方法:
1.netstat -ano | findstr 8080 检查端口占用情况
2.taskkill /F /PID 13804 杀掉占用的进程。
解决。