自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Thread.currentThread().getName() 和 this.getName()

相当于只是创建是对象,但是在创建对象的时候,同时有了this.getName()的值 ,应该是因为 CountOperate 是Thread的子类。在这段代码中,注释了countOperate.start() ,这时候只剩下了。可以从这张图片看出刚进入构造函数便有了name。可以参考一下这篇文章,

2023-08-03 12:55:54 132

原创 mybatis在问卷系统中的新用法

我想将这个修改为有project_name时按project_name查。如果两个输入参数都为空,只执行。

2023-06-19 15:38:41 109

原创 axios的疑惑记录

其中,axios.get 函数表示使用 GET 方法发送请求,/api/v1/pri/user/12345 则是请求的目标 URL,而 {ID: 12345} 则是该请求的参数对象,其中键名 ID 表示参数名,12345 表示参数的值。与之不同的是,params 参数是使用 GET 请求的查询参数,即把参数名和参数值拼接在 URL 后面,以?因此,在使用 POST 请求提交表单或 JSON 数据时,建议使用 data 参数作为请求体,而不是 params 参数作为 URL 查询参数。

2023-06-05 00:46:18 115

原创 全局注册和局部注册

可以通过将这个组件引入到父组件中,并在模板中使用 标签来自动生成一个包含手机号码输入框和密码输入框的表单。同时,由于该组件自带了表单项的校验规则和提示信息,因此在父组件中只需要监听表单提交事件并获取表单数据,就可以轻松实现表单的校验和提交功能。在 components 属性中,以键值对的形式注册了 FormMaker 组件,并指定了在模板中的标签名为。全局注册:通过在全局范围内注册组件,使得该组件可以在整个应用中被引用。然后在父组件中就可以使用 标签来引入该组件了。

2023-06-04 23:03:52 89

原创 [email protected] [email protected] 区别

简单来说,[email protected] 实现了 Webpack 的核心功能,而 [email protected] 提供了命令行入口,可以方便地调用 [email protected] 来完成各种操作。则是 Webpack 提供的命令行工具,它包含了一些常用的命令和选项,可以方便地对 Webpack 项目进行管理和操作,例如启动开发服务器、打包项目代码、查看构建配置等等。

2023-06-02 11:18:30 264

原创 [email protected] 与@vue/[email protected]的区别

CLI 版本:[email protected] 是一个旧版本的 CLI 工具,而 @vue/[email protected] 则是目前最新的 CLI 工具,它提供了更多功能和优化,并且可以更好地与其他 Vue 生态系统工具进行交互。构建工具:[email protected] 使用的是 Webpack 1.x 作为项目构建工具,而 @vue/[email protected] 使用的是 Webpack 5.x。Vue 版本:[email protected] 默认集成的是 Vue 2.x 版本,而 @vue/[email protected] 默认集成的是 Vue。

2023-06-02 11:14:22 1974

原创 v-bind 与 v-model 与{{}}的区别

v-bind 主要用于属性绑定,比方你的class属.性,style属性,value属性,href属性等等,只要是属性,就可以用v-bind指令进行绑定。2.在data值大小不改变的前提下,可以进行一般的 算术运算、比较运算、逻辑运算、三元操作符等运算使用,也可以通过常量进行数据体现。1.在插值表达式中,只能设置简单的javascript表达式,不能设置复杂的表达式(例如for循环)。4.{{}}花括号与变量之间为了美观,通常表达式左右各一个空格。v-model指令来实现表单元素和数据的双向绑定。

2023-06-02 09:37:45 104

原创 序列化 与 反序列化

Java序列化API提供了一种基本的序列化和反序列化方式,但是它有一些局限性,比如无法跨平台、性能较差等。在序列化过程中,Java对象的状态信息(即对象的属性值)被转换为字节流,可以被保存到磁盘或通过网络传输。在反序列化过程中,字节流被解码并还原为原始的Java对象,使得Java对象的状态信息可以被重新恢复。在Java中,序列化和反序列化是通过Java序列化API或第三方库(如Jackson、Gson等)实现的。在使用Java序列化API进行序列化和反序列化时,需要将要序列化的Java类实现。

2023-05-31 19:01:32 27

