Java基础知识
Java基础知识
CPeony
大三,from bytedance to netease,下一站会在哪?
展开
-
利用反射检查对象是否有null或者空字符串成员变量
今天在写mybatis的映射时候考虑到了这么一点,如果前面给我传过来一个空字符串怎么办,我在网上没有查到对应的映射文件怎么写,所以自己写一个util来处理这种情况。(lombok应该能处理这种情况,但是小组成员没有几个用的)。用成员变量加反射完成get与set操作import java.lang.reflect.Field;import java.lang.reflect.Method;...原创 2020-04-27 21:42:08 · 224 阅读 · 0 评论 -
volatile的原子性
volatile的两个优点volatile可以保证可见性,有序性,但是不能保证原子性,这也是今天写代码时候忽略的问题。什么是原子性原子性即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。测试代码初始问题版public class Part implements Runnable { private volatile static int a ...原创 2020-04-15 11:18:25 · 7168 阅读 · 4 评论 -
java数组模拟链表解决约瑟夫环
约瑟夫环约瑟夫环是一个经典的问题。问题描述:N个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号)比如有五个人,编号为1,2,3,4,5每次报数为3的出局1 2 3 4 5 此时3号出局,从四号开始1 2 3 4 5 轮到1号出局1 2 3 4 5 五号出局最后二号出局,...原创 2019-09-17 20:26:07 · 259 阅读 · 0 评论 -
TrieTree的实现
TrieTree原理TrieTree也叫字典树,利用字符串之间的公共前缀,将重复的前缀和并在一起。其中根节点不包含任何信息。TrieTree的实现import java.util.*;class TrieTreeNode{ char data; TrieTreeNode []children=new TrieTreeNode[26]; //每一个node的下标就对应着一个字母(假...原创 2019-07-20 16:34:26 · 166 阅读 · 0 评论 -
java正则表达式匹配整数或小数
public static void main(String[] args) { // TODO Auto-generated method stub String content = "k23z9g553.$0.1237.333"; String regex="([1-9]\\d*\\.?\\d+)|(0\\.\\d*[1-9])|(\\d+)"; //分别是1.9这样的小数,...原创 2019-07-05 10:55:08 · 11407 阅读 · 0 评论 -
强软弱虚四种引用介绍
强软弱虚四种引用1.强User u = new User()正常写的引用都是强引用,JVM会根据是否可达判断是否要回收。2.软SoftReference<byte[]> res = new SoftReference<>(new byte[1024]);res里面的byte数组是软引用,只有在内存不够用时候才会被回收。用途: 缓存信息。3.弱引用WeakReference<Object> m = new WeakReference();System原创 2020-10-29 18:56:21 · 4580 阅读 · 1 评论