try

常用类集合

試著忘記壹切 提交于 2019-12-28 05:40:22
java开发常用工具类集合总结 转自:https://blog.csdn.net/wu1226419614/article/details/72673686 1)java正则表达式的匹配包括:邮箱,手机,姓名,昵称,身份证号,银行卡号等; 2)生成6位随机数; 3)对url中字符串进行编码和解码 4)获取客户端ip地址 5)获取系统当前时间 6)生成32位编码不含横线 7)生成MD5编码 8)通过身份证获取性别 9)通过身份证获取生日 10)通过身份证获取生日 11)手机号中间4位替换成星号 12)邮箱地址加星号 13)生成随机密码 下面给出使用方法类; package commons; import com.alibaba.fastjson.JSONObject; import org.apache.commons.beanutils.BeanUtilsBean; import org.apache.commons.beanutils.PropertyUtilsBean; import org.springframework.util.DigestUtils; import org.springframework.util.StringUtils; import javax.servlet.http.HttpServletRequest; import java.io. ;

SpringBoot 系列教程(八十七):Spring Boot全局统一异常拦截处理

陌路散爱 提交于 2019-12-28 03:53:44
一、前言 在早几年项目开发过程中,对于异常处理太过于复杂和杂乱,项目代码中大量的 try catch 使用,通过 try catch 捕捉然后对异常处理,如果处理不了的则往上一层抛,由上一层接管异常的处理,其实不管是 SpringBoot 框架还是 Spring+SpringMVC+Mybatis 框架,都可以使用 @ControllerAdvice 和 @ExceptionHandler 对项目做一个全局的异常拦截处理,这样就可以将开发者从传统 try catch 方式中解脱出来。 二、SpringBoot中默认异常处理策略 在 SpringBoot 中,当出现 404 、 500 等异常时, SpringBoot 设计者对异常的处理有一些默认的策略,默认情况下默认的异常页面如下: 一、浏览器访问 一般情况下浏览器默认发送的请求头中Accept: text/html,所以Spring Boot默认会响应一个html文档内容,称作“Whitelabel Error Page”。 1. 404异常 2. 500异常 来源: CSDN 作者: Thinkingcao 链接: https://blog.csdn.net/Thinkingcao/article/details/103734977

Android 在线升级

我与影子孤独终老i 提交于 2019-12-27 14:53:42
1、获取当前安装版本 //获取当前版本 public int getVersion(Context context){ int version = 0; try { version = context.getPackageManager().getPackageInfo( "项目包名", 0).versionCode; } catch (Exception e) { System.out.println("获取版本号出错"); } return version; } //获取当前版本名称 public String getVersionName(Context context){ String versionName = null; try { versionName = context.getPackageManager().getPackageInfo( "项目包名", 0).versionName; } catch (Exception e) { System.out.println("获取版本名称出错"); } return versionName; } View Code 2、检测服务器发布版本,创建一个ver.aspx 页面 [{"appname":"appName","apkname":"UpdateApp.apk","versionName":"2.0",

Java网络编程

