Java基础
in the way
这个作者很懒,什么都没留下…
展开
-
方法区使用举例
public class MethodAreaDemo { public static void main(String[] args) { int x = 500; int y = 100; int a = x / y; int b = 50; System.out.println(a + b); }}Copy to clipboardErrorCopied字节码public class com.a原创 2022-04-29 12:50:59 · 371 阅读 · 0 评论 -
Java list创建添加元素 gc后内存
public static void main(String[] args) throws InterruptedException { Runtime runtime = Runtime.getRuntime(); System.out.println("first total "+ runtime.freeMemory()/ 1024); runnn(); System.out.println("after ADD item total..原创 2021-08-11 12:24:35 · 319 阅读 · 0 评论 -
lambda的特殊使用方式,springboot初始化中实例使用
public class Test { private Man testMan; { testMan = testRun(); } // lambad方式 public Man testRun(){ return this::selfRun; } // 匿名内部类方式 public Man testRun2(){return new Man(){ @Override publi原创 2020-11-27 10:05:24 · 564 阅读 · 0 评论 -
Java 获取季度开始时间结束时间,获取日期所在月份,获取所在季度
/** 根据季度数获取季度的开始时间结束时间*/public static Map<String, String> getQuarterStartEndTime(int quarter) { Map<String, String> result = new HashMap<>(); Calendar start = Calendar.getInstance(); Calendar end = Calendar.getI原创 2020-07-27 09:34:53 · 4430 阅读 · 1 评论 -
freemarker 模板使用 list map 多重嵌套
判断<#if value?is_number ></#if> value类型是否为numberproductType?eval 将字符串类型转换成数字类型java 中数据格式Map<String,List<Map<String,List<Map<String,Object>>>>> Map<String,List<Map<String,Object>>>> <原创 2020-07-22 17:02:12 · 1650 阅读 · 0 评论 -
对称加密和非对称加密的区别
简介:对称加密: 加密和解密的秘钥使用的是同一个.非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。对称加密算法:密钥较短,破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,且对计算机性能要求也没有那么高.优点:算法公开、计算量小、加密速度快、加密效率高缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄原创 2020-07-18 23:03:25 · 276 阅读 · 0 评论 -
21, 重复代码处理的两种方式
利用工厂模式+模板方法模式,消除if…else和重复代码**在抽象方法中定义好业务流程, 通用的直接实现, 不同用户的处理方式不同,就抽象出来让子类去实现**public abstract class AbstractCart { //处理购物车的大量重复逻辑在父类实现 public Cart process(long userId, Map<Long, Integer> items) { Cart cart = new Cart(); List<Item> itemLi原创 2020-07-12 20:32:35 · 1077 阅读 · 0 评论 -
14.文件IO
第一,如果需要读写字符流,那么需要确保文件中字符的字符集和字符流的字符集是一致的,否则可能产生乱码。**第二,**使用Files类的一些流式处理操作,注意使用try-with-resources包装Stream,确保底层文件资源可以释放,避免产生too many openfiles的问题。第三,进行文件字节流操作的时候,一般情况下不考虑进行逐字节操作,使用缓冲区进行批量读写减少IO次数,性能会好很多。一般可以考虑直接使用缓冲输入输出流BufferedXXXStream,追求极限性能的话可以考虑使用Fi原创 2020-07-09 21:52:25 · 74 阅读 · 0 评论 -
10_2, list foreach遍历删除 list.remove(obj)报错ConcurrentModificationException原因
**foreach删除元素报错java.util.ConcurrentModificationException** private static void removeList(){ List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } for (Integer str原创 2020-07-05 10:59:52 · 312 阅读 · 0 评论 -
Java 动态代理
interface AppService { void play(String kkk);}class MyApp implements AppService{ @Override public void play(String kkk) { System.out.println("play "+ kkk); }}interface Car{ String run(String speed);}class BwmCar imple原创 2020-06-11 18:53:39 · 102 阅读 · 0 评论 -
url图片转成base64
public static String convertUrlImageToBase64(String imgFile){ ByteArrayOutputStream data = new ByteArrayOutputStream(); try { // 创建URL URL url = new URL(imgFile); byte[] by = new byte[1024]; /原创 2020-06-10 11:43:00 · 393 阅读 · 0 评论 -
base64转MultipartFile
base64转MultipartFilepackage com.winway.modules.patientSubscibe.utils;import org.springframework.web.multipart.MultipartFile;import sun.misc.BASE64Decoder;import java.io.*;public class BASE64DecodedMultipartFile implements MultipartFile { priv原创 2020-06-10 11:41:38 · 201 阅读 · 0 评论 -
Java 简单的重试机制
模板方式public abstract class RetryTemplate { private static final int DEFAULT_RETRY_TIME = 1; private int retryTime = DEFAULT_RETRY_TIME; // 重试的睡眠时间 private int sleepTime = 0; public int getSleepTime() { return sleepTime;原创 2020-05-09 19:03:13 · 453 阅读 · 0 评论 -
Java Stream 分组,去重基本使用
根据一个对象属性值去重1,创建提取方法private <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) { Map<Object, Boolean> concurrentHashMap = new ConcurrentHashMap<>(); return t -> concurrentHashMap.putIfAbsent(k原创 2020-05-09 09:17:21 · 3809 阅读 · 0 评论 -
toString和toJSONString的区别
Map<String, Integer> map = new HashMap<>(); map.put( "staff9", 1 ); map.put( "staff1", 3 ); System.out.println(map.toString()); System.out.println(JSONObject.toJSONString(map));...原创 2020-05-07 12:19:10 · 12217 阅读 · 2 评论 -
Java Stream分组取最大值合并list, 排序倒叙
根据属性A分组,然后取分组里属性B最大的值, 最后合并成list Map<String, IWLS_EnDepotEntry> collect = endepot.stream().collect( Collectors.groupingBy(IWLS_EnDepotEntry::getPurBCode, ...原创 2020-04-14 09:04:55 · 4452 阅读 · 0 评论 -
根据list中对象时间属性进行排序
private static void ListSort(List<User> list) { Iterator<User> iterator = list.iterator(); if(iterator.hasNext()){ Usernext = iterator.next(); if (next == null) { iterator.re...原创 2020-02-26 15:20:52 · 2149 阅读 · 0 评论 -
数据库插入两条一样数据解决方案
1,问题如下图同时保存了2条一样的数据。2个线程, A去查是否有10001的用户时,返回没有,就去保存用户。B在A保存之前也去查询, 发现没有此用户, 就又保存了一次。2, 单机版解决方案在save方法上加锁即可3, 集群版解决方案给数据库的字段设置唯一性给user_id设置唯一性 ALTER TABLE activity_wheel_address ADD unique(`u...原创 2019-12-26 13:42:19 · 5750 阅读 · 0 评论 -
给定一个起始数和 一个数组。 获取从起始数开始N个往后数组中不存在的数。
List<Integer> asList = Arrays.asList(25,29);ArrayList<Integer> list = new ArrayList<>();int num = 23; // 起始数int size = 5; // 增加的长度int start = num;for (int i = 0; i < si...原创 2019-09-20 09:24:13 · 246 阅读 · 0 评论 -
string.format 拼接字符串
string.format拼接字符串String format = String.format(" and ( name like '%%%%%s%%%%' ) ", keyWord);原创 2019-07-17 10:57:19 · 592 阅读 · 0 评论 -
Java在list中添加元素
for (int i=0; i < list.size();i++) { if(StringUtils.isNotBlank(...)){ list.add(i+1, data); // 添加元素 i++; } }...原创 2019-07-24 09:08:44 · 4326 阅读 · 0 评论