java开发
进击的NULL
理论不懂就实践,实践不会就学理论
展开
-
Java中深拷贝(Deep Copy)和浅拷贝(Shallow Copy)学习笔记
由于在线程安全中涉及到对象的深度拷贝(Deep Copy),很早以前听说多,不多是TypeScript中听一个同事介绍,但是自己对java这块的知识还不了解,于是就打算借此机会学一下深浅拷贝,并加深一下相关技术的印象。于是查阅了一些资料,现将知识点整理如下归为以下几类进行整理:借用图形展示深浅拷贝的区别及特点Object类中clone()方法实现深浅拷贝实际应用中深浅拷贝的区别其他扩展知...原创 2019-01-10 21:04:13 · 998 阅读 · 0 评论 -
Dubbo一次服务调用过程及架构分析
推荐好文,有时间再整理吧!https://www.cnblogs.com/aspirant/p/9002663.html原创 2019-08-21 12:00:07 · 859 阅读 · 0 评论 -
转一篇稳定相关的文章——聊聊服务稳定性保障这些事
最近在做一些稳定性相关的工作,看到这篇文章总结的很好。转发学习,多实践、多总结https://www.infoq.cn/article/69TYjy_v9u4FxXNUk2gK转载 2019-08-21 11:35:12 · 417 阅读 · 0 评论 -
Java实现定时任务的几种方法(Thread 和 Timer,线程池)
最近做了下异步定时异常补偿任务,对定时任务用法做以下总结及比较,详细见注释。import java.util.Timer;import java.util.TimerTask;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurre...原创 2019-07-11 21:13:47 · 1070 阅读 · 0 评论 -
java中内部接口的使用
markhttps://www.cnblogs.com/chenpi/p/5518400.html转载 2019-07-08 20:38:01 · 1546 阅读 · 0 评论 -
MySQL异常: Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException解决方案及原因分析
背景有这样两张表(commodities和accessory),后者有一个外键(fruitid)指向commodities表中的某个实体,表示accessory中对应的附属品实体依赖于某种水果(比如每种水果都需要一定的包装盒、运费)。具体表结构如下:如果删除某个commodities实体而不删除与之关联的accessory就会出现脏数据,所以当删除commodities时,需要根据frui...原创 2019-06-02 17:56:02 · 82725 阅读 · 0 评论 -
Mybatis——SQL语句的动态拼接学习笔记之踩坑记录
踩坑今天在写一个项目的Mapper配置文件,运行时报了一个SQL语法异常。如下图:!咋眼看是不好排查的,但是通过报错信息可以定位到Mapper文件,经过仔细查看之后发现是自己在标签中每句sql赋值后面少了一个逗号,如下图所示:为了避免这种难以排查的细节错误发生,自己去看了一下Mybatis在执行拼接过程中的一些处理,以供学习。SQL的动态拼接概述Mybatis为了让程序员专注CR...原创 2019-05-31 15:42:03 · 1587 阅读 · 0 评论 -
JAVA堆外内存的简介和使用
这里简单记录一下JAVA堆外内存相关的笔记,有JVM垃圾回收和内存布局基础的话比较好理解。推荐两篇文章:JAVA堆外内存的简介和使用、java堆外内存转载 2019-05-09 11:32:26 · 1021 阅读 · 0 评论 -
JVM调优:IntelliJ IDEA设置JVM运行参数
前言之前看java虚拟机方面的知识,从理论上了解了较多的调优原理及参数,疑惑怎么才能在生产环境中设置这些虚拟机参数,今天特地学习并记录。配置方式及优先级代码中的配置;Application中的配置;全局配置代码中配置在程序中使用System.setProperty进行设置对某个Application设置1 进入IDEA,Run–>Edit Configurations...原创 2019-04-18 14:20:50 · 3692 阅读 · 0 评论 -
写出良好的Java并发程序读书笔记(1)
一些导致线程不安全的因素指令重排序线程共享内存寄存器中涉及缓存部分…待更新线程活跃性关注的是死锁等问题。一些可能被忽视的多线程框架、组件等(语言内部设计机制)AWT、SWINGServletRMI(远程调用)… 待更新...原创 2019-01-09 16:52:51 · 105 阅读 · 0 评论 -
JVM类加载机制(三):自定义类加载器
自己编写类加载器的意义当class文件不在ClassPath目录下时,默认的系统类加载器无法找到该class文件,这时候需要自定义一个ClassLoader来加载特定路径下的class对象当一个class文件需要通过网络传输,甚至可能会进行相应的解密操作时,这时候需要编写自定义的ClassLoader来实现相应逻辑当要实现热部署时(一个class文件通过不同的类加载器产生不同的c...原创 2019-01-09 11:14:52 · 235 阅读 · 0 评论 -
JVM类加载机制(二):类加载器简要介绍
本文用意这篇博客会简要介绍类加载器的一些相关技术点,后面我会专门针对一些技术点进行记录,能力有限,不足之处请多拍砖。概述虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的代码块称为“类加载器”。类与类加载器类加载器用于实现类的加载动作。在java虚拟机中,任...原创 2019-01-09 11:14:16 · 163 阅读 · 0 评论 -
JVM类加载机制(一):类加载的过程
前言由于JVM真是太博大精深了,很难短时间内一言以蔽之,作为刚接触不久的作者而言,比较难一下记住并理解其中奥秘,所以专门将《JVM类加载机制》以一个系列的文章形式进行记录。每篇相关文章主要记录作者在学习实战中的感悟、理解以及关注点。本篇博客是介绍类加载过程中的一些关键点。类加载机制概述虚拟机将描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机...原创 2019-01-09 11:13:42 · 495 阅读 · 0 评论 -
位运算符的陷阱
背景今天在写代码计算二叉树根节点右孩子的下标值时,用了如下代码:/** * 获取根节点右孩子的的下标值 * @param i * @return */ private int right(int i) { return i << 1 + 1; // 右孩子为右移一位 + 1 }当我发现程序结果跟我预期不一样时,调试到此处,发现right(1)返回的结果是...原创 2019-01-08 11:58:09 · 175 阅读 · 0 评论 -
Syntax error, insert "Dimensions" to complete TypeArgument
报错今天在使用HashMap时遇到一个小错,如题。之前并不知道HashTable和HashMap老是强调:HashMap对象的key、value值均可为null。HahTable对象的key、value值均不可为null。今天遇到才铭记于心!报错原因分析产生错误原因是,我想用map一个int型的数值作为key,所以直接Map<int, string>.但是因为HashM...原创 2019-01-08 11:54:16 · 900 阅读 · 0 评论 -
java中((NULL)null).say()能运行吗?
“talk is cheap show me the code”先上代码,下面代码能运行吗?public class NULL { public static void say() { System.out.println("null say: haha"); } public static void main(String[] args) { // TODO Auto-ge...原创 2019-01-07 16:06:47 · 1003 阅读 · 1 评论 -
Java中堆和栈的区别
堆(Heap)和栈(Stack)是平时编程接触比较多的两个计算机语言,网上相关介绍内容已经有很多了,作者在此记录下我的理解,也供以后温故之用。1. 栈(Stack)和堆(Heap)的定义栈:空间小,速度快,放对象的引用;一个先进后出(Last In First Out )的数据结构,通常用于保存基本类型、字面量、对象的引用变量、自定义变量。堆:空间大,可动态申请,放所有创建的对象;一个...原创 2019-01-07 13:14:36 · 3998 阅读 · 0 评论 -
浅析GC抖动的原因
内存抖动概念:因为大量的对象被创建又在短时间内马上被释放,如循环中分配对象,很容易引起GC,特别是在较大的循环次数或者一个循环中分配较多的临时对象时。内存上的表现是JVM分配内存时,没有【可用】空间分配给对象,需要触发新一轮GC。瞬间产生大量的对象瞬间产生大量的对象,即使对象不大,也可能使得堆的可用空间达到阈值出发GC或导致堆的扩容产生GC。分配大内存块的对象分配大内存块的对...原创 2019-09-25 10:58:59 · 42719 阅读 · 0 评论