上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 19 下一页
摘要: 一、概述 从前面 文章 中我们可以了解到,javac 的三个步骤中,程序员唯一能干预的就是注解处理器部分,注解处理器类似于编译器的插件,在这些插件里面,可以读取、修改、添加抽象语法树中的任意元素。因此,只要有足够的创意,程序员可以通过自定义插入式注解处理器来实现许多原本只能在编码中完成的事情。我们常 阅读全文
posted @ 2020-01-09 21:18 JMCui 阅读(2592) 评论(1) 推荐(1)
摘要: 一、概述 如今,基于物理机、Java虚拟机或者是非 Java 的其他高级语言虚拟机(HLLVM)的语言,大多数都遵循如下现代经典编译原理的思路,在执行前先对程序源码进行词法分析和语法分析处理,把源码转化为抽象语法树。对于一门具体语言的实现来说,词法和语法分析乃至后面的优化器和目标代码生成器都可以选择 阅读全文
posted @ 2020-01-08 09:35 JMCui 阅读(1633) 评论(1) 推荐(2)
摘要: 2019 年只剩下寥寥数日了,这是我感觉过的最快的一年了,感觉还在年初,转眼已到年末,再看看碌碌无为、一事无成的自己,唉!满是成年人的辛酸...果然出了社会以后,最难琢磨透的还是人情和人心呀!实在是自己太单纯了。 2019 年发生了几件值得纪念的事: 4月份,放弃了外面高薪的工作,选择降薪加入创业公 阅读全文
posted @ 2019-12-31 12:55 JMCui 阅读(462) 评论(0) 推荐(1)
摘要: 最近使用 Mybatis 遇到了一个奇怪的问题,前端传了一个数字字符串(type = "1") ,我做了如下判断: 就这样系统无情的告诉我这样无法被解析,原因是字符串和数字无法判断相等!Are you kidding me?我这明明写的是字符串呀! 后来,跟踪了下源码,发现 '1' 确实被直接当成数 阅读全文
posted @ 2019-12-30 00:21 JMCui 阅读(1354) 评论(0) 推荐(1)
摘要: 一、概要 "前面的文章" 介绍了对象的创建过程,其中第三步 —— 分配内存,只是简单的介绍了分配的方式 —— 指针碰撞、空闲列表,其实对象在堆上分配还大有文章嘞。 对象的内存分配,往大方向上讲,就是在堆上分配,对象主要分配在新生代的 Eden 区上,如果启动了本地线程分配缓冲,将按线程优先在 TLA 阅读全文
posted @ 2019-12-22 15:59 JMCui 阅读(1010) 评论(0) 推荐(0)
摘要: 一、概述 1. 哪些内存需要回收 上篇文章 我们介绍了 Java 内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟着回收了。 而方法区和 Java 堆是线程共享的,我们只有 阅读全文
posted @ 2019-12-17 21:05 JMCui 阅读(554) 评论(0) 推荐(1)
摘要: 内存分配相关 Xms 英文释义:Initial heap size(in bytes) 中文释义:堆区初始值 使用方法: Xms2g 或 XX:InitialHeapSize=2048m Xmx 英文释义:Maximum heap size(in bytes) 中文释义:堆区最大值 使用方法: Xm 阅读全文
posted @ 2019-12-16 21:41 JMCui 阅读(3404) 评论(0) 推荐(1)
摘要: 一、标记 清除算法(Mark Sweep) 这种算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 Mark Sweep 算法是最基础的收集算法,几乎所有的收集算法都是基于这种思路并对其不足进行改进而得到。它的不足之处主要有两个: 效率问题。标记 阅读全文
posted @ 2019-12-15 15:49 JMCui 阅读(623) 评论(0) 推荐(1)
摘要: 一、引入 首先我们看到的是 Thread 中有一个属性 threadLocals,它的类型是 ThreadLocalMap,封装类型是 default(表示它只能在包内可见),jdk 是这么介绍它的:与此线程有关的 ThreadLocal 值,该映射由 ThreadLocal 类维护。 啥意思呢?那 阅读全文
posted @ 2019-12-08 22:35 JMCui 阅读(507) 评论(0) 推荐(0)
摘要: 一、JDK动态代理 Java 在 java.lang.reflect 包中有自己的代理支持,该类(Proxy.java)用于动态生成代理类,只需传入目标接口、目标接口的类加载器以及 InvocationHandler 便可为目标接口生成代理类及代理对象。我们称这个Java技术为:动态代理 在 Jav 阅读全文
posted @ 2019-12-03 13:01 JMCui 阅读(2505) 评论(0) 推荐(1)
摘要: 一、JVM 内存区域 堆 - Heap 线程共享,JVM中最大的一块内存,此内存的唯一目的就是存放对象实例,Java 堆是垃圾收集器管理的主要区域,因此很多时候也被称为“GC堆”(Garbage Collected Heap),可以通过 -Xmx 和 -Xms 参数来控制该区域大小。 方法区 - M 阅读全文
posted @ 2019-12-01 16:36 JMCui 阅读(1775) 评论(0) 推荐(1)
摘要: 一、DFA 算法简介 在实现文字过滤的算法中,DFA是唯一比较好的实现算法。 DFA 全称为:Deterministic Finite Automaton,即确定有穷自动机。其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号,其中一个状态是初态,某些状态是终态。但 阅读全文
posted @ 2019-11-27 13:45 JMCui 阅读(4075) 评论(0) 推荐(3)
摘要: 我们在进行项目的多环境配置时,有很多种方式供我们选择,比如 SpringBoot 自带的 application dev.yml、maven 的 profile 等。这里介绍的就是如何利用 profile 进行多环境配置。 首先,在 pom.xml 中添加你需要的 profile 配置: profi 阅读全文
posted @ 2019-11-24 23:06 JMCui 阅读(4399) 评论(0) 推荐(0)
摘要: 一、简述 开发的软件产品在交付使用的时候,往往有一段时间的试用期,这期间我们不希望自己的代码被客户二次拷贝,这个时候 license 就派上用场了,license 的功能包括设定有效期、绑定 ip、绑定 mac 等。授权方直接生成一个 license 给使用方使用,如果需要延长试用期,也只需要重新生 阅读全文
posted @ 2019-11-24 09:16 JMCui 阅读(8133) 评论(0) 推荐(2)
摘要: 一、简述 有没有想过像 @RequestParam、@RequestBody 这些注解的工作原理呢?为什么 form 表单、application/json 的参数能够直接封装进 Bean 对象中呢?这就要说到 HandlerMethodArgumentResolver — 方法参数解析器,该接口有 阅读全文
posted @ 2019-11-22 08:12 JMCui 阅读(3540) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 19 下一页