自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 关于MySQL和MariaDB的列默认值column_default和单引号的问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-06-12 15:32:36 386

原创 使用OpenCSV等Java处理CSV文件的库时生成CSV文件添加BOM头的方法

问题描述:直接使用OpenCSV的CSVWriter往流或文件中写入数据并指定编码格式为UTF-8时,使用Excel直接打开会出现读取中文出现乱码的问题。原因分析:UTF-8以字节为编码单元因此不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式。字符 “Zero Width No-Break Space” 的 UTF-8 编码是 EF BB BF。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码了。在使用CSV库往文件中写数据前,先添加一个BOM头即可在

2022-02-17 14:58:20 2320

原创 Excel 2016处理CSV文件后导致UTF-8编码变化的问题

项目场景:CSV文件可以使用Excel、notepad等编辑器进行编辑,由于笔者部门业务涉及国际语言,Excel 2016默认处理CSV后编码格式会修改为ANSI,导致原本指定了使用UTF-8编码解析CSV文件时出现乱码问题(由于业务需求不能使用ANSI等编码格式)。问题描述:生成一个UTF-8编码的CSV文件模板使用文本编辑器打开查看编码为UTF-8用Excel打开并编辑后再次查看编码格式文本内容以及不再使用逗号分隔,以及编码格式变为了ANSI原因分析:经过测试,Excel在处理.x

2022-02-17 14:44:48 4308

原创 关于Easyexcel在3.0.5版本中单独设置表头单元格的样式问题

一、2.x版本和3.0.5版本的头样式本人在开发中用到Easyexcel的第三方jar包,遇到需要单独设置表头单元格每一格的样式的情况。1.官方文档给出的 HorizontalCellStyleStrategy只能实现把整个表头的样式都设置为一样的。2.而注解方式并不适合动态导出表头的需要,除非进行反射生成JavaBean,但实现起来过于繁琐。于是在网上搜索相关的博客发现均采用了StyleUtils的buildlHeadCellStyle方法,该方法在3版本中已去除,笔者在StyleUtil中看到原

2022-01-11 09:49:59 3949

原创 使用Uni-app的生命周期函数(onLoad,onShow等)时不能使用箭头函数

