![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础知识
文章平均质量分 61
zhizhizhi志
只会CV大法
展开
-
Go-“无用“的优化-strconv.Atoi()
Go 优化原创 2022-10-18 11:52:41 · 575 阅读 · 1 评论 -
Go-基础知识 1 == 0 居然是ture
Go 基础知识原创 2022-10-17 20:33:45 · 451 阅读 · 0 评论 -
AtomicInteger 处理边界问题的一种实现方式。
当使用到AtomicInteger 类时,我们需要特别注意它的边界问题。当它自增到Integer.MAX_VALUE 时,就会变成-Integer.MAX_VALUE的并自减下去。如果此时没有注意对负数值的影响。那么将会发生难以察觉的bug。 private static AtomicInteger atomicInteger = new AtomicInteger(Intege...原创 2020-01-13 20:15:27 · 728 阅读 · 0 评论 -
8g-4核的jvm参数参考。结合自己项目实际情况改变
-Dfile.encoding=utf-8 -Xms3072M -Xmx3072M -Xmn2048M -Xss1M -XX:PermSize=256M -XX:MaxPermSize=256M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=10 -XX:PretenureSizeThreshold=1M -XX:+UseParNewGC -XX:+Us...原创 2019-08-06 17:46:58 · 1443 阅读 · 0 评论 -
方法内直接引用全局变量和通过声明局部变量来引用全局变量的到底有没区别?
看源码时相信看到过这个片段:声明局部变量再指向类的变量。为什么不直接引用呢?当时就想:java的内存模型中,方法只会存放对象的引用(this),不会存放对象中的信息,都是通过this访问对象中的信息。所有 直接引用 this.lock 就要先去访问this对象,然后获取lock的引用,最后再调用lock函数。如果采用框框中的吗,将对象赋值给局部变量在使用。之后就是不是不再访问t...原创 2019-07-27 15:37:06 · 1037 阅读 · 0 评论 -
【Java基础】Arrays.asList() 的使用注意。
Arrays.asList() 方法不理解就使用还是有很多坑的。比如,它返回的是自己内部类的java.util.Arrays.ArrayList"阉割版"的List。不可进行Add/Remove。 更要注意的是:如果我们在这里针对集合修改了某处元素值,那么原来数组的内容也会相应改变!即通过Arrays.asList()方法,得到的集合与原数组就已经关联起来,反之,如果我们修改了数组...原创 2019-06-25 19:46:15 · 1097 阅读 · 0 评论 -
ConcurrentHashMap computeIfAbsent的bug
public static void main(String[] args) { Map<String, Integer> map = new ConcurrentHashMap<>(16); map.computeIfAbsent("AaAa", key -> { return map.computeIfAbsent("BBBB", key2 -&...原创 2019-05-31 17:30:28 · 2641 阅读 · 0 评论 -
Java动态编译的实现
这里就不讲解啥是动态编译了,原理,区别的文章也有很多。这里主要使用线程池;重写 System.out的输出,并保存输出的结果。然后返回到客户端。1.获取字符串类型的源码,转化成编译后的byte[]数组.String source :客户端传过来的字符串类型的代码,DiagnosticCollector:编译结果收集器。 private static Pattern CLA...原创 2019-03-14 10:05:46 · 773 阅读 · 0 评论 -
正则表达式合集
转载 :https://segmentfault.com/a/1190000017834831?utm_source=tuicool&utm_medium=referral一.校验数字数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最...转载 2019-01-16 15:15:45 · 98 阅读 · 0 评论 -
Java 多线程下如何使用Random生成随机数。
做游戏后台的,就避免不了生成随机数,随机物品给玩家,就会存在大量的调用随机方法的可能。我们探讨下哪种写法比较合适。java.util.Randomjava.util.Random 从Java 1.0开始就存在了。它是一个线程安全类,理论上可以通过它同时在多个线程中获得互不相同的随机数。这样的线程安全是通过AtomicLong实现的。Random 使用 AtomicLong CAS (c...原创 2019-01-09 16:56:16 · 6033 阅读 · 0 评论 -
java8 运用stream int[] 转 List<Integer>
int[] array = {1,2,3,4,5,6,7,8,9,10};List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());boxed() 其实就是 mapToObj(Integer::valueOf); 方法原创 2018-12-24 16:01:10 · 5217 阅读 · 0 评论 -
Java 深拷贝和浅拷贝的应用
原理啥的就不深入介绍了,主要记录下 几个 对象复制的方法。1. 实现 Cloneable 接口 浅拷贝2. Apache的两个版本:(反射机制) org.apache.commons.beanutils.PropertyUtils.copyProperties(Object dest, Object orig) org.apache.commons.beanutils.BeanUtil...原创 2018-12-26 16:48:27 · 625 阅读 · 0 评论 -
Java 判断当天某个时间是否在某个时间内
某些活动 需要判断 当前时间 是否处于规定的时间段,时间段: openWeek[]{1,5}, openTimes[]{"18:00:00-19:00:00","18:00:00-19:00:00"} 可能多个。public class Demo9_timeValid { // openTime = "18:00:00-19:00:00" public boole...原创 2018-12-13 20:46:31 · 2417 阅读 · 0 评论 -
Java正确的"停机"方式
我们关闭Java服务时,应该进行一些善后工作,比如,关闭线程池,释放连接资源等,而不是直接关闭,放弃未完成的任务。Java中,我们可以通过Runtime.getRuntime().addShutdownHook()方法来注册钩子,以保证程序平滑退出。举个例子:public class Demo8_shutdown { /** * 使用线程池处理...原创 2018-12-08 15:33:48 · 178 阅读 · 0 评论 -
Java 枚举查找不抛出异常的实现
Java枚举的values() 查找时,如果传入无效的名称则会抛错。初学者不态注意的话就会直接try catch 返回 null来处理异常,我们知道异常不应该用于控制流。try { return Function.valueOf(name); } catch (Exception ex) { log.warn("Exception Thrown", e...原创 2018-11-26 11:59:00 · 1593 阅读 · 0 评论 -
java中对 “锁”的一些认识
本文的一些认识皆以Jdk 8为基础。对一些锁的知识点,以及不同的适用场景。结合自己和他人的文章对它进行重新的认知与疏导。非原创 ,引用自:https://tech.meituan.com/Java_Lock.html?utm_source=tuicool&utm_medium=referral 下图:通过锁的特性来进行分类 可总结出,6大特性。a.根据对资源的锁住情况分 ...转载 2018-11-24 12:02:29 · 115 阅读 · 0 评论