- 博客(111)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注
原创 redis锁原理步骤解析
redis高并发锁原理:1.用一个常量拼接当前用户的ID作为key,当前时间戳加上锁超时时间作为value2.进入一个while死循环3.循环内第一个判断利用redis的一个方法setIfAbsent如果不存在就设置值并返回true即加锁成功,跳出死循环。4.程序往下走此key在redis已经有值的情况下取出值value5.第二个判断取出的值value即时间戳与当前时间戳比较,value小于当前时间则表明该锁已经过期需要重新设置。6.利用redis方法getAndSet设置新值并返回旧值,通过取
2021-06-02 18:01:56 3930
原创 四个隔离级别
1.读未提交:读未提交的事务2.读已提交:读已提交的事务3.可重复读:如果在同一个事务中发出同一个SELECT语句两次或更多次,那么产生的结果数据集总是相同的。4.串行化:读用读锁,写用写锁,读锁和写锁互斥,这么做可以有效的避免幻读、不可重复读、脏读等问题,但会极大的降低数据库的并发能力...
2021-06-02 15:20:05 141
原创 msyql四个事务隔离级别通俗易懂
1.读未提交:可读未提交的事务2.读已提交:读已提交的事务3.可重复读:如果在同一个事务中发出同一个SELECT语句两次或更多次,那么产生的结果数据集总是相同的。4.串行化:读用读锁,写用写锁,读锁和写锁互斥,这么做可以有效的避免幻读、不可重复读、脏读等问题,但会极大的降低数据库的并发能力...
2021-04-12 20:46:58 143
原创 java返回list 写分页
int row = actParamVo.getRow();int page = actParamVo.getPage();if (page * row <= resultList.size()) {resultList = resultList.subList((page - 1) * row, row);} else if ((page - 1) * row < resultList.size() && page * row > resultList.size(
2020-07-09 10:59:23 755
原创 postman传json格式 看好了
{“familyId”: “28”,“userList”: [{“userId”: 440107,“sort”: 1},{“userId”: 440240,“sort”: 3},{“userId”: 440234,“sort”: 2}]}
2020-06-16 14:59:20 302
原创 java根据时间定义什么时候来过/更新
/*** 输入一个日期 返回与当前时间做对比的结果 格式如下* 小于1分钟:刚刚来过* 小于1小时:xxx分钟前来过* 小于1天:xxx小时前来过* 小于31天:xxx天前来过* 小于1年:xxx月前来过* 大于1年:xxx年前来过* @param d2 需要与当前时间做比较的时间* @return*/public static String getTimeToStr(Date d2) {DateFormat df = new SimpleDateFormat(“yyyy-MM-dd
2020-05-13 20:03:08 328
原创 常用正则表达式
常用正则表达式:验证数字:1$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9])$验证有两位小数的正实数:2+(.[0-9]{2})?$验证有1-3位小数的正实数:3+(.[0-9]{1,3})?$验证非零的正整数:^+?[1-9][0-9]$验证非零的负整数:^-[1-9]...
2020-01-20 16:17:49 543
原创 Java接口安全性
Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-UserId以键值对的形式存放在缓存服务器中。服务端接收到请求后进行Token验证,如果Token不存在,说明请求无效。Token是客户端访问服务端的凭证。时间戳超时机制:用户每次请求都带上当前时间的时间戳timestamp,服务端接收到timestamp后跟当前时间进行比对,如果时间...
2019-11-18 09:21:43 1036
原创 java锁加线程池实现高并发线程安全(一)
定义一个接口public interface Lock {public static class TimeOutExection extends Exception{/** * */private static final long serialVersionUID = 1L;public TimeOutExection(String message) { super(mess...
2019-10-29 12:27:09 724
原创 Java线程池原理
线程池原理:1.任务队列2.拒绝策略(抛出异常,直接丢弃,阻塞,临时队列)3.init初始化大小(min,max)4.activemin>=active>=max线程的单个处理,批处理,异步处理。...
2019-10-27 22:22:28 142
原创 手写java高并发Lock、unLock实现线程安全,干净又卫生非常刺激。
1.写一个接口import java.util.Collection;public interface Lock {public static class TimeOutExection extends Exception{ public TimeOutExection(String message) { super(message); }}void lock() thro...
2019-10-27 16:06:09 934
原创 java爬取网站信息(js,css,html)
新建一个普通的maven项目 加入maven依赖即可org.apache.httpcomponentshttpclient4.5.8public class JavaProject {public static void main(String[] args) {//1.生成httpclient,相当于该打开一个浏览器CloseableHttpClient httpClient ...
2019-10-13 22:00:04 675
原创 java编辑word文档并导出
public static void CreatWordByModel(String tmpFile, Map<String, String> contentMap, String exportFile) throws Exception{ InputStream in = null; in = new FileInputStream(new File(tmpFile...
2019-09-17 16:29:14 514
原创 通过字段名从对象或对象的父类中得到字段的值
/*** 通过字段名从对象或对象的父类中得到字段的值(调用字典的get方法)* @param object 对象实例* @param fieldName 字段名* @return 字段对应的值* @throws Exception*/public static Object getValueOfGet(Object object, String fieldName) throws E...
2019-08-22 14:50:38 609
原创 java缓存
import java.util.AbstractMap;import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;/**用来存储短暂对象的缓存类,实现Map接口,内部有一个定时器用来清除过期(timeOut)的对象。注意:为避免创建过多线程,没有特殊...
2019-07-23 12:10:49 226
原创 java递归删除文件
public static boolean deleteDir(File dir) {if (dir.isDirectory()) {String[] children = dir.list();//递归删除目录中的子目录下for (int i=0; i<children.length; i++) {boolean success = deleteDir(new File(dir,...
2019-06-12 09:51:08 155
原创 java中异常抛出后代码还会继续执行吗
今天遇到一个问题,在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗,是否需要在异常后面加上return语句呢?public void add(int index, E element){if(size >= elements.length) {throw new RuntimeException(“顺序表已满,无法添加”);//return; //需要吗?}…}为了...
2019-05-29 12:06:54 1415
原创 将electron应用打包成可执行exe
开始打包通过electron-packager,可以将electron应用打包成可执行exe,虽然可以实现桌面端应用,但是没有安装包而且没有在桌面创建快捷方式总是显得不是很正规,于是查询了下官网,果然有安装程序,下面就一点一点开始实现需求 附上项目地址项目地址 首先我们需要将我们的程序打包 这里我们使用electron-packagernpm install electron-packager --save-dev1package.json 配置 scripts 命令 packager{
2019-03-20 14:22:50 2849 1
原创 java导出excel生成多个sheet
try {OutputStream out = new FileOutputStream(“E:\test.xls”);//导出本地//OutputStream out = response.getOutputStream();//输出客户端List<List> data1 = new ArrayList<List>();List<List> data2...
2019-02-13 09:22:39 9086
原创 java 把字符串数组转List<Integer>
java 把字符串数组转List欢迎使用Markdown编辑器String idsStringList = “1,2,3,4,5”;List idsList = new ArrayList<>();if(StringUtils.isNotBlank(menuIdStr)){List idsStringList = Arrays.asList(menuIdStr.split("...
2019-01-23 11:49:36 5628
原创 java下载文件
//绝对文件路径,文件目标路径public static void downloadFile(String remoteFilePath, String localFilePath) { URL urlfile = null; HttpURLConnection httpUrl = null; BufferedInputStream bis = null; Buffer...
2018-10-10 15:28:19 174
原创 POI修改word指定内容或关键字
/** * * @param srcPath 原文件路径 * @param destPath 生成文件路径 * @param map 要替换的数据集合 */public static void searchAndReplace(String srcPath, String destPath, Map<String, String> map) { try {...
2018-09-29 12:24:59 2339 6
原创 java执行sql文件
/* * 传入文件执行sql语句 * * */ public static void execute(String sqlFile) throws SQLException { Statement stmt = null; List<String> sqlList = new ArrayList<String>()...
2018-09-04 15:26:17 1790
原创 读取word文档工具类
package com.chinagdn.utils;import com.jfinal.kit.StrKit;import org.apache.poi.hwpf.HWPFDocument;import org.apache.poi.hwpf.usermodel.*;import org.apache.poi.poifs.filesystem.POIFSFileSystem;imp...
2018-08-23 15:56:39 886
原创 招聘要求
1.对物联网项目有相关经验,精通物理设备通信、了解硬件基本信息、2.对高并发、高可用有相关经验,掌握底层协议、IO、内存等底层知识3.对软件架构有相关经验,可搭建开发框架、定制一系列开发规范4.对数据库的读写分离,数据库优化有相关经验,可搭建高并发、高可用的数据层招聘技术经理,薪酬待遇面谈,办公地址:黄埔区科学城 工作职责: 1、负责后台系统的研发,及时解决项目涉及到...
2018-08-06 16:32:35 490
原创 单点登录
单点登录就是我们是做了分布式,tomcat集群之后会有session复制的问题,影响利群数量。所以把注册登录拿出来单独做了一个单点登录系统。做的时候是用的redis,key是用uuid生成的一个token,类似于session id,是用户的唯一标识,value是用户的信息。设置了有效期是7天。然后把redis放到了cookie中,实现了cookie的二级跨域。当我们进行操作时,首先要从cooki...
2018-05-11 22:31:11 209
原创 JDBC操作数据库的基本步骤
JDBC操作数据库的基本步骤: 1)加载(注册)数据库驱动(到JVM)。 2)建立(获取)数据库连接。 3)创建(获取)数据库操作对象。 4)定义操作的SQL语句。 5)执行数据库操作。 6)获取并操作结果集。 7)关闭对象,回收数据库资源(关闭结果集-->关闭数据库操作对象-->关闭连接)。[java] view plain copypacka...
2018-05-09 14:33:03 3996
原创 oracle数据库脏读DirtRead
客户端A和客户端B分别取请求数据量为1000w的数据库,A访问的时间为9点00分,并且Select查询所有数据需要10分钟直到9点10分才可以返回结果。客户端B在9点05分的时候去Update数据库所有数据,并且commit成功。请问客户端A查询的数据是客户端Update前的还是Update之后的数据?答案是更新之前的。oracle或者是mysql都有一个一致性读原则,在A客户端访问的时候看到的数...
2018-05-06 12:21:02 1491
原创 jq检索输入文字,选择后查出相关信息
//初始化所有数据App.ajax({ resUrl: "/pact/selectCustomerByName", async:false, callback: function (result) { var arr = []; for(var i = 0;i<result.data.length;i++){ v...
2018-03-16 16:55:55 765
原创 java获取文件前后缀
String caselsh = fileName.substring(0,fileName.lastIndexOf("."));//前缀String suffix = fileName.substring(fileName.lastIndexOf(".")+1);//后缀
2018-03-05 16:39:13 1590
原创 java压缩zip文件
File zipfile = new File(JFinalExt.UPLOAD_PATH + "/" + caselsh + ".zip");/** * 压缩单个文件 * @param srcfile 文件名 * @param zipfile 压缩后文件 */public static void ZipFile(File srcfile, java.io.File zipfile...
2018-03-05 16:33:48 361
原创 java解压zip
/** * 解压文件到指定目录 * 解压后的文件名,和之前一致 * @param zipFile 待解压的zip文件 * @param descDir 指定目录 */ @SuppressWarnings("rawtypes") public static String unZipFiles(File zipFile, St...
2018-03-05 16:28:14 249
原创 js冒泡排序
rb.data是一个数组对象//根据itemPos大小冒泡排序for(var i=0;i<rb.data.length;i++){ for(var j = 0 ;j<rb.data.length-1-i;j++){ if(rb.data[j].itemPos>rb.data[j+1].itemPos){ var temp=rb.d...
2018-03-01 09:13:56 234
原创 css加滚动条样式
style="height:500px;line-height:0px;overflow:auto;overflow-x:hidden;"
2018-02-26 10:41:13 297
转载 RabbitMQ基础概念详细介绍
RabbitMQ基础概念详细介绍转载 2014年11月14日 16:02:06146566转至:http://www.ostest.cn/archives/497引言你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题
2018-02-03 20:03:01 189
原创 java 自定义Map的key/value一对多
/** * 自定义一对多map */ public class OToMoreMap{ private List mkey; private List> mvlaue; public OToMoreMap(){ mkey = new ArrayList(); m
2018-01-12 15:40:31 1848
原创 poi导出excel工具
/** * 创建表格 * @param dataMap 数据 * @return */public XSSFWorkbook createExcelCheck(Map>> dataMap, boolean range){ XSSFWorkbook excel = new XSSFWorkbook(); for (String key: dataMap.keySet()
2018-01-11 09:38:34 368
原创 java集合的底层实现原理
ArrayList实现原理要点概括参考文献: http://zhangshixi.iteye.com/blog/674856l https://www.cnblogs.com/leesf456/p/5308358.htmlArrayList是List接口的可变数组非同步实现,并允许包括null在内的所有元素。底层使用数组实现该集合是可变长度数组,数组扩容时,会将老数组中的元
2017-12-15 17:06:27 1619
activiti需要的jar
2017-11-02
jsp/servlet学得好情况下,怎么系统的去学好三大框架?
2014-11-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人