自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot的Bean详解

之后,我们在我们Lib里面能随便打开一个spring的配置能看到,spring.factories 和 spring/org.xxxxxxx.imports , 有的版本只有一个,有的2个都有,spring版本问题。而且,他们的第三方包里都会有一个自定义注解,里面把自己的Bean都给你声明好了,每次启动项加载的时候,都会找到这些写好的第三方配置类,所以,我们才不需要自己进行配置。合并结果:所有同名包下的组件都会被收集并注册到Spring容器中,不会有包路径冲突,扫描结果是多个同名包的并集。

2025-05-05 18:25:46 304

原创 SpringBoot基础知识

介绍:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。使用了过滤器之后,要想访问web服务器上的资源,必须先经过滤器,过滤器处理完毕之后,才可以访问对应的资源。而我们所学的是JSON Web Token,简单来讲,jwt就是将原始的json数据格式进行了安全的封装,这样就可以直接基于jwt在通信双方安全的进行信息传输了。

2025-05-04 13:12:46 1667

原创 关于线程阻塞的一些问题

阻塞会一直等待,直到阻塞位置的代码执行完毕才会向下执行。解决这种问题,也可以使用锁。为了保证代码执行的顺序。下面这段代码会出现线程1执行完获取控制台信息后,线程2也会获取,而且线程1不会继续向下执行。

2025-04-16 08:00:00 107

原创 关于JAVA的隐式不可变

其核心思想是:如果一个局部变量在初始化后(即使没有显式声明为 final),编译器会将其视为不可变的,从而允许在匿名内部类、Lambda 表达式等场景中直接使用。通过 final 关键字明确声明变量不可修改。变量没有显式声明为 final,但在初始化后从未被修改。Java 要求匿名内部类或 Lambda 表达式访问的外部局部变量必须是 final 或 Effectively Final,原因如下:2.为了线程安全。

2025-04-15 04:45:00 276

原创 为什么匿名内部类里不能使用非静态变量,但数组却不受限

内部类复制的是数组的 引用值(地址)。只要引用不变(即 arr 始终指向同一个数组),数组内容的修改是允许的,因为所有副本的引用都指向同一内存区域。一句话来说就是匿名内部类里变量会被复制一份,还会和原数组比对。而数组记录的是个地址,只要不修改这个地址,就不会产生影响。内部类复制的是变量的 值(如 int 的数值或对象的引用)。若允许修改原始变量,会导致副本与原始值不一致。解释:基本类型或对象引用。

2025-04-14 14:15:00 75

原创 JAVA中使用二维数组报错从匿名内部类引用的局部变量必须是最终变量或实际上的最终变量,也就是全局变量。

在 keyReleased键盘响应方法中,匿名内部类 KeyListener 引用了局部变量 data 和 xy,而这两个。变量在外部方法中被修改(例如 data = kauisu(data)),导致它们不再是“实际上的最终变量”,触。可能独立于外部方法的生命周期存在,Java 需要确保局部变量的一致性。

2025-04-14 09:45:00 200

原创 三,:一台电脑上存在2个JAVA的JDK及以上的JDK实现自由切换

JAVA8_HOME D:\java\jdk.1.8.0_221 (写自己的java8的安装目录)这条变量的值中的 %JAVA8_HOME% 改成 %JAVA11_HOME% 就可完成切换。JAVA11_HOME D:\java\jdk-11 (写自己的java11的安装目录)JAVA_HOME %JAVA8_HOME% (这里这样写是使用JAVA8)JAVA_HOME %JAVA8_HOME% (这里这样写是使用JAVA8)如果是安装版,要删除2个文件夹,如果是解压版,可以跳过这个步骤。

2025-04-13 16:00:00 132

原创 HTML标签里src的button属性按钮无法触发的表单提交的问题

2025-04-13 13:30:00 148

原创 关于JAVA线程与for循环

for循环的底层逻辑是先自增后判断,所以会导致线程多执行一次,所以线程如果在循环处判断,还是推荐使用while循环,来避免造成类似的问题。

2025-04-13 09:51:01 369

原创 关于JAVA集合泛型里不能放另一个集合的名字

解释:泛型里记录的是类和引用数据类型。如果放的是一个对象,会导致里面存的是一个地址,无法被转换。泛型是通过类型擦除实现的,泛型信息在编译后会被擦除,替换为Object或边界类型。类型擦除:运行时无法保留泛型信息,需依赖编译时类型检查。

