随笔分类 -  Java

About Java
摘要:总结 是什么: 字节码增强技术用于对静态字节码文件进行修改或动态修改运行中的程序。使用场景有【动态代理、AOP、ORM框架】、【热部署、Mock测试、性能诊断工具】等,例如动态代理、AOP等实质上是利用各种手段生成符合规范的字节码文件。掌握字节码增强后可以高效地定位并快速修复一些棘手的问题(如线上性 阅读全文
posted @ 2022-12-11 21:39 March On 阅读(801) 评论(0) 推荐(0)
摘要:解释执行 https://www.cnblogs.com/z-sm/p/6239377.html Java代码是解释执行的,先编译成字节码,这些字节码在JVM实例上被一行行解释执行。有两种解释执行的实现方式: 基于内存栈——在软件层面基于内存栈解释执行,传统的字节码解释器。 基于CPU寄存器——在硬 阅读全文
posted @ 2022-11-30 12:03 March On 阅读(265) 评论(0) 推荐(0)
摘要:特点: 支持xls、xlsx格式; 导出时支持自定义表格标题和表格数据,支持一个文档里多个Sheet; 依赖: <!--excel util--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> 阅读全文
posted @ 2022-07-15 19:20 March On 阅读(269) 评论(0) 推荐(0)
摘要:参阅公众号 BAT的乌托邦-Java EE 专栏 阅读全文
posted @ 2021-07-26 16:06 March On 阅读(154) 评论(0) 推荐(0)
摘要:详情参阅:https://www.cnblogs.com/throwable/p/14343086.html UUID的几个核心特定: 全局时空唯一性固定长度128比特,也就是16字节(1 byte = 8 bit)分配速率极高,单机每秒可以生成超过1000万个UUID(实际上更高) UUID是Un 阅读全文
posted @ 2021-04-13 15:32 March On 阅读(2650) 评论(0) 推荐(0)
摘要:注意,以下所述源码版本为 JDK 1.8.0_212 1 引用的概念 Java中的数据类型分为: 基本数据类型:byte、short、int、long、float、double、char、boolean 8种。 引用类型:上述基本数据类型的包装类、其他各种对象类型。如Integer、Object等。 阅读全文
posted @ 2021-03-31 18:28 March On 阅读(759) 评论(0) 推荐(0)
摘要:详情参阅:Jackson系列 注:下文涉及到的 jackson 源码的版本为 2.11.0 1 Jackson介绍 (对应 Jackson系列 文章1) Jackson是一个基于JVM平台(所以支持Java、Scala、Kotlin等语言)的数据(不限于JSON格式的数据)序列化、反序列化工具集,包 阅读全文
posted @ 2021-03-10 16:43 March On 阅读(1555) 评论(0) 推荐(0)
摘要:1 函数式编程 函数式编程(Functional Programming)是编程范式的一种。最常见的编程范式是命令式编程(Impera Programming),比如面向过程、面向对象编程都属于命令式编程,大家用得最多、最熟悉。函数式编程并非近几年的新技术或新思维,其诞生已有50多年时间。 在函数式 阅读全文
posted @ 2019-11-25 12:07 March On 阅读(853) 评论(0) 推荐(0)
摘要:本文中用到的Spring Security版本为 5.3.4.RELEASE 。 以下多数内容为阅读官方文档(https://docs.spring.io/spring-security/site/docs/5.3.4.RELEASE/reference/html5)的总结。 1 What Spri 阅读全文
posted @ 2019-07-02 14:39 March On 阅读(1015) 评论(0) 推荐(0)
摘要:Java中代理有静态代理和动态代理。静态代理的代理关系在编译时就确定了,而动态代理的代理关系是在运行期确定的。静态代理实现简单,适合于代理类较少且确定的情况,而动态代理则给我们提供了更大的灵活性。Java中的方法继承及重写本质上可以看做是一种动态代理,实际上CGLIB动态代理的原理就是继承。 Jav 阅读全文
posted @ 2019-04-23 16:32 March On 阅读(285) 评论(0) 推荐(0)
摘要:(参考资料:深入理解java enum) 1、原理:对编译后的class文件javap反编译可以看出,定义的枚举类继承自java.lang.Enum抽象类且通过public static final定义了几个常量作为枚举常量。示例: 1 //定义枚举类型 2 enum Day { 3 MONDAY, 阅读全文
posted @ 2018-07-12 15:42 March On 阅读(3590) 评论(0) 推荐(1)
摘要:java注解是jdk1.5以后新出的特性,注解提升了Java语言的表达能力,有效地实现了应用功能和底层功能的分离,框架/库的程序员可以专注于底层实现。 1、Java内置注解 主要有三个: @Override:用于标明此方法覆盖了父类的方法 @Target(ElementType.METHOD) @R 阅读全文
posted @ 2018-06-13 16:31 March On 阅读(465) 评论(0) 推荐(0)
摘要:什么是JPA JPA(Java Persistence API)是Java标准中的一套ORM规范,借助JPA技术可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中(即Object Model与Data Model间的映射)。 JPA之于ORM(持久层框架,如MyB 阅读全文
posted @ 2018-06-13 10:56 March On 阅读(23261) 评论(10) 推荐(8)
摘要:在Java中,如果一个类没有任何显式创建的构造器则该类默认会有一个无参构造器;如果显式创建了有参构造器则该类就不再有默认无参构造器。 在Java继承中,构造器并不能被继承,而是被显示或隐式调用。 1、子类的构造方法中必须调用其基类的构造方法(显示或隐式) 1.1、若是显示调用,则可以通过 super 阅读全文
posted @ 2017-09-27 22:00 March On 阅读(3228) 评论(2) 推荐(0)
摘要:1. Java虚函数 1. Java虚函数 虚函数的存在是为了多态。 C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非 阅读全文
posted @ 2017-08-30 19:58 March On 阅读(682) 评论(0) 推荐(0)
摘要:乐观并发访问控制策略,CAS(V, E, N) 表示取出内存中变量V的值并与期望值E比较,同则变量值更新为N否则重试或报错,这几个步骤底层由CPU的cmpxchg指令保证原子操作。 存在ABA问题,通过数据加版本号解决,即比较时不仅比较变量值还比较版本,每次更新成功时增加版本号。JDK里Atomic 阅读全文
posted @ 2017-08-24 23:03 March On 阅读(537) 评论(0) 推荐(1)
摘要:概要:Java制定的 内存模型 是为了在各种硬件和OS下达到一致的内存访问效果,但它的引入也带来了并发下的一致性问题(因为有各自的变量副本)。因此Java内存模型的主要内容: 一是内存模型的结构(内存划分); 二是解决在这种模型下并发(多线程)访问时变量的一致性问题,包括原子性、可见性、有序性。(解 阅读全文
posted @ 2017-07-17 16:57 March On 阅读(542) 评论(0) 推荐(0)
摘要:这里以HotSpot为例,且所说的对象指普通的Java对象,不包括数组和Class对象等。 1、对象创建的过程 1、类加载、解析、初始化:虚拟机遇到new时先检查此指令的参数是否能在常量池中找到类的符号引用,并检查符号引用代表的类是否被加载、解析、初始化,若没有则先进行类加载。 2、对象内存分配:类 阅读全文
posted @ 2017-07-10 12:12 March On 阅读(5450) 评论(0) 推荐(0)
摘要:分析 1、内部类(不论是否是匿名内部类)可访问外部类的变量(包括外部类的类变量、实例变量、外部类方法的局部变量等)、方法:可修改变量值、调用方法等。内部类定义时的位置有两种: 在外部类的方法内:此时该内部类只能是匿名内部类(语法上不支持在方法内定义非匿名类)。此时内部类可访问上述所有变量。 不在外部 阅读全文
posted @ 2017-06-21 11:57 March On 阅读(6550) 评论(1) 推荐(2)
摘要:1、执行顺序 1.1、一个类中的初始化顺序 类内容(静态变量、静态初始化块) => 实例内容(变量、初始化块、构造器) 1.2、两个具有继承关系类的初始化顺序 父类的(静态变量、静态初始化块)=> 子类的(静态变量、静态初始化块)=> 父类的(变量、初始化块、构造器)=> 子类的(变量、初始化块、构 阅读全文
posted @ 2017-06-09 22:17 March On 阅读(3574) 评论(0) 推荐(1)

top last
Welcome user from
(since 2020.6.1)