回炉重造之MySQL(基础)
前言本章主要介绍回炉重造MySQL的基础部分内容,由于这一次想全面认真的学习,因此MySQL作为重点也是会学习下高级部分例如索引的失效以及InnoDB、慢查询日志分析、行锁、间隙锁等内容,在更新MySQL的学习记录当中会持续更新MyBatis的内容,先简单过一遍MySQL,然后还要学习别的框架内容,特别是微服务的部分,因此高级部分会在学习完Java框架以后再补 SQL分类DDL:数据定义语言 CREATE、ALTER、DROP、RENAME、TRUNCATE等 DML:数据操作语言 SELECT、DELETE、UPDATE、INSERT等 DCL:数据控制语言 COMMIT、ROLLBACK、SAVEPOINT、GRANT、REVOKE等 基本SELECT语句查询内容较多,分几个章节学习。 基本SELECT语句123# 基本语法 SELECT 字段1,字段2,... FROM 表名 WHERE 查询条件# 查询表中所有字段SELECT * FROM table_name; 列的别名查询的时候字段部分可以在字段后面添加空格或者使用AS的方式改成别名 123SELECT id,na...
回炉重造之Spring(二)
前言本章主要介绍Spring的AOP编程 静态代理设计模式静态代理:为每一个原始类,手工编写一个代理类(.java .class) 为什么需要代理设计模式? 在Service层中我们把代码分为额外功能和核心功能,核心功能就是具体的业务逻辑以及DAO操作,但额外功能就是可有可无且代码较少的功能例如日志、事务等,这些额外功能书写在Service层会出现一个矛盾: 12站在Service层的调用者(Controller)的角度看:需要在Service层书写额外的功能站在软件设计者的角度来看:Service层的功能可有可无那我就喜欢他没有,当需要的时候再去添加 现实生活中的一个具体案例: 现实生活中房客去租房的时候需要房东作为软件设计者去实现额外功能,因为没有广告看房的话房客就没法看房进而签合同。但是房东又不想一直去打广告,因为房东平时也可能有自己的事,房东只想去签合同,因此我们需要一种改造方案来解决这种矛盾,这种解决方案就是中介或者称为代理。 当出现这种矛盾的时候,把一方需要但另一方不想做的时候交给中间方代理来做,这样的好处不仅可以解耦,而且还可以在Service方想更换新的中介...
使用Hexo+ButterFly主题构建自己的博客
前言因为一些原因本科时候写的博客直接被我清空掉了,虽然写的不好但是也是一种记录,说实话有点可惜,不过现在重新写也不晚,我是做后端但我很喜欢Hexo这种无后端的博客系统,而且我也有用markdown做笔记的习惯,因此使用Hexo来作为我的博客很合适,而BuffterFly这个主题也很符合我的审美, 所以这篇博客记录一下搭建过程(说实话配置项确实很多,不适合Hexo新手) 注册Gitee如果不介意域名较长的问题的话,我们可以使用GiteePage来作为我们博客的存放地点和管理工具,这样我们不仅可以白嫖一个域名,同时还可以不需要购买服务器就可以存储我们博客编译以后的文件。 Gitee官网链接:Gitee 注册好账号以后登录,选择创建仓库,由于Gitee本身给用户的首页是(用户名.gitee.io),因此如果我们创建一个和用户名相同名称的仓库并使用这个仓库作为博客地址,是可以直接用(用户名.giee.io),我的用户名是szy7777,所以仓库名称也是这个,因为我提前注册过了所以下面这里显示的是已经存在这个仓库了,注意创建好仓库以后去仓库设置里面把仓库设置成开源(没办法 Gitee的规定...
使用Nginx转发视频VIP解析并去广告
前言因为想白嫖,不想给爱奇艺交钱,坚决抵制资本家持续涨价的行为,因此打算利用第三方的视频VIP解析网站和nginx来做一次代理,但是众所周知是这些视频VIP解析网站虽然免费但往往都带有一些广告或者不雅信息,因此我们可以利用nginx的sub_filter模块来进行过滤,并且可以将其中的一部分内容替换成自己的,同时为了方便管理我们使用docker来安装nginx。 技术原理 整个访问流程:首先我们作为用户去访问我的网址(实际上是访问到了nginx),然后nginx去访问目标站点(即第三方的视频解析网站),最后将结果通过nginx过滤(过滤广告)后返回给我们用户, 第三方视频解析网站的原理也很简单,那就是利用一个真实的会员账号登录以后得到其Cookie,每次带着Cookie去帮我们给视频网站请求真实的视频地址(一般是视频流),当然为了防止被封一般第三方的视频解析网站会在同一个视频网站准备多个账号分别请求 安装Nginx为了方便管理和维护,我们使用Docker容器技术进行安装(如何在Cetnos上安装Docker请自行谷歌)。 拉取Nginx镜像1docker pull ng...
回炉重造之Java面向对象(一)
面向对象编程面向对象是将所有的具体类抽象的过程,例如猫和狗可以抽象成动物类,再比如猫1和猫2可以抽象成猫类,这样的好处是避免原来面向过程大量的代码冗余,提高数据管理效率。 类与对象由于原有的定义方式不满足新的需求,因此推出了类和对象的概念,一个类可以有很多个对象,一个对象主要包含属性(成员变量)和行为。属性如果不赋值会有默认值,规则于数组类型相同。对象名称其实是一种引用,因此可以让两个对象指向同一个地址空间。 1234567891011class Cat{ String catName; int age; String color;}Cat cat1 = new Cat();cat1.name = "小白";//对象在内存的存储分析://首先new会在栈中开辟一个空间用于存放cat变量,然后指向堆内的一个连续地址,//堆内的第一个地址和第三个地址会指向方法区常量池的两个地址用于存放字符串,如果有方法也会直接放到方法区当中//int类型因为是基本数据类型会直接放到堆里面。 成员方法对于类来说,成员方法就是这个类需要进行的动...
回炉重造之Spring(一)
前言这篇文章主要记录Spring重新学习的过程,不是手撕源码的版本因此不涉及到具体的三级缓存结构、bean的具体创建过程等深度问题,这些问题放在重新学习完微服务以后再学习,重新学习会涉及到原理的部分。 Spring概述Spring框架是一个开源的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器(container)。Spring有两个核心:IOC和AOP。IOC:控制反转,即把创建对象的过程交给Spring进行管理AOP:面向切面,在不修改源代码的情况下进行功能增强 SpringFramework5的6大部分: Spring IOC工厂 Spring AOP编程 持久层集成 事务处理 MVC框架集成 注解编程 设计模式之工厂模式面向对象设计中,解决特定问题的时候需要一些特殊的解决方案,例如一个遥控器既可以开空调又可以开电视就是观察者模式的案例。狭义上的设计模式主要是GOF四个大师提出的23种设计模式,常用的主要是工厂、适配器、装饰器、代理、模板等等。 普通模式下创建对象是使用new的方式,例如银行ATM柜台对象需要依赖一个按钮对象,如果按钮对象发生了改变(例...
回炉重造之Java基础语法
前言这篇文章主要记录Java回炉重造的基础阶段的学习。 Java基础语法基本数据类型 java主要分为基本数据类型和引用数据类型,其中基本数据类型分为数值型(整数和浮点数)、字符型、布尔型,引用数据类型分为类、接口、数组 基本数据类型 占用的字节数 数据范围 byte 1 -128 ~ 127 short 2 -32768 ~ 32767 int 4 -2147483648 ~ 2147483647 long 8 -2^63 ~ 2^63-1 float 4 -3.403E38 ~ 3.403E38 double 8 -1.798e308 ~ 1.798E308 char 2 - 整型Java中整型默认为int型,声明long型常量需要在后面加上”l”或者”L”,变量一般声明为int型,除非不足才用long以节省资源。 123int n1 = 1;//四个字节 正确的int n2= 1L;// 错误写法,从long到int会丢失数据long n3 = 1L;//正确写法 定义long 浮点数由于二进制转换的问题,计算机中的浮点数均为近似数,...






