- 博客(23)
- 收藏
- 关注
原创 Java如何判断一个文件是否为真实的MP3文件
因为在MP3文件中是否含有 "TAG" 标识是我们普通人判断MP3文件是否是其他类型文件篡改过来的主要依据, 而MP3有分有 ID3V1 和 ID3V2 通过 org.jaudiotagger.audio.mp3.MP3File;这个类中的 hasID3v2Tag() 和 hasID3v1Tag()方法就能直接得到结果了.今天为了实现Java判断文件是否为真实的MP3文件这个小事搞了几个小时, 在搜索引擎找了好久, 但是没有结果, 最后在外网找到了解决办法.希望这个博客能方便更多的小伙伴!
2023-09-07 23:58:50
896
3
原创 SpringBootMVC使用Redis持久化保存Session
在下载安装配置好redis之后,我们就可以使用redis持久化保存session了.那么我们要怎么做呢?
2023-03-11 09:40:10
528
原创 Spring Boot AOP
全称Aspect Oriented Programming,意思是面向切面编程.他有几个比较重要的组成:连接点,切点,切面,通知等组成.连接点就像很多的高速路口,但是你要下高速路的路口只有一个,那么那些高速路口就都可以叫做连接点,那个你要下的路口就叫做切点.连接点是一个比较抽象的概念,意思是在一段业务代码中,可能会插入切面的某个或者某几个地方.通知是切面功能的实现,规定切面要做什么,在什么时候执行的统一,通知有以下几个。写程序的时候也一样,我们可以把重复的环节统一用一段代码完成就行了.调用这段代码就行了.
2023-02-23 23:12:17
164
原创 Java线程几种常见的状态
在上面的导图中就是Java线程常见的几种状态,但是其中等待的状态有三种,它们的区别主要在于进入等待状态的条件和脱离等待状态的条件.
2022-12-16 19:07:37
146
原创 Spring的Bean的生命周期
因为如果是通过@Autowired注解自动注入的话,要等到所在类的构造方法执行后才会去执行Bean注入.如果不等Bean注入而尝试去初始化的话就会出现上面的。@PreDestroy的作用是在Bean对象销毁之前调用这个注解修饰的方法,从而达到类似Servlet的Destroy()方法的自动销毁效果.其中步骤2和3不能互换先后,因为如果在要初始化的方法里面调用某个Bean方法的话,可能会因为Bean还没赋值而调用不到方法.5. 销毁Bean: 执行各种销毁容器的方法,如@PreDestroy等方法.
2022-11-17 00:58:53
124
原创 Bean的六种作用域
其实真实的情况是Spring的IoC容器有两种作用域模式,一种是IoC默认的singleton(单例作用域),一种是可手动修改的prototype(原型作用域 / 多例作用域),在默认情况下,IoC容器采用singleton,也就是所有人获取到的都是同一个Bean对象,这样效率会高很多.每次对该作用域下的Bean的请求都会创建新的实例,获取Bean(指使用ApplicationContext.getBean()等方法获取)和装配Bean(即使用@Autowired注入),获取到的都是新的对象.
2022-11-16 15:03:06
4325
2
原创 Spring中存取Bean对象的相关注解
这是程序员在设计的时候考虑到搜索的效率而设计的,只有通过注解标识了哪些路径,Spring才认为被标记的路径中有可能有要存到容器中的Bean对象,Spring才会去搜索那些被标记的路径,不必全部路径都搜索一遍,这样就提高了效率,所以如果只标记方法注解,而没有类注解,Spring是不会来搜索这个类的,就更别提搜索它里面的方法了.但是Bean还有个问题,就是不能存储带参数的方法,因为在存储Bean对象的时候,我们没办法手动给它传参,所以无法存储进去,如果要传参可能得配合其他标签让他在存储的时候自动传参.
2022-11-13 21:12:11
515
原创 JVM中的垃圾回收
例如在C语言中,通过malloc在堆(和JVM的堆不太一样)里申请内存之后,就得再通过free手动释放内存空间,或者等到程序结束才会释放,如果忘记释放就可能会导致"内存泄漏"内存泄漏:内存越用越多,可以用的空间越来越少,,空间逐渐用完,程序就会出现问题.所以申请空间之后就得靠人为记得手动释放空间,但是只要涉及到人为,就会有不靠谱的时候,所以JVM就实现了垃圾回收这样的机制(garbage collection)简称GC.
2022-11-06 16:46:54
173
原创 JVM的类加载和双亲委派模型
Java程序在启动的时候要通过JVM去获取.class文件,并提取到内存中,进行后序的一些操作.JVM的类加载大致可以分为三步:1.加载2.连接3.初始化。
2022-11-05 21:11:30
91
原创 内存相关
1.删除数据在计算机磁盘中删除数据其实不是将原本数据清空,而是以某种方式把原本的数据认定为无用的数据,在后面的使用中需要使用此部分空间时,才重新清空再储存上去。
2022-01-06 00:30:33
85
原创 零碎知识
1.C语言中没有字符串类型,但是有字符串,且是以'\0'结尾的。字符串长度不包括'\0',但字符串内容包括'\0'。2.位计算符按位与(&)计算方法:参加运算的两个数,换算为二进制(0、1)后,进行与运算。只有当 相应位上全部为1时取1, 存在0时为0。按位或(|)计算方法:参加运算的两个数,换算为二进制(0、1)后,进行或运算。只要当 相应位上存在1时取1, 全部为0时为0。按位异或(^)计算方法:参加运算的两个数,换算为二进制(0、1)后,进行异或运算。只有当 相应位上的数字不相
2022-01-06 00:09:15
459
原创 梦的开始(补充)
梦的开始自我介绍浅谈目标打算如何学编程最大的梦自我介绍平凡的大一新生前来报道,庆幸入学两周的我没有闲的发慌,也没有歇斯底里的彻底解放状态,冲破高考这道封锁,我也来到了我现在的学校,但我不是对交流很擅长,所以暂时只认识几个同学,不过我认为这也能让我静下心来研究学习更多的东西,希望在以后我也能保持这样平静的心态学习下去。浅谈目标(1)希望在大二能先把C语言学好并再掌握一门计算机语言(C++或java)(2)在大二暑假或之前要争取能够实习,积累经验(3)争取早日能自己完成稍微拿的出手的项目
2021-10-17 02:45:08
86
原创 数据类型,生命周期,作用域
数据类型cgar字符类型short短整型int整型long长整型long long更长的整型float单精度浮点数double双精度浮点数创建的变量的储存空间大小分别为(单位字节)1244848生命周期从一个函数被创建开始到它被返回值时为一个生命周期作用域作用域是变量的作用范围,变量又分为外部变量和内部变量,外部变量的作用域大于内部变量,其范围是整个源程序,而内部变量的作用域只是一个特定的函数。(全局变量的声明符为extern)...
2021-10-17 01:29:37
148
原创 梦的开始
1、了解计算机(1)计算机主要功能是计算(2)计算机语言,是人与计算机交流的语言(3)计算机最小的存储单位是bit(比特位)接着是byte(字节)8bit = 1byteb 1024byte = 1bkb 1024b = 1kbmb 1024kb = 1mbgb 1024mb = 1gbtb 1024gb =
2021-10-16 16:42:08
1548
原创 梦的开始
梦的开始1、了解计算机(1)计算机主要功能是计算(2)计算机语言,是人与计算机交流的语言(3)计算机最小的存储单位是bit(比特位)接着是byte(字节)8bit = 1byteb 1024byte = 1bkb 1024b = 1kbmb 1024kb = 1mbgb 1024mb = 1gbtb 1024gb
2021-10-16 16:20:52
577
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人