自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

triski的博客

走向 Java

  • 博客(17)
  • 收藏
  • 关注

原创 Mybatis Generator 插件教学

Mybatis Generator PluginMybatis Generator,简称 MBG,Mybatis 三剑客之一,通过定义 generatorConfig.xml 来创建 POJO,Mapper 等类(逆向工程)但是原生生成的类不一定符合我们的需求,所以需要通过自定义插件来定制化生成的文件(通过继承 org.mybatis.generator.api.PluginAdapter)...

2020-03-08 20:34:03 395

原创 Mybatis 工作原理与拦截器机制

Mybatis PluginMybatis 插件,也被叫做 Mybatis 拦截器,使用 AOP 的原理对 Executor,StatementHandler 等接口进行切面编程快速定位Mybatis 的工作过程拦截器使用步骤示例Mybatis的工作过程SqlSessionFactoryBuilder 通过 xml 文件或 Configuration 对象组装 SqlSess...

2020-03-08 20:31:23 308

原创 通过域名实现 Windows 和 WSL2.0 的相互访问

问题当 wsl 版本切换到 2 后,内部是使用虚拟机来实现,所以无法使用 localhost 访问 windows 的资源,想要通过 url 相互访问就必须先去查双方的局域网 ip(觉得无所谓请跳过接下来的表演)解决思路向 windows 的 hosts 文件写入 wsl 的 ip,向 wsl 的 hosts 文件写入 windows 的 ip,然后双方就能通过域名访问彼此遇到的坑操作 windows 和 wsl 的 hosts 文件都需要各自的管理员权限(windows 的管理员权限无法操作

2021-01-30 17:27:03 1685

原创 Java 篇:让你的 Eclipse 飞起来

下载 Eclipse不要去官网下载,很慢,使用国内的下载地址(清华源):https://mirrors.tuna.tsinghua.edu.cn/eclipse/technology/epp/downloads/release/配置 Eclipse修改 Eclipse 的配置文件:Eclipse_Home/eclipse.ini修改 Eclipse 镜像:help > ins...

2019-03-25 14:16:11 347

原创 Bug 篇:Java 8 Parallel Stream 陷阱

误区一:Java 8 中的 Stream 只要使用 parallel() 就可以并行处理,只要使用 sequential 就可以单线程处理parallel 方法和 sequential 方法不会对流产生任何影响,只是改动了状态位而已Stream 是否并行取决于最后一次改变状态位的方法是 parallel 还是 sequential,下面两种表达式等价:stream.parallel(...

2019-03-24 17:53:04 2389 1

原创 Spring 篇:RedisTemplate 配置与使用

Maven 依赖 <!-- Redis 官方提供的 Java 驱动 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0

2019-03-17 17:31:38 7343 1

原创 Java 篇:通过反射与代理实现 AOP

概述通过 Proxy::newProxyInstance 和 InvocationHandler 接口 来实现代理要求 被代理的对象 至少实现一个 接口代理的原理是在内存生成一个代理类的 Class 文件,可以将其保存下来,通过反编译查看// 被代理的对象的接口public interface IHello { void say();}// 被代理的对象的类publi...

2019-02-25 20:33:52 377

原创 JVM 篇:虚拟机字节码执行引擎

概述  Java 虚拟机规范规定了字节码执行引擎的规范,这个规范形成了所有具体虚拟机实现的统一外观:输入字节码,内部解析,输出结果。  执行引擎的运行其实就是栈帧的入栈和出栈的过程。每个栈帧都包括了 局部变量表 (local variable table,也称本地变量表),操作数栈 (operand stack) 和 栈帧信息 (动态连接,方法返回地址和其他一些额外信息)。栈帧结构局部变...

2019-02-23 18:17:42 181

原创 JVM 篇:类加载机制

概述  Java 和 C/C++ 这种在编译时就开始连接的语言不同,Java 是在运行期动态加载,动态连接的。(以效率换灵活度)  类的生命周期如下,其中 加载,验证,准备,初始化,卸载 这五步的顺序是确定的 (这里说的是开始的顺序,而不是等到前一个执行完再执行下一个);解析 一般来说是在 初始化 之前开始的,但有些情况会在 初始化 之后才开始 (为了支持 Java 的运行时绑定)加载...

2019-02-22 16:29:39 153

原创 JVM 篇:Java 虚拟机工具

JDK 自带的可视化工具VisualVM : $JAVA_HOME/bin/jvisualvm.exeJConsole : $JAVA_HOME/bin/jconsole.exe  这两款工具都很好用,JConsole 比较简单,但该有的功能都有;VisualVM 是官方推荐使用的工具,有一些功能要装上插件才能使用(不装插件还不如 JConsole),装插件很简单,就和 NotePad ...

2019-02-21 17:42:38 204

原创 JVM 篇:HotSpot GC

注:HotSpot 是 JDK 自带的虚拟机类型如果对垃圾回收的基本概念不是很了解,可以点击 GC 基本概念 前往了解。HotSpot 使用可达性分析算法来获知哪些对象是有用的,然后把没用的对象回收掉。具体过程为:GC 时程序中各线程会跑到 安全区域 里面离自己最近的 安全点 更新 OopMap 的数据(栈帧中引用的位置),然后阻塞自己通过 OopMap 记录的引用位置快速的枚举 GC ...

2019-02-21 17:04:42 221

原创 JVM 篇:GC 基本概念

基本概念  在谈垃圾收集器之前,我们先来捋一捋哪些内存会被当成垃圾回收。虚拟机的内存区域可以分为 程序计数器,虚拟机栈,本地方法栈,堆,方法区,直接内存。  程序计数器 和 虚拟机栈 和 本地方法栈 都为线程私有的,当线程结束之后其内存会被销毁,所以这部分不存在垃圾回收。  直接内存 是使用本地内存,所以垃圾收集器无法管理。  堆 是垃圾收集的主要区域。存储着几乎所有的对象 (现在已经有 ...

2019-02-21 14:12:52 224

原创 JVM 篇:虚拟机异常

以下内容为阅读 深入理解Java虚拟机(第2版)后的笔记及对 JDK8 的实践补充。看完这本书后最大的感觉就是,,,再看一遍,很多原来理解不了的知识点就可以看懂了,因为很多内容是前后呼应的。有兴趣的可以去阅读这本书,强推。// 虚拟机异常一般为 *Error,常见的有 OutOfMemoryError 和 StackOverflowErrorpublic class JVMError {...

2019-02-19 20:26:35 218

原创 JVM 篇:虚拟机内存分布

以下内容为阅读 深入理解Java虚拟机(第2版)后的笔记及对 JDK8 的实践补充。看完这本书后最大的感觉就是,,,再看一遍,很多原来理解不了的知识点就可以看懂了,因为很多内容是前后呼应的。有兴趣的可以去阅读这本书,强推。运行时数据区域程序计数器线程私有CPU 一般是分片运行的,线程转换的时候需要记录当前指令的位置,以便下一次运行时从中断处继续,这个就是程序计数器的作用。每一个线程有...

2019-02-19 19:47:12 233

原创 JVM 篇:虚拟机种类

通用平台的虚拟机Classic VMJDK1 与 JDK2 的官方默认虚拟机,世界第一种 java 虚拟机通过纯解释器执行 Java 代码,即时编译器只能通过外挂的形式存在,并且不能与解释器一起运行。(那个时候的 java 很慢)Exact VMSun 公司为了解决 Classic VM 的效率问题而计划研发的,但只在 Solaris 系统上发布过,后来就被 HotSpot 取代了...

2019-02-19 17:37:34 896

原创 Mavn 篇:写一个自己的模板,快速搭建项目

文章目录一,包与代码的结构二,代码中的某些属性值maven archetype 结构pom.xmlsrc/main/resources/archetype-resourcessrc/main/resources/META-INF/maven/archetype-metadata.xml创建 每次我们要使用框架写一个网站时,比如 SSM,我们总是需要手写 applicationContenxt.x...

2018-09-24 16:18:47 462

原创 Maven 篇:正确对待依赖冲突

 当我们使用 maven 来构建我们的程序时,我们可以用几句配置来代替大量的 jar 包(一个依赖会引入其依赖的其他依赖,而那些依赖也会引入其依赖的依赖,所以有依赖树这种说法),同时因为这种配置在我们交流代码时可以不用自己引入 jar 包(避免了版本不一致而出错),只要更新 maven,它就会在后台帮我们解决这一切。 但是在我们享受这种方便的同时,我们也在为这种方便付出代价首先我们先来看一个例...

2018-09-24 00:30:26 4931 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除