- 博客(17)
- 收藏
- 关注
原创 HTTP&HTTPS
HTTP请求过程: HTTP通信中的数据都是明文传输的HTTPS请求过程: HTTPS=HTTP+SSL/TSL,为了保证数据传输过程中的安全性,采用对数据加密的方式,加密分为对称加密和非对称加密,这一系列的加密解密过程都是由SSL/TSL来完成的,  ...
2019-04-19 09:22:31
1962
原创 【Mysql】索引原理
一、索引的分类 普通索引index 唯一索引:主键索引primary key、唯一索引unique 联合索引:联合主键索引primary key(id, name)、联合唯一索引unique(id, name)、联合普通索引index(id, name)...
2019-03-22 09:30:30
290
原创 【Mysql】InnoDB默认事务级别Repeatable Read & 可重复读 & 幻读
一、事务的特性ACID A原子性:事务包含的操作要么全部成功,要么全部失败回滚 C一致性:事务必须使数据库从一个一致的状态变到另外一个一致的状态(满足完整性约束) I隔离性:多个事务之间不互相干扰 D持久性:...
2019-03-22 09:08:32
527
原创 【Mysql】记一次Mysql优化经历
这两天在做新项目的数据库的设计,建立数据表的时候使用了Navicat,直接导出sql脚本给老大发过去了,然后问题就来了,平时没怎么注意的问题,老大问我的时候全都答不上来。这里将这些问题记录下来,加深自己的印象。 1、int和int(n) 在mysql中in...
2019-03-20 12:26:50
381
原创 【Java基础】线程池
创建一个线程需要操作系统的参与,也即从用户态陷入内核态,这一过程的开销较大,为此采用线程池的方式,将创建出来的线程缓存起来,减少频繁的创建线程带来的开销。这就是下面要说的线程池了,我们可以通过Java的工具类Executors获得缓存线程池、固定线程池等等,也可以通过ThreadPoolExector传入必要的参数自行构造线程池。以下分别说明。1....
2019-03-06 09:06:13
294
原创 【Spring MVC源码】DispatcherServlet加载
3.1、DispatcherServlet的加载/创建/初始化3.1.1、DispatcherServlet加载static { try { // 策略文件:DispatcherServlet同一目录下的DispatcherServlet.properties ClassPathResource resource = new ClassPathResource(DEFA...
2019-02-22 10:25:13
388
原创 【Spring MVC源码】Spring IOC容器加载
    web.xml文件中配置了ContextLoaderListener监视器,在Web项目启动的时候由Tomcat创建ContextLoaderListener的实例。<listener> <listener-class>org.springfr
2019-02-21 18:42:11
339
原创 【Spring MVC源码】SpringMVC项目与Tomcat
一、SpringMVC项目与Tomcat1.1、Tomcat1.1.1、Tomcat服务器结构解析 <!-- 代表整个Tomcat服务器 --><!-- 关闭Server的指令为SHUTDOWN,接收shutdown指令的端口为8006 --><Server port="8006" shutdown="SHUT...
2019-02-21 18:36:14
392
原创 【Docker学习】Docker Hub + GitHub实现镜像自动构建
近期学习Docker的相关知识,尝试了一下Docker Hub + GitHub自动构建镜像,在此记录一下过程。将GitHub账号关联到Docker Hub账号 设置位置 下滑到Linked Accounts(未设置),点击Connect&n...
2019-02-18 18:53:22
1664
原创 【Java基础】关于NIO的理解
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;最近看《Redis设计与实现》的文件事件,回顾了一下I/O多路复用的知识,又接着看了一下之前使用Java NIO的代码,突然有了一点新的理解,在此简单记录一下,但这里并不介绍I/O多路复用,NIO相关的基础知识。关于NIO的相关知识使用等,有需要可参考https://segmentfault.com/a/1190000006824196(直接粘了地址...
2019-02-15 17:22:01
248
原创 【Java基础】try-catch-finally执行流程
一、函数完全由try-catch-finally构成public void tryCatch{ try { //try statement 1 //try statement 2 } catch(ArithmeticException ex) { //catch ArithmeticException ...
2019-02-13 13:29:46
1439
原创 【JVM学习笔记】如何确定被调用方法的版本
在字节码层面,Java方法的调用设计到如下几个字节码:invokestatic #index调用静态方法,被调用方法的版本可在类加载解析阶段确定,并将符号引用转换为直接引用invokespecial #index调用实例构造器,私有方法,父类方法,被调用方法的版本可在类加载解析阶段确定,并将符号引用转换为直接引用invokevirtual #index调用final方法的版本确定时期...
2019-01-31 16:18:11
326
原创 【JVM学习笔记】图解Java Synchronized执行过程
- Synchronized用来给对象加锁,一段简单的示例代码:public class SynchronizedDemo { //实例方法,同步方法,加锁对象是当前实例 public synchronized void lockInstance() { System.out.println(&quot;Instance&quot;); } public void lockThis() {...
2019-01-31 10:42:49
542
1
原创 Java中使用getResource和getResourceAsStream获取文件的路径问题
Java中使用getResource和getResourceAsStream获取文件的路径问题Class.getResource 和 Class.getResourceAsStream使用方式:getResource(name) 和 getResourceAsStream(name)如果 name 以“/”开头,代表绝对路径,从项目根目录开始查找如果 name 不以&amp;amp;quot;/&amp;amp;quot;开头,代表相对...
2018-10-12 17:23:08
14895
1
原创 【Java基础】Java多线程(1)线程基础
假设我们想要编写一个程序从1加到100,那很简单写一个for循环就可以了,那范围再大些,比如从1加到1亿、10亿……呢?或许我们也可以采用循环来完成,但十分庞大的数字,让计算机来处理也需要一段时间。我们有没有其他办法呢?答案当然是有了,我们可以将1到1亿的数字划分为多个片段,开启多个线程让它们分别处理其中的一段,然后再将这些线程的处理结果加起来。这便是采用多线程来解决问题了。(或许这并不是解决这个...
2018-02-11 13:39:56
335
原创 【Java基础】Java输入输出流(1)InputStream总结
FileInputStream、ByteArrayInputStream这些从字面意思就比较好理解了,但是像BufferedInpitStream、DataInputStream这种包装流理解起来就不太容易了,经常看到的代码是下面这样的,一个套着一个,看起来很头大。FileInputStream fileInputStream = new FileInputStream(&quot;test.txt...
2018-02-09 13:32:20
487
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