- 博客(94)
- 收藏
- 关注
原创 虚拟列表怎么滚动到对应的node节点呢?scrollIntoView仅仅针对界面上DOM已经渲染的情况
虚拟列表是一种优化长列表渲染性能的技术,特别适用于需要展示大量数据的场景。它通过仅渲染用户当前视窗内和附近的元素来减少DOM节点的数量,从而显著提高渲染性能和用户体验。提供了高性能的窗口化和惰性加载解决方案,支持表格、列表、网格等多种组件。缺点:列表项的高度或宽度必须一致。动态高度/宽度: 列表项的高度或宽度可以不同,需要在滚动时动态计算每个项目的位置和尺寸。固定高度/宽度: 假设每个列表项的高度或宽度是固定的,利用这个假设快速计算需要渲染的项目。4、虚拟列表的实现,虚拟列表的实现方式主要包括以下几种。
2024-07-26 16:20:44 312
原创 insert语句插数据入表的时候,Date带毫秒,并且会进1. 2022-06-18 01:07:18.523 入表时间为2022-06-18 01:07:19
insert语句.带毫秒的Date清0方法
2022-06-24 13:56:48 509
原创 Redis多容器高并发场景 , 设置缓存的时候,要考虑多容器加锁的场景。(incr计数和redis分布式锁区别)
redis 的incr 多容器高并发和加锁区别
2022-06-24 13:38:41 875
原创 如何异步更新短信发送出去的数量。一条一条更新数据库会导致并发压力过大。这里介绍一种异步更新的方法
如何异步更新短信发送出去的数量。一条一条更新数据库会导致并发压力过大。这里介绍一种异步更新的方法
2022-06-13 10:49:20 395
原创 The error occurred while setting parameters,Communications The error may involve defaultParameterMap
The error occurred while setting parameters,Communications link failure
2022-06-02 10:35:11 2588
原创 如何将一个List列表,通过id和parentId将其转换成Tree结构
如何将一个List列表,通过id和parentId将其转换成Tree结构
2022-06-02 10:26:11 1052
原创 java并发编程(2):Callable、Future和FutureTask多任务执行
java并发编程(2):Callable、Future和FutureTask多任务执行 常见创建线程的2种方式:一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 &n
2021-11-24 11:04:12 734
原创 Java并发编程(1):线程池的submit()和execute()方法的区别
一。线程池的submit()和execute()方法的区别 (1).线程池中提交线程的时候其实有两种方法,一种是execute()另外一种是submit()。这两个方法的区别主要体现在三个方面:(1)接收的参数不同;(2)submit()有返回值,execute()没有;(3)submit()方法便于Exception处理。线程池中的execute方法大家都不陌生,即开启线程执行池中的任务。还有一个方法s
2021-11-24 10:30:01 985
原创 java并发编程(3):Concurrent包中BlockingQueue阻塞队列详解
认识BlockingQueue阻塞队列一.前言 在新增的Concurrent包(建议大家去学习了解一下,针对线程安全,多线程并发做的工具包)中, BlockingQueue阻塞队列很好的解决了在多线程中,高效的安全的解决”数据传输“问题,通过使用这些线程安全的队列类,为我们搭建高质量的多线程程序带来了极大的便利。二. 认识BlockingQueue阻塞队列:队列,在数据结构中的作用如图: 常用的队列主
2021-11-23 11:24:55 477
原创 java线程池ThreadPoolExecutor类使用详解
java线程池ThreadPoolExecutor类使用详解(1).首先,为什么要使用线程池取创建线程呢?1.在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。2.ThreadPoolExecutor方式实现,使用ThreadPoolExecutor有助于大家明确线程池的运行规则,创建符合自己的业务场景需要的线程池,避免资源耗尽的风险。
2021-11-23 10:38:32 485
原创 mybatis中trim,foreach等标签以及prefixOverrides、suffixOverrides等属性的意义以及使用
1.首先来看一下常用的属性作用1.以下是trim标签中涉及到的属性属性prefix拼接sql语句中所用到的前缀suffix拼接sql语句中所用到的后缀prefixOverrides去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"suffixOverrides去除sql语句后面的关键字或者字符,该关键字或者字符由suffix
2021-11-18 19:52:43 5648
原创 Mybatis使用sql拼接,使用List切片,进行分片查询。
分片实现的场景当在for循环中,对数据库进行操作的时候,每一次循环都会与数据库建立连接,对数据库造成了很大的压力。这个时候可以使用sql拼接的方式,但是我们在sql拼接的时候,如果拼接的字符串过长,数据库仍然会报错, 这个时候,我们需要根据实际情景,去设置一个list的分片大小。1.对List分片,实现sql拼接,减少对数据库的查询次数。集合过大,单词处理sql拼接字符串过长,对数据库会造成很大压力,甚至报错。比如 Oracle数据库中IN参数个数不能超过1000 。首先,通过List对实现sq
2021-11-18 19:14:08 1789
原创 Map集合中values,keySet,entrySet的区别以及用法。
Map集合中values,keySet,entrySet的区别以及用法。1.先来看一下阿里java编码规范是怎么解释的。再来看定义:在Map集合中values():方法是获取集合中的所有的值----没有键,没有对应关系,这里要注意,valus()方法获取的只有V集合。KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key .注意,这里keySet()
2021-09-28 09:48:39 1380
原创 JDK8 Stream流Collectors的groupingBy和mapping
JDK8 Stream分组功能 Collectors.groupingBy 两种写法Map<String, List<String>> sortFood = FoodList.stream().collect(Collectors.groupingBy(Food::getColor, Collectors.mapping(Food::getSort, toList())));sortFood.forEach((k, v) -> { System.out.printl
2021-09-27 10:14:46 1578
原创 centos6出现 couldn‘t resolve host mirrors.aliyun.com
阿里云CentOs 6.4 yum报错Couldn’t resolve host’xx在centOs上安装软件时。提示报错信息:Loaded plugins: securityhttp://mirrors.aliyun.com/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - “Couldn’t resolve host ‘mirrors.aliyun.com’”Trying other mirror.http:
2021-04-14 18:39:27 906
原创 前端工程师面经--
1. js中8大数据类型,4大解决方案。es5中6中属性类型:Undefined string boolean NAN,Number,Objectes6新增了一种:Symbol:这种对象永远不相等,解决属性名冲突的问题。谷歌也出现了一种:bigInt,安全存储大整数Object包含了(function Array,Data)null和Undefined的区别:null只有一个值,是null,不存在的对象,表示一个空指针对象。undefined只有一个值,是undefined没有初始化,派生于
2021-04-14 18:26:09 986
原创 Redis笔记
Redis1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为
2021-03-07 23:13:57 111
原创 在idea导入web项目,并部署到Tomcat服务器详细教程
一:idea配置1.点击file->open2.选择你要导入的项目3. File->Project Structure打开项目配置窗口,在Project项中配置JDK版本和Project lanugae level4.在Modules项的Sources标签页中配置项目结构(主要配置需编译的Java文件和配置文件5.在Modules项的Paths标签页中配置编译后文件输出路径6.在Modules项的Dependencies标签页中配置依赖关系(我这里是一个非常小的项目演示,所
2021-03-04 10:05:51 9462 3
原创 idea怎么给类和方法自动快速添加注释的方法(/**@return @Param*/)
1.生成类的注释效果图:1.打开idea项目之后 点击file2.搜索live,找到File and Code Templates和live Template(后面用)3.点击File and Code Templates 再点击class 开始配置(配置模板我会放在截图下面)/*** @program: ${PROJECT_NAME} ** @description: ${description}** @author: Mr.Like** @create:
2021-03-03 17:05:34 7815 6
原创 java过滤器监听器讲解
1.Filter:过滤器1.概念: 生活中的过滤器:净水器,空气净化器,土匪、 web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。过滤器的作用: 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤…2.快速入门:1.步骤:定义一个类,实现接口Filter复写方法配置拦截路径web.xml注解2.代码:@WebFilter("/*")//访问所有资源之前,都会执行该过滤器 public class FilterD
2021-03-03 15:47:18 101 1
原创 EL$jstl讲解笔记
JSP:1. 指令 * 作用:用于配置JSP页面,导入资源文件 * 格式: <%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %> * 分类: 1. page : 配置JSP页面的 * contentType:等同于response.setContentType() 1. 设置响应体的mime类型以及字符集 2. 设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncoding属性设置当前页面的字符
2021-03-01 16:30:39 89
原创 session和cookie讲解
1. 会话技术 1. Cookie 2. Session2. JSP:入门学习会话技术1. 会话:一次会话中包含多次请求和响应。 * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止2. 功能:在一次会话的范围内的多次请求间,共享数据3. 方式: 1. 客户端会话技术:Cookie 2. 服务器端会话技术:SessionCookie:1. 概念:客户端会话技术,将数据保存到客户端2. 快速入门: * 使用步骤: 1. 创建Cookie对象,绑定数
2021-03-01 10:05:05 172
原创 request对象和response对象详细讲解
Servlet:概念步骤执行原理生命周期Servlet3.0 注解配置Servlet的体系结构 Servlet – 接口|GenericServlet – 抽象类|HttpServlet – 抽象类GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可HttpServlet:对http协议
2021-02-26 11:19:32 827
原创 详细讲解Servlet的使用(执行原理、生命周期、3.0注解配置)
1.Servlet: server applet概念:运行在服务器端的小程序Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。将来我们自定义一个类,实现Servlet接口,复写方法。先来了解一下Servlet3.0之前快速入门:1. 创建JavaEE项目2. 定义一个类,实现Servlet接口* public class ServletDemo1 implements Servlet3. 实现接口中的抽象方法4. 配置Servlet在web.x
2021-02-25 10:14:24 476 1
原创 tomcat安装运行和idea项目部署----详解
1.Tomcat:安装运行和部署讲解下载:http://tomcat.apache.org/安装:解压压缩包即可。注意:安装目录建议不要有中文和空格卸载:删除目录就行了4.启动:* bin/startup.bat ,双击运行该文件即可访问:浏览器输入:http://localhost:8080 回车访问自己http://别人的ip:8080 访问别人可能遇到的问题:1.黑窗口一闪而过:原因: 没有正确配置JAVA_HOME环境变量解决方案:正确配置JAVA_HOME环境
2021-02-25 09:49:13 221
原创 数据库连接池 C3P0:Druid:Spring JDBC
数据库连接池 概念:其实就是一个容器(集合),存放数据库连接的容器。 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器好处:节约资源用户访问高效实现:标准接口:DataSource javax.sql包下的方法:获取连接:getConnection()归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connectio
2021-02-24 09:35:30 115
原创 MySQL【JDBC连接池全网最详细讲解--jdbc常用类详细讲解】
JDBC1.1什么是 JDBC JDBC 规范定义接口,具体的实现由各大数据库厂商来实现。JDBC 是 Java 访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用 JDBC 接口中的方法即可,数据库驱动由数据库厂商提供。使用 JDBC 的好处:1).程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。2) 使用同一套 Java 代
2021-02-23 10:44:32 381
原创 MySql多表查询
多表查询:* 查询语法: select 列名列表 from 表名列表 where....* 准备sql # 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept (NAME) VALUES ('开发部'),('市场部'),('财务部'); # 创建员工表 CREATE TABLE emp ( id INT PRIMARY KEY
2021-02-22 20:37:46 440
原创 mysql表的约束【聚合函数,主键外键唯一非空约束,表之间的关系】详细讲解
DQL:查询语句1. 排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式1 , 排序字段2 排序方式2... * 排序方式: * ASC:升序,默认的。 * DESC:降序。 * 注意: * 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。2. 聚合函数:将一列数据作为一个整体,进行纵向的计算。 1. count:计算个数 1. 一般选择非空的列:主键 2. count(*) 2. max:计算最大值 3.
2021-02-22 14:36:39 216
原创 MySQL基础语法(DDL、DML、DQL--crud)
MySQL 基础语法mysql安装教程链接: https://blog.csdn.net/qq_43436117/article/details/113928694.数据库的基本概念1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库? * 用于存储和管理数据的仓库。3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQLMySQL数据库软件1. 安装 页头链接2.
2021-02-22 09:37:32 249 1
原创 msql详细安装教程(内含5.7版本安装包)
1.如果你有安装包,直接进行数据库的安装。如果你没有安装包,又不想去官网下载,5.7版本的安装包链接如下。mysql安装包:链接:https://pan.baidu.com/s/1q0mvgLmW_QYZAzEpmbwVoA提取码:43h31数据库的安装打开下载的 mysql 安装文件双击解压缩,运行“mysql-5.5.40-win32.msi”。2. 选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom
2021-02-22 09:31:55 791
原创 java【Stream流和方法引用】详细讲解
【Stream流、方法引用】1.Stream流说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?在Java 8中,得益于Lambda所带 来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。1.1 引言传统集合的多步遍历代码 几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元 素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历。例如:impo
2021-02-20 21:06:08 260
原创 java【网络编程TCP/IP Socket[类] 套接字 ServerSocket[类] C/S B/S】详细讲解
【网络编程】1.网络编程入门1.1软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。1.2 网络通信协议**网络通信协议:**通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信
2021-02-20 19:06:35 770
原创 java【函数式接口】【函数式编程】详细讲解
函数式接口1.1 概念 函数式接口在Java中是指:有且仅有一个抽象方法的接口。 函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可 以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。备注:“语法糖”是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-each语法,其实 底层的实现原理仍然是迭代器,这便是“语法糖”。从应用层面来讲,Java中的Lambda
2021-02-20 17:11:59 566
原创 java【缓冲流,转换流,序列化流】重点详细讲解
【缓冲流、转换流、序列化流】1. 缓冲流 今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。1.1 概述缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:Buffered
2021-02-20 14:19:20 159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人