Docker
Docker概述Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker为什么出现一款产品:开发–上线 两套环境,配置环境非常麻烦。
传统:开发jar,运维部署上线
现在:开发打包部署上线,一套流程做完!
Docker的思想来自集装箱:打包隔离,每个箱子是相互隔离的!
Docker的历史2010年,几个年轻人,在美国成立了一家公司dotCloud,做一些 pass 的云计算服务,LXC有关的容器技术。
2013年,Docker开源,于是越来越多的人发现它的优点!
2014年4月9日,Docker1.0发布!
Docker能干嘛?虚拟化技术
虚拟机技术缺点:
1、资源占用多
2、冗余步骤多
3、启动慢
容器化技术
比较Docker和虚拟机技术的不同:
传统虚拟机虚拟处一个硬件,运行一个完整的操作系统,在系统上安装和运行软件
容器内的应用直接运行在宿主主机的内容,容器是没有自己的内核的,也没有虚拟出硬件,所 ...
Git
版本控制
什么是版本控制
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
实现跨区域多人协同开发
追踪和记载一个或者多个文件的历史记录
组织和保护你的源代码和文档
统计工作量
并行开发、提高开发效率
跟踪记录整个软件的开发过程
减轻开发人员的负担,节省时间,同时降低人为错误
简单说就是用于管理多人协同开发项目的技术。
没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
无论是工作还是学习,或者是自己做笔记,都经历过这样一个阶段!我们就迫切需要一个版本控制工具!
多人开发就必须要使用版本控制!
常见的版本控制工具
主流的版本控制器有如下这些:
Git
SVN(Subversion)
CVS(Concurrent Versions System)
VSS(Micorosoft Visual Sour ...
Linux
本教程基于CentOS 7学习方式
认识Linux
基本的命令(文件操作、目录管理、文件属性、Vim编辑器、账号管理、磁盘管理。。。。)
软件的安装和部署(Java、Tomcat)
入门概述
Hexo升级教程
1234567891011121314151617npm install hexo-cli -g #全局升级hexo-clinpm install -g npm # 升级 npmnpm cache clean -f # 清除 npm 缓存===更新 hexo: 进入 blog 目录,执行如下命令=== # 更新 package.json 中的 hexo 及个插件版本npm install -g npm-check # 检查之前安装的插件,都有哪些是可以升级的 npm install -g npm-upgrade # 升级系统中的插件npm-checknpm-upgrade# 更新 hexo 及所有插件npm update -g# 确认 hexo 已经更新hexo -v
Mysql
初识MySQL操作数据库MySQL数据管理DQL查询数据(重点)DQL指定查询字段
distinct(去重)
where条件子句
模糊查询:比较运算符
联表查询
JOIN 对比
分页和排序MySQL函数常用函数聚合函数
函数名称
描述
COUNT()
SUM()
AVG()
MAX()
MIN()
。。。
JVM
JVM常见面试题
请谈谈对JVM的理解?Java8虚拟机和之前的变化?
什么事OOM,什么事栈溢出StackOverflow?怎么分析?
JVM的常用调优参数有哪些?
内存快照如何抓取,怎么分析Dump文件?
谈谈JVM中,类加载器?
JVM基础JVM的位置
JVM的体系结构
类加载器作用:加载Class文件
BootstrapClassLoader(启动类(根)加载器)
c++编写,加载java核心库 java.*,构造ExtClassLoader和AppClassLoader。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作
ExtClassLoader(扩展类加载器)
java编写,加载扩展库,如classpath中的jre ,javax.*或者java.ext.dir 指定位置中的类,开发者可以直接使用标准扩展类加载器。
AppClassLoader(应用程序(系统类)加载器)
java编写,加载程序所在的目录,如user.dir所在的位置的class
CustomClassLoader(用 ...
拦截器
拦截器SSM整合1、添加jar包
2、配置文件(spring-config.xml、spring-mvc.xml、jdbc.propertoes、log4j.properties)
3、各层(pojo、mapper、service、controller)
4、页面
代理
代理模式把自己要做的事委托给别人完成
静态代理:只能代理一件事情
动态代理:代理多件事情
静态代理
真实对象和代理对象都要实现同一个接口
代理对象要代理真实角色
好处:
代理对象可以做很多真实对象做不了的事情
真实对象专注做自己的事情
123456789101112131415161718192021222324252627282930313233343536373839public class Test07 { public static void main(String[] args) { WeddingCompany weddingCompany = new WeddingCompany(new You()); weddingCompany.happyMarry(); }}interface Marry { void happyMarry();}class You implements Marry { @Override public vo ...
Spring
1、spring入门
2、springIOC
3、Setter和构造器注入(DI)
4、面向切面编程/面向抽象编程
5、Bean的作用域与Bean的生命周期
6、内置bean配置之数据源
7、基于注解的IOC配置
8、代理模式 – 静态代理、动态代理
9、springAOP入门
10、springAOP事务管理
11、spring整合mybatis
IOC【Inversion Of Control】控制反转:把本来自己控制的事件,交给spring管理,交出控制权
DI【Dependency InJection】依赖注入:
setter注入和构造器注入,来管理(IOC获取的控制权)
自动装配:autowire(bean标签)、default-autowire(beans标签):其值有byName、byType、constructor
懒加载(延迟加载):在bean标签中书写lazy-init,其值有true-延迟加载,false(默认)spring启动时立即加载
bean【标签】的生命周期和作用域生命周期:init-method:对象初始化之后执行的指定方法
destr ...