JAVA编程
cookietian
这个作者很懒,什么都没留下…
展开
-
Java 监控多线程运行并自动重新启动挂掉的线程
业务系统有多个线程在运行,为了防止线程挂掉,需要监控线程运行情况,在线程挂掉以后重新启动它。提示:先排错,再容错,这个方式只是用来兜底的。监控进程,遍历已经注册的线程,发现挂掉就重新创建并启动:import java.util.HashMap;import java.util.Map;import java.util.Set;import java.util.TimerTask;/** * 监控线程 挂掉就重启 */public class Monitor extends T原创 2020-07-10 09:45:25 · 1551 阅读 · 0 评论 -
Java socket编程 CPU占用率高的问题解决
本人用Java socket编程,多线程程序,发现CPU占用率非常高,经过一番研究,问题解决,特记录如下。首先上问题代码(代码同时实现了超时机制): /** * 发送完毕以后等待服务器返回数据的函数 实现了超时机制 */ public Boolean awaitReturnOLD(int timeout) { Boolean result = false; // 上锁:实现超时机制第一步 expectedArriv...原创 2020-07-08 06:43:09 · 2897 阅读 · 0 评论 -
java jar运行外部配置文件(.properties)
解决方法如下:1.通常导入项目内的配置文件(.properties文件)是如下代码:Properties properties = new Properties();// 使用ClassLoader加载properties配置文件生成对应的输入流InputStream in = Propertiesxxx.class.getClassLoader().getResourceAsStream("xxx.properties");// 使用properties对象...原创 2020-07-06 14:31:23 · 3083 阅读 · 0 评论 -
检查IP地址字符串是否合法
public static boolean IPCheck(String str) { if (str != null && !str.isEmpty()) { // 定义正则表达式 String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\." + "(1\\d{2}|2[0-4]\\d...原创 2020-03-03 22:49:37 · 178 阅读 · 0 评论 -
LRC算法的Java实现
项目中要用到,本来想拿来主义,结果没有找到合适的。所有自己写了一个。LRC具体算法如下:1、对需要校验的数据(2n个字符)两两组成一个16进制的数值求和。2、将模值按位取反。3、加1。Java代码实现: /* * 输入byte[] data , 返回LRC校验byte */ public static byte getLRC(byte[] data) { int ...原创 2020-01-09 08:45:25 · 1397 阅读 · 1 评论 -
Java int转16进制以后补零及F大写
需要将int类型的数字转换为16进制字符串,不足两位的补零,f全部大写。用下面这个apache的commons-lang3工具包,功能强大,号称Java第二API。import org.apache.commons.lang3.StringUtils;代码:String tmp = "0X" + StringUtils.leftPad(Integer.toHexString(6666...原创 2019-08-16 13:25:13 · 5683 阅读 · 0 评论