原创 JWT 在应用中一些理解

客户端在后续的请求中可以携带这个 JWT 字符串作为身份认证凭证,服务器接收到请求后可以解密 JWT 字符串并验证其完整性和真实性,从而确定请求的真实发起者和权限等级,进而执行相应的业务逻辑。具体来说,当服务器生成 JWT 时,它会使用一个密钥对 JWT 的头部和载荷进行签名,生成一段不可逆转的字符串。在签名验证过程中,接收方使用同样的算法对原始数据和签名进行计算,生成一个新的签名,并将这个新的签名与原始签名进行比较。因此,密钥的作用是确保 JWT 的完整性和真实性,防止 JWT 被篡改或伪造。

2023-05-30 16:16:05 188

原创 json-path

在上面的代码中,$.friends表示JSON根元素中的friends字段,[?(@.age > 30)]表示过滤条件,用于过滤年龄大于30的朋友,name表示要获取的字段名。这里的JsonPath.read()方法返回一个字符串列表,包含匹配条件的所有朋友的名字。在上面的代码中,我们使用$.name路径来获取name字段的值,该路径表示JSON根元素中的name字段。除了读取元素值之外,json-path库还支持一些其他的操作,如过滤、映射、排序等。我们可以使用json-path库来获取其中的某些元素。

2023-05-24 20:51:18 281

原创 @PathVariable

由于我们使用了@PathVariable注解,Spring会自动将URL路径中的{id}占位符替换为实际的参数值,并将其绑定到方法参数id上。需要注意的是,@PathVariable注解通常与@GetMapping、@PutMapping或@DeleteMapping注解一起使用,以处理RESTful API中的GET、PUT或DELETE请求。在使用@PathVariable注解时,Spring会自动将URL路径中的占位符替换为实际的参数值,并将其绑定到方法参数上。

2023-05-24 19:50:11 352

原创 时 间 戳

*时间戳(Timestamp)**通常是指从某个固定的时间点(例如Unix纪元,即1970年1月1日00:00:00 UTC)开始计算的时间值,表示当前时间与该固定时间点之间的时间间隔(单位为秒或毫秒)。在计算机系统中,时间戳通常是一个整数或长整数,可以用于表示日期和时间,以及计算时间间隔、排序等操作。需要注意的是,在使用时间戳时,需要注意时区的问题。时间戳是一个纯数字,不包含时区信息,因此在进行日期和时间的转换时,需要考虑时区的影响,以避免出现偏差。

2023-05-22 21:16:16 132

原创 @Bean的一些理解

在这个例子中,我们定义了两个名为devDataSource和prodDataSource的Bean,它们都返回一个DataSource对象,但是根据@Profile注解的不同,它们返回的DataSource对象也不同。然后,我们定义了一个名为SomeBeanConfig的@Configuration注解的类,并使用@Import注解将SomeBean类导入到该配置类中,从而将SomeBean类添加到Spring的IOC容器中并交给Spring进行管理。

2023-05-09 13:28:39 82

原创 实现Bean之间的依赖关系三种常用方法

这样,在创建UserService Bean的时候,Spring容器会自动注入一个UserRepository Bean,并将其赋值给userRepository属性。这样,在创建UserService Bean的时候,Spring容器会自动注入一个UserRepository Bean,并将其传递给UserService的构造函数。例如,假设我们有一个名为UserService的Bean,它需要依赖于另一个名为UserRepository的Bean来实现持久化操作。

2023-05-09 12:28:49 660

