
java
guorun18
这个作者很懒,什么都没留下…
展开
-
SecureRandom 引发的线程阻塞
写在前面--每个人都是在不断碰壁中获得成长,bug的逼格越高, 成长速度越快。 本人上周亲手写下了一个牛逼的bug,直接导致的结果是,晚上12点升级后台接口以后,第二天早上7点多开始,所有的app页面出现卡顿,白屏。公司研发老总,迅速召集公司运维大佬,产品大佬,研发大佬奔赴公司解决bug。所有人,开始手忙脚乱,查看线上日志,抓包,阿尔萨斯监听 接口耗时。各个大神,各种手段,各显才...原创 2019-09-23 22:08:14 · 8497 阅读 · 6 评论 -
java 中 调用ping测试网络是否通
public static final String[] encodes = new String[] { "UTF-8", "GBK", "GB2312", "ISO-8859-1", "ISO-8859-2" };public static void main(String[] args) throws Exception {// TODO Auto-generated method转载 2017-03-15 10:14:56 · 3459 阅读 · 0 评论 -
将字符串转换成指定编码格式(转载自网络,地址不详,请文章的作者见谅)
/*** 将字符串转换成指定编码格式* * @param str* @param encode* @return*/public static String transcoding(String str, String encode) {String df = "ISO-8859-1";try {String en = getEncode(str);if转载 2017-03-15 10:13:50 · 772 阅读 · 0 评论 -
struts2中获取 seesion与sessionId
Map ss = ActionContext.getContext().getSession();String str = ServletActionContext.getRequest().getSession().getId();System.out.println("------113---------"+str);原创 2017-03-23 11:37:14 · 1912 阅读 · 0 评论 -
session+application+cookie 实现单态登陆,且解决浏览器意外关闭的问题(转自http://blog.youkuaiyun.com/u010723709/article/details/4)
最近在帮朋友做一个购物网站,里面涉及到了登陆的问题。其中包括后台管理员的登陆和用户的登陆。在这个网站中,设计了后台管理员单态登陆,即一个账号只能有一个登陆实例。很容易想到的就是用application实现,在application中放置一个hashmap,储存登陆的管理员信息。同时为了实现登陆超时,也在session中存放登陆对象,通过设置session的listener监控session转载 2017-03-23 11:26:35 · 722 阅读 · 0 评论 -
浏览器关闭后,Session会话结束了么?
转载自;http://blog.youkuaiyun.com/stanxl/article/details/47105051今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保存当前用户的状态信息,初学它的时候,认为Session的生命周期是从转载 2017-03-23 11:12:55 · 3215 阅读 · 0 评论 -
JAVA的垃圾回收机制
2.1 触发GC(Garbage Collector)的条件 1)GC在优先级最低的线程中运行,一般在应用程序空闲即没有应用线程在运行时被调用。但下面的条件例外。 2)Java堆内存不足时,GC会被调用。当应用线程在运行,并在运行过程中创建新对象,若这时内存空间不足,JVM就会强制调用GC线程。若GC一次之后仍不能满足内存分配,JVM会再进行两次GC,若仍无法满足要求,转载 2017-04-07 10:47:04 · 349 阅读 · 0 评论 -
判断字符串中几个汉字
public int vd(String str){ int count = 0; String regEx = "[\\u4e00-\\u9fa5]"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(st转载 2017-03-20 15:11:06 · 1800 阅读 · 0 评论 -
java.util.ResourceBundle
Java中提供了一个工具类 ResourceBundle可以直接读取src下的properties文件(注意只能读该文件)再通过getString("");通过键获取值:例如:ResourceBundle rb = ResourceBundle.getBundle("log4j");String str = rb.getString("log4j.rootLogger"原创 2017-03-20 14:12:53 · 250 阅读 · 0 评论 -
线程-synchronized方法和同步块的作用范围;synchronized(this)和synchronized(obj)的区别
原文:http://m.blog.youkuaiyun.com/blog/u010802573/38661719参考资源:http://www.cnblogs.com/oracleDBA/archive/2010/05/22/1741642.htmlhttp://www.cnblogs.com/highriver/archive/2011/12/18/2291965转载 2017-01-17 11:19:23 · 976 阅读 · 0 评论 -
自定义标签
自定义标签的开发步骤:定义一个标签处理类;定义描述文件;根据描述文件处理标签 定义描述文件的过程:在WEB-INF下创建一个tld文件,复制apache-tomcat-7.0.22\webapps\examples\WEB-INF\jsp2目录下的jsp2-example-taglib文件的头信息和一个标签内信息到这个事先创建好的tld文件中,并作出相应修改。tld部分文转载 2016-12-14 11:59:21 · 184 阅读 · 0 评论 -
ldap安装与学习(转载自:http://blog.sina.com.cn/s/blog_72ee04a40100p0ce.html)
一、OpenLDAP安装和配置安装还是比较简单的,一直next就好。下搭建LDAP服务器" style="margin:0px; padding:0px; border:0px; list-style:none">这里记得把上面2个都选上,将LDAP注册为系统的一个服务,默认安装位置:C:\Program Files\OpenLDAP,进入安装目录,编辑slap转载 2016-12-13 18:54:04 · 559 阅读 · 0 评论 -
Tomcat 7下如何利用 catalina.properties 部署公用类
http://blog.youkuaiyun.com/teamlet/article/details/24840959Tomcat 有很多配置文件,其中一个是 catalina.properties ,本文介绍catalina.properties 中的设置项。一、组成catalina.properties中的设置项包括四个部分:转载 2017-03-24 15:51:25 · 658 阅读 · 0 评论 -
获取tomcat目录下的properties
在复杂功能的系统中,比如已经产品化的系统,各个功能是独立的,并且是可维护的,为了使产品的可可扩展性良好,需要写很多配置文件。把硬件或者中间件的信息都写在文件中便于运维人员进行更改,同时也就避免了研发人员的二次参与。但是产品化的系统,jar包众多。运维人员在修改时去修改jar中的properties就会很麻烦,一方面寻找需要时间,一方面如果研发人员命名jar包不规范,运维人员根本不知道去哪里更新配置原创 2017-03-24 16:59:02 · 2848 阅读 · 0 评论 -
分布式锁(转载自:https://www.cnblogs.com/seesun2012/p/9214653.html)
### 什么是锁?在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。 而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的线...转载 2019-04-18 19:43:16 · 745 阅读 · 0 评论 -
根据图片路径把图片的二进制数据写入内存
public static byte[] readInputStream(InputStream inStream) throws Exception{ ByteArrayOutputStream outStream = new ByteArrayOutputStream(); //创建一个Buffer字符串 byte[] buffer ...转载 2018-03-30 17:54:32 · 1671 阅读 · 0 评论 -
开启多线程执行
public static void main(String[] args) throws Exception { for (int i = 0; i < 500; i++) { startThread(); } } public static void startThread() { new ...原创 2018-03-30 17:52:40 · 545 阅读 · 0 评论 -
多线程模式下懒汉式单利模式
private static Singlon instance = null; public static String s = "aa"; private Singlon() { } public static Singlon getInstance(){ if (instance == null) { synchronized (Singlon.class...转载 2018-02-24 18:42:01 · 227 阅读 · 0 评论 -
redis的使用(转载自:http://www.cnblogs.com/edisonfeng/p/3571870.html)
java对redis的基本操作一、server端安装 1、下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载windows平台文件: 解压后,选择当前64位win7系统对应的版本: 2、安装转载 2017-08-15 15:57:02 · 562 阅读 · 0 评论 -
Java中的set去重复(基础类型,与对象)转载自http://blog.youkuaiyun.com/miqi770/article/details/8998517
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; /** * 编写者:CP * 编写日期:2011-9-7 * 类描述:set集合针对String 类型和8大基础数据类型 过滤掉重复数据,如果存放的是转载 2017-08-21 17:08:59 · 380 阅读 · 0 评论 -
spring 配置数据库连接池
1 dbcp bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource" > property name = "driverClassName" value = "com.mysql.jdbc.Driver" /> property name = "ur转载 2017-07-12 17:12:53 · 879 阅读 · 0 评论 -
在ibatis中打印sql语句
web.xml中配置:org.springframework.web.util.Log4jConfigListenerlog4jConfigLocationWEB-INF/classes/config/log4j.xml:log4j.xml:value="%p - %C{1}.%M(%L) | %m原创 2017-05-04 13:59:54 · 5059 阅读 · 0 评论 -
照片上传
Class BaseAction {public File image; //上传的文件public String imageFileName; //文件名称public String imageContentType; //文件类型//获取上传照片的路径String path = ServletActionContext.getServletC原创 2017-05-04 13:52:46 · 499 阅读 · 0 评论 -
redis 使用
redis是Nosql数据库中使用较为广泛的非关系型内存数据库,redis内部是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型,类似于Java中的map)。Redis基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也转载 2017-04-19 16:46:36 · 326 阅读 · 0 评论 -
xml与对象的转换
1 String str = “xmlg格式的标签” 自定义对象 A A中封装的属性为xml中的标签 MonitorShowUtil monitorShowUtil=MonitorShowUtil.getInstance();MonitorShowUtil :public class MonitorShowUtil {原创 2016-09-02 12:06:15 · 389 阅读 · 0 评论 -
读取当前目录的文件
1:BufferedReader reader = null; URLClassLoader loader = (URLClassLoader)getClass().getClassLoader(); InputStream in = null; URLConnection urlConnection = null; urlC原创 2016-09-02 11:15:23 · 346 阅读 · 0 评论 -
两个Java项目之间的通信
两个java项目,他们之间进行信息的通信前提:必须知道要通信的java项目(接收请求方)的服务器的IP地址和访问路径。其实两个java项目之间的通信还是使用HTTP的请求。主要有两种方式:①使用apache的HttpClient方式。②使用JDK自带的java.net包下的HttpURLConnection方式。HttpURLConnection方式:H转载 2016-07-22 10:39:19 · 22645 阅读 · 3 评论 -
跟日期 时间有关的计算与比较
/*** 计算N年之后的日期* */public Date calDateByNum(int num){Date date = new Date();Calendar cld = Calendar.getInstance();cld.setTime(date);cld.add(Calendar.YEAR, num);return cld.getTime();}原创 2015-11-05 13:07:29 · 377 阅读 · 0 评论 -
删除一个集合中的元素
遍历一个集合list从集合中删除元素时不能在遍历的过程中删除,而要把要删除的元素存在另一个集合(list2)里,遍历完成后调用list.removeAll(list2)原创 2015-08-16 16:47:27 · 550 阅读 · 0 评论 -
取当前时间的前几天、后几天
//去系统当前时间var date = new Date();//当前日期、年、月、日var now_date = date.toLocaleDateString();var now_year = date.getFullYear();var now_month = date.getMonth()+1;var now_today = date.getDate();//当前日转载 2015-04-30 18:27:43 · 581 阅读 · 0 评论 -
取系统当前时间并输出多种格式
JS获取系统日期并输出多种格式body{ text-align:center; font-size:18px;}Date.prototype.Format = function (fmt) { //javascript时间日期函数 var o = { "M+": this.getMonth() + 1, //月份转载 2015-05-20 19:36:29 · 506 阅读 · 0 评论 -
发送短信验证码
http://blog.youkuaiyun.com/sxdtzhaoxinguo/article/details/34437591原创 2015-07-20 17:56:50 · 478 阅读 · 0 评论 -
uuid生成12位随机数 不重复
for (int i = 0; i String s = UUID.randomUUID().toString();s = s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24); System.out.println(s.substring(0, 12));原创 2015-08-24 18:52:15 · 28169 阅读 · 6 评论 -
对象持久化
什么是持久化?简单地说,持久化就是把数据同步保存到数据库或某些存储设备中。在软件的分层体系结构中,持久化层是与数据库打交道的逻辑层。在数据库中对数据的增加、删除、查找和修改操作由持久化层来处理。最常见的操作是在ASP或JSP的页面代码中混杂了很多连接数据库、操作数据库的语句,这实际上是把持久层和展现层耦合到了一起,使得代码的编写和维护都很困难,程序结构非常不清晰。对于大型应用,这个问题尤为突出,因原创 2015-10-27 16:52:41 · 329 阅读 · 0 评论 -
利用set过滤list里的重复元素2015-8-25
HashSet h = new HashSet(list); list.clear(); list.addAll(h);原创 2015-08-25 10:44:20 · 512 阅读 · 0 评论 -
数组集合、对象转Json方法
此类是手工方法将对象、数组转为Json表示的格式,但是类型是String,只需将string转为JSON。或者使用Json包直接返回json对象:JSONObject jo=JSONObject.fromObject(object);String ob=jo.toString(); import java.beans.IntrospectionExcept转载 2015-04-14 14:45:12 · 961 阅读 · 0 评论 -
对象集合list根据对象属性排序2015-8-16
排序的方法类 /** * 排序算法,可以调用这个方法进行倒序 、顺序 * @param list 要进行排序的 List * @param method 要对list中的对象的那个属性的get方法进行排序 比如 时间 time get方法为getTime() 只需要传入getTime即可 * @param sort转载 2015-08-16 21:06:14 · 451 阅读 · 0 评论 -
根据时间随机生成12位数字,且不重复2015-8-21
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");System.out.println(sdf.format(new Date()));原创 2015-08-21 16:17:33 · 6683 阅读 · 0 评论 -
计算时间差
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");java.util.Date begin=dfs.parse("2004-03-26 14:00:00");java.util.Date end = dfs.parse("2004-03-26 14:31:40");long between=(end.g转载 2015-10-13 10:39:52 · 457 阅读 · 0 评论 -
计算时间差转为小时数
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");java.util.Date begin=dfs.parse("2015-09-30 14:00:00");java.util.Date end = dfs.parse("2015-09-30 14:21:00");long between=(end.g原创 2015-10-13 11:21:13 · 2454 阅读 · 0 评论