测试文本:
1. 一面: HashMap原理, JAVA内存模型,排序算法,JAVA多线程实现,JAVA线程和进程区别
2. 一面: Spring IOC Spring AOP是干嘛的 spring IOC 用于控制反转,使得细节依赖于抽象
3. 一面: HashMap,put和get同时操作 treemap实现,红黑树 concurrenthashmap 聚簇索引和非聚簇索引(出现次数少)计算机的使用可以加速人类的计算速度
4. 一面: HashMap源码,线程有几种状态,怎么互相转化,HTTP状态吗,Session,Cookie区别,排序算法,事务的ACID,索引的实现机制(B+树),优缺点
5. 一面: Post和get区别,http缓存,DNS解析,排序
6. 一面: List和set区别,linklist和arraylist区别,应用场景,hashmap多线程concurrenthashmap 怎么实现,jam参数,gc参数,lock和synchronized,http 302 https具体数据传输流程
7. 一面: Map的Key要求,HashMap实现原理,JDK1.8 HashMap改动(引入红黑树)
8. 一面: Spring MVC底层实现,进程和线程区别,哈希如何解决冲突,数组和链表在内存中表型形式,平衡二叉树,红黑树,HTTP/HTTPS过程 OSI 7层模型 TCP三次握手
9. 一面: TCP连接断开过程,为什么要三次握手 数据库隔离级别,序列化级别有什么优缺点 内存泄漏如何检测,介绍堆和栈
10 一面: Object类方法,error/exception/runtime exception区别,JVM垃圾回收,linux查看日志文件,*9数据库四大特性,事务隔离级别,幻读 ClassLoader
11 一面: SpringMVC和Struts比较,为什么要用spring有什么优点,启动线程方式,线程池有几种,干什么用。JVM加载过程,JAVA内存模型,排序
12 一面: 三次握手,超时重传。TCP保证可靠性,拥塞控制,滑动窗口协议 由http升级为https需要哪些操作 http 2 了解过吗 hashCode与equals的区别联系。自动拆装箱 线程同步,并发操作怎么控制
grep命令
选项十分多但是实际常用的大概有如下:
-
-c 或 --count
计数符合要求的行数并输出
-
-i 或 --ignore-case
忽略大小写的匹配
-
-n
打印行号,在使用-c -l -L -q 选项时无效
-
-A num
打印匹配的行以及下面的num行
-
-B num
和-A num
选项相反
-
-C
打印匹配的行以及上下num行等价于-A num -B num
-
-v
反选,打印不匹配的行
正则表达式
测试文本:
root:this is my account
rut:this is my account too
kent:this is kent's account
rooooot:this is a shadow of root
rrrrot:使用option+F然后加数字在左右方向键可以移动光标相应行数或字符数
3141592653
abcdefgh
abcdefgh
abcdefgh
3141592653
3141592653
- 数字的匹配
[0-9]
: 匹配0-9之间的数字
[13]
: 匹配含有1或者3的内容
如果在[]
需要使用-
需要加上反斜杠\
- 字母的匹配
[a-zA-Z]
: 匹配大小写字母
^
: 表示匹配除了[]
之外字符的字符.如可以使用[^a-zA-Z]
表示匹配除了大小写字母的内容.
注意这里的^
是只要一行中有一个非字母就会匹配并输出
- 特殊字符的意义
^
: 在[]
之外的^
表示匹配行首
$
: 表示匹配行尾
.
: 匹配除了换行符的任一个字符
*
: 匹配零个或多个前面的字符.这和通配符有所区别.
注意,.*
可以匹配零个或者多个任一个字符,包括空行
{}
: 指定匹配的次数.常需要结合转义字符使用