2025-04-13 09:38:33 105

原创 安装xampp发现本地数据库或者原来的数据库无法使用的问题

二,打开“注册表”,找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL 路径, 查看ImagePath的值,应该是索引到xampp的内置数据库到mysqld上。点mysql1,修改ImagePath的值,改成你本地数据库的到bin文件的位置在后面加上 /mysqld mysql1 就完事了(mysql1指你新创建的的服务名)。注:(这里的mysql1指的是你新建的服务的名字,不要用中文和符号。四,重现打开"注册表",继续找到。

2025-04-13 09:16:06 189

原创 关于Android线程的一些问题

mHander是Activity的成员变量,在Activity实例化的时候也跟着初始化了,MainActivity继承自Activity,这里mHandler使用的looper自然是main looper了。有的时候Listview没数据,或是数据不更新,注意一下适配绑定那,是不是写串了,或者在点击方法里把适配那套粘过去就好了,要记得适配之前要使用clear清除所有数组数据。用法上,如果有复杂的线程操作需求,那就选择继承Thread,如果只是简单的执行一个任务,那就实现runnable。

2023-04-02 17:07:05 200

原创 关于android的PagerAdapter的适配器理解与使用

这个适配器的两个方法需要自己写,分别是destroyItem和instantiateItem两个方法,第一个是加载的图片超过三个,自动清除前面的图片。关于他的点击事件的情况,先注册控件,使用控件 = 数组.get().find.....的方法get的位置是从0开始算的,点击是最原始的点击方法。destroyItem方法用来删除多余的控件,因为这个适配器只能存储3个视图,多余的会清除,数据存放.removeView(当前位置的数据)。之后new出适配器,控件绑定适配器。例子:用它来做导航页。

2023-04-02 16:58:06 1574

原创 关于android的BaseAdapter自定义适配器的理解与使用

这个类里需要三个参数,一是数据的列表,list<封装好的列表需要的数据>。二是int类型参数,用来加载列表布局名称的,其三是Context,用来给LayoutInFlate的inflate方法里的root参数默认为空。其次,我们需要绑定控件,这个简单,使用LayoutInFlater的.from(context)和.inflate(之前用来加载数据名称的int类型数据,null);第二个参数,convertView,是Spinner,listview,gridview显示时用的窗体。

2023-04-02 16:52:58 575

原创 android的FrameLayout的快速使用

首先在布局文件里创建一个FrameLayout,写好宽高,给个名字。然后来到class里注册实例化控件。要是看不懂,就去找android的FrameLayout基础,里面会介绍到这几个方法。要是想只显示一个或者首显示冒一个就这样。//Feagment里放的是碎片名字。

2023-04-02 16:48:33 312

原创 OkHttp3简单快速的上手

看不懂要回去看看json数据解析,数组和集合的章节,最后随便找一下okhttp的基础教程就没问题了。//存储数据,List<String> list = new ArrayList();//Gsonjx是我自己写的数据解析类,里面是网络获取的数组的里面的数据类型与名称。Log.e("输出:",":"+string);Log.e("输出:",":"+string);//不用管这,这是个轻量化的数据存储。//装进RequestBody。//从页面上获取到的数据。.url("网址").url("地址")

2023-04-02 16:38:11 140

原创 关于Okhttp3请求的快速封装(面向新手)

最后封装的是请求头,值得一提的两点是,第一,OkHttpClient写成全局后,在各个子方法里要new出来,不然读不到。其二是关于请求头与Callback方法的衔接,在接口的参数里,把封好的Callback放进去,在封装的请求头里,OkHttpClient回调之后,call.enqueue()的括号里直接把封好的Callback放进去就行。首先创建一个接口,接口里写着get,post,put请求,带令牌与不带令牌的分开,共五个。最后,在调用之时,需要重写Callback的成功方法。//post无令牌请求。

2023-04-02 16:26:40 659

原创 android studio底部导航栏 使用Tabhost布局方法实现底部导航栏,此方法无需引入其他东西

使用activity.xml的布局格式,虽然使用了FrameLayout。但,是必要的。因为切换还是以页面形式展现,虽然麻烦,但写完不会像frameLayout那样在之后的编码上对初学者不友好

2022-09-14 11:11:57 2976

空空如也

空空如也

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

TA关注的人

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