自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (2)
  • 收藏
  • 关注

原创 静态代理模型

一、概念代理分为静态代理和动态代理。静态代理是在不改变源码的基础上增加新的功能,多线程实现Runnable接口就是使用到了静态代理。代理可以理解为我要结婚,这时候需要找到婚庆公司帮忙,这时候婚前公司相当于一个代理。二、实现静态代理需要两个类去同时实现一个接口,代理对象要代理真实对象。下面代码里面的weddingCompany类就是一个代理类/** * 静态代理 */public class StaticProxy { public static void main(S..

2022-05-16 21:25:36 146

原创 并发及并发代码复现

一、并发概念及问题1.概念并发:并发是指在一段时间内同时做多个事情,比如洗衣服和打扫卫生。并行:并行是指同一时刻做多个事情,比如吃饭同时看手机在操作系统中并发是在单核处理器中同时处理多个任务,指逻辑上的同时;并行是多核处理器同时处理多个任务,指物理上的同时。2.可能出现问题线程并发可能会导致多个线程操作同一资源,这时就会出现数据混乱,导致安全问题。常见的比如抢票。解决办法需要使用到线程同步。二、抢票并发代码实现简述通过简单模拟抢票流程,复现并发问题1.抢票代码

2022-05-10 23:20:41 264

原创 线程概念及实现方式

一、线程概念1.多任务多任务是指用户可以在同一时间内运行多个应用程序,每一个应用程序被称作一个任务。2.多线程多线程是指计算机可以在同一时间执行多于一个线程,从而提高性能。3.线程线程是操作系统能够进行运行运算调度的最小单位,一条线程指的是进程中一个单一顺序的控制流。例如main函数就是一个线程。4.进程进程是执行程序的一次执行过程,是由系统分配的资源单位。一个进程里面可以包含多个线程。二、实现线程的三种方式简述Thread类是java.lang.Object类下

2022-05-10 22:55:05 292

原创 算法-数组排序(java实现)

一、冒泡排序public class ArraySortStudy { public static void main(String[] args) { int arr[] = {1, 8, 7, 4}; //冒泡排序算法 for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length; j++) { if(arr[i]<ar

2021-07-13 21:48:55 148

原创 spring源码学习(一)

一、spring容器基本用法示例创建study2_1.class文件创建study2_1.xml文件,对创建的类进行配置创建study.class对上面的文件进行测试二、上述结果实现过程分析1.通过configReader读取及验证配置文件,并将其放置到内存中2.通过reflectionUtil获取配置文件中的配置并进行反射实例化3.通过App完成整个逻辑串联获取实例化对象并获取到其内部的参数三、spring核心类spring源码中实现上述操作的是spring

2021-06-28 16:59:30 126

原创 IDEA导入spring源码并运行

一、下载Spring源码spring源码在github上面开源,下载地址为https://github.com/spring-projects/spring-framework.git若安装git可使用git拉取代码,若没有可下载zip压缩包在本地解压二、安装gradle并配置系统环境变量gradle:gradle是一个基于JVM的构建工具,是一款灵活的构建工具,支持maven,lvy仓库,支持传递性依赖管理,而不需要远程仓库或者pom.xml和ivy.xml配置文件,基于groovy,

2021-06-27 18:11:32 640

原创 MYSQL经典50题及答案

建表语句:--学生表CREATETABLE`Student`(`s_id` VARCHAR(20),`s_name` VARCHAR(20) NOTNULLDEFAULT'',`s_birth` VARCHAR(20) NOTNULLDEFAULT'',`s_sex` VARCHAR(10) NOTNULLDEFAULT'',PRIMARYKEY(`s_id`));--课程表CREATETABLE`Course`(`c_id` VAR...

2021-06-24 12:09:50 431

原创 SQL知识进阶(二)

建表语句、插入数据SQL:CREATE TABLE DistrictProducts(district VARCHAR(16) NOT NULL,name VARCHAR(16) NOT NULL,price INTEGER NOT NULL,PRIMARY KEY(district, name, price));INSERT INTO DistrictProducts VALUES('东北', '橘子', 100);INSERT INTO District...

2021-06-22 15:39:07 163

原创 SQL进阶练习题

建表语句:CREATE TABLE Greatests(key CHAR(1) PRIMARY KEY,x INTEGER NOT NULL,y INTEGER NOT NULL,z INTEGER NOT NULL);

2021-06-21 16:20:03 154

原创 Spring事务传播机制

一、事务注:Spring原理是不存在事务之说的,事务是对于数据库来说的。例如:mysql,Oracle等。事务常见名词:脏读:指事务在处理过程当中读取到了另外事务未提交的数据。不可重复读:指在一个事务范围内,多次查询某个数据时得到的结果不相同。幻读:指事务在对某行数据更改时,同时别的事务插入了相同的值,这样再读取数据时会产生数据没有更改的错觉。事务隔离级别:Serializable(串行化):代价最高且最可靠的隔离级别,当出现读写锁时。后面的事务必须要等到上个事务执行完成。Repeat

2021-05-25 23:27:55 253

原创 java面试题总结(一)

注解概念:Annotation是java提供的一种对元程序元素关联的信息和数据的途径和方法。注解是一个接口,程序可以通过反射来获取指定程序中元素的Annotation对象,然后通过Annotation对象来获取注解中的元数据信息。4种标准元注解:元注解作用是负责注解其他注解。java 5.0定义了4个标准的meta-annotation类型,它们被用来提供对其他annotation类型说明。@Target说明了Annotation所修饰的对象范围:Annotation可被用于packages

2021-03-22 19:17:27 316 1

原创 面试总结(二)

1.MySQL存储引擎InnoDB和MylSAMInnoDB引擎是(5.5以后默认使用)特点:灾难恢复性好 支持事务 使用行级锁 支持外键关联 支持热备份对于InnoDB引擎中的表其数据的物理组织形势是簇表,主键索引和数据是在一起的,数据按主键的顺序物理分布,实现了缓冲管理,不仅能缓冲索引也能缓冲数据,并且可以自动创建散列索引加快数据的获取,支持热备份。MyISAM索引特点:不支持事务 使用表级锁,并发性差 主机宕机后,MyISAM表容易损坏,灾难恢复性不佳 可以配合...

2021-03-18 11:15:45 79

原创 面试总结(-)

1.在展开项目开发时要详细的了解整个项目的各个流程及每个模块实现的功能,以及该项目的赢利点2.linux系统创建新文件:touch test创建一个test的空文件;mkdir -p test创建一个test文件夹,-p表示如果该文件夹不存在则创建一个新的3.linux目录:/bin:存放常使用命令;/boot:存放启动系统常用的核心文件,包括一些连接文件和镜像文件;/dev:存放外部设备;/etc:存放所有系统管理所需的配置文件和子目录;/home:用户主目录;/lib:存放系统基本的动态连接..

2021-02-02 09:51:20 69

原创 java学习 项目知识点总结

CMS简介:cms即内容管理系统,每个项目对于cms的定位不同,基本分为针对后台数据内容的管理,,针对前端页面的管理,针对样式风格的管理等。SSI服务简介:服务端嵌入,类似于ASP的基于服务的网页制作技术。大多数平台都支持SSI命令,此外,在计算机硬件领域SSI是同步串行接口。原理:在内容发送到浏览器之前,可以使用服务端的SSI指令将文本,图形或应用程序信息包含到网页当中。如果包含多个文本内容可以使用表单包含的方式,可以将内容很容易的嵌入到web服务器当中。ssi指令如下:MongoDBmo

2021-01-26 17:46:46 138

原创 java学习 - spring Cloud

1.1 PRC和HTTP**RPC:**远程控制调用,其是基于socket,工作在会话层,可以自定义数据格式,速度快效率高。**http:**是一个网络传输协议,是基于TCP,工作在应用层,规定了数据传输格式1.2 spingcloud主要涉及组件Eureka:注册中心zuul,gateway:服务网关ribbon:负载均衡feign:服务调用hystrix和resilience4j:熔断器1.3 EureKa注册中心@EnableEurekaServer:声明当前应用为eurrk

2021-01-23 22:44:11 169

原创 java学习 springboot

1.1 spring boot简介spring boot 是spring的一个子工程,一般称其为搭建基于spring的工程的脚手架,作用是帮助程序员可以快速构建强大的spring项目,并尽可能减少xml文件配置,并迅速上手,让程序员更多的关注程序的开发,并非配置文件。1.2 常用注解@configuration:声明一个类为配置类,代替xml文件@Bean:声明在方法上,将方法返回值加入Bean容器上面@value:属性注入@PropertySource:指定外部文件@Configuratio

2021-01-23 18:22:27 127

原创 java学习总结(八)

servletContext对象代表整个web应用,科研和程序容器来进行通信;获取方式有两种:request.getServletContext()和this.getServletContext()方法;作用范围是所有用户所有请求数据。 maven:是一个项目管理工具,其内部包含了一个项目对象模型,一组标准集合,一个项目周期等信息;可以用来构件项目,管理jar包,编译进行单元测试,打包甚至部署项目。 maven-web项目中各个scope的作用范围及排序:默认compile(编译,测试,运行有效);..

2021-01-23 11:30:36 177 2

原创 springboot/springcloud

spring boot概念及优点:spring boot 是为spring服务的,是用来简化spring应用的初始化搭建以及开发过程的优点:配置简单,独立运行,自动装配,无代码生产和xml配置,提供应用监控,容易上手,提升开发效率spring boot 核心配置文件:bootstrap(.yml/.properties):bootstrap由父ApplicationContext加载的,比如application优先加载,且bootstrap里面的属性不能被覆盖application

2020-11-16 14:50:06 121

原创 Spring/Spring MVC

Spring优点:1.spring提供了ioc技术,容器会帮你管理依赖对象,从而不需要自己创建和管理依赖对象,可以更轻松实现程序解耦2.spring提供了事务支持,使得事务操作更加方便3.spring提供了面向切面编程,方便处理某一类问题4.更加方便框架集成,spring可以很方便集合其他框架,如mybatisAOP概念:aop即面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。简单来讲即处理某一切面类问题的编程思想,如统一处理日志,异常等问题。IOC

2020-11-16 11:27:22 262

原创 java学习总结(三)

css选择器:id选择器: #id熟悉{};类选择器:.类名属性{};标签选择器:标签名称{};选择所有元素:*{};并集选择器:选择器1,选择器2{};子选择器:选择器1选择器2{};父选择器:选择器1>选择器2{}; js:类型转换string转为number 中如果字符串中是数字则按照数值进行转换,如果不是数字则转换为Nan;boolean里面false = 0,true = 1 第9天...

2020-11-16 09:49:31 50

原创 java学习总结(六)

springBoot:json接口开发:使用@RestController即可使请求返回相应的json数据自定义filter:在项目中常常使用fifter用于调用日志,排除xss威胁的字符,执行权限等相应操作,在Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter两个方法,自定义实现fifter实现步骤:1.添加Fifter接口,实现Filter方法2.添加@Configguration注解,自定义

2020-11-13 14:04:21 113

原创 java学习总结(五)

spring总结:spring框架:该框架是java应用最广的框架,包含IOC(控制反转)和AOP(面向切面编程)两大理念。最主要作用简化java的开发。 spring专用术语:框架:指能完成一定功能的半成品;非侵入式设计:从框架角度去看是指无需继承框架提供的其他类,在更换其他框架时,以前写的代码还可以使用;轻量级和重量级:轻量级一般指非入侵性,依赖东西很少,资源占用非常少,部署简单等,但是对于重量级正好相反;javaBean:指符合javaBean规范的java类;pojo:指简化老式java对象,

2020-11-12 11:56:24 58

原创 java学习总结(四)

mybatis分页:逻辑分页:指使用RowBounds进行分页,指一次性查询多条数据,然后再这些数据中查找数据;物理分页:手动写sql分页或使用分页插件pageHelper,去数据库查询指定条数的分页数据 roubounds:rowbouns表面上查询所有数据,其实并非一次查询所有数据,因为mybatis是对jsbc的封装,再jsbc内部含有fetch size配置,它规定了每次从数据库查询多少条数据,如果要查询更多数据,它会在执行next()的时候,去查询更多的数据,可以有效放置内存溢出。 mybat

2020-11-10 19:10:39 107

原创 java学习总结(二)

1.xml要求

2020-11-08 22:54:15 79

原创 java学习总结(一)

继承中成员变量访问特点:首先看子类局部变量中有无该变量,若有则直接使用;如果子类当中没有则去子类成员变量查找,若没有,则去父类当中查找,找到则使用,没找到则报错。(子类局部变量 ---子类成员变量 ----父类变量) 继承构造方法:在创建子类对象时默认都会先走父类的无参构造(对父类进行初始化使用)。避雷:当父类中有有参构造时一定给该父类创建一个无参构造方法 final:final修饰引用数据类型时,指定的是对象的地址值,所以对象的地址值是可以改变的。 ...

2020-11-06 22:48:12 47

原创 redis笔记

一、概念redis(REmote DIctionary Server)是一个key-value存储系统,其包含5种基本的数据结构。String,hash,list,set,sorted set。二、常用基本命令String:存数据:set test one取数据:get test判断key是否存在:exists test删除key:del testHash:(适合对象)存数据:hmset test one取数据:hget test判断key是否存在:hexists test删除ke

2020-08-26 15:55:25 72

原创 Java运行内存分配详解

一. 进程 线程概念进程:在系统中能独立运行并且作为资源分配的基本单位,它由一组机器指令、数据和栈堆等组成的。简单来讲就是每个应用都是一个进程。线程:用来执行具体的功能及任务的,需要进程作为载体,是进程的一个实体(进程内部包含一个或多个线程)。线程基本不具有系统资源,但其可以与其他线程共享进程所拥有的资源。二.堆 栈 方法区概念及关系每一个运行的Java程序会产生一个进程和一个JVM实例,而每个线程会产生一个或多个线程。每一个JVM实例内部包含一个堆,堆内存放的是创建的类的实例及数组,栈内存放的是对

2020-08-26 10:00:27 207

原创 MySQL使用视图权限问题解决方案

mysql使用视图时遇到的权限问题,问题如下所示:The user specified as a definer (‘root’@’%’) does not exist解决方案:1. mysql 8 以下的版本解决方案:1.1 win+r打开dos窗口,进入mysql的bin目录下,输入 mysql -hlocalhost -uroot -p密码1.2 输入 grant all privileges on . to root@"%" identified by “.”; 授权给root所有s

2020-08-24 16:55:54 1611

原创 Vue入门到实战-3

1、vue插件v-bind:实现点击不同按钮切换不同的属性值,使用class属性中的特殊用法实现一个按钮切换北京颜色,例如<img src=" " height=" "/>,在其中src和height的值如果不想写死,而是想获取vue实例中的属性值的话,就可以通过v-bind实现,如<img v-bind:src="vue实例中的数据属性名" :height="vue实例中的...

2020-02-18 16:34:54 154

原创 Vue入门到实践-2

1.vue指令(指带有v-前缀的特殊属性)1.1、差值表达式{{msg}}注意:该表达式支持js语法,可以调用js内置函数(必须有返回值) 表达式必须有返回结果,如1+1,没有结果的表达式不允许使用,如var a=1+1; 可以直接获取vue实例中定义的数据或函数例如:<!DOCTYPE html><html lang="en"><head...

2020-02-17 20:41:59 89

原创 Vue入门到实践-1

1、认识vuevue是一套用于构件用户界面的渐进式框架,它被设计为可以自底向上逐层应用。vue核心库只关注视图层,不仅容易上手,而且也便于和第三方库或项目整合,另一方面可以与现代化工具链以及各种支持类库结合使用,vue也完全可以为复杂的单页应用提供驱动。官网:官网:https://cn.vuejs.org/ 参考:https://cn.vuejs.org/v2/guide/ G...

2020-02-17 15:27:28 175

原创 滚动的天空破解

参考网址:https://www.52pojie.cn/thread-632178-1-1.html工具:Android killer V1.3.1.0+JDK 1.81.搜索“支付失败(转为unicode码)”2.将字符进行搜索,看到出现三条结果3.双击打开文件4.找到支付成功代码,支付失败代码5.看到opp字段可以猜测出是oppo的sdk6....

2018-10-26 18:44:10 1600

原创 实验吧---简单的sql注入

通过注入获得flag值(提交格式:flag{})。解题链接: http://ctf5.shiyanbar.com/423/web/首先呢点击这个链接,出现以下界面当我们在框里面输入1,2,3的时候会出现一些东西,例如用sqlmap扫描一下爆出其数据库,数据表,字段参考网址:https://www.cnblogs.com/baifan261...

2018-10-19 11:12:33 505

原创 实验吧web

题目:很明显。过年过节不送礼,送礼就送这个格式:解题链接: http://ctf5.shiyanbar.com/8/index.php?id=1首先用sqlmap判断是否存在sql注入sqlmap -u "http://ctf5.shiyanbar.com/8/index.php?id=1"然后爆出其数据库名称sqlmap -u "http://ctf5.shiya...

2018-10-19 10:30:34 189

原创 adb命令大全

adb是什么?adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。...

2018-10-08 17:13:45 239

原创 九宫格密码破解

1.实验原理九宫格的九个点可分别对应1-9这九个数字,分布样式为:1        2      3 4       5      6 7       8      9将数字之间的连接路径转换为这9个数字,并按9个数字的16进制对其进行SHA1加密,并存储到gesture.key文件中。Android九宫格默认至少得有 4个数的口令:4个数的输入口令可能个数为9*8*7...

2018-10-08 10:54:34 49862

原创 锁屏Pin码破解

1.实验原理Android系统会把pin设置的密码加密保存到password.key中,所以破解这个密码只要把该文件删除即可2.打开模拟器设置pin密码,设置之后界面3.打开cmd查看文件:adb pull /date/system/password.key删除文件:adb shell rm /date/system/password.key再次打开屏幕测试pi...

2018-10-07 16:20:15 3712

原创 解决kali更新源时出现签名无效问题

首先打开kali添加更新源vim  /etc/apt/sources.list 添加更新源#中科大deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contribdeb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contr...

2018-09-14 10:28:18 4009 1

原创 搭建OWASP Security Shepherd 环境

搭建环境,主要依赖于vintualbox,然后需要下载虚拟机文件导入到vintual中即可,下载的网址为https://github.com/OWASP/SecurityShepherd/releases/tag/v3.0配置虚拟机虚拟机的默认网络配置是:NAT 和 Host-only模式,然后修改虚拟机的网络设置开启虚拟机 系统默认登陆口令:securityshepherd / owaspSec...

2018-05-06 19:34:20 1321

原创 linux内核

linux内核分为五个模块:进程调度模块,内存管理模块,文件系统模块,进程间通信模块和网络接口模块查看其内核版本命令的方法:1.cat /proc/version        uname -a2.lsb -release -a(适用于所有版本)   cat /etc/rednat -release(只适用于Redhat的linux)cat /etc/issus(适用于suo...

2018-03-17 13:48:34 166

SQL经典练习题.docx

SQL经典练习题.docx

2021-06-24

python网络编程实验

包含python基础知识和网络编程的一部分知识,含代码,其中内容还不是太过晚上,但是可以作为基础编程学习

2018-12-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除