4 鲲鹏飞九万里

尚未进行身份认证

我要认证

过好每一天,就是过好这一生。

等级
TA的排名 3w+

2020-09-15-Java泛型中的自限定泛型

Java的自限定泛型文章目录Java的自限定泛型一、古怪的循环二、自限定三、自限定类型的价值——产生协变参数类型3.1 协变返回类型3.2 自限定泛型事实上将产生确切的导出类型作为其返回值一、古怪的循环古怪的循环泛型(CRG):类相当古怪地出现在出现在它的基类中。我创建一个新类,它继承自一个泛型类型,这个泛型类型接受我的类的名字作为其参数。class GenericType<T>{}// 古怪的循环: 类相当古怪地出现在它自己地基类中public class Curiously

2020-09-14 23:38:18

对Java泛型擦除的补偿

对Java泛型擦除的补偿文章目录对Java泛型擦除的补偿一、泛型的擦除1.1 为泛型类设置边界(可以设置多个边界),就可以通过泛型对象调用边界的方法二、擦除的补充2.1 对`instanceof`的补充:引入类型标签,使用动态的`isInstance()`2.2 对泛型`new T()`对补偿:`newInstance()`、显式工厂2.3 创建泛型数组:`Array.newInstance()`一、泛型的擦除在泛型代码内部,无法获得任何有关泛型参数类型的信息。Java泛型是使用擦除实现的,这意味着

2020-09-12 23:24:27

Java容器类库的基本知识

Java容器类库单基本知识文章目录Java容器类库单基本知识一、容器分类1.1 `Collection`(1) `List`(2)`Set`(3)`Queue` FIFO1.2 `Map`二、工具类2.1 `Collections`2.2 `Arrays`三、迭代器3.1 `Iterator`3.2 `ListIterator`一、容器分类1.1 Collection(1) ListArrayListLinkedListStack,LIFO(过时),LinkedList具有能够直接实现栈的

2020-08-29 18:08:51

重新认识Java中的内部类

重新认识Java中的内部类文章目录重新认识Java中的内部类一、内部类的三种形式1.1 定义在外层类中1.2 布局内部类——定义在方法中1.3 匿名内部类二、嵌套类(带`static`修饰)不是内部类三、内部类的作用一、内部类的三种形式1.1 定义在外层类中public class Outer{ public class Inner{}}1.2 布局内部类——定义在方法中局部内部类不能有访问修饰符,因为它不是外围类的一部分;但是它可以访问当前代码块内的常量,以及外围类的所有成员。pub

2020-08-27 22:09:56

Java中通过new创建一个对象的时候,发生了哪些事

Java中通过new创建一个对象的时候,发生了哪些事文章目录Java中通过`new`创建一个对象的时候,发生了哪些事一、在类的内部,变量定义的先后顺序决定了初始化的顺序二、静态数据的初始化三、概述 (包含继承)四、初始化的实际过程构造器内部的多态方法的行为一、在类的内部,变量定义的先后顺序决定了初始化的顺序二、静态数据的初始化static关键字不能应用于局部变量,它只能作用于域。静态初始化只在必要的时刻才会进行——第一次访问静态数据,或者第一次创建对象。三、概述 (包含继承)public st

2020-08-25 23:19:27

Java中通过new创建一个对象的时候,发生了哪些事

