Java

Java 中反射、注解、动态代理、AOP 之间的联系

AOP 和 Aspect 是什么? AOP 即 Aspect Orient Programming 是以一种编程范式,在不同业务中横着切一刀形成一个切面,在此切面上做一些相同的事情。Aspect 就是切面。 规定了一些概念性的东西: Pointcut:是一个(组)基于正则表达式的表达式,有点绕,就是说他本身是一个表达式,但是他是基于正则语法的。通常一个pointcut,会选取程序中的某些我们感兴

@Retention注解 【rɪˈtenʃn】

@Retention注解是一个Java注解,用于修饰注解,表示注解的生命周期1。 它是一个元注解,作用是设置注解的生命周期,生命周期的长短取决于@Retention的属性RetentionPolicy指定的值1。 @Retention注解传入的是RetentionPolicy枚举,该枚举有三个常量,分别是SOURCE、CLASS和RUNTIME1。 SOURCE:代表着注解仅保留在源级别中,编译

CommonJS 和 ECMAScript 转换

CommonJS 和 ECMAScript 前言:在完成一个加密工具的过程中,本来只想使用 commonjs 语法完成该功能,但是在使用 chalk 的时候发现 chalk 是通过 ES 模块导出的,无法使用 require 引入(当然也有一些方法,可以使用 bable 去转化,但是本人想实现使用 es 语法,目前还没写多少内容,以下是转化注意的地方) 1. 将自己工具函数的导出方式进行改

js 函数

js 函数 forEach() 方法 map() 方法 filter() 方法 reduce() 方法 every() 方法 some() 方法 find() 方法 findIndex() 方法 sort() 方法 reverse() 方法 join() 方法 slice() 方法 splice() 方法 concat() 方法 pop() 方法 push() 方法

@Documented注解

@Documented注解是一个标记注解,用于指示将被注解的元素包含在生成的Java文档中1。 它本身没有任何属性或配置选项,通常用于自定义注解时,确保其注解信息能在生成的文档中显示1。 例如:如果声明注解时指定了@Documented,则它会被javadoc之类的工具处理,所以注解类型信息也会被包括在生成的文档中。

@Inherited注解

在Java中,@Inherited是一个注解(annotation),用于指示一个类的继承行为。当一个类被标记为@Inherited时,它的子类将继承父类的注解。 具体来说,当一个类被标记为@Inherited时,它的所有方法、字段和构造函数都将被子类继承。这意味着,如果子类没有显式地声明与父类相同的方法、字段或构造函数,那么这些方法、字段或构造函数将自动从父类继承过来。 需要注意的是,@Inhe

@AliasFor注解

@AliasFor是一个Java注解,用于注解自定义注解的两个属性,表示这两个属性互为别名1。 自定义注解中,若某个属性命名上为了体现其含义,导致属性名称比较复杂,调用方每次使用自定义注解时,都需要写明属性名称,并设置属性值,这样比较繁琐。同时,若自定义注解继承了另一个注解,要想让调用方能够设置继承过来的属性值,就必须在自定义注解中重新定义一个属性,同时声明该属性是父注解某个属性的别名1。 使用@

@Deprecated注解【ˈdeprəkeɪtɪd】

@Deprecated注解是Java语言中的一种注解,用于表示某个类、方法或属性已被废弃或过时12。 在Java中,使用@Deprecated注解可以提醒开发人员某些代码已经过时,可能不再被推荐使用,或者存在一些问题。使用@Deprecated注解时,需要在注释中说明废弃此方法后的代替方法,或者处理原逻辑的代替方案。如果使用了废弃的类、方法或属性,编译器会给出警告信息12。 @Deprecated

Java学习——基础知识补充

1.作用域 1.1 public 定义为public的class、interface可以被其他任何类访问,定义为public的field、method可以被其他类访问,前提是首先有访问这个类的权限。 注意: 一个.java文件只能包含一个public类,但可以包含多个非public类。如果有public类,文件名必须和public类的名字相同。 如果不确定是否需要public,就不声明为publi

集合学习总结

集合总结 一、概述 作用:存储对象的容器,代替数组的,使用更加的便捷 所处的位置:java.util 体系结构 二、Collection 内部的每一个元素都得是引用数据类型 常用方法 add(Object o) 添加元素 addAll(Collection c) 将指定集合中的所有元素存入到当前集合 remove(Object o) 移除元素 removeAll(Coll

代码随想录算法训练营第二天

代码随想录算法训练营第二天 | LeetCode 977(有序数组的平方) LeetCode 209(长度最小的子数组) LeetCode 59(螺旋矩阵II) 977:有序数组的平方 LeetCode 977(有序数组的平方) 思路: 方法一:暴力方法 直接原地平方后,直接调用数组排序 方法二:双指针前后遍历,构造结果数组,保证有序 方法一 方法二 209:长度最小的子数组 LeetCo

26.二叉树的最近公共祖先

236.二叉树的最近公共祖先 1、概要 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 说明: 所有节点的值都是唯一的。 p、q 为不同节点且均存在于给定的二叉树中。 首先想的是要是能自底向上

23.验证二叉搜索树

98.验证二叉搜索树 1、概要 中序遍历下,输出的二叉搜索树节点的数值是有序序列。 验证二叉搜索树,就相当于变成了判断一个序列是不是递增的了。 注意二叉搜索树中不能有重复元素 这道题目比较容易陷入两个陷阱: 不能单纯的比较左节点小于中间节点,右节点大于中间节点就完事了。(要比较的是 左子树所有节点小于中间节点,右子树所有节点大于中间节点。) 避免 初始化最小值,取到最左面节点的数值来比较。当前

24.二叉搜索树的最小绝对差

530.二叉搜索树的最小绝对差 1、概要 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 注意是二叉搜索树,二叉搜索树可是有序的。想成在一个有序数组上求最值,求差值 要学会在递归遍历的过程中如何记录前后两个指针,这也是一个小技巧 2、思路 递归 在二叉搜素树中序遍历的过程中,我们就可以直接计算了。需要用一个pre节点记录一下cur节点的前一个节点。 迭代 3

25.二叉搜索树中的众数

501.二叉搜索树中的众数 1、概要 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 如果不是二叉搜索树 如果不是二叉搜索树,最直观的方法一定是把这个树都遍历了,用map统计频率,把频率排个序,最后取前面高频的元素的集合。 是二叉搜索树 既然是搜索树,它中序遍历就是有序的。遍历有序数组的元素出现频率,从头遍历,那么一定是相邻两个元素作比较,然后就把出现频

c#入门基础之面向对象

 C# 中常见的访问权限修饰符: public:最高级别的访问权限修饰符,表示成员对所有代码都可见,无限制地访问。 private:最低级别的访问权限修饰符,表示成员只能在声明它的类内部访问,对于类的外部代码是不可见的。 protected:表示成员对于声明它的类以及该类的派生类可见。它只能在继承体系内部访问。 internal:表示成员对于同一程序集中的所有代码可见。这

🥪MyBatis操作Oracle(实现兼容Oracle和MySQL)

MyBatis操作Oracle(实现兼容Oracle和MySQL) 以Oracle11g来演示,只需要创建序列,不需要创建触发器,通过ORM框架操作来生成主键 MySQL版本是8.x 代码地址:https://gitee.com/zhang-zhixi/springboot-mp-oracle-auto.git 1、分别创建Student表 Oracle: CREATE TABLE "STU

Java后端学习路线经验分享--全网最靠谱

​简介 本文是Java自学的经验分享,5个月即可入职Java后端开发岗位。 我之前是自学的Java,Java零基础,用了5个月的时间,拿到了6家offer:恒生电子(12K)、九翊科技(13K)、良业科技(12K),九慧科技(9K),还有一家忘记名字了。 有的东西不能复制,但学习Java的方法是可以复制的。在本站学习,你将能复制站长的历程,你也可以Java零基础拿到月薪10K左右的offer。 目

1.Java编程基础

1.计算机————脑力劳动工具      2.按程序自动进行信息加工处理的工具      数据——符号化的信息 3.编程                将“China“译成密码,密码规律是:用原来的字母后面第3个字母代替原来的字母。    

软件测试——测试的分类(重点:黑盒测试、白盒测试、单元测试、集成测试、系统测试)

一、 按照测试对象进行划分 1)界面测试 界面是直接和用户进行交互的,界面设计的好坏决定了用户使用软件的直观感受 界面测试(UI 测试)一般包括以下内容: 对比 UI 设计稿,验证系统显示界面的一致性和正确性 验证界面上每个功能的正确性 验证界面排版布局是否合理。字体大小、图片排版、清晰程度等 验证界面控件的功能是否正常。滚动条、按钮、文本框等 对不同分辨率下的界面进行测试 保证页面从大变小(

13分钟聊聊并发包中常用同步组件并手写一个自定义同步组件

前言 上篇文章10分钟从源码级别搞懂AQS(AbstractQueuedSynchronizer)说到JUC并发包中的同步组件大多使用AQS来实现 本篇文章通过AQS自己来实现一个同步组件,并从源码级别聊聊JUC并发包中的常用同步组件 本篇文章需要的前置知识就是AQS,如果不了解AQS的同学可以看上一篇文章哈~ 阅读本篇文章大概需要13分钟 自定义同步组件 为了更容易理解其他同步组件,我们先来使用

测试文档

测试发布  

1.1 Java 简介

   ● Java SE(Java Platform Standard Edition)标准版,是为开发普通桌面和商务应用程序提供的解决方案。JavaSE是三个平台中最核心的部分,JavaEE和JavaME都是从JavaSE的基础上发展而来的,JavaSE平台中包括了Java最核心的类库,如集合、IO、数据库连接以及网络编程等。 ● Java EE(Java Platfor

JDK 代理和 CGLib 有什么区别?

JDK 代理和 CGLib 有什么区别? 动态代理是一种机制,程序通过该机制在运行时动态生成代理对象并调用代理方法。动态代理主要有两种实现机制,一种是基于反射动态代理的JDK,另一种是基于ASM动态代理机制的CGLib实现。现在让我们谈谈两种实现之间的区别以及如何实现它们 JDK 代理和 CGLib 之间的区别 JDK动态代理采用反射机制实现,而CGLib基于ASM机制实现,性能不同 JD

侃侃代码递归的实战

如果我们有一个需求,把一个tree结构的数据的第三级的数据的属性show修改成false,如果children里面的都是false那么父级的show也是false // 测试数据 const list = [{ label: '234234234', show: true, children: [{ label: '123123',

703

class KthLargest { PriorityQueue<Integer> pq; int k; public KthLargest(int k, int[] nums) { this.k = k; pq = new PriorityQueue<Integer>(); for (int x

【JS】实现 MaxQueue

class MaxQueue { constructor() { this.queue = [] this.max = [] } enqueue(el) { this.queue.push(el) while(this.max.length && this.max[this.max.lengt

SpringApplication

SpringApplication是Spring Boot驱动Spring应用上下文的引导类。 SpringApplication的run()方法启动Spring应用,作用为Spring应用创建并初始化Spring上下文。 SpringApplication可以自定义Banner和自定义SpringApplication实例1。 @SpringBootApplication //使用这个注解必须

<<  <  693  694  695  696  697  698  699  700  701  702  703  >  >>