因为HbuilderX的自动补全功能,然后平时写函数比较多使用箭头函数,不小心把onLoad函数也写成了箭头函数的形式,导致debug了一个小时才发现问题。。。场景重现:A页面向B页面传递一个number参数B页面的onLoad如下:onLoad:(e)=>{ console.log(e.number) if(JSON.stringify(e)!='{}'&&e.number!=null&&e.number.length!=0){ this.number

2021-05-13 01:09:34 1378 1

原创 常用的三种多线程实现及启动方式

三种实现方式:继承Thread类、实现Runnable接口、实现Callable接口继承Thread类的方式,由于以及继承了父类Thread,无法再继承其他的类。实现Runnable接口的方式,可以继承类以及实现其他的接口,但缺点是无法有返回值。实现Callable接口的方式,可以通过指定接口的泛型以及覆写call接口,实现有返回值的线程任务。class MyThread extends Thread{ @Override public void run() { System.out.p

2021-03-05 23:53:01 275

原创 关于字符串拼接的一个坑

    当两个字符串常量“z”和“s”进行拼接时,会先从字符串常量池中进行查找是否存在"zs"这个字符串,如果存在则直接指向该字符串常量,如果不存在则在堆内存new一个String对象并将地址值传给拼接结果。    当两个字符串变量c和d进行拼接时,会直接在堆内存new一个String对象并将地址值传给拼接结果。    所以最后a和b指向的都是常量池中“zs”的地址,a==b的结果为.

2021-03-04 18:33:41 192 1

原创 String,StringBuffer,StringBuilder在开发中的使用区别

性能:StringBuilder>StringBuffer>StringString是不可变对象,在做字符串拼接的时候需要使用StringBuilder或者StringBuffer。StringBuilder是线程不安全的,StringBuffer是线程安全的。但是这并不意味不考虑安全的情况下就应该使用StringBuilder/不考虑性能的情况下就应该使用StringBuffer,在开发中使用StringBuilder的情况比较多。因为在开发中每个线程通过Service对象时访问的都.

2021-03-03 23:16:44 212 1

原创 关于前端通过api访问spring框架后端时跨域访问的的服务端解决方案

1.在访问的Controller中添加HttpServeletResponse参数并设置response的请求头 public Object Function(String param1,String param2,HttpServletResponse response) { //跨域 response.setHeader("Access-Control-Allow-Origin", "*"); //跨域 Header response.setHead

2020-12-26 17:33:40 126 1

原创 一个简单的提高服务端十倍并发访问的例子

一个简单的提高服务端十倍并发访问的例子案例一、本地缓存的原理二、实现步骤1.原服务器端代码如下:2.建立本地缓存3.修改服务端代码块总结案例一个架设在云端的疫情地图案例:当架设在云端的服务器需要通过接口获得在北京的服务器上的数据时,用户的每一次访问疫情地图的页面都必须重新从北京的服务器取得数据,导致了广州的服务器与用户之间的交互需要将近300ms的时间,一秒之内只能服务于1000ms/300ms≈3个用户。我们可以发现这其中占用时间最多的步骤是广州的服务器从北京的服务器取得数据这段过程,如何压缩

2020-12-12 17:28:09 178

原创 JVM内存模型、堆内存分配以及垃圾回收机制(GC)

1.什么是JVMJRE(JavaRuntimeEnvironment,Java运行环境),也就是Java平台。所有的Java 程序都要在JRE下才能运行。普通用户只需要运行已开发好的java程序,安装JRE即可。JVM(JavaVirtualMachine,Java虚拟机)是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支

2020-10-03 22:06:44 191

原创 数据库笔记——UNION关键字与多表查询(连接查询与子查询)

UNION合并结果集要求:被合并的结果集中列数和列类型相同//把两个表中的数据上下合并起来select * from tableAUNION ALLselect * from tableB;UNION 和UNION ALL的区别UNION去除重复行,UNION ALL不去除重复行——————————————————————————————————————————————————————————————————————————————连接查询的分类内连接、外连接与自然连接—————

2020-09-18 20:56:43 756

原创 数据库笔记——实体关系与数据库中存储的方式

实体间的关系: 一对一:如老公和老婆; 一对多:如一个员工从属一个部门,一个部门拥有多名员工; 多对多:一名老师有多名学生,一名学生有多名老师;概念模型:Java中的实体类(JavaBean) 描述实体的三种关系:继承(is a)、成员属性(has a)、成员方法(use a);//描述一对多的关系class Employee { private Department dept;}class Department{ private List<Employee>

2020-09-17 22:53:30 1111

原创 Windows下安装Tomcat遇到的一些问题

JDK版本:1.8 Tomcat版本:9.0.35免安装版 操作系统:Win10错误1:解压后通过命令行运行startup提示’startup’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。解决方法:右键我的电脑,选择高级系统设置,高级子菜单下选择环境变量在Path变量中添加安装目录的bin文件夹的绝对路径:错误2:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least

2020-06-07 11:53:20 380

原创 高级数据库技术 课程笔记四——事务并发调度的相关概念以及控制机制

事务的并发事务的并发是指在某一时间段内,多个事务同时存取相同的数据库数据。并发操作时由于不能隔离而产生的问题:①丢失修改②读入”脏“数据③不可重复读并发调度一组并发事务当中的一些重要的操作按照时间的顺序给出一个排列,则称这个排列是这组事务的一个调度。一致性状态:事务在执行的过程中,变量的状态变化是一致的,则称为一致性状态。一致性调度:如果执行一个调度能使得数据库从一个一致性状态转入另一个一致性状态,则称该调度是一个一致性调度。可串行化调度:一组并发执行的事务,如果其一个调度与该组

2020-05-25 11:33:12 1007

原创 高级数据库技术 课程笔记三——索引的概念与分类

在数据库中建立索引的目的:提高从数据库中检索数据的速度,提高查询效率。索引在数据库中也是以关系的形式构造和保存的,我们称为索引文件。索引记录:由一个搜索码值和指向具有该搜索码值的一个或多个记录的指针构成。宏观的索引种类:1.根据索引文件的存储顺序是否与数据文件的存储顺序相同,将索引分成聚集索引和非聚集索引。2.根据是否为每一个搜索码值都建立,将索引分成稠密索引和稀疏索引。3.根据索引元是有序的还是无序的,将索引分成有序索引和散列索引顺序索引:数据文件按照某一个搜索码值的顺序存储,索引文件也按照

2020-05-24 22:38:47 454

原创 高级数据库技术 课程笔记二——对象关系数据库和XML

一、对象关系数据库对象关系数据库系统(ORDBS)是面向对象数据模型(Object Oriented Data Model, 简称OO模型)和关系数据模型相结合的产物面向对象数据库系统支持OO模型1.OO模型的核心概念对象的定义:是由一组数据结构和在这组数据结构上的操作的程序代码封装起来的基本单位。 (由属性集合和方法集合组成)对象标识OID:面向对象数据库中的每个对象都有一个唯一的不变的标识称为对象标识(OID) 。在OODB中,一个对象是某一类的一个实例。=================

2020-05-23 22:53:19 970

原创 高级数据库技术 课程笔记一——数据文件的组织

一、数据文件的组织每个字段均被SQL语句定义成固定的数据类型,表示成一定长度的字节序列,意味着为每一个字段在存储介质中分配一个固定长度的存储空间。定长记录的表示方式:每个字段按顺序排列,多个字段构成一个表达个人信息的固定长度的记录。(由于内存寻址方式以4的倍数进行,所以每个字段长度都要被扩展成4的倍数)。为了节省空间,对于某些字段可以采用根据实际需求分配空间的方法,这就产生了变长字段和变长记录。(变长记录中变长字段放在定长字段后,变长字段的信息保存在记录的头信息中) “varchar()”大字段的

2020-05-23 15:14:35 484

原创 阿里云Java语言基础自测考试

阿里云Java语言基础自测考试13814161911.假设有如下程序:public class Demo { public static void main(String args[]) { int x = 10 ; double y = 20.2 ; long z = 10L; String str = "" + x + y *

2020-05-15 17:51:25 746

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除