![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
谦虚使人发胖
这个作者很懒,什么都没留下…
展开
-
定位java应用最耗cpu的线程和代码
1)top 命令,找到耗cpu的进程ID。3)根据线程ID查询问题代码。1、消耗CPU的代码。原创 2022-10-19 20:41:29 · 1786 阅读 · 0 评论 -
雪花算法ID重复的分析与在项目中的解决
集群部署的微服务,当随机的机器ID相同,刚好在同一毫秒生成ID,时间戳相同,并且序列号也相同时,那么雪花算法的ID就会出现重复的问题。每次生成workerId时,从redis中获取到当前workerId最大值,并+1作为当前workerId,并存入redis。工作机器id:10bit,表示工作机器id,用于处理分布式部署id不重复问题,可支持2^10 = 1024个节点。如果workerId为1023,自增为1024,则重置0,作为当前workerId,并存入redis。转载 2022-09-22 16:26:33 · 3170 阅读 · 0 评论 -
SpringBoot+ MDC实现全链路调用日志跟踪
MDC(Mapped Diagnostic Context,映射调试上下文)是log4j、logback及log4j2提供的一种方便在多线程条件下记录日志的功能,基于ThreadLocal实现的一种工具类。原创 2022-09-15 11:55:42 · 759 阅读 · 0 评论 -
编写单测时,使用mock如何解决使用用@Value注解注入的属性
在项目开发中,我们经常会使用@Value注解从配置文件中注入属性值,在编写单元测试时,在不启动容器的条件下,如何对这种属性进行mock呢?针对这种情况,Spring提供了一个很好的工具类ReflectionTestUtils来实现。注入属性:@Servicepublic class LoginServiceImpl { @Value("${config.timeLimit}") private int timeLimit; ...... public原创 2020-07-29 17:25:46 · 12003 阅读 · 0 评论 -
HttpClient中的DELETE请求方式
HttpClient中DELETE请求,是没有办法带参数的。因为setEntity()方法是抽象类HttpEntityEnclosingRequestBase类里的方法,HttpPost继承了该类,而HttpDelete类继承的是HttpRequestBase类。下面是没有setEntity()方法的。需要自己创建一个新类,然后照着HttpPost的抄一遍,让新类能够调用setEntity()方法import org.apache.http.client.methods.HttpEntityEnc原创 2020-06-22 14:05:33 · 5570 阅读 · 2 评论 -
根据高德地图API获取全国省市县信息
package com.chinamobile.cmss.share.utils;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ConnectException;i...原创 2020-04-27 13:54:02 · 4480 阅读 · 0 评论 -
Java在处理大数据的时候一些小技巧
java在处理数据量比较大的时候,加载到内存必然会导致内存溢出,而在一些数据处理中我们不得不去处理海量数据,在做数据处理中,我们常见的手段是分解,压缩,并行,临时文件等方法; 例如,我们要将数据库(不论是什么数据库)的数据导出到一个文件,一般是Excel或文本格式的CSV;对于Excel来讲,对于POI和JXL的接口,你很多时候没有办法去控制内存什么时候向磁盘写入,很恶心,而且这些API转载 2017-08-14 10:00:03 · 482 阅读 · 0 评论 -
谈谈new Thread的弊端及Java四种线程池的使用
1.new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub }}).start();说说弊端:a. 每次new Thre转载 2017-08-07 10:29:00 · 1394 阅读 · 0 评论 -
利用java实现的一个发送手机短信的小例子
JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,呵呵(3)使用中国网建提供的SMS短信平台(申请账号地址:http://sms.webchinese.cn/default.shtml)本程转载 2017-08-10 11:20:13 · 362 阅读 · 0 评论 -
迭代地删除文件夹及其下的所有文件
public static void main(String[] args) { String filePath = "c:" + File.separator +"b"; File file = new File(filePath); if (file.exists()) { if (file.isFile()) { deleteFile(filePath); }原创 2017-08-22 14:32:24 · 907 阅读 · 0 评论 -
使用Java发送邮件
//Java Web发送邮件try {Properties prop = new Properties();//在属性中设置发送邮件服务器地址与协议prop.setProperty("mail.host", "smtp.126.com"); //邮件服务器地址prop.setProperty("mail.transport.protocol", "smtp"); /转载 2017-07-07 13:40:34 · 335 阅读 · 0 评论 -
socket实例
java socket小例子Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。 什么是Socket? 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 Socket和转载 2017-06-30 11:47:25 · 215 阅读 · 0 评论 -
JAVA邮件发送的简单实现
JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮件的发送等方面。JavaMail可以到http://www.oracle.com/technetwork/java/javamail/index-138643.html进行下载,转载 2017-06-19 14:54:02 · 292 阅读 · 0 评论 -
java.util.Date和java.sql.Date的区别和相互转化
Java.util.Date是在除了SQL语句的情况下面使用的。java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它们都有getTime方法返回毫秒数,自然就可以直接构建。 java.util.Date 是 java.sql.Date 的父类,前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他,后者之后在读写数据库的时候用他,因为PreparedSt转载 2017-06-07 14:51:28 · 291 阅读 · 0 评论 -
JAVA 比较两个日期相差的天数
在测试工作中经常会使用到比较两个日期相差的天数,我之前用过实现这一功能的两个版本的方法,源代码如下:(版本1)publicstaticint getIntervalDays(Date fDate, Date oDate) { if (null == fDate || null == oDate) { return -1;转载 2017-05-16 22:40:28 · 1796 阅读 · 0 评论 -
Java中出现No enclosing instance of type XXX is accessible问题
Java编写代码过程中遇到了一个问题,main方法中创建内部类的实例时,编译阶段出现错误,查看错误描述:Multiple markers at this line - The value of the local variable test is not used - No enclosing instance of type StaticCallDynamic is access转载 2017-05-02 15:43:49 · 10463 阅读 · 0 评论 -
使用return结束一个方法
在Java中,可以使用return语句直接结束一个方法的执行。使用return结束方法示例public class Method{ public static void main(String[] args){ System.out.println("1,调用fun()方法之前。"); fun(转载 2017-05-02 10:00:00 · 9185 阅读 · 2 评论 -
Java获取网络时间
URL url = new URL("http://www.ntsc.ac.cn");//获取资源对象URLConnection uc = url.openConnection();//生成连接对象uc.connect();//建立连接Long ld = uc.getDate();//读取网站时间System.err.println(ld);//毫秒数System.err.println原创 2017-04-26 10:59:26 · 778 阅读 · 1 评论 -
交换两个数的方法
//交换两个数:借助中间变量 public static void swap1 (int a, int b) { System.err.println("交换前: a=" + a + ", b=" + b); int temp; temp = a; a = b; b = temp; System.err.println("交换后: a=" + a + ", b=" + b原创 2017-04-23 13:27:52 · 294 阅读 · 0 评论 -
java中String、StringBuffer、StringBuilder的区别
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。 private final char valu转载 2017-04-23 12:02:32 · 169 阅读 · 0 评论 -
求质数
/** * */package test1;import java.util.Scanner;/** * @author lenovo * */public class TestZhiShu { /** * @param args */ public static void main(String[] args) { System.err.println(原创 2017-04-08 16:53:13 · 422 阅读 · 0 评论 -
Java种遍历Map集合的几种常用方式
public class TestMap { public static void main(String[] args) { Map map = new HashMap(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3");// method1(map);//转载 2017-03-25 10:35:10 · 404 阅读 · 0 评论 -
写一个递归方法,传入一个Map,返回这个Map对象中一共有多个Map类型的对象 Map中是可以添加Map,被添加的这个Map也可以添加Map,所以需要判断传入的Map对象的所有子节点,如果是Map就
@Testpublic void test1() { Map m0 = new HashMap(); m0.put("a", "a"); Map m1 = new HashMap(); m1.put("a", m0); Map m2 = new HashMap(); m2.put(m0, m1); Map m3 = new HashMap(); m3.put(m2, m2);原创 2017-03-24 12:11:14 · 6823 阅读 · 0 评论 -
Java中判断字符串是否为数字的方法:
Java中判断字符串是否为数字的方法:1.用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ System.out.println(str.charAt(i)); if (!Character.isDigit(str.charAt(i)))转载 2017-03-20 14:21:06 · 595 阅读 · 0 评论 -
random.nextInt()与Math.random()基础用法
1、来源random.nextInt() 为 Java.util.Random类中的方法; Math.random() 为 java.lang.Math 类中的静态方法。2、用法产生0-n的伪随机数(伪随机数参看最后注解):// 两种生成对象方式:带种子和不带种子(两种方式的区别见注解)Random random = new Random();Integer转载 2017-03-20 10:44:47 · 1674 阅读 · 0 评论 -
Java中普通代码块,构造代码块,静态代码块区别及代码示例
Java中普通代码块,构造代码块,静态代码块区别及代码示例//执行顺序:(优先级从高到低。)静态代码块>main方法>构造代码块>构造函数。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。1 普通代码块//普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”public class C...转载 2017-03-17 17:45:08 · 312 阅读 · 0 评论 -
java 接口可以多继承
java中类都是单继承的,但是接口可以多继承接口是常量值和方法定义的集合。接口是一种特殊的抽象类。Java类是单继承的。classB Extends classAjava接口可以多继承。Interface3 Extends Interface0, Interface1, interface……不允许类多重继承的主要原因是,如果A同时继承B和C,而B和C同时有一个D方转载 2017-03-13 13:07:36 · 320 阅读 · 0 评论 -
Java中,两个浮点型比较是否相等
public class Test{ public static void main(String[] args){ isEqualOfFloat(10.222222225f, 10.222222229f); } public static void isEqualOfFloat(float a, float b){ S转载 2017-03-10 13:27:20 · 10907 阅读 · 1 评论 -
验证身份真号码是否合法
/*** 验证身份证号码是否合法 */String idCard = "^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])||(1[0-2]))((0[1-9])||(1\\d)||(2\\d)||(3[0-1]))\\d{3}([0-9]||X)$";String idCard2 = "^[1-9]\\d{7}((0[1-9])||(1[0-2]))((0[1-9]原创 2017-03-07 09:24:03 · 461 阅读 · 0 评论 -
javaweb开发之防止表单重复提交
一、产生表单重复提交可能的情况1. 由于服务器缓慢或网络延迟等原因,导致用户重复点击提交按钮。2. 使用forward方式已经提交成功,再次刷新成功页面导致重复提交。3. 已经提交成功,通过回退,再次点击提交按钮。注意:在firefox,重复提交到同一地址无效。回退后,刷新表单页面,再次提交这时不是重复提交,而是发送新的请求。使用redirect方式重定向到转载 2017-02-16 17:47:09 · 3952 阅读 · 0 评论 -
将一个对象集合按照对象的某个字段排序
Comparator comparator = new Comparator() { @Override public int compare(FileManage o1, FileManage o2) { Date fileDate1 = o1.getFileDate(); Date fileDate2 = o2.getFileDate(); //倒序 return原创 2016-12-22 14:10:13 · 2625 阅读 · 0 评论 -
BigDecimal格式化小数
BigDecimal.setScale()方法用于格式化小数点setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 setScale(1,BigDecimal.ROUND_H转载 2016-12-20 14:29:56 · 1143 阅读 · 0 评论 -
在不知内容的情况下获取Excel表的内容并输出到JSP页面
@RequestMapping(value = "/viewContent/{id}", method = RequestMethod.GET) public String do_view(@PathVariable("id") int id, ModelMap map, HttpServletResponse response) { FileManage fileManage = file转载 2016-12-09 10:30:42 · 3432 阅读 · 3 评论 -
java四舍五入保留两位小数方法整理
import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public class test { public static void main(String[] args) { String str="86.6446666转载 2016-11-09 15:46:00 · 826 阅读 · 0 评论 -
Java程序、JSP以及JavaScript中如何判断某个字符串是否包含某个子串
1. JSP2. JavaScript if (item.status.indexOf("通过") > 0) { }3. Java中字符串中子串的查找共有四种方法,如下:① int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。 ② int indexOf(String str, int startIndex):从指定的索引原创 2016-11-03 10:16:07 · 11671 阅读 · 0 评论 -
三种字符数组合并的方法
三种字符数组合并的方法public static String[] getOneArray() { String[] a = { "0", "1", "2" }; String[] b = { "0", "1", "2" }; String[] c = new String[a.length + b.length]; for (int j = 0;转载 2016-09-09 11:46:11 · 4151 阅读 · 0 评论 -
List使用add方法添加对象问题
List list = new LinkedList();String[] strs = new String[2];for(int i = 0; i strs[0] = "1";strs[1] = "2";list.add(strs);}这样,list中的所有数据将会是最后录入的一条数据,因为加入的是它的引用的地址List list = new Linke原创 2016-08-08 09:49:17 · 12403 阅读 · 2 评论 -
将科学计数法转为正常数据并保留两位小数,转为字符串输出(四舍五入)
(new BigDecimal(Double.valueOf(getStr(o[3])).doubleValue()/10000.0).divide(new BigDecimal(1) ,2,BigDecimal.ROUND_HALF_UP)).toPlainString()原创 2016-08-04 16:46:52 · 5156 阅读 · 0 评论 -
JAVA 基本数据类型长度
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 1、整数:包括int,short,byte,long 2、浮点型:float,double 3、字符:char 4、布尔:boolean 基本型别大小最小值最大值boolean----------------转载 2016-07-04 14:04:36 · 241 阅读 · 0 评论 -
获取网络同步时间
public static void main(String[] args) throws Exception { URL url=new URL("http://www.bjtime.cn");//取得资源对象 URLConnection uc=url.openConnection();//生成连接对象 uc.connect(); //发出连接原创 2016-06-24 13:08:57 · 629 阅读 · 0 评论