- 博客(20)
- 收藏
- 关注
原创 SpringBoot常用注解
:使一个类成为 RESTful web 服务的控制器,处理 HTTP 请求并返回响应。`:标注主类,表示这是一个 Spring Boot 应用程序的入口。`:将 HTTP 请求体中的数据绑定到方法的参数上。`:将 HTTP DELETE 请求映射到方法上。`:将方法的返回值直接写入 HTTP 响应体中。`:将 HTTP POST 请求映射到方法上。`:将 HTTP GET 请求映射到方法上。`:将 HTTP PUT 请求映射到方法上。`:将 HTTP 请求映射到方法或类上。`:用于获取请求路径中的参数。
2023-08-29 01:01:07 33 1
原创 易忘知识点
程序在处理缓存时,一般是先从缓存查询,如果缓存没有这个key,则会从DB中查询,并设置到缓存中按这种做法,那查询一个一定不存在的数据值,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透解决:(1)最好对于每一个缓存key都有一定的规范约束,这样在程序中对不符合规则的key 的请求可以拒绝(但一般key都是通过程序自动生成的)(2)
2023-08-29 00:57:05 46 1
原创 过滤器与拦截器
过滤器可以在请求进入Servlet容器之前对请求进行处理,也可以在响应返回给客户端之前对响应进行处理。拦截器是Spring框架提供的组件,它可以在请求到达控制器之前和控制器返回响应之前进行一些处理。与过滤器不同,拦截器可以访问控制器的方法和参数,并且可以在请求处理过程中传递数据和修改数据。过滤器(Filter)和拦截器(Interceptor)都是用于处理请求和响应的中间件组件,它们可以用来在请求到达控制器之前或者在响应返回给客户端之前对请求和响应进行处理。方法中,我们可以进行请求完成后的资源清理操作。
2023-08-15 11:32:53 98 1
原创 双亲委派机制与垃圾清除算法
通过委托方式,不会去篡改核心.class,即使篡改也不会去加载,即使加载也不会是同一个.class对象了。通过委托方式,不会去篡改核心.class,即使篡改也不会去加载,即使加载也不会是同一个.class对象了。每个类加载器都是如此(递归的去查找),只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。通过判断对象的引用数量来决定对象是否可以被回收,每个对象实例都有一个引 用计数器,被引用+1,完成引用-1, 任何引用计数为0的对象实例可以被当做垃 圾回收。
2023-08-04 11:12:37 116 1
原创 数据库的基本知识
关系型数据库是最常见和广泛使用的数据库类型之一。对象存储数据库(Object Store):这类数据库将数据存储为对象,可以存储大量的非结构化数据,如图像、视频和文档。文档型数据库(Document Store):这类数据库以文档(如JSON或XML)的形式存储数据,可以方便地存储和查询半结构化数据。MySQL:MySQL是一个开源的关系型数据库管理系统(RDBMS),它具有广泛的应用和良好的性能,可用于各种规模的应用。数据模型:关系型数据库使用以表格为基础的结构,而非关系型数据库使用不同的数据模型。
2023-07-31 08:37:17 128 1
原创 java基础多态
原因是:父类类型相对与子类来说是大范围的类型,Animal是动物类,是父类类型。继承或者实现【二选一】方法的重写【意义体现:不重写,无意义】父类引用指向子类对象【格式体现】父类类型:指子类对象继承的父类类型,或者实现的父接口类型。由于多态特性的支持,showAnimalEat方法的Animal类型,是Cat和Dog的父类类型,父类类型接收子类对象,当然可以把Cat对象和Dog对象,传递给方法。实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现出多态的扩展性与便利。
2023-07-25 16:17:10 135
原创 一些易忘记的题目
start()方法是一个启动线程的请求,它会告诉操作系统要执行一个新的线程,并在新的线程上调用run()方法。总结起来,我们调用start()方法来启动一个新的线程,并在新的线程上执行run()方法,而不是直接调用run()方法,以实现并发执行和正确的线程管理。- ${}:使用字符串拼接的方式解析占位符,直接将传入的参数值替换到SQL语句中,并不会对参数进行编码或转义,存在SQL注入的风险。- GET请求:幂等操作,即多次请求不会改变服务器的状态,对于相同的请求,多次请求得到的结果应该是一致的。
2023-07-14 14:13:10 181 1
原创 线程池小结
常见子类 ThreadPoolExecutor * void execute(Runnable command):执行任务/命令,没有返回值,一般用于执行Runnable * <T>Future<T> submit(Callable<T> task):执行任务,有返回值,一般用来执行Callable * void shutdown(): 关闭连接池。3.Executors:工具类 线程池的工厂类,用于创建并返回不同类型的线程池。1.提高响应速度(减少了创建新线程的时间)
2023-06-29 16:45:45 240 1
原创 jsp和servlet
重定向就不要再使用response.getWriter()或response.getOutputStream()输出数据,不然可能会出现异常;请求转发对AServlet和BServlet的请求方法是相同的,即要么都是GET,要么都是POST,因为请求转发是一个请求;请求转发后浏览器地址栏不会有变化,而重定向会有变化,因为重定向是两个请求;请求转发的目标只能是本应用中的资源,重定向的目标可以是其他应用;请求转发是在服务端内部执行的,而重定向是在客户端执行的。请求转发是一个请求,而重定向是两个请求;
2023-05-15 16:43:50 33
原创 内置对象小结
前面两种对象是JS 基础 内容,属于 ECMAScript;第三个浏览器对象属于 JS 独有的, JS API 讲解内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是。
2023-04-07 17:13:33 33
原创 JS数组小结
(2)arr.unshift(新增的内容) 方法将一个或多个元素添加到数组的。let names = ["张三", "李四", "王五", "赵六"];(1) 数组. pop() 方法从数组中删除最后一个元素,并返回该元素的值。let arr = ["张三", "李四", "王五"];let arr = ["张三", "李四", "王五"];let arr = ["张三", "李四", "王五"];let arr = ["张三", "李四", "王五"];
2023-03-31 11:34:15 29
原创 css选择器
(1)结构:#id属性值 { css属性名:属性值;(1)结构:.类名 { css属性名:属性值;(1)结构:标签名 { css属性名:属性值;(1)结构:* { css属性名:属性值;1. 所有标签上都有class属性,class属性的属性值称为类名(类似于名字)• class类名相当于姓名,可以重复,一个标签可以同时有多个class类名。2. id属性值类似于身份证号码,在一个页面中是唯一的,不可重复的!• id属性值相当于身份证号码,不可重复,一个标签只能有一个id属性值。
2023-03-24 16:58:56 21
原创 HTML基础标签
(5) 注意点:h1标签对于网页尤为重要,开发中有特定的使用场景,如:新闻的标题、网页的logo部分。(1) 绝对路径:指目录下的绝对位置,可直接到达目标位置,通常从盘符开始的路径。(1)场景:在新闻和文章的页面中,用来突出显示文章主题(2)代码:h系列标签。(4)注意点:• 视频标签目前支持三种格式:MP4 、WebM 、Ogg。(4)注意点:• 音频标签目前支持三种格式:MP3、Wav、Ogg。(1)场景:需要让文字加粗、下划线、倾斜、删除线等效果。(1)场景:点击之后,从一个页面跳转到另一个页面。
2023-03-17 14:21:50 386
原创 IO流总结
处理流:是对一个已存在的流的连接和封装,通过对数据的处理为程序提供更强大、灵活的读写功能。2. 输出流:程序能向从中写入数据的流。1.输入流:程序可以从中读取数据的流。1.字节流:以字节为单位传输数据的流。2.字符流:以字节为单位传输数据的流。节点流:用于直接操作目标设备的流。
2023-03-09 17:32:24 37
原创 多线程小结
在这种方式下,可以多个线程共享同一个目标对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。只有所有的线程都结束了,进程才会结束!2.线程是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源,线程是比进程更小的执行单位,线程是进程内部单一的一个顺序控制流。1 .进程是程序的一次动态执行过程,它经历了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到最终消亡的过程。
2023-02-24 17:14:13 38
原创 近期学习小结(集合)
ArrayList(创建时为0,当存入第一个数据时变为10)默认长度为10个,当存满10个时,长度会自动扩充50%Set集合无序,不可重复,包括HashSet,LInkedHashSet,TreeSet。List集合有序,可重复,包括ArrayList,LinkedList,Vector。链表:查找慢,增删快,从头部一直查找到尾部(Linkedlist底层结构是链表)数组:查找快,增删慢,牵一发动全身(ArrayList的底层结构是数组)1.Vector 是线程安全的,适合处理多并发线程,线程是安全的。
2023-02-16 20:18:47 369
原创 面向对象(1)
5.含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。方法重写:子类重写父类的方法(可以使用@Override注解校验方法是否为重写)。方法重载:在同一个类中,方法名一致,方法参数列表不一致,就构成方法重载。如果自己编写了一个带参数的构造方法,那么默认的无参构造方法就没有了。子类可以继承父类的属性和行为,但是子类不能继承父类的构造器。1.抽象类可以包含属性和普通方法(非抽象方法)Java中所有的类都是Object类的子类。四、方法的重载与重写。
2023-02-06 17:23:00 348 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人