原创 Spring中/ ,/* ,/**的区别

user/**:匹配/user/下的多级子路径,如/user/123/456。/*:匹配URL路径中的任意字符,但不包括子路径,即只匹配一级路径。/user/*:匹配/user/下的一级子路径,如/user/123。/:匹配URL路径的根路径,即匹配完整的URL路径,不包括子路径。/**:匹配URL路径中的任意字符,包括子路径,即匹配多级路径。/user:匹配/user路径。

2023-05-09 12:11:03 607

原创 热加载与热部署

类似地,也由后台线程定时检测Web应用变化,但它会重新加载整个Web应用。这会清空Session,比热加载更干净、彻底,一般用在生产环境。若有变化,就重新加载类,在这个过程中不会清空Session ,一般用在开发环境。实现方式是Web容器启动一个后台线程,定期检测类文件变化。

2023-05-09 09:45:06 33

原创 read与readline

读取的字节数是最多等于b的长度.如果没有可用的字节,因为已经到达流的末尾, -1返回的值 ,如果b.length==0,则返回0.从(来源)输入流中(读取的内容)读取数据的下一个字节到(去处)java程序内部中,返回值为0到255的int类型的值,返回值为字符的ASCII值(如a就返回97,n就返回110).如果没有可用的字节,因为已经到达流的末尾, -1返回的值,运行一次只读一个字节,所以经常与while((len = inputstream.read())!= -1)一起使用.

2023-05-02 13:18:20 47

原创 \r 与 \n

\r’ 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;‘\n’ 换行,换到当前位置的下一行,而不会回到行首;

2023-05-02 13:00:51 32

原创 FileWriter和BufferedWriter的真正区别

这个是我转发别人的文章,我觉得写得特别好!

2023-04-22 11:09:15 166

原创 load-on-startup标签的作用

当值为0或者大于0时,代表容器启动时加载该servlet。正数的值越小,启动时加载该servlet的优先级越高。如果为负数,则容器启动时不会加载该servlet,只有该servlet被选择时才会加载。

2023-04-22 10:39:43 73

原创 如何获取一个Class类,以及怎么用

接着,使用getMethod()方法获取printMessage方法的Method对象,该方法有一个String类型的参数。",该方法将打印输出 "Hello, World!通过Class对象获取方法的Method对象,可以使用getMethod()方法或者getDeclaredMethod()方法,前者只能获取公共方法,后者可以获取所有方法,包括私有方法;通过Method对象调用方法,可以使用invoke()方法,该方法可以传入方法所在对象和方法参数,然后执行该方法并返回结果。

2023-04-15 13:55:16 102

原创 匿名内部类如何访问非final类型的变量

在这个示例中,我们声明了一个长度为1的数组count,然后在匿名内部类中访问它来达到修改变量的效果。需要注意的是,这种做法虽然可以实现在匿名内部类中访问非final类型的局部变量,但是它会带来线程安全的问题,因为多个线程同时访问同一个变量。如果需要在匿名内部类中访问非final类型的局部变量,可以将它声明为一个长度为1的数组,然后修改数组中的元素来达到修改变量的效果。匿名内部类本身是没有名字的,它所访问的变量必须是不可变的,这样才能保证在匿名内部类的生命周期内,变量的值不会发生改变。

2023-04-13 16:51:11 68

原创 匿名内部类的几种使用形式

在这个示例中,通过匿名内部类创建了一个实现了MyInterface接口的类对象,并将该对象作为参数传递给了doSomething()方法。在这个示例中,通过匿名内部类创建了一个Runnable接口的实现类对象,并将该对象作为参数传递给了Thread类的构造方法。在这个示例中,通过匿名内部类创建了两个实现了MyInterface接口的类对象,并将它们作为数组的元素。在这个示例中,通过匿名内部类创建了一个实现了MyInterface接口的类对象,该类对象只使用一次。5. 作为数组元素。

2023-04-13 16:49:08 555

原创 内部接口为什么必须是static

在Java中,内部接口(也称为嵌套接口)必须是静态的,因为内部接口被嵌套在另一个类或接口中,并且不依赖于外部类的实例。如果内部接口不是静态的,那么在创建内部接口对象之前,必须先创建外部类对象,这样会增加代码的复杂性和内存的开销。也就是说,我们可以通过外部类名来访问内部接口,而不需要先创建外部类的对象。需要注意的是,静态内部接口不能访问外部类的非静态成员,因为静态内部接口是与外部类的类级别相关联的,而非静态成员是与外部类的对象级别相关联的。如果需要访问外部类的非静态成员,可以通过创建外部类的对象来访问。

2023-04-13 16:43:04 323 1

原创 怎么理解JAVA中的多态性

2022-05-11 17:33:11 105

原创 抽象函数与抽象类

2022-05-11 14:35:35 38

原创 Map中放key与value的理解

2022-05-03 12:12:58 275

空空如也

空空如也

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

TA关注的人

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