笔记
文章平均质量分 68
step by step.
和优秀的人,做有挑战的事
展开
-
HTTP与HTTPS的区别
这里写自定义目录标题一、HTTP和HTTPS的基本概念二、HTTP与HTTPS有什么区别?三、HTTPS的工作原理四、HTTPS的优点五、HTTPS的缺点六、http切换到HTTPS超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用原创 2021-08-30 14:37:39 · 538 阅读 · 0 评论 -
final、finally、finalize作用分别是什么,有没有关系?
final、finally、finalize一、final1.final修饰的类不能被继承2.final修饰的方法不可以被重写3.final修饰的变量不可以第二次被赋值4. -final修饰的所有常量字母都要大写5.修饰的变量可以防止指令重排序二、finally三、finalizegc时对象自救方式一、finalfinal之前有讲过,如果从入门级了解final请参考另一篇博客final,权限,内部类,引用类型谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字原创 2021-08-16 01:47:14 · 561 阅读 · 0 评论 -
深入理解Java中的四种引用类型:强引用、软引用、弱引用和虚引用(附全代码解析)
这里写自定义目录标题一、关于引用二、 什么是GC三、强引用(Strongly Re-ference)四、软引用(Soft Reference)五、弱引用(Weak Reference)六、 虚引用(Phantom Reference)七、总结一、关于引用在JDK 1.2版之前,Java里面的引用是很传统的定义: 如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称该reference数据是代表 某块内存、某个对象的引用。这种定义并没有什么不对,只是现在看来有些过于狭隘了。在原创 2021-08-16 00:40:06 · 853 阅读 · 0 评论 -
手写MyBatis分页插件&SQL日志打印插件(全代码分享),一点也不难!?!?
MyBatis分页插件一、简介二、加载三、准备工作四、分页代码五、日志代码一、简介MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor执行增删改查操作ParameterHandler设置预编译参数用的ResultSetHandler处理结果集StatementHandler处理SQL预编译,设置参数等相关工作允许使用插件来拦截的四大对象在MyBatis的执行流程如下图所示:官方文档 https://原创 2021-08-14 17:45:59 · 522 阅读 · 2 评论 -
java核心技术——代理(Proxy)附源码
一、了解代理代理(Proxy) 是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法java中的代理模式:定义:给目标对象提供一个代理对象,并且由代理对象控制对目标对象的引用目的:①:通过代理对象的方式间接的访问目标对象,防止直接访问目标对象给系统带来不必要的复杂性②:原创 2021-08-14 16:29:39 · 866 阅读 · 3 评论 -
Spring MVC实现原理(手撕代码模拟呈现MVC反射原理)
文章会用到的包以及类的分层1. 注解详解@Documented@Documented 在自定义注解的时候可以使用@Documented来进行标注@Retention@Retention 用来说明该注解类的生命周期。它有以下三个参数:RetentionPolicy.SOURCE : 注解只保留在源文件中RetentionPolicy.CLASS : 注解保留在class文件中,在加载到JVM虚拟机时丢弃RetentionPolicy.RUNTIME : 注解保留在程序运行期间,此时可以通过原创 2021-08-14 13:16:41 · 445 阅读 · 0 评论 -
java核心技术——反射(二)
代码实现Teacher类,私有属性namepackage com.mystep.step.demo1;import java.lang.reflect.Field;/** * @author step * @date 2021年08月14日 11:40 */public class TeaMain { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException原创 2021-08-14 12:16:44 · 107 阅读 · 0 评论 -
java核心技术——反射
一、什么是反射?1. Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法,不受访问修饰符的限制。本质是JVM得到类对象之后,再通过类对象进行反编译,从而获取对象的各种信息。2. Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁能够分析类能力的程序称为反射(re...原创 2021-08-14 11:12:47 · 358 阅读 · 0 评论 -
java异常体系简介
这里写自定义目录标题一、异常分类二、对比2.1 Error与Exception2.2 受查异常和非受查异常如何规避2.3 运行时异常和非运行时异常三、异常关键字四、try-catch-finally4.1 异常处理步骤4.2 try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗一、异常分类在 Java 程序设计语言中, 异常对象都是派生于 Throwable 类的一个实例。查看javaAPI,异常属于java.lang首先我们来看一下java异原创 2021-08-12 22:00:00 · 427 阅读 · 0 评论 -
java对二维数组进行排序(奥运奖牌排序)——lambda 表达式形式
这里写自定义目录标题场景如下也就是说我们的数组是一个n×3的形式 例如{{1,3,4},{4,6,2},{3,6,8},{3,4,3}}package com.mystep.step.demo1;import java.util.Arrays;import java.util.Random;/** * @author step * @date 2021年08月12日 19:26 */public class Demo { public static void原创 2021-08-12 20:20:32 · 665 阅读 · 0 评论 -
普通类调用Service方法报空指针
原因:service接口注入失败!写了一个登录日志用来记录获取客户端的IP和传过来的account,数据库中的表是因为这个方法是写在登录接口中加的,登录接口接受的是从前台传过来的一个用户对象,所以这里需要的 account 我直接从对象里面拿,我再util文件里面建了一个 LogLoginUtil 的类,这个类我加上 @Component 注解这里讲一下 @Component@Component讲解@Component (把普通pojo实例化到spring容器中,相当于配置文件中的 )泛指各原创 2021-08-03 23:21:50 · 3876 阅读 · 0 评论 -
final,权限,内部类,引用类型
这里写自定义目录标题第一章 final关键字1.1 概述第一章 final关键字1.1 概述学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写,那么我们能不能随意的继承API中提供的类,改写其内容尼?显然这是不合适的。为了避免这种随意该写的情况, java 提供了 final 关键字,用于修饰不可改变内容final:不可改变。可以用于修饰类,方法和变量。类:被修饰的类,不能被继承。方法:被修饰的方法,不能被重写。变量:被修饰的变量,不能被重新赋值。我们上代码:先写一原创 2021-07-28 09:02:51 · 903 阅读 · 0 评论 -
用孔子装爹学习java三大特性之多态
孔子装爹例子学多态一、 概述1.1引入1.2 定义1.3 前提【重点】2 例子一2.1 父类2.2 子类2.3 启动类2.4 打印二.、例子2:孔子装爹(只是个名字)2.1 孔子爹2.2孔子2.3 多态启动类2.4 我们更改一下各项三 、多态的体现四、多态的好处五、引用类型转换1. 向上转型2. 向下转型3. 为什么要转型一、 概述1.1引入 多态是继封装,继承之后,面向对象的第三大特征。生活中,比如跑得动作,小猫小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫,鸟类和飞机,飞起来也原创 2021-07-27 01:29:45 · 473 阅读 · 0 评论 -
手写定时器
定时器一、Timer优缺点优点缺点二、 ScheduleExecutorService三、 Spring Task(在项目里我感觉实际点)定时任务步骤开启定时任务添加定时任务说要有一个定时器就好了,到点了自动督促我们学习或者干点别的于是花了大半天的百度,我终于研究出来了简单的定时器,今天就介绍我研究的简单的三种一、Timer 要是要实现定时任务,最先想到的肯定是java自带的类,就是Timer类,它在JDK类库中主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务,或者进行一些周期性的工原创 2021-07-25 00:23:17 · 1063 阅读 · 1 评论 -
MySQL语句基础二
基础SQL1,利用窗口函数实现排名普通排名分数相同,名次相同分数相同排名相同2,字符串拼接3,删除重复记录,只保留最小的id对应的记录4,SQL中字符串替换函数5,按照月份,类型分类排序1,利用窗口函数实现排名MySQL8.0中可以利用 ROW_NUMBER(),DENSE_RANK(),RANK() 三个窗口函数实现上述三种排名,需要注意的一点是as后的别名,千万不要与前面的函数名重名,否则会报错,下面给出这三种函数实现排名的案例:普通排名#按照分数实现排名,从一开始往下排(普通排名)selec原创 2021-07-23 01:23:09 · 199 阅读 · 0 评论 -
简单易自学上手的MyBatis-Plus,简化你的CRUD!!
MyBatis-Plus1. 简介1.1 特性2.使用 SpringBoot 快速使用 MyBatis-Plus2.1 准备环境2.2 创建一个SpringBoot 项目。2.3 pom.xml文件配置依赖2.4 application.yml:2.5 启动类2.6 实体类2.7 Mapper(dao层与数据库交互相关代码)操作实体类的2.8 service2.9 serviceImpl2.10 Controller2.10.1 添加(save)2.10.2 删除(removeByIds)单删/多删2.10原创 2021-07-21 00:32:21 · 615 阅读 · 0 评论 -
简单例子自学Spring AOP——Spring 中面向切面编程(二)
这里写自定义目录标题1. AOP实例1.1 第一个实例1.2第二个实例2.AOP相关注解2.1 @Pointcut2.2 @Around2.3 @Before2.4 @After2.5 @AfterReturning2.6 @AfterThrowing以下我们再来个例子,我觉得这个例子也很好,本例子我没有亲自实现,但我觉得他对我的启发很大,知识点很多,不断成长吧!有需要可以看上一篇文章自学很好的例子Spring AOP——Spring 中面向切面编程(一)1. AOP实例使用 AOP,首先需要引入原创 2021-07-18 22:17:34 · 415 阅读 · 0 评论 -
自学很好的例子Spring AOP——Spring 中面向切面编程(一)
Spring AOP一、Spring AOP1.1 什么是 AOP1.2 为什么要用AOP1.3 AOP实现分类二、 AOP体系与概念2.1 一些概念详解:2.2 Spring AOP 的特点三、第一个小型实例(男女孩买东西)3.1 男女孩买东西(初步需求)3.1.1 首先创建一个接口 IBuy.java3.1.2 Boy 和 Gril 两个类分别实现了这个接口3.1.2.1 Boy.java3.1.2.2 Girl.java3.1.3 配置文件, AppConfig.java3.1.4 测试类, AppT原创 2021-07-18 16:44:28 · 1123 阅读 · 0 评论 -
vue项目启动不是8080端口,多次启动端口变化(端口占用)
当我一边运行idea,然后命令启动vue的时候,我发现端口不是8080,而是8081,于是我便想到,应该是我8080端口被占用了,果断关闭了idea,再关闭vue,重启端口又变成了8080,有人说是我改过我自己的端口号,但我觉得不对,于是我就有了这篇博客好奇心促使我又运行了一次vue,此时两个vue同时运行,情况如下如果我们停掉之后发现还是8080端口被占用,或者说你自己想用8080以外的端口,但那个端口依然被占用此时你就需要看我这个笔记了8080端口被占用解决办法只需要将里面命令的8080换成你原创 2021-07-17 23:16:32 · 4782 阅读 · 2 评论 -
MyBatis中#{}和${}的区别
${}和#{}都是占位符,占位符是什么呢,可以理解为MyBatis的一个变量${} 注入什么就是什么,且如果是简单类型的值需要用 value 来接收#{} 参数是采用预编译处理,${}是字符串替换#{}参数是简单类型(基础类型和字符串),变量可以任意${}参数是简单类型(基础类型和字符串),变量必须是Value#{}参数是引用类型,变量是引用类型中的属性,不可任意${}参数是引用类型,变量是引用类型中的属性,不可任意Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 P原创 2021-07-16 23:33:50 · 159 阅读 · 0 评论 -
8080端口被占用,最快解决方法不是重启电脑
解决方法:懂得直接拿代码,不懂的继续看netstat -aon|findstr "8080"taskkill /pid 6828 /f 6868 代表占用8080的进程pid号当然还有一种更直接的方法:重启电脑,直接解决一、8080被占用问题描述在做java项目的时候,总会碰到8080端口被占用问题,非常荣幸,我在同一天碰到了四五次,我随即立马做了份笔记,今天有人跑来问我我的8080被占用咋解决的,他百度一直看不懂,所以我决定做一篇我认为大家能看懂的教程,因为现在没有8080被占用问题,所以原创 2021-07-16 00:57:36 · 7616 阅读 · 3 评论 -
Uncaught TypeError: Cannot create property ‘LAY_TABLE_INDEX‘ on number ‘3‘
一. 问题描述后台:Spring-boot框架前端:layui框架本错误在自己和舍友写完后端接口,使用layui前端框架实现页面的时候,本次我们写的是宿舍楼宇管理,F12 Console控制台报错如下:二、错误寻找过程首先我们写后端接口的时候使用的是Postman测试,我的查询全部接口方法叫listPostman 测试查询出的数据以上是所有的展示,发现问题了吗?查询出的数据时data{records[{},{},{}],total,size,current}类型的值Postman能展原创 2021-07-14 00:58:59 · 1684 阅读 · 0 评论 -
Spring Mvc时间格式参数的项目全局的格式化(LocalDate/LocalDateTime类型)
上一篇文我们讲到Spring Mvc时间格式参数,前后时间传参,单个字段的时间格式化问题那我们要做项目肯定会遇到好多的时间参数问题,要是每个字段都去加参数岂不麻烦,今天我们讲讲全局时间参数格式化问题(LocalDate/LocalDateTime类型)一、建包,建类1. 在你的controller同级别目录里创建一个文件夹,再创建一个子文件(我这里父级文件叫common,子文件我创了个叫controller的,此controller 非彼controller,文件夹而已),用于存放入参格式化创建类(原创 2021-07-12 15:47:51 · 1463 阅读 · 0 评论 -
Spring Mvc时间格式参数,前后时间传参,单个字段的时间格式化问题
不是在改bug,就是在写bug的路上一、后台报错问题Field error in object ‘leave’ on field ‘beginTime’: rejected value [2021-07-11 22:23:36]; codes [typeMismatch.leave.beginTime,typeMismatch.beginTime,typeMismatch.java.time.LocalDateTime,typeMismatch]; arguments [org.springframew原创 2021-07-12 01:53:38 · 867 阅读 · 0 评论 -
懒人使用layui实现时间选择!简单高效layui.laydate
今天我觉得“懒人推动科技进步”,因为这几天自己看到自己请假的时候有时间选择的,自己就想把它自己来实现,因为要是一个个输入时间的话对我这种懒人是不友好的,浪费时间,万一以后可以用在工作中呢,于是又又又开始了百度,最后实现了。经验如下希望能帮到小伙伴们,这里我是看的layui,我看了一会上手就懂了,你也可以的!!!!学习网页layui时间选择器学习链接一、上代码1.HTML中divname=“beginTime” 和 name=“endTime” 是因为我要往后台传这俩值,<!--记得引入lay原创 2021-07-12 01:25:45 · 1524 阅读 · 0 评论 -
数据库主键id从1重新递增(重置)
某些时候我们希望我们数据库主键id能重新变得有规律,方法如下 :警告!!!该方法属于重置该表,会把你的数据删除,谨慎使用,最好提前备份数据,表更新好以后再拷贝进去就好解决方法拷贝数据,删除原始数据,如果你不删除 直接从你现有数据的末端添加,下一个数据id会是1新建查询,执行sql语句,再插入数据时id就会从1开始了我的表叫dormitory_building,主要是truncate table这两字truncate table dormitory_building...原创 2021-07-08 16:28:38 · 3680 阅读 · 2 评论 -
Mybatis-plus添加(save)操作自动生成主键id又长又乱
一、问题使用mybatis-plus自己尝试开发项目的时候,调用了save操作,对数据库中的表进行添加操作,结果添加之后生成id又乱又长,话不多说,直接上图,如果你也是这样,就不要离开代码效果前提,你的数据库设置了主键而且是自动递增二、解决办法询问了 学长学姐们以及度娘,终于让我知道了财富密码的钥匙方式一为实体类id主键,添加这串代码@TableId(value = "id",type = IdType.AUTO)方式二在 application.yml 文件中加入myb原创 2021-07-08 16:17:41 · 14132 阅读 · 2 评论 -
无法连接到MySQL服务器上的本地主机(10061“未知错误”)Can‘t connect to MySQL server on‘localhost‘ (10061“Unknown error“)
系统:Windows10 软件:Navicat premium本人第二次碰到这个错误了,第一次怒卸重装MySQL和Navicat,这一次我找到了财富密码记录一下,万一尼是吧错误:打开Navicat premium 软件 连接本地数据库报错10061错误原因数据库没有连接,解决方法Step 1,: 在“此电脑” 鼠标右键,选“管理”Step 2:在“服务和应用程序”中选择“服务”,找到MySQL的服务,单击。Step 3:点击启动等待进度Step 4:操作成功之后,在”计算机管理“原创 2021-06-16 22:13:07 · 22066 阅读 · 13 评论 -
个人测试Spring MVC中@GetMapping和@PostMapping注解单独使用以及同时在一个方法上使用的故事
Hello! bro!今天我们讲两件事 1.解释Spring MVC 中 @GetMapping和@PostMapping 这俩注解2,测试当这俩注解同时使用在一个方法上会发生什么事一,Spring MVC 中 @GetMapping和@PostMapping 这俩注解,俩都是组合注解@GetMapping(“demo88”) 等价于 @RequestMapping( method = {RequestMethod.GET},value = “demo88”)用于响应Get 方式原创 2021-06-16 00:38:48 · 3563 阅读 · 0 评论 -
自动增加热度增加访问量,自动修改状态,关于数据库的几点个人探索
一,对某项数据点击自动更改(增,减)数据举例,当我们在数据库建一个话题热度(talk)的表格,里面有id,有话题名,有热度我们这里的heat也设置的默认值为0构想,在客户端依次展示标题,用户点击便可以进去查看内容,随之热度增加10点,当然我设置了另一个表(talk_num)来存储他的内容等在controller层我写的这样 @RequestMapping("/addTalkNum")//老师回复话题并增加十点热度 @ResponseBodypublic int addTalkNu原创 2021-06-14 19:09:40 · 358 阅读 · 0 评论 -
128陷阱,自动装箱自动拆箱中的那些坑
上期我们讲过自动拆箱自动装箱是JDK1.5之后的新特性下面我们讲讲关于这里的一个“128陷阱” public static void main(String[] args) { Integer i=10; Integer j=10; System.out.println("i和j比较"); System.out.println(i==j); Integer k=100; //Integer是一个引用数据类型,又是一个对原创 2021-06-13 19:01:04 · 251 阅读 · 0 评论 -
学会自动拆箱 自动装箱
这里我们先了解一下 JDK1.5 的新特性:自动装箱和自动拆箱//自动装箱--自动将基本数据类型,变成对象,变量对应的包装类//自动拆箱--自动将对象转成回基本数据类型大家来看看这样定义k 对不对,猜对了有奖 Integer k=100; //我们来看这样写对不对 //Integer是一个引用数据类型,又是一个对象//100默认是一个基本原创 2021-06-13 18:20:26 · 1640 阅读 · 1 评论 -
关于idea项目的命名规范
1.项目名全部小写2.包名全部小写3、 类名首字母大写,一般都是使用驼峰式命名。如:StudentClass4、 变量名、方法名首字母小写,如果名称由多个单词组成,后面的每个单词的首字母都要大写。养成写注释的好习惯...原创 2021-06-13 11:18:52 · 6385 阅读 · 0 评论 -
layui表单的实现增删改和展示数据
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>Layui</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta na原创 2021-06-13 10:42:58 · 1393 阅读 · 0 评论 -
js获取下拉框选中的值
function ViewList(){ html += '<div>评价</div>' ; html += '<div>提交</div>' ; for(var i = 0;i < data.length ; i++){ html += '<div>' + '<select id="values">' +原创 2021-06-07 10:48:47 · 5696 阅读 · 1 评论 -
The service already exists! The current server installed错误
报错原因:重装mysql,报错误信息:在重装mysql时进行 mysqld -install 之后 cmd 报出了The service already exists! The current server installed: E:\mysql-5.6.49-winx64\bin\mysqld MySQL但是复制文件目录在自己电脑找不到该文件所以进行下一步(我看别的说是没有删干净,在这之前我进行了删除注册表,删除安装文件,停止进程等操作都没解决)解决方案:操作如下1.sc query mys原创 2021-05-30 12:50:53 · 7396 阅读 · 7 评论 -
错误 0x80070522:客户端没有所需特权,复制文件到C盘权限不够解决办法
我这里要把这个.jar包复制到C盘解决办法:打开cmd,执行神秘代码icacls c:\ /setintegritylevel M执行完就可以了 ok!原创 2021-05-24 16:29:43 · 2323 阅读 · 0 评论 -
利用Xshell连接服务器导入web安装包并解压启动
1.首先我这里用的是腾讯云的服务器,将服务器开机2.打开传说中的Xshell下载地址直接下载都一样的3.下载完成之后,就可以进入Xshell连接云主机,顺便配置环境了主机输入自己腾讯云的地址4.点击连接5.打开opt(相当于进入root)神秘代码cd opt/查看opt,神秘代码ls 我这里已经有了几个文件6.创建web工程,神秘代码 mkdir web下方出现了蓝色web7.导入安装包,神秘代码rz 然后回车选择安装包,我这里是这个注意看我的后缀是.tar.gz!!!8.原创 2021-04-14 12:04:29 · 1304 阅读 · 0 评论 -
Linux中创建运行java最简单程序
1.创建一个java文件并编辑,输入神秘代码vi Test01.java(没有java文件我们先创建一个文件名是Test的文件,vi代表打开或创建)2.编辑内容,写代码public class Test01{public static void main(String[]args){System.out.println("hello java");}}3.键盘上按ESC退出编辑,a进入编辑4 .输入**:wq保存退出,w代表保存Q代表退出,(这串神秘代码将出现在最后一行)5. 神秘代码j原创 2021-04-13 16:07:29 · 442 阅读 · 0 评论 -
Linux使用yum安装jdk1.8
首先说明一下yum:他是借助他的命令对某物进行下载安装,他可以主动下载安装yum安装之前先检查一下是否有存在jdk命令:rpm -qa |grep javarpm -qa |grep jdk //查看安装的jdk版本rpm -qa |grep gcj如果没有输出信息表示没有安装博主安装了显示如下如果没有安装或者没有自带就进行下载安装jdk1.8的所有文件yum install java-1.8.0-openjdk* -y注意Linux不能Ctrl+C,Ctrl+v单击鼠标右键将上原创 2021-04-13 14:07:54 · 686 阅读 · 1 评论