喜你入骨 提交于 2019-12-27 07:22:59
简单的B/S程序: 服务端程序: package com.wx.socket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class TcpServer extends Thread{ //定义服务器接口Server Socket ServerSocket serverSocket = null; //定义一个服务器,定义端口 public TcpServer(int port){ try { serverSocket = new ServerSocket(port); } catch (IOException e) { e.printStackTrace(); } } @Override public void run() { super.run(); System.out.println("服务器再启动中。。。等待用户的连接"); while(true){ //建立socket接口,accept方法是一个阻塞进程,等待有用户连接才往下走 try { Socket socket = serverSocket.accept(); /

redis分布式锁

泪湿孤枕 提交于 2019-12-27 04:23:16
1.使用setNx做分布式锁:setnx只能设置一次值,第二次会设置失败 public Boolean setSecondTime ( String key , String value , Long secondTime ) { try { boolean flag = client . setNX ( key , value ) ; client . expire ( key , secondTime , TimeUnit . SECONDS ) ; } catch ( Exception e ) { log . error ( "jimdbservice setSecondTime" , e ) ; } return flag ; } try { if ( boardJimdbService . setSecondTime ( Sale_Task_key , "111" , 8 L ) ) { //TODO } } catch ( Exception e ) { } finally { boardJimdbService . del ( Sale_Task_key ) ; } 来源: CSDN 作者: 诸葛子房_ 链接: https://blog.csdn.net/weixin_43291055/article/details/103709487

线程并发安全导致内存溢出

谁都会走 提交于 2019-12-27 03:47:44
整个网站访问不了,后台日志内存溢出,提出了个致命单,找到问题后,整理成了案例,供培训使用。 原因: 流量统计FlowUtil类使用两个static的List来装载流量信息实体bean。 用户每次点击都会将一个产生一个bean并加入到第一个List1中,当List1里的bean到一定数量时(可在后台配置缓存大小),List1将所有的实体bean复制到 List2中,然后List1清空继续接收新的bean,这时List2开启一个新线程异步去将bean插入数据库,然后清空。 Method add(bean){ list1 .add(bean); if ( list1 .size() >= cacheSize) { List2 .addAll( list1 ); list1 .clear(); new Thread({ try { insertDB(list2); list2.clear(); } catch (ApplicationException e) { } }).start(); } } 整个操作没有做同步锁定,如果并发量大,List2还没完成插入数据库的操作,List1又将新接收的bean全部加入到List2中,又发起一个新线程去插数据库,如果这个线程跑在之前那个线程前,因为这时List2之前的bean是没有被清空的,再插入数据库的时候,id就会重复,就会抛出违反唯一性约束异常

Lucene教程

。_饼干妹妹 提交于 2019-12-27 03:33:52
一:简单的示例 1.1:生成索引     1.1.1:Field.Store和Field.Index     1.1.2:为数字生成索引     1.1.3:为索引加权     1.1.4:为日期生成索引  1.2:查询    1.2.1:介绍IndexReader 1.3:删除    1.3.1:还原删除的文档    1.3.2:清空回收站时面的数据  1.4:更新 前言:本教程用于 Lucene3.5 ,Maven地址为 <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>3.5.0</version> </dependency> 一:简单的示例 我就不介绍Lucene了,想来看这篇博客的人,都知道Lucene是什么。直接给出生成索引,和查询的示例 1.1:生成索引 生成索引的代码如下: /** * 创建索引 */ public void index(){ IndexWriter writer = null; try { //1、创建Derictory // Directory directory = new RAMDirectory();//这个方法是建立在内存中的索引 Directory directory = FSDirectory

Java异常最佳实践笔记

社会主义新天地 提交于 2019-12-27 03:30:02
Java异常最佳实践笔记 引用 《如何善用Java异常》 https://juejin.im/post/5bacd8975188255c69780e7b 笔记 Java中的异常分为两种: 无法捕获处理的系统级别Error. 可以被认为处理的检测异常Exception. 重点是他们都继承了Throwable接口 其中需要我们处理的只有Exception的子类。Exception的子类异常都是【 可以 】被我们的捕获处理的。可以被我们处理的意思,即可不处理,也可以处理。(即,可以处理,但没必要) 其中Exception的子类RuntimeException则允许我们不对他处理,它是一种特殊Exception,特殊之处在于允许我们不对它做捕获处理, 这种异常叫运行时异常,意思就是运行期间才会产生的,理论上大部分异常都是在运行期间才会产生了。也就是说大部分异常我们都可以置之不理,因为他是运行期间才会产生的,运行期间发现的意外大部分都是我们无法考虑到的(就像我们的生活,“意外”总比“预料”多。) 异常最佳实践: 能用runtimeExcepiton,用runtimeException。把异常抛给运行时处理,毕竟大部分的异常都是无法认为处理的,直接tryCatch也无法处理的异常,只能抛给运行时了。 能tryCatch的异常就不算异常,因为既然能tryCatch证明你能处理它

Lua实现Try Catch捕获异常

十年热恋 提交于 2019-12-27 02:39:48
1.实现代码: -- Lua Try Catch -- 打印错误信息 local function __TRACKBACK__ ( errmsg ) local track_text = debug . traceback ( tostring ( errmsg ) , 6 ) ; logError ( "--- TRACKBACK ---" ) ; logError ( track_text , "LUA ERROR" ) ; logError ( "--- TRACKBACK ---" ) ; local exception_text = "LUA EXCEPTION\n" . . track_text ; return false ; end -- [ [ 尝试调一个function 这个function可以带可变参数 如果被调用的函数有异常 返回 false ,退出此方法继续执行其他代码并打印出异常信息; ] ] function TryCatch ( func , . . . ) local args = { . . . } ; return xpcall ( function ( ) func ( unpack ( args ) ) end , __TRACKBACK__ ) ; end 2.示例: -- TryCatch 案例 local function aa (

javascript常用方法函数收集

喜欢而已 提交于 2019-12-27 01:42:04
字符串长度截取function cutstr(str, len) { var temp, icount = 0, patrn = /[^\x00-\xff]/, strre = ""; for (var i = 0; i < str.length; i++) { if (icount < len - 1) { temp = str.substr(i, 1); if (patrn.exec(temp) == null) { icount = icount + 1 } else { icount = icount + 2 } strre += temp } else { break; } } return strre + "..." } 替换全部 String.prototype.replaceAll = function(s1, s2) { return this.replace(new RegExp(s1, "gm"), s2) } 清除空格 String.prototype.trim = function() { var reExtraSpace = /^\s*(.*?)\s+$/; return this.replace(reExtraSpace, "$1") } 清除左空格/右空格 function ltrim(s){ return s.replace( /^(\s*| *)