一.JAVA1.以下哪些线程是线程安全的?(ADE)A. Vector B. HashMap C. ArrayList D. StringBuffer E. Properties 解析: A. Vector是线程安全的动态数组实现,其所有的方法都被synchronized修饰,在多线程环境下可以安全使用,但是性能比ArrayList低 B. HashMap不是线程安全的,在多线程环境下可能出现数据不一致,需要线程安全可以使用ConcurrentHashMap或者Collections.synchronizedMap() C. ArrayList不是线程安全的,多线程环境可能出现并发修改异常 D. StringBuffer是线程安全的可变字符串类,其关键方法都被synchronized修饰,即同步,如果是单线程的话推荐使用StringBuilder E. Properties继承自HashTable,而HashTable是线程安全的实现,其所有方法都是同步的 2. 关于匿名内部类的特性有哪些?📌 基本概念 无类名:编译时自动生成名称(外部类$数字.cl ...
大学生涯
未读一. 开篇导读1. 短信登录这一块我们会使用redis共享session来实现 2. 商户查询缓存通过本章节,我们会理解缓存击穿,缓存穿透,缓存雪崩等问题,让小伙伴的对于这些概念的理解不仅仅是停留在概念上,更是能在代码中看到对应的内容 3. 优惠卷秒杀通过本章节,我们可以学会Redis的计数器功能, 结合Lua完成高性能的redis操作,同时学会Redis分布式锁的原理,包括Redis的三种消息队列 4. 附近的商户我们利用Redis的GEOHash来完成对于地理坐标的操作 5. UV统计主要是使用Redis来完成统计功能 6. 用户签到使用Redis的BitMap数据统计功能 7. 好友关注基于Set集合的关注、取消关注,共同关注等等功能,这一块知识咱们之前就讲过,这次我们在项目中来使用一下 8. 打人探店基于List来完成点赞列表的操作,同时基于SortedSet来完成点赞的排行榜功能 以上这些内容咱们统统都会给小伙伴们讲解清楚,让大家充分理解如何使用Redis 9. 课程总结 二. 短信登录1.导入SQL hmdp.sqla.tb.user 用户表12345678910111 ...
一. 监听器概述1. 监听器的定义监听器:专门用于对域对象对象身上发生的事件或状态改变进行监听和相应处理的对象 监听器是GOF设计模式中,观察者模式的典型案例 观察者模式: 当被观察的对象发生某些改变时, 观察者自动采取对应的行动的一种设计模式 监听器使用的感受类似JS中的事件,被观察的对象发生某些情况时,自动触发代码的执行 监听器并不监听web项目中的所有组件,仅仅是对三大域对象做相关的事件监听 2. 监听器的分类web中定义八个监听器接口作为监听器的规范,这八个接口按照不同的标准可以形成不同的分类 按监听的对象划分 application域监听器 ServletContextListener ServletContextAttributeListener session域监听器 HttpSessionListener HttpSessionAttributeListener HttpSessionBindingListener HttpSessionActivationListener request域监听器 ServletRequestListener ...
一. 过滤器概述定义: Filter,即过滤器,是JAVAEE技术规范之一,作为目标资源的请求进行过滤的一套技术规范,是JAVA WEB项目中最为实用的技术之一。 Filter 接口定义了过滤器的开发规范,所有的过滤器都要实现该接口(Filter) Filter 的工作位置是项目中所有目标资源之前,容器在创建HttpServletRequest和HttpServletResponse对象后,会先调用Filter的doFilter方法 Filter的doFilter方法可以控制请求是否继续,如果放行,则请求继续,如果拒绝,则请求到此为止,由过滤器本身做出响应 Filter不仅可以对请求做出过滤,也可以在目标资源做出响应前,对响应再次进行处理 Filter是GOF中责任链模式的典型案例 Filter的常用应用包括但不限于: 登录权限检查,解决网站乱码,过滤敏感字符,日志记录,性能分析… … 二. 应用场景 日志的记录 性能的分析 乱码的处理 事务的控制 登录的控制 跨域的处理 …… 三. 过滤器工作位置图解 四. Filter接口API1. 源码1234567891011packag ...
一. 会话管理概述1. 由来 HTTP是无状态协议 无状态就是不保存状态,即无状态协议(stateless),HTTP协议自身不对请求和响应之间的通信状态进行保存,也就是说,在HTTP协议这个级别,协议对于发送过的请求或者响应都不做持久化处理 简单理解:浏览器发送请求,服务器接收并响应,但是服务器不记录请求是否来自哪个浏览器,服务器没记录浏览器的特征,就是客户端的状态 举例: 张三去一家饭馆点了几道菜,觉得味道不错,第二天又去了,对老板说,还点上次的那几道菜 无状态: 老板没有记录张三是否来过,更没有记录上次他点了那些菜,张三只能重新再点一遍 有状态: 老板把每次来吃饭的用户都做好记录,查阅一下之前的记录,查到了张三之前的菜单,直接下单 2. 实现手段cookie跟session配合解决 cookie是在客户端保留少量数据的技术,主要通过响应头向客户端响应一些客户端要保留的信息 session是在服务端保留更多数据的技术,主要通过HttpSession对象保存一些和客户端相关的信息 cookie和session配合记录请求状态 二. cookie1. cookie概 ...
大学生涯
未读一. Stream流的基础概念1. 什么是Stream流?Stream是元素的序列,支持对数据源(集合、数组、I/O等)进行聚合操作。其核心特点包括:• 不存储数据:仅通过管道传递数据,原始数据不受影响。• 惰性求值:中间操作延迟执行,只有终端操作触发时才计算。• 并行处理:通过parallelStream()轻松实现多线程处理。 2. 与传统集合操作的对比• 代码简洁性:用filter、map等链式调用替代冗长的循环和临时变量。• 性能优化:并行流自动拆分任务,充分利用多核CPU。 二. stream体验版demo1234567891011121314151617181920212223242526272829303132333435363738394041package com.nianxi.streamDemo;import java.util.ArrayList;/** * @author Jie. * @description: TODO * @date 2025/3/17 * @version: 1.0 */public class StreamDemo1 ...
大学生涯
未读一. 不可变数组注意: 以下不可变集合工厂方法都是在java 9引入的,在之前只能通过Collections下的unmodifiableXxx()通过包装可变集合为不可变视图,但本质上仍是可变集合的代理,并非独立的不可变实现,以及一些第三方库才能获得不可变集合 Map.of() / Map.ofEntries():创建不可变 Map。 List.of():创建不可变 List。 Set.of():创建不可变 Set。 尝试添加、删除或修改元素会抛出 UnsupportedOperationException。 二. java中9之前跟9之后的关键区别 特性 Java 9 不可变集合 Java 8 及更早的 Collections.unmodifiableXxx() 实现类型 独立的不可变类(如 ImmutableMap) 可变集合的包装视图(非独立类) 内存占用 更紧凑(针对小集合优化) 与原可变集合相同 性能 更快的遍历和查询操作 与原集合性能一致 线程安全性 完全线程安全 需依赖原集合的线程安全策略 三. 示例demo1. List.of() ...
课外开发
未读前端部分1. 熟悉前端 vue 工程开发工具,以及搭建开发环境在这一部分,我搭建了 Vue 的开发环境,并熟悉了 Vue 开发工具的使用,能够有效地开发和调试 Vue 应用。以下是搭建环境的简单示意图: 2. 熟悉前端基础通过本阶段的学习,我熟悉了前端的基础组件使用,掌握了 Vue 组件化开发,并学习了如何使用一些常见的 UI 库来加速开发。此外,我还独立完成了一个网络请求的封装,能够处理常见的 HTTP 请求和响应。以下是对 Vue 前端基础的总结: 熟悉基础组件的使用,如按钮、输入框、选择器等。 能够使用饿了么 UI 组件库来快速搭建页面,提升开发效率。 能够独立完成一个网络请求的封装,处理数据交互。 网络请求封装示例: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import axios from "axios";// 配置axios全局默认设置axios.defaults.timeout = 10000; // 请求超时设置 ...
课外开发
未读后端部分1. 熟悉后台开发工具,搭建开发环境 idea mysql 2. 学习网络基础知识,了解网络请求整个过程 引用https://blog.csdn.net/qq_40959677/article/details/94873075 所以其流程大致如下: DNS 解析域名得到 IP 地址 客户端与服务器建立连接(TCP 三次握手) 客户端发起请求 服务器接收到请求根据端口号.路径等找到对应资源文件,响应源代码给客户端 客户端拿到请求到的数据(html 页面的源代码),开始解析页面以及请求资源 客户端渲染页面 web 服务器断开连接(四次挥手) a. url 的组成URI:统一资源标识符 URL:统一资源定位符 URN:统一资源名称 url 由请求协议(如 http、https、ftp、tcp 等协议)+域名+端口号+虚拟目录部分+文件名+问号传参+哈希定位 b. DNS 解析过程1、在浏览器中输入 www . qq .com 域名,操作系统会先检查自己本地的 hosts 文件是否有这个网址映射关系,如果有,就先调用这个 IP 地址映射,完成域名解析。2、如果 hosts ...