
JAVA
JAVA
TARS_
半退休程序员
展开
-
BigDecimal返回科学计数法
解决方法,BigDecimal转为String时使用toPlainString()原创 2023-06-28 19:20:54 · 698 阅读 · 0 评论 -
Bigdecimal去掉多余的0
Bigdecimal去掉多余的0原创 2023-06-28 19:11:32 · 1843 阅读 · 0 评论 -
Collectors扩展接口 实现BigDecimal的相加
Collectors扩展接口 实现BigDecimal的相加转载 2023-06-25 14:49:31 · 636 阅读 · 0 评论 -
Springboot实现文件与额外信息同时上传
前端实现前端同时提交extra的文本作为额外信息以及文件file<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>uploadTest</title></head><body> <h>文件上传</h> <form action="/upload" meth转载 2022-01-12 15:01:57 · 1103 阅读 · 0 评论 -
JXL导出
今天在项目中要做一个导出Excel的功能,首先想到的是使用POI,但是项目中要求使用JXL,所以最终使用了JXL。这次的导出不是按传统的先创建表再设计各种样式,而是采用建立一个模板,导出时先获取模板,根据模板生成导出的Excel文件,然后添加数据。最终代码如下:页面js方法:(注意:ajax的返回值类型是json,text,html,xml类型,或者可以说ajax的接收类型只能是string字符串,不是流类型,所以无法实现文件下载。) /*receiveOrderName 、paymentC.原创 2020-12-22 10:38:20 · 304 阅读 · 0 评论 -
JDK8 Lambda表达式转换成Map,value为null问题
//将list转换成Map类型Map<String, String> map = list.stream().collect(Collectors.toMap(Person::getId, Person::getName));如果报 map里的value空指针异常,则需要在value,也就是toMap()的第二个参数进行空(null)值的判断逻辑;例如:也就是 Person::getName 改成 p -> p.getName()==null?"":p.getName()就可以解转载 2021-11-11 15:02:56 · 2484 阅读 · 0 评论 -
Controller跳转到外部链接
@Slf4j@RestController@RequestMapping("/h5/special/index.html")public class ShareRedirect { @GetMapping("/{id}") @Priv(login = false) public ModelAndView Redirect (@PathVariable Long id){ return new ModelAndView(new RedirectView("www.原创 2021-02-24 17:07:47 · 1197 阅读 · 0 评论 -
Java多线程数据同步
当多个线程同时读写同一个份数据时其结果可能会和我们期望的结果不一致,例如两个线程对同一个变量做自增,得到的结果和我们想要的可能不一样,示例如下:package com.shaoshuidashi; import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; public class Explore { int a = 0; void add(){ a++;.转载 2020-12-28 09:53:46 · 355 阅读 · 0 评论 -
java的list集合如何根据对象中的某个字段排序
import java.util.*;import java.util.function.Predicate;import java.util.stream.Collectors; public class GetStreamLong { public static void main(String[] args) { Person a = new Person(); a.setId(3); a.setAge(22);转载 2020-12-28 09:53:39 · 1437 阅读 · 0 评论 -
Java 多线程异步处理demo
java中实现多线程之实现runnable接口1.处理业务代码//根据传参打印对应的名字 private void printName(String name) throws Exception{ System.out.println(name); }2.创建内部类实现Runnable接口private class PrintName implements Runnable{ private String name; publ转载 2020-12-28 09:53:32 · 781 阅读 · 0 评论 -
new BigDecimal(0)和BigDecimal.ZERO的区别
推荐使用BigDecimal.ZERO从代码质量的角度来看,BigDecimal.ZERO最好使用,new BigDecimal(0)因为这样可以避免额外的实例化并在代码中包含文字。如果您的代码需要在1.5之前运行,那么您可以使用(备受诟病)单例模式创建一个等于 BigDecimal.ZERO 的对象。第一次使用时,它会调用 BigDecimal(0”)来创建一个零对象,并在后续调用中返回该对象。否则,如果您的代码在1.5系统上运行,则您的单例对象只能返回 BigDecimal.ZERO ,而不会造成原创 2020-12-28 09:53:26 · 10809 阅读 · 0 评论 -
Java冻结Excel行或列
可以按照如下设置创建冻结窗口。sheet.createFreezePane( 3``, 2``, 3``, 2 );前两个参数是你要用来拆分的列数和行数。后两个参数是下面窗口的可见象限,其中第三个参数是右边区域可见的左边列数,第四个参数是下面区域可见的首行。// 冻结第一行sheet.createFreezePane( 0``, 1``, 0``, 1 );// 冻结第一列sheet.createFreezePane( 1``, 0``, 1``, 0 );...转载 2020-12-28 09:53:19 · 502 阅读 · 0 评论 -
java根据身份证号和获取用户信息工具类(性别,年龄)
import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map; /** * 身份证信息算法类 * * @author javaweb * */public class CardUtil { /** * 根据身份证的号码算出当前身份证持有者的性别和年龄 18位身份证 * * @return原创 2020-12-25 09:40:09 · 501 阅读 · 0 评论 -
JAVA反射中的getFields()方法和getDeclaredFields ()方法
关于获取类的字段有两种方式:getFields()和getDeclaredFields()。我们先来看看这两者的区别吧:getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。同样类似的还有getConstructors()和getDeclaredConstructors()、getMethods()和getDeclare.转载 2020-12-25 09:40:02 · 1859 阅读 · 0 评论 -
spring事务在try catch时候的执行
spring 的默认事务机制,当出现unchecked异常时候回滚,checked异常的时候不会回滚;@Transactional(rollbackFor = Exception.class)当有try catch后捕获了异常,事务不会回滚,如果不得不在service层写try catch 需要catch里面加 throw new RuntimeException 让事务回滚;} catch (Exception e) { e.printStackTrace();.转载 2020-12-25 09:39:48 · 564 阅读 · 0 评论 -
Java判断字符串是否为数字(包括小数)
public static boolean isNumber(String str){ String reg = "^[0-9]+(.[0-9]+)?$"; return str.matches(reg); }原创 2020-12-25 09:39:40 · 3359 阅读 · 2 评论 -
Java中定义Map常量,List常量
一般的方式的使用静态代码块。比如:public final static Map map = new HashMap(); static { map.put("key1", "value1"); map.put("key2", "value2"); }List的话则可以这样定义:public final static List<String> LIST = Arrays.asList("one","two","three"); ...转载 2020-12-25 09:39:33 · 561 阅读 · 1 评论 -
java 多种判断key是否在map中存在的方法
第一种:boolean flag=map.containsKey("opt")第二种:HashMap map = new HashMap(); map.put("1", "value1"); map.put("2", "value2"); Iterator keys = map.keySet().iterator(); while (keys.hasNext()) { String key = (String)转载 2020-12-25 09:39:21 · 914 阅读 · 0 评论 -
java获取map中的最小KEY,最小VALUE
求Map<K,V>中Key(键)的最小值Set<Integer> set = map.keySet();Object[] obj = set.toArray();Arrays.sort(obj);obj[0];//最小key求Map<K,V>中Value(值)的最小值Collection<Integer> c = map.values();Object[] obj = c.toArray();Arrays.sort(obj);obj[0];原创 2020-12-25 09:39:13 · 1235 阅读 · 0 评论 -
Map的isEmpty()与==null的区别
isEmpty()方法判断Map是否有内容(即new分配空间后是否put键值对),若没有内容则true,否则false== null是判断map是否为null(即是否new分配空间,和其中的键值对没关系),若没有内容则true,否则falseMap map = new HashMap<String ,String>();System.out.println("判断map是否有内容:"+map.isEmpty());//返回trueSystem.out.println("判断map是否.转载 2020-12-25 09:38:51 · 113 阅读 · 0 评论 -
BigDecimal比较是否相等、运算、舍入模式
BigDecimal比较2个值是否相等,不能用equals,而要用compareTo public static void main(String[] args) { BigDecimal b1 = BigDecimal.valueOf(-1); BigDecimal b2 = BigDecimal.valueOf(-1.0); BigDecimal b3 = BigDecimal.valueOf(-1.0); System.out.转载 2020-12-25 09:38:42 · 1978 阅读 · 0 评论 -
JAVA判断18位身份证的合法性的工具类
根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。(顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同 日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配 给女性。)第1、2位数字表示:所在省份的代码;第3、4位数字表示:所在城市的代码;第5、6位数字表示:所在区县的代码;第7~14位数字表示.原创 2020-12-25 09:38:31 · 399 阅读 · 1 评论 -
java判断身份证(源码备份)
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * @author */public class IdCardValidator { private static final Logg原创 2020-12-24 09:44:52 · 368 阅读 · 0 评论 -
Java Calendar获取年、月、日、时间
Calendar calendar = Calendar.getInstance();calendar.setTime(new Date());//填入当前时间int year = c.get(Calendar.YEAR); //获取年int month = c.get(Calendar.MONTH) + 1; //获取月份,0表示1月份int day = c.get(Calendar.DAY_OF_MONTH); //获取当前天数int first = c.getActualM原创 2020-12-24 09:40:10 · 672 阅读 · 1 评论 -
java8获取list对象中某个字段最大值的对象
Optional<DebateComment> max = redStars.stream().max(Comparator.comparingLong(DebateComment::getLikeNum));DebateComment redStar = max.get();原创 2020-12-24 09:38:46 · 18242 阅读 · 0 评论