第一,版本控制;
第二,作为开源代码库,
第三,用于开源项目的维护
2.Spring中获取对象实例的实现方式是?
3.spring中的Bean自动装配支持哪几种?
4.springbean的初始化和销毁的方法是?
5.Spring事务?
6.Spring中的bean的作用域是?
7.项目中用什么做压力测试的工具?
8.什么中间件可以实现mysql的读写分离?
9.项目中使用redis时,redis的持久化策略有哪些?
10.项目中使用Nginx实现负载均衡集群时,负载均衡的策略有哪些?
11.flume的工作机制是什么?
12.关于Hbase行键列族的概念,物理模型,标的设计原则是什么?
13.Hadoop的启动进程有哪些,运行模式有哪些?
14.Hbase的特点是什么?
15.Spark和Flink的了解?
16.Hive与关系型数据库的关系?
17.mllib支持的算法有哪些?
18.ajax的作用和实现原理是什么?
19.描述spring创建对象的个数?
20.spring创建对象的原理?
21.如果页面想更改某个属性的值,在不动后台代码的情况下如何debug调试运行?
22.在多线程中sleep方法和wait方法的区别?
23.谈谈对JVM的理解,并描述JVM加载class文件的原理机制?
24.讲下mybatis缓存?
25.mybatis动态SQL是做什么的?都有哪些动态SQL?简单描述动态SQL的执行原理?
26.#{}和${}的区别是什么?
27.拦截器和过滤器的区别?
29.tomcat容器是如何创建servlet类实例?用的原理是什么?
30.如何看待MapReduce的map端的shuffle?
单例模式的三个特点:
public class Singleton {
private Singleton() {
}
private static Singleton instance = new Singleton();
public Singleton getInstance() {
return instance;
}
}
public class Singleton {
private Singleton() {
}
private static Singleton singleton;
private static synchronized Singleton getInstance() {
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
}
APP/ido/xu/:在此文件夹下常见备份文件
-mtime+7:七天前的备份文件
isTester.tar. :名称为它的前缀的备份文件
-exec rm -rf :执行删除操作
设计模式
工厂设计模式:主要解决的是接口选择的问题
使用场景:
1.日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。
2.数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能变化时。
3.设计一个连接服务器的框架,需要三个协议,POP,IMAP,HTTP,可以把这三个作为产品类,共同实现一个接口。
单例模式:一个全局使用的类频繁地创建与销毁。
使用场景:
1.要求生产唯一序列号。
2.web中的计数器,不要每次刷新都在数据库加一次,用单例先缓存起来。
3.创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。
责任链模式:在处理消息的时候过滤很多道。
使用场景:
1.有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定
2.在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。
3.可动态指定一组对象处理请求。
事务的ACID是指
用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引);
复合索引是有顺序的,复合索引遵循的是向左原则,只要在查询的时候,是按照复合索引从左到右的顺序依次查询,,不管查询条件是否完全满足所有的符合索引的列,都可以使用部分的复合索引。
**1. XSS攻击:**跨站脚本攻击,是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。XSS是指恶意攻击者利用网站没有对用户1提交的数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码,从而盗取用户资料,利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
2. SQL注入攻击:就是输入域页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用构造动态SQL语句,或者作为存储过程的输入参数,这类表单特别容易受到SQL注入的攻击。
3. CSRF攻击: 跨站点请求伪造,攻击者盗用你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至购买商品,虚拟货币转账等。
(Tips:encode和decode的算法是没有具体要求的,您只需确保一个长的URL可被encode成一个短的URL,较短的URL可以被decode为长的URL)
SELECT student.sid,student.sname from student,
(SELECT * from sc where cid=(SELECT cid from course where `name`='语文')) as Chinese,
(SELECT * from sc where cid=(SELECT cid from course where `name`='数学')) as Math
where student.sid=Chinese.sid
and Chinese.sid=Math.sid
and Chinese.score<Math.score;
(1)jps
jps -q 只输出LVMID
jps -m 启动时main()的参数
jps -l 输出主类全名
jps -v 输出虚拟机进程启动时的参数
(2)jstat
jstat -class LVMID 250 20 监视类装载卸载等信息
jstat -gc LVMID 250 20 监视堆状况信息
jstat -gccapacity LVMID 250 20 监视堆状况信息,主要是各个区域使用到的最大最小空间
jstat -gcutil LVMID 250 20 监视堆状况信息,主要是已使用的百分比
jstat -gccause LVMID 250 20 和-gcutil差不多,只不过会额外输出上一次GC产生的原因
jstat -gcnew LVMID 250 20 监视新生代
jstat -gcnewcapacity LVMID 250 20 监视堆状况信息,主要是新生代各个区域使用到的最大最小空间
jstat -gcold LVMID 250 20 监视老年代
jstat -gcoldcapacity LVMID 250 20 监视老年代,主要是各个区域使用到的最大最小空间
jstat -compiler LVMID 250 20 JIT编译过的方法
jstat -printcompilation LVMID 250 20 JIT编译过的方法
(3)jinfo
jinfo LVMID 打印配置信息
(4)jmap堆信息
jmap -dump:live,format=b,file=heap.bin 29494
(5)jhat(分析jmap生成的文件)
jhat heap.bin
http://localhost:7000/
(6)jstack
jstack -F LVMID 打印线程信息
jstack -l LVMID 除了堆栈外,显示关于锁的附加信息
jstack -m LVMID 如果调用本地方法的话,可以显示C/C++的堆栈
(7)jconsole
JDK自带bin目录下,这个工具很简单,随便点点就可以知道起功能了
(8)jvisualvm
visualvm功能比较强大,插件也比较多,值得好好研究。
catalina.sh
df-h
B+Tree