随笔分类 -  Java

摘要:目录: 1.重排序场景 2.追根溯源 3.缓存一致性协议 4.重排序原因 一、重排序场景 当两个线程 A 和 B,A 首先执行writer() 方法,随后 B 线程接着执行 reader() 方法。线程B在执行操作4时,能否看到线程 A 在操作1对共享变量 a 的写入? 答案是:不一定能看到。 由于 阅读全文
posted @ 2019-09-07 09:41 金鱼的第七秒记忆 阅读(3333) 评论(0) 推荐(0) 编辑
摘要:转载 : https://www.jianshu.com/p/bf158fbb2432 在知识星球中,有个小伙伴提了一个问题: 有一个关于JVM名词定义的问题,说”JVM内存模型“,有人会说是关于JVM内存分布(堆栈,方法区等)这些介绍,也有地方说(深入理解JVM虚拟机)上说Java内存模型是JVM 阅读全文
posted @ 2019-09-04 16:46 金鱼的第七秒记忆 阅读(239) 评论(0) 推荐(0) 编辑
摘要:EasyExcel是什么? 快速、简单避免OOM的java处理Excel工具 一、项目需求 从mongo库中查询数据,导出到excel文件中。但是动态导出的excel有多少列、列名是什么、有多少sheet页都需要动态获取。所以生成的excel也必须是动态生成,不能通过注解配置对象映射。而且写入的数据 阅读全文
posted @ 2019-08-30 16:05 金鱼的第七秒记忆 阅读(17060) 评论(0) 推荐(0) 编辑
摘要:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5... 阅读全文
posted @ 2019-07-07 16:51 金鱼的第七秒记忆 阅读(262) 评论(0) 推荐(0) 编辑
摘要:题目来源:https://leetcode-cn.com/problems/longest-common-prefix/ 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"]输出: "fl" 阅读全文
posted @ 2019-06-29 14:15 金鱼的第七秒记忆 阅读(373) 评论(0) 推荐(0) 编辑
摘要:连接:https://leetcode-cn.com/problems/roman-to-integer/submissions/ 题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 阅读全文
posted @ 2019-06-16 15:17 金鱼的第七秒记忆 阅读(344) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/remove-element/ 题目:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下 阅读全文
posted @ 2019-06-14 18:18 金鱼的第七秒记忆 阅读(788) 评论(1) 推荐(1) 编辑
摘要:package com.movitech.product.datahub.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import... 阅读全文
posted @ 2019-06-10 14:21 金鱼的第七秒记忆 阅读(1258) 评论(0) 推荐(0) 编辑
摘要:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121输出: true示例 2: 输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3: 输入: 10输出: 阅读全文
posted @ 2019-06-07 13:22 金鱼的第七秒记忆 阅读(549) 评论(0) 推荐(0) 编辑
摘要:实际业务使用中,有时候会遇到插入数据库,但是如果某个属性(比如:主键)存在,就做更新。通常有两种方式:1、replace into 2、on duplicate key update 但是在使用过程中,发现了两者的区别,整理如下: replace into :首先尝试插入数据到表中, 1. 如果发现 阅读全文
posted @ 2019-06-04 13:31 金鱼的第七秒记忆 阅读(1927) 评论(0) 推荐(0) 编辑
摘要:1、JDK方法实现案例需求: 2、guavaAPI实现案例需求:模拟在社区中,学生向老师提问。 阅读全文
posted @ 2019-06-02 11:18 金鱼的第七秒记忆 阅读(432) 评论(0) 推荐(0) 编辑
摘要:package com.gupao.jay.pattern.singleton; /** * @Author JAY * @Date 2019/6/2 9:50 * @Description 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 * * 示例 1: * * 输入: 123 * 输出: 321 * 示例 2: * * 输入: -12... 阅读全文
posted @ 2019-06-02 11:12 金鱼的第七秒记忆 阅读(1166) 评论(0) 推荐(0) 编辑
摘要:1、总结每种单例写法的优、缺点 单例类型 优点 缺点 饿汉式单例 可以快速创建实例 在未使用时就初始化实例,占用内存空间 懒汉式单例 只有在使用的时候,才会创建 需要考虑多线程的安全问题,需要进行双重校验保证实例只被创建一次。但是添加锁后,会有性能问题 内部类方式单例 不需要考虑线程安全,没有性能问 阅读全文
posted @ 2019-05-25 16:26 金鱼的第七秒记忆 阅读(258) 评论(0) 推荐(0) 编辑
摘要:1、使用句柄访问 2、使用直接指针访问 各自的优势: 句柄访问:reference中存储的是稳定的句柄地址,在对象被移动(垃圾收集时移动对象是非常普遍的行为)时只会改变句柄中的实例数据指针,而reference本身不需要修改。 直接指针访问:速度快,它节省了一次指针定位的时间开销,由于对象的访问在J 阅读全文
posted @ 2018-06-04 17:55 金鱼的第七秒记忆 阅读(342) 评论(0) 推荐(0) 编辑
摘要:虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符合引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 在类加载完成后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定,为对象分配 阅读全文
posted @ 2018-06-04 17:29 金鱼的第七秒记忆 阅读(119) 评论(0) 推荐(0) 编辑
摘要:对于java虚拟机默认参数,栈深度在大多数情况下(因为每个方法压入栈的甄大小并不一样),达到1000~2000完全没有问题,对于正常的方法调用(包括递归),这个深度应该完全够了。但是,如果是建立的过多的线程导致的内存溢出,在不能减少线程数或者更换64位虚拟机的情况下(假如当前虚拟机是32位),可通过 阅读全文
posted @ 2018-06-04 16:02 金鱼的第七秒记忆 阅读(169) 评论(0) 推荐(0) 编辑
摘要:JVM在晚期(运行期)优化时,使用到一种技术 逃逸分析。 补充说明:逃逸分析在1999年就已提出,但是JDK1.6才实现逃逸分析。而且,这项优化目前仍不成熟,仍有很大改进余地。 这是大坑啊,目前在HotSpot中未实现,那创建的对象还是都放在堆内存中,这个文章记录的内容是不是就没什么用了(😭) 阅读全文
posted @ 2018-05-30 17:59 金鱼的第七秒记忆 阅读(886) 评论(0) 推荐(0) 编辑
摘要:通过下面的代码编辑过程讲解,可以看出,不必要的代码操作可以很大的提高代码编译性能 阅读全文
posted @ 2018-05-30 16:24 金鱼的第七秒记忆 阅读(182) 评论(0) 推荐(0) 编辑
摘要:在开发中,一直强调代码的整洁和可读性。之前对于使用多层嵌套for循环,一直以为只是对代码可读性和逻辑梳理有影响。可能对性能也有影响,但是一直不知道对性能影响在哪。最近在看虚拟机方面的书,感觉有一个点应该算多层嵌套for循环对jvm有影响,特此记录下来。欢迎大家学习指正。 言归正传,Java程序最初是 阅读全文
posted @ 2018-05-30 14:33 金鱼的第七秒记忆 阅读(1350) 评论(0) 推荐(0) 编辑
摘要:模拟场景:顾客买车从车库中取车,厂家生产车,车存储在车库中。买家、厂家对同一个车库中的车操作 一、不加同步机制的代码如下: 运行结果产生的错读如下: 从上面的结果可以看出,在生产了一次汽车之后,车库汽车数量为1,然后生产第2次的时候,车库汽车数量仍为1,显然是不正确的。可能是线程再执行最后一次消费汽 阅读全文
posted @ 2017-11-22 16:35 金鱼的第七秒记忆 阅读(5851) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示