Java中通过new创建一个对象的时候,发生了哪些事文章目录Java中通过`new`创建一个对象的时候,发生了哪些事一、在类的内部,变量定义的先后顺序决定了初始化的顺序二、静态数据的初始化三、概述 (包含继承)一、在类的内部,变量定义的先后顺序决定了初始化的顺序二、静态数据的初始化static关键字不能应用于局部变量,它只能作用于域。静态初始化只在必要的时刻才会进行——第一次访问静态数据,或者第一次创建对象。三、概述 (包含继承)public static void main(String[]

2020-08-24 21:12:01

注意MyBatis的缓存——避免直接对Dao层从MyBatis查询的数据进行操作

一、遇到的一个诡异的错误场景:近日在开发中,遇到一个诧异的错误场景。Dao层从MyBatis查询数据,二次查询获得的结果集条数不一致。困惑了好一会儿,后来通过打印myBatis的SQL日志,发现——虽然调用了两次DAO的查询方法,但只日志中只打印了一次sql日志。顿时明白了,myBatis中有缓存机制。关于缓存,查到一篇不错的文章:https://tech.meituan.com/2018/01/19/mybatis-cache.html二、分析这次错误出现的原因经过分析,这个诡异的错误场景是

2020-08-20 11:23:55

Spring Cache的基础

Spring Cache文章目录Spring Cache一、认识`Spring Cache`二、Spring Cache 抽象2.1 缓存注解(1)`@Cacheable`(2)`@CachePut`(4)`@Caching`(5) `@CacheConfig` 类级别的缓存三、实践经验一、认识Spring Cache第一步:配置缓存管理 <context:component-scan base-package="com.hef"/> <cache:annotatio

2020-08-13 22:01:10

SpringJDBC访问数据库

Spring JDBC 访问数据库文章目录Spring JDBC 访问数据库一、返回数据库的表自增主键值二、批量更新数据三、查询数据四、BLOB/CLOB类型数据的操作4.1 插入LOB类型的数据4.2 读取LOB类型的数据(1) 以块数据方式读取LOB数据(2)以流数据方式读取LOB数据五、自增键和行集5.1 自增键的使用(1)以表方式产生主键值(2)`DataFieldMaxValueIncrementer`存在的问题5.2 规划主键的方案(1)“应用层主键“方案,新数据的主键分配由应用层负责(2)”

2020-08-09 17:48:41

Spring与数据连接泄漏

Spring与数据连接泄漏文章目录Spring与数据连接泄漏一、Spring对避免数据连接泄露问题的承诺二、模拟数据连接泄露三、事务环境下,通过`DataSourceUtils`获取数据连接四、无事务环境下,通过`DataSourceUtils`获取数据连接,仍会导致连接泄露五、`TransactionAwareDataSourceProxy`对数据源进行代理一、Spring对避免数据连接泄露问题的承诺只要在程序中使用Spring Dao的模版(如 JdbcTemplate、HibernateTemp

2020-08-08 17:20:53

Spring的事务管理

Spring的事务管理文章目录Spring的事务管理一、数据库事务1.1 数据库事务的四个特性(ACID)1.2 数据并发的问题1.3 数据库锁机制1.4 事务的隔离级别1.5 JDBC对事务的支持二、`ThreadLocal`2.1 与Thread同步机制的比较三、Spring对事务管理的支持3.1 事务管理关键抽象3.2 Spring的事务管理器实现类四、Spring的事务传播五、事务配置5.1 使用原始的`TransactionProxyFactoryBean`(1) 声明式事务配置(2) 基于ao

2020-08-08 15:37:33

Spring的事务管理

Spring的事务管理文章目录Spring的事务管理一、数据库事务1.1 数据库事务的四个特性(ACID)1.2 数据并发的问题1.3 数据库锁机制1.4 事务的隔离级别1.5 JDBC对事务的支持二、`ThreadLocal`2.1 与Thread同步机制的比较三、Spring对事务管理的支持3.1 事务管理关键抽象3.2 Spring的事务管理器实现类四、Spring的事务传播五、事务配置5.1 使用原始的`TransactionProxyFactoryBean`(1) 声明式事务配置(2) 基于ao

2020-08-06 23:19:29

Spring SpEL

Spring SpEL文章目录Spring SpEL一、JVM动态语言二、SpEL表达式三、SpEL的核心接口3.1 `ExpressionParser`(1) 字符串的拼接3.2 `EvaluationContext`(2) 针对特定实例对象的属性进行求值3.3 `SpelCompiler`可以将字节码直接编译成字节码四、SpEL表达式4.1 文本字符解析4.2 对象属性解析4.3 数组、集合类型解析4.4 方法解析4.5 操作符解析(1) 关系操作符(2)逻辑操作符(3)算术运算操作符4.6 安全导航

2020-07-14 22:14:19

基于@AspectJ和Schema的AOP

基于@AspectJ和Schema的AOP文章目录基于`@AspectJ`和Schema的AOP一、`@AspectJ`热身二、`@AspectJ`语法基础2.1 切点表达式函数2.2 在函数入参中使用通配符2.3 逻辑运算符2.4 不同增强类型三、切点函数详解3.1 `@annotation()`3.2 `execution()` 最常用3.3 `args()`3.4 `@args()`3.5 `within()`3.6 `@within()` 和`@target()`3.7 `target()`和`t

2020-07-12 17:44:14

SpringAOP基础

SpringAOP基础文章目录SpringAOP基础一、AOP的术语1.1 连接点(Joinpoint)1.2 切点(Pointcut)1.3 增强(或通知)(Advice)1.4 目标对象(Target)1.5 引介 (Introduction)1.6 织入(Weaving)1.7 代理(Proxy)1.8 切面(Aspect)二、Spring AOP的动态代理2.1 基于JDK的动态代理2.2 基于CGLib的动态代理三、创建增强3.1 前置增强(1)`ProxyFactory`(2) 在Spring

2020-06-28 22:09:16

Java中使用POI生成excel的相关细节

Java中使用POI生成excel的相关细节文章目录Java中使用POI生成excel的相关细节一、为单元格设置背景颜色一、为单元格设置背景颜色开发中遇到这样一个现象:无论将单元格的背景设置为什么颜色,生成出的excel却只显示黑色。错误设置颜色示例:CellStyle cellStyle = wb.createCellStyle();cellStyle.setFillBackgroundColor(IndexedColors.PALE_BLUE.getIndex());cellStyle.s

2020-06-28 22:07:29

国际化信息

国际化信息文章目录国际化信息一、基础知识1.1 `Locale`1.2 本地化工具类1.3 `ResourceBundle`加载本地化资源1.4 在资源文件中使用格式化串:`ResourceBoundle+MessageFormat`二、Spring对国际化的支持2.1 `MessageSource`2.2 `ResourceBundleMessageSource`2.3 `ReloadableResourceBundleMessageSource`2.4 容器级的国际化信息资源一、基础知识一般需要*

2020-06-06 22:04:35

Spring使用加密的属性文件

Spring中使用加密的属性文件文章目录Spring中使用加密的属性文件一、`PropertyPlaceHolderConfigurer`属性文件1.1 定义属性文件`application.properties`:1.2 引用属性文件1.3 通过占位符引用属性二、坑:《精通Spring4.x企业应用开发实战》中的6.3.2 使用加密的属性文件三、在云栖社区上发现了一篇好的博文[《spring、spring-boot配置文件属性内容加解密》](https://yq.aliyun.com/articles/

2020-06-03 22:27:24

Spring容器中的组件,及自定义属性编辑器

Spring容器中的组件,及自定义属性编辑器文章目录Spring容器中的组件,及自定义属性编辑器一、Spring容器中的组件及配合机理1.1 物料组件1.2 设备组件1.3 配合机理二、`BeanDefinition`三、`InstantiationStrategy`四、`BeanWrapper`五、属性编辑器(类型转换器)六、自定义属性编辑器6.1 自定义属性编辑器6.2  注册属性编辑器6.3 使用自定义的属性编辑器一、Spring容器中的组件及配合机理1.1 物料组件Resource

2020-05-31 16:56:49

在IOC容器中装配Bean——基于注解的配置

在IOC容器中装配Bean——基于注解的配置文章目录在IOC容器中装配Bean——基于注解的配置一、使用注解定义Bean二、扫描定义的Bean三、自动装配Bean3.1 通过`@Autowired`进行自动装配3.2 `required`属性3.3 `@Qualifier`指定注入Bean的名称3.4 `@Autowired`可以对类成员变量及方法对入参进行标注3.5 对集合进行标注3.6 `@Lazy`对延迟依赖注入的支持3.7 对标准注解的支持`@Resource`、`@Inject`四、Bean作用

2020-05-24 17:34:42

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。