- 博客(13)
- 收藏
- 关注
原创 java生成随机汉字的几个方法
生成随机汉字的几个方法方法1: 根据Unicode生成方法2: 根据GBK编码生成方法1: 根据Unicode生成汉字Unicode编码的区间为:0x4E00 → 0x9FA5char result = (char) (0x4e00 + (int) (Math.random() * (0x9fa5 - 0x4e00 + 1)));System.out.println("result : " + result);方法2: 根据GBK编码生成 String str = ""; int high
2022-05-19 19:23:05
5819
原创 Redisson实现分布式锁完整实例 多线程模拟并发(单机)
1 前言随着分布式系统以及spring cloud等微服务架构的普及,对于分布式锁的掌握成为了每个程序员必须掌握的基操。常见的分布式锁的实现方法有基于数据库,基于分布式协调系统,基于缓存三种。本文通过Redisson 分布式重入锁用法,来简单实现分布式锁。加锁逻辑:根据给定key判断锁存不存在如果锁不存在则新增锁,并设置重入计数为1,并设置过期时间。如果锁存在,且唯一标识匹配,则表明锁重入请求,重入计数+1,并设置过期时间。如果锁存在,但唯一标识不匹配,则表明被其他线程占用,返回剩余过期时间。
2021-07-15 01:49:38
2662
原创 spring boot后台分页实例
本文使用datatable + spring boot实现后台分页。当有大量数据,需要通过表形式展示时,需要进行后台分页,即每次只请求当前页面需要展示的数据。引用的库前台:jQuery 2.2.4DataTable 1.10Html5后台:Spring BootJPA(Hibernate)Maven作为示例,创建一个名为datatable的数据库。并创建名为tb_datatable的表,表中有id,column1,column2,column3共四列数据。如下图,共插入21行类
2020-07-18 21:58:10
398
原创 java多线程间数据通信方法
本文介绍Java多线程访问共享的数据的三种策略第一种:使用synchronized同步方法共享可变数据第二种:使用volatile共享可变数据第三种:不共享可变数据,只共享不可变数据首先看一段错误的代码在下例中,main方法为主线程,backgroundThred为子线程。在主线程中,我们首先调用了子线程,并输出状态,此时应该为RUNNABLE(执行中)。为了使子线程能够允许2秒我们调用了sleep()方法来睡眠2秒,2秒后将stopFlag置为true。这时我们预期,子线程的while方法应
2020-07-04 06:55:40
288
原创 Spring Boot+JPA增删改查实例
本文介绍orphanRemoval属性,并使用该属性对子类实体进行增删操作。阅读本文您需要掌握以下前提知识:Spring Boot基础知识Hibernates-JPA基础知识Java基础知识什么是orphanRemoval,百度了下发现没有非常准确且简单的定义。orphanRemoval:当子类实体不再与父类实体关联时即删除该实体。即,当你从父实体的相应集合中删除了该子类实体时,它会被物理删除,而非只在内从中删除。以下为实例,模拟了评论以及点赞操作:为了让大家更加直观,先上项目结构图:
2020-06-30 02:11:17
314
原创 group by多字段多次分组(项目实例)
本文介绍group by配合聚合函数在实际项目中的实例。先模拟生成一个表模拟用户的交易记录,分别有交易日,序列号,用户ID,交易金额四个字段,并设置交易日,序列号,用户ID为联合主键。并插入一些测试数据,两名用户的共7条交易数据。Q:现要求能够输入每个用户最后一个交易(即交易日最新,并且序列号为该交易日最大)的交易详细的SQL语句。DDL如下:CREATE TABLE IF NOT EXISTS trade_history( BASE_DATE DATE NOT NULL, SEQU
2020-06-27 11:27:20
4535
2
原创 java传统for循环及增强for循环比较及使用场景详解
本文比较了java传统for循环及增强for循环的优缺点,及适合的使用场景。首先来看一段代码片段:片段:遍历数组 // 生成一个长度为10的整型数组 int[] numArr = new int[10]; // 传统for循环,遍历赋值 for( int i=0; i<numArr.length; i++ ) { numArr[i] = i; } // 增强for循环,遍历取值 for( int a : numArr ) { System.out.println( a );
2020-06-26 12:15:41
1429
原创 bootstrap+spring boot实现折叠展开功能(collapse组件)
本文使用bootstrap及spring boot,来实现内容的折叠和展开(这里模拟生成评论的内容)。本方法不适合数据量过大的情况,数据量过大时应采用分页检索的办法。使用到的技术:Spring BootThymelead(前台模板引擎、可用JSP替代)Bootstrap 4.4.1JQuery 3.4.1Maven,Java SE1.8,Apache Tomcat等实现效果:Spring Boot项目生成地址:https://start.spring.io/项目结构如下(红框内为
2020-06-25 13:40:55
1391
原创 spring boot带进度条文件上传简单实例
本文使用ajax方法来实现文件上传带进度条显示。进度条样式使用了Bootstrap的progress bar组件。进度条的计算使用了XmlHttpRequest的onprogress事件控制器。使用到的技术:Spring BootThymelead(前台模板引擎)Bootstrap 4.4.1JQuery 3.4.1Maven,Java SE1.8,Apache Tomcat等项目结构(红框内为关联文件,yml等基础配置也是需要的)YML启动文件,注意设置文件上传的大小限制,默认的是1
2020-06-24 17:49:08
2085
2
原创 CentOS 8安装Nginx并配合Tomcat搭建反向服务器
######### Overview ###########Search for Nginx package:sudo yum search nginx#Install nginx package using the yum command on CentOS 8:sudo yum updatesudo yum install nginx#Update firewall setti...
2020-03-03 15:24:20
552
原创 flutter各源文件目录生成方法
最近开始上手Flutter,看了官方文档后,产生了所有source都能写在main.dart的错觉。在官方社区查了一下,flutter项目应该怎样生成目录(源码的folder)。以此记录一下,希望对大家有帮助。 首先,所有flutter项目的根基——main.dart,应该尽可能的保持简单(即少量代码),作为一个flutter项目的总览。下面是官方文档建议的文件结构,由bloc...
2019-12-20 16:21:31
985
原创 更改flutter启动图标icon
//修改pubspec.yaml配置文件dev_dependencies:flutter_test:sdk: flutterflutter_launcher_icons: “^0.7.4” //在依赖中添加库//pubspec.yaml配置文件中设置图标flutter_icons:android: “launcher_icon”ios: trueimage_path: “a...
2019-12-17 21:53:21
415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人