自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 一步步实现Java注解和注解处理器

分析: 如果是平时的话,我可能直接用一个单例类,在需要保存的时候直接调用方法put到map就好了,但是在组件化的场景下,涉及到多人开发,甚至很多个模块,这种方法耦合太大了,而且每次都是调用函数,每个人也不太清楚自己的调用时机,导致在get时这个方法还没有被put进去.....(扯远了)技术三 实现注解处理器+ 反射,在编译时将所注解的代码自定添加到map中,这一步是最关键的,上面仅仅时定义,也就是相当于协议,但是最重要的实现还没有,也就是在编译时对注解的类做处理。下面说一说什么时注解处理器(APT)

2023-07-25 21:16:13 659

转载 Tomcat9.0.43源码maven构建及相关问题解决

Tomcat9.0.43源码maven构建及相关问题解决_tomcat 源码 maven_予早的博客-CSDN博客

2023-10-16 19:56:44 100

原创 html-webpack-plugin和ScriptExtHtmlWebpackPlugin这两个插件有什么区别

它允许您将JS文件分为不同的块(chunk)并在HTML文件中按需引入,以加快页面的加载速度。它允许您指定哪些JS文件是内联的,哪些是外部引用的。html-webpack-plugin是一个用于生成HTML文件的插件,它可以将打包后的文件自动注入到HTML模板中,并生成一个新的HTML文件。它可以通过配置生成多个HTML文件,并且可以配置生成的文件的模板和输出路径等。html-webpack-plugin用于生成HTML文件,而ScriptExtHtmlWebpackPlugin则用于管理JS文件的加载。

2023-09-17 22:16:53 1727

转载 javaScript 模块化

我终于搞懂JS的模块化了! - 掘金

2023-09-16 22:26:30 90

原创 正则表达式学习和高级用法

以下所有的验证都在。

2023-09-12 22:48:43 353

原创 Java 反射所有的基本操作总结(持续更新)

获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。getConstructors()和getDeclaredConstructors()、构造函数。:获得某个类的所有的公共(public)的字段,包括父类中的字段。getMethods()和getDeclaredMethods()运行结果:对照所有的方法都有基本上涵盖了所有。

2023-07-30 00:33:25 39

原创 TypeElement (类)

getEnclosingElement() // 获取包裹的类,通常用于属性在哪个类中。TypeMirror asType() 转为类可用于类关系判断。// 全类名为例 com.xxx.xxx.MyClass。ElementKind getKind() 判断类型。专用于类的Element,继承自Element。

2023-07-29 00:11:43 77

原创 【无标题】

gradle升级之后,有了新的依赖方式,下面我来介绍一下他们的使用先看看之前的再看看现在的。

2023-07-27 16:15:39 31

原创 Android 中自定义属性declare-styleable的记录

这个属性定义的是CoordinatorLayout_Layout,后来发现这里Android会将带XXX_Layout的属性范围放在XXXView的子View中,将子View和父View解耦,同时满足父子View间的联系。在学习CoordinatorLayout布局中有一个属性是behave,这个属性很神奇,他的作用对象不是CoordinatorLayout本身而是其子View,仔细看源码这个属性定义的。CoordinatorLayout中也不是NestScrollView,而是一个单独的定义。

2023-07-15 18:12:34 120

原创 Kotlin扩展函数作为参数的含义

在老版本 Java 中,传递代码块需要使用匿名内部类实现,而使用 lambda 表达式甚至连函数声明都不需要,可以直接传递代码块作为函数值。扩展函数或扩展属性本质上是定义在类外部的静态方法,因此扩展不可能打破类的封装性而去调用 private 或 protected 成员;kotlin中的扩展函数中什么情况下用this和it,区别是什么?当 lambda 表达式只有一个参数,可以用。kotlin中lambda表达式的语法糖。kotlin中的扩展函数是什么?关键字来引用唯一的实参。

2023-06-21 16:36:34 86

原创 将 alpha分支代码同步到develop git基本操作

将 alpha分支代码同步到develop

2022-08-22 20:12:13 142 1

转载 fragment可见性判断

ViewPager中Fragment左右切换时,是不会调用onResume()和onPause()方法的。这种情况是最简单的,因为此时的fragment的生命周期是和activity的生命周期一致的,当打开另外一个activity的时候,只要监听Fragment的onResume和onPause方法就能够判断其显隐(至于这两个方法什么意思就不多说了,不懂的自己去看activity和fragment的生命周期)...

2022-07-27 01:22:38 884

原创 SharedPreferences基本使用--看完你就会用了

不同于文件的存储方式,SharedPreferences是使用键值对的方式来存储数据的。也就是说,当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来。而且SharedPreferences还支持多种不同的数据类型存储,如果存储的数据类型是整型,那么读取出来的数据也是整型的;如果存储的数据是一个字符串,那么读取出来的数据仍然是字符串。01. Context类中的getSharedPreferences()方法此方法接收两...

2022-05-15 00:22:08 2449 1

原创 Android Context跳转Activity

跳转Activity的几种方法1. 在Acitivity中跳转Intent intent=new Intent(本类,将要跳转的类); //Intent intent=new Intent(MainActivity.this,JumpToActivity.class);startActivity(intent);Intent intent2=new Intent();intent2.setClass(本类,将要跳转的类); // intent2.setClass(MainActivity

2022-05-14 16:35:00 650

原创 git rebase 与git merge 的总结

【git】git 各种区别记录|pull和--rebase| reset和checkout_bandaoyu的博客-CSDN博客_git pull rebase

2022-05-07 10:32:03 52

原创 GsonFromatPlus设置取消注解

2022-02-07 14:23:31 454

原创 SpringMVC 获取 请求的参数

1 url路径url地址/user/1中的1就是要获得的请求参数,在SpringMVC中可以使用占位符进行参数绑定。地址/user/1可以写成 /user/{id} ,占位符{id}对应的就是1的值。在业务方法中我们可以使用@PathVariable注解进行占位符的匹配获取工作。http://localhost:8080/itheima_springmvc1/quick19/zhangsan@RequestMapping("/quick19/{name}")@ResponseBod..

2022-02-04 23:19:46 621

原创 @RequestParam和@PathVariable

@RequestMapping注解中用{ }来表明它的变量部分,例如:@RequestMapping(value="/user/{username}")@RequestMapping(value="/user/{username}") public String userProfile(@PathVariable(value="username") String username) { return "user"+username; }//简写@Reque...

2022-02-04 22:31:40 130

原创 解决 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoader

出现这个问题的原因有可能的其中一点就是spring的jar包没有被加载,有的时候没有拷spring的jar包会出现这个错误,但是当你拷了以后这个错误并没有消失的时候就说明jar包没有被加载,切记spring的jar包一定要放在工程的lib下这样才能避免这个错误的发生。...

2022-02-02 23:21:55 583

原创 修改MySQL 数据库 密码

mysqladmin -u root -p password mypasswd //mypasswd为新密码//输入后提示输入原来的密码 即可修改成功

2022-02-02 15:49:34 637

原创 【无标题】

2021-12-07 16:34:53 74

原创 RTSP协议

RTSP、RTMP、HLS都可以做直播和点播,它们是三种不同的应用层协议RTSP:实时流协议(RTSP,Real-time Streaming Protocol)是一种用于控制声音或图像的流媒体议,并且允许控制多条流,但RTSP连接并没有被绑定传输层的连接(如RTP),服务器甚至可以选择TCP或者UDP来传输流内容。因此比较可以容忍网络延迟,是一种基于文本的多媒体播放控制协议。RTSP定义流格式,流数据可经由RTP传输;所以RTSP的实时效果非常好,适合视频聊天,视频监控等方向。RTSP的请求主

2021-09-02 14:21:28 134

原创 Java基础

1.类加载过程

2021-08-26 16:25:55 60

原创 进程切换与线程切换的区别

https://blog.csdn.net/dongcheng_2015/article/details/118914113

2021-08-24 11:59:46 170

原创 2021 8.8拼多多笔试第三题解答

第三题输出括号匹配 输入包含 ”( ) L R D “题目以后补充。。。。import java.util.Arrays;import java.util.Scanner;import java.util.Stack;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.nextLi..

2021-08-09 16:59:22 543

原创 Java 函数库Math

1. 取整函数public static long abs(double x):传回 x 的绝对值。X也可int long floatpublic static long rint(double x):传回最接近x的整数值public static long round(double x):传回x的四舍五入值public static long floor(double x):传回不大于x的最大整数值...

2021-07-29 11:46:17 957

原创 关于数组中最大数对和的最小值问题贪心算法的数学证明

https://leetcode-cn.com/problems/minimize-maximum-pair-sum-in-array/ 附上贪心算法的证明Java代码如下class Solution { public int minPairSum(int[] nums) { Arrays.sort(nums); int n = nums.length; int res = 0; for(int...

2021-07-20 21:48:28 121

原创 堆排序 大堆顶和小堆顶以及二叉树的性质

满二叉树一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为k,且结点总数是() -1 ,则它就是满二叉树。如下图所示例子:完全二叉树 完全二叉树的结点数是任意的,从形式上讲它是个缺失的的三角形,但所缺失的部分一定是右下角某个连续的部分,最后那一行可能不是完整的,对于k层的完全二叉树,结点数的范围排序过程参考:https://www.jianshu.com/p/e3cd6b9cde81//htt...

2021-07-13 16:46:32 345

原创 Java Map的类型

TreeMap继承自SortedMap实现Map的可排序,TreeMap的实现是红黑树算法的实现。Java 中TreeMap是如何通过put、deleteEntry两个来实现红黑树增加、删除节点的。TreeMap基本操作public class TreeMapTest { public static void main(String[] agrs){ //创建TreeMap对象: TreeMap<String,Integer> treeMa...

2021-07-11 11:43:29 237

原创 Leecode中关于子数组滑窗问题

和可被 K 整除的子数组此题使用有同余定理,但是需要对负数取模换算,详见:https://blog.csdn.net/ChenTianyu666/article/details/106345341Java中 %为取余(rem),Math.floorMod()为取模(mod)Leetcode 523,560,974,525,1124,528,497,1248,930 以及 区域和检索系列的问题...

2021-07-09 16:03:54 66

原创 Java Format格式化函数参数

DecimalFormat DecimalFormat format = new DecimalFormat("00"); //两位输出低于两位补零 DecimalFormat format2 = new DecimalFormat("##"); //两位输出低于两位不补零 double pi = Math.PI; double a = 100.123; System.out.println("00format"+format.format(pi));

2021-07-08 10:57:33 301

原创 集合中的compare方法返回值说明

上述代码中重写了Comparator接口中的compare()方法,有两个参数自定义为o1和o2,默认返回 0,可修改方法体中的内容,返回不同的参数值(整型)o1待比较的参数,o2与其比较的参数,即之前已经排序好的数组或集合的最后一个元素如果返回 1 说明o1 > o2 如 2 1 说明o1 排在o2前面如果返回 0 说明o1 = o2 如cc cc如果返回 -1 说明o1 < o2 如6 7 ArrayList<Integer&...

2021-07-06 21:53:32 5734

原创 二叉树三种遍历顺序

三.二叉树的三种遍历方式1.先序遍历:按照根节点->左子树->右子树的顺序访问二叉树先序遍历:(1)访问根节点;(2)采用先序递归遍历左子树;(3)采用先序递归遍历右子树;(注:每个节点的分支都遵循上述的访问顺序,体现“递归调用”)先序遍历结果:A BDFE CGHI思维过程:(1)先访问根节点A,(2)A分为左右两个子树,因为是递归调用,所以左子树也遵循“先根节点-再左-再右”的顺序,所以访问B节点,(3)然后访问D节点,(4)访问F节点的时候有分支.

2021-07-06 21:40:25 6121

原创 一维数组和二维数组判空java

一维数组1、一维数组首地址是否为空,即array==null;2、一维数组是否为{},即array.length==0的情况;if(array==null||array.lenght==0){ return true; }1、二维数组首地址是否为空,即array==null;2、二维数组是否为{},即array.length==0的情况;3、二维数组是否为{{}},即array.length=1&&array[0].length==0的情况; .

2021-07-01 15:37:34 366

转载 广度优先搜索算法

广度优先搜索算法(Breadth-First-Search)广度优先搜索算法(Breadth-First-Search),是一种图形搜索算法简单的说,BFS是从根节点开始,沿着树(图)的宽度遍历树(图)的节点。如果所有节点均被访问,则算法中止。BFS同样属于盲目搜索。一般用队列数据结构来辅助实现BFS算法。算法步骤:首先将根节点放入队列中。 从队列中取出第一个节点,并检验它是否为目标。如果找到目标,则结束搜寻并回传结果。否则将它所有尚未检验过的直接子节点加入队列中。 若队列为

2021-06-15 13:44:53 248

原创 深度优先搜索Or深度优先遍历详解

学习过程中发现这篇文章写得特别好,立转深度优先搜索(DFS, Depth First Search)是一个针对图和树的遍历算法。早在19世纪就被用于解决迷宫问题。对于下面的树而言,DFS方法首先从根节点1开始,其搜索节点顺序是1,2,3,4,5,6,7,8(假定左分枝和右分枝中优先选择左分枝)。DFS的实现方式相比于BFS应该说大同小异,只是把queue换成了stack而已,stack具有后进先出LIFO(Last Input First Output)的特性,DFS的操作步骤如下:1...

2021-06-15 13:36:06 596 1

转载 cmake学习笔记之add_library、target_link_libraries和link_directories

1.add_library该指令的主要作用就是将指定的源文件生成链接文件,然后添加到工程中去。该指令常用的语法如下:add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [source1] [source2] [...])其中<name>表示库文件的名字,该库文件会根据命令里列出的源文件来创建。而STATIC、SHARED和MODULE的作用是指.

2021-03-18 20:31:49 709

原创 解决Android无法连接R文件的问题

2021-03-18 17:44:00 224

原创 startActivityForResult与onActivityResult

如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,requestCode:请求码 用于标记跳转Activity的情况,当Activity返回时返回特定的requestCode,并且在onActivityResult方法中处理为了得到传回的数据,必须在前...

2021-03-18 11:46:01 324

原创 getIntent方法

/** Return the intent that started this activity. */ public Intent getIntent() { return mIntent; }翻译过来的意思就是 返回启动当前Activity的上一个Activity,比如oneactivity用intent启动twoactivty,并且用putextra方法加入了一些数据,在twoactivity就可以getintent,使用getextra获取额外数据...

2021-03-16 14:59:53 2040

空空如也

空空如也

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

TA关注的人

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