Java
B/S WebUploader 分片上传
4GB以上超大文件上传和断点续传服务器的实现 随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。 但是在很多情况下,平台运营方并没有大文件上传和断点续传的开发经验,往往在网上找一些简单的PHP或者Java程序来实现基本的上传功能,然而在实际使用中会发现,这些基于脚本语言实现的上传功能模块性能很弱,一是不支持2GB以上的内容
springboot+JXLS+Jexl实现报表模版生成报表
前言 做这个项目的思路是由于公司基于自身发展,需要将之前的老项目平台拆解出来,由于之前的项目是所有的功能全部集中在一起,学习成本以及后续的扩展性来说,非常的不友好,并且由于之前设计人员的流失导致了项目无法进一步优化,所以想将其进行拆解,将单个功能模块进行拆分,形成微服务化,使每个功能的业务更加单一,也更加简单 经过使用了一段时间的老平台,发现目前公司的平台的一些设计确实非常的好,其中,报表的设计理
synchronized和volatile区别
synchronized和volatile区别个人理解JMM:Java Memory Model(Java内存模型),根据并发过程中如何处理、可见性、原子性和有序性这三个特性而建立的模型。可见性:JMM提供了volatile变量定义、final、synchronized块来保证可见性。原子性:个人理解是如果执行,就执行完,synchronized块来保证。有序性:觉得有序是相对性的,根据从哪个线程
mybatis批量插入的四种方式
一、循环插入 二、批量插入 这里是否选择100个为一组还是200或者其他,需要进行多次测试 三、BatchExecutor插入 mybatis提供了三种sql执行器,分别是SIMPLE(默认),REUSE,BATCH: SIMPLE(SimpleExecutor),相当于JDBC的PreparedStatement.execute(sql) 执行完毕即关闭即 PreparedStatem
用纯HTML,JS,CSS实现横向滚动标签页
前言 前不久,在我的一个项目中,需要展示一个横向滚动的标签页,它支持鼠标横向拖动和点击切换。在实现的过程中,我发现这个小功能需要同时用到前端的三辆马车,但是实现难度不高,而且最终效果还不错,是个难得的初学者项目,于是萌生了写这篇文章的想法,希望对初学者有所帮助。同时为了避免初学者学习框架,我打算用纯原生的方式实现它。 我们最终的效果应该类似于下面: 需求分析 需求分析就是细化我们需要完成的功能
【vue】前端下载文件自定义文件名称
【vue】前端下载文件自定义文件名称 https://blog.csdn.net/weixin_48200589/article/details/125067618 下载文件自定义文件名称 文件下载名称不想和后
class文件结构是如何解析的
1、类文件介绍 每一个 Class 文件都对应着唯一一个类或接口的定义信息,但是相对地,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过类加载器直接生成)。 本节中,我们只是通俗地将任意一个有效的类或接口所应当满足的格式称为“Class 文件格式”,即使它不一定以磁盘文件的形式存在。 每个 Class 文件都是由 8 字节为单位的字节流组成,所有的
Spring Boot实现高质量的CRUD-3
(续前文) 7、Service接口类 7.1、新增单个对象 7.2、批量新增对象 7.3、编辑单个对象 7.4、批量修改对象 7.5、删除单个对象 7.6、批量删除对象 7.7、查询单个对象 7.8、分页查询对象 7.9、查询对象列表 7.10、新增或修改对象 7.11、导出Excel文件 7
Java9比Java8改进了什么
1)引入了模块系统,采用模块化系统的应用程序只需要这些应用程序所需的那部分JDK模块,而非是整个JDK框架了,减少了内存的开销。 2)引入了一个新的package:java.net.http,里面提供了对Http访问很好的支持,不仅支持 Http1.1而且还支持HTTP2。 3)引入了jshell这个交互性工具,让Java也可以像脚本语言一样来运行,可以从控制台启动 jshell ,在
Java面试笔记202306
Java基础 ArrayList ArrayList底层数据是动态数组,初始长度为10,每次扩容为原来的1.5倍。扩容流程: 首先会创建一个新的长度的数组,然后使用Arrays.copyOf()方法将旧的数组中的元素复制到新的数组中,最后会将新插入的数据插入到新的数组中。 IO和NIO的区别 io指的是io流。可以实现数据从磁盘中读取和写入。除了磁盘以外内存、网络都可以作为io流的数据来源或
Java反序列化之Commons-Collection篇05-CC2链
<1> 环境分析 jdk:jdk8u65 CC:Commons-Collections 4.0 pom.xml 添加 <2> 链子分析 CC2 实际上是 CC4的一个变型。 在CC3中我们提到了 TemplatesImpl链 加载恶意类命令执行,可以通过这个TemplatesImpl.newTransformer() 来作入口加载恶意类 CC2里的做法 并不是像CC4 通
三种架构模式简介(MVC、MVP、MVVM)
一 简介 手机终端随着每年的更新换代,其性能也飞速增长。依附于此的 Android 应用规模也愈发复杂。截止 2023 年 4 月,最新版本 8.0.32 微信 apk 大小为 238MB,而对比 2011 年微信 1.0 版本 apk 包大小仅为 457KB,短短 12 年增长了 533 倍。 随着应用规模增大,功能扩展困难、测试规模大及并行开发难等问题愈发突出。为了从根本上解决这些问题
javascript:eval()的用法
eval() 是 JavaScript 中的一个全局函数,它可以计算或执行参数。如果参数是表达式,则 eval() 计算表达式;如果参数是一个或多个 JavaScript 语句,则 eval() 执行这些语句。 以下是一些常见的用法: - 计算表达式的值:`var result = eval("3 + 5");`- 执行 JavaScript 代码字符串:`var code = "console.
Java课程设计--象棋--齐鲁工业大学
目录 1.项目简介 2.项目采用技术 3.功能需求分析 4.项目亮点 5.项目功能架构图和UML类图 6.主要功能截图 7.团队成员负责模块(表格形式) 8.项目git地址 9.团队成员git提交截图 10.项目总结 正文 1.项目简介 主要研究基于JAVA技术的中国象棋游戏的分析与设计,对中国象棋游戏特殊的行棋规则给予了细致的分析与理解,设计出了一种实时可行的行棋规
Java反序列化Commons-Collection篇06-CC5链
<1> 环境分析 jdk:jdk8u65 CC:Commons-Collections 3.2.1 pom.xml 添加 <2> CC5链子分析 CC5的链 和CC1差不多,只不过 调用 LazyMap.get()用的是 TiedMapEntry.toString()触发的 我们来看一下 TiedMapEntry.toString() 这里会调用 getValue()
Java中Lambda表达式
Demo1: Demo2: Demo3: 1、Lambda表达式的基本作用?简化函数式接口的匿名内部类的写法 2、Lambda表达式有什么使用前提?必须是接口的匿名内部类,接口中只能有一个抽象方法 (Demo1中出bug的原因就是因为lambda不能使用在抽象类上,使用后或提示‘Target type of a lambda conversion must be an inter
Swagger的简单使用
1、引入依赖 2、配置文件 访问路径:http://localhost:7777/swagger-ui.html 效果: 3、常用注解 @Api:修饰整个类,描述Controller的作用 @ApiOperation:描述一个类的一个方法,或者说一个接口 属性: value:方法描述作用 notes:方法笔记(展开描述) @ApiImplicitParams:多个请求参数的描述
IDE Eval Reset忘了重置进不去怎么办?
今天打开IDEA发现试用30天过期了,进不去页面,所以之前安装的Eval Reset插件无法点击,重置无限免费30天使用了。 这咋办呢。。。 其实这个插件是一个开源项目,无限重置时间之所以能生效,关键就在key文件。我大致了解了一下此插件源代码之后,可以得知key文件里面存储的信息: 1.基本环境 电脑是mac m1 idea 2021.2.3 IDE Eval
json字符串解析 多语言替换
import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import java
List 和 Map 区别;Arraylist 与 LinkedList 区别;ArrayList 与 Vector 区别;
一、概述 List是存储单列数据的集合,Map是存储键和值这样的双列数据的集合,List中存储的数据是有顺序,并且允许重复,值允许有多个null;Map中存储的数据是没有顺序的,键不能重复,值是可以有重复的,key最多有一个null。 二、明细 List 1)可以允许重复的对象。2)可以插入多个null元素。3)是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。4)
Annotation_demo
参考:https://zhuanlan.zhihu.com/p/60730622 CheckAge.java package com.hmb; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; i
docker部署hbase
1.部署hbase hbase是hadoop生态中的一员,最早搭建hbase,需要先安装hadoop,然后安装zookeeper,再安装hbase。现在通过docker可以直接安装hbase,而且容器中并不需要hadoop。安装很简单。直接拉取镜像,然后运行即可。 16010端口是hbase提供的webui界面暴露的端口 通过docker搭建hbase环境虽然简单,但是有个问题,就是它的主机映
Spring 5比Spring4做了哪些改进
Spring 5比Spring4做了哪些改进;【官网说明 】https://docs.spring.io/spring/docs/current/spring-framework-reference/ Spring 4.x新特性 1. 泛型限定式依赖注入2. 核心容器的改进3. web开发增强4. 集成Bean Validation 1.1(JSR-349)到SpringMVC5. Groovy