- 博客(41)
- 收藏
- 关注
原创 【Java基础】字节码是什么?字节码的好处是什么
咱们通过Javac编译的java代码产生的.class文件,就是字节码,字节码不面向特定的操作系统,而是只面对对应的JVM虚拟机,也就做到了一次编译,处处运行。在一定程度上解决了传统解释型语言编译速度慢的问题,同时又保留了,传统解释性语言可移植的特点。
2023-06-06 10:47:17
195
原创 【Java基础】JDK与JRE的关系
JDK就是Java开发工具包(SDK),包含了JRE,同时还有一些编译工具,比如Javac、Javap、JavaDoc,我常用的就是这三个,JRE呢就是Java的运行时环境,包含了运行java必备的环境和类库,比如JVM就是在Jre内。JDK与JRE的关系是包含关系。JDK包含JREJRE包含JVM。
2023-06-06 09:50:17
734
原创 【Java基础】什么是JVM
咱们可把Java代码编译成字节码文件(.class),JVM呢就就可以吧对应的字节码文件转换成各个操作系统能识别的指令并运行,这也就做到一次编译,处处运行,是JVM的功劳。JVM是一种规范,只要你掌握了JVM规范,你也可以开发属于你自己的JVM,比如JRockit JVM,J9JMV,ZING VM。
2023-06-06 09:35:38
198
原创 【Java基础】Java语言特点都有哪些?
2、Java相比其他语言更加安全,比如:在Java中被标识为private、protected、public、default的变量就会有不同的访问权限,被标识为private的只能在本类访问、被标识为protected的只能同一个或父类和子类访问,public则是在在哪都能访问,而default只能在本包下访问,上述所说的是在没有使用反射的情况下。3、Java支持多线程,想比其他语言,比如C++一开始是不支持多线程的,需要去访问操作系统,而从C++11开始也支持多线程,1、Java支持网络编程。
2023-06-06 08:27:12
153
原创 JVM的生命周期
Java虚拟机的启动是通过引导类加载器(Bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。
2022-12-06 10:08:17
131
原创 JMV中栈的指令集架构和寄存器的指令集架构两者的区别
零地址指令(零地址指令的字节码文件中每8位字节进行对齐),对应的就有一地址指令,二地址指令,三地址指令,在做地址指令去执行的时候,需要有两部分,一部分叫地址,比如地址是1,下一个是他的操作数比如3,想拿3做运算,1是地址,3是操作数,那么一地址指令是有1个地址,1个操作数,二地址指令是有2个地址,所谓零地址就指的是没有地址,只有操作数。
2022-12-06 09:21:36
537
原创 List、Set、SortedSet哪种适合做点赞排行榜?
排序方式:可以做排序,是一个链表,按照添加顺序排序,有Lpush和Rpush两种,如果所有的元素都按Lpush去插入,那元素先插入的在最后,后插入的在最前,就变成按插入顺序倒序排序。跟点赞排行榜不符,但如果采用Rpush,先点赞的在最前面,后点赞的在后面。这样就符合,所以说List支持点赞排序
2022-12-05 09:29:00
326
原创 详解Redis中的缓存更新策略
为什么要有缓存更新策略呢?主要是因为内存数据比较宝贵,当向redis插入过多数据的时候,可能导致缓存数据过多。redis会对部分数据进行更新。
2022-11-24 11:31:01
523
原创 详解Redis缓存及其问题
缓存就是数据交换的缓冲区(称作Cache),是存储数据的临时地方,一般读写性能较高。作为Web应用,用户肯定是通过浏览器向服务器发送请求,这个时候浏览器就能建立缓存,可以缓存页面静态资源(css、Js、image),缓存到本地,无需每次加载,降低网络延迟,提高网络响应速度。
2022-11-19 17:03:52
757
原创 Redis中Hash和String存储对象的区别
在Redis中可以用String存储对象和用Hash存储对象有什么区别呢?开发中用哪一种存储合适呢?
2022-11-18 10:45:34
1111
原创 Java中Git代码提交规范
每当完成一个功能、或修改了一个bug、调整格式、重构模块的时候,都应该commit一次代码,以便git记录这次修改。规定:在提交时不能将不相关的修改一块提交,比如:配置文件,自己在本地做的修改等与这次提交内容无关的文件。
2022-11-18 10:24:21
1507
2
原创 Redis+Session,Cookie+Session,JWT详细解析
本文减少了JWT、Reids+Sesion、Cookie+Session的区别、优缺点、以及运行流程。
2022-11-15 10:43:07
584
原创 MYSQL中Innodb表锁详解
意向锁的并发性:意向锁不会与行锁的共享/排它锁互斥,正因为如此,意向锁并不会影响到多个事务对不同数据行加排它锁时的并发性(不然直接用普通的表锁就行了)注:意向锁是有存储引擎自己的维护的,用户无法手动操作意向锁,在为数据行加共享/排它锁之前,Innodb会先获取该数据行所载数据表对应的意向锁。表级别的S锁、X锁:在对某个表执行增删改查语句的时候,Innodb存储引擎不会为这个表添加表级别的。3、IX、IS是表级锁,不会和行级的X,S锁发生冲突,只会和表级的X,S发生冲突。表锁(Table Lock)
2022-11-14 14:48:03
2368
1
原创 MySQL中什么是读锁和写锁
写锁:也叫排他锁,英文为(X),针对同一份数据,只能有一个事务(事务A)进行操作,其他事务(事务B)阻塞,不能读,也不能写,只有等事务A执行完毕,事务B等其他事务才能进行操作。读锁:针对同一份数据,多个事务的读操作可以同时进行互不影响,相互不阻塞。在Innodb中,读锁和写锁可以加载表上,也可以加在行上(行锁和表锁),读锁也叫共享锁(S),写锁也叫排他锁(X)从数据操作的类型划分,可以分为。
2022-11-14 10:49:57
2641
1
原创 MySQL中乐观锁与悲观锁的优缺点
从对待锁的态度来看锁的话,可以分为乐观锁和悲观锁,从名字中可以看出,两种锁是看待数据并发的思维方式,乐观锁和悲观锁并不是锁,而是。
2022-11-13 10:08:02
828
原创 MySQL之Redo日志刷盘策略超详细解析
针对这种情况,Innodb给出了Innodb_flush_log_at_trx_commit参数。当提交事务的时候,去看Innodb_flush_log_at_trx_commit这个值为2,马上就会把redo log buffer中的数据更新到page cache中,但是刷盘的时间由操作系统决定。另外,innodb存储引擎有一个后台线程,每隔1秒,就会把redo log buffer中的内容写到文件系统缓存(page cache),然后调用刷盘操作。,Innodb引擎会在写入Redo Log的时候。
2022-11-10 10:57:26
2418
3
原创 MySQL中RedoLog的整体流程
做一个更新操作的事务,先把数据(data)读取到内存(databuffer),生成一条重做日志写入Redo Log Buffer,当事务commit时,将redo log buffer中的数据写入redo log file(采用追加方式),之后就是定期将内存中的数据刷入磁盘中。
2022-11-10 08:32:13
292
原创 MYSQL的缓冲池和查询缓存的区别
位置决定效率,提供缓冲池就是为了内存中可以直接访问数据,其次,频率决定优先级顺序,因为缓冲池的大小是有限的,比如磁盘有200G,但是内存只有16G,缓冲池大小只有1G,就无法将所有数据加载到缓冲池里,这时就涉及到优先级排序,会优先对使用频次高的热数据进行加载。在Innodb存储引擎中有一部分数据会放到内存中,缓冲池则占了这部分内存的大部分,他用来存储各种数据的缓存。Innodb缓冲池包括了数据页、索引页、插入缓冲、锁信息、自实行Hash和数据字典信息等。
2022-11-07 17:41:10
514
原创 详解MySQL的三层架构(连接层、服务层、引擎层)
简述:连接层:用户与MYSQL服务进行TCP链接,校验用户身份,用户权限。服务层:用户写的SQL语句会到服务层进行解析,生成语法树。优化SQL语句,生成执行计划。引擎层:真正与磁盘进行交互,对数据进行存储和读取。
2022-11-07 16:36:56
4275
原创 Redis解决缓存击穿及代码实现
缓存击穿问题也被称为热点key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来压力。
2022-10-10 08:31:09
288
原创 SpringMVC接收前端传过来的数组
或者用 /removeAllWorksList?使用Get,参数用List,必须加@RequestParam。前端这样调用:/test?
2022-09-23 16:06:33
132
原创 SpringSecurity的执行流程超详细讲解
如果不是的话做放行,如果是的话做认证,并调用子类的attemptAuthentication方法去查数据库返回UserDetails,把认证成功的数据封装到这个Authentication对象中去,并且做一个session策略的设置,当认证失败,做异常抛出,掉认证失败方法。注意看这里是一个try,catch,有成功就肯定有失败,这步就是如果认证失败,则抛出异常,执行认证失败的方法。默认为false,如果认证成功,则变为true,执行后续操作。方法,得到表单数据,进行身份认证,如果认证成功,返回一个。
2022-09-18 17:32:36
5559
原创 解决Nacos不能对配置文件进行更改等操作
原因是nacos链接数据库的jar包版本太低导致nacos只能读取,不能写入。(博主的Nacos版本是1.1.4+Mysql8.0)现在查看Nacos报错日志发现:Unknown system variable ‘tx_read_only’(点击删除之后,就会跳转到Nacos登录页面,并报401错误。(博主的是8.0.20)此时即可对配置文件进行一系列操作!
2022-09-13 18:31:44
3282
2
原创 GateWay500异常:org.springframework.core.io.buffer.DefaultDataBufferFactory cannot be
原因是:引入的依赖中有spring-web等依赖,排除或者删除掉这些依赖,gateway就能正常运行了!GateWay仅仅需要。可以看到通过网关访问成功!
2022-09-13 09:21:51
1586
原创 EL1008E:属性或字段不能在org.springframework.cache.interceptor.CacheExpressio
是因为 @Cacheable(key=“banner”,value = “IndexList”)不能识别。在key中加入一对单引号,即可解决报错。
2022-09-07 18:02:48
11278
原创 关于com.aliyun:aliyun-sdk-vod-upload报错的统一解决方案
解决com.aliyun:aliyun-sdk-vod-upload报错问题,去官网下载Jar包,然后解压,打开目录,进入CMD窗口,之后运行命令,编译成功,进入IDEA刷新Maven,引入对应的Jar包,即可成功
2022-09-05 16:44:28
1558
原创 Model、ModelMap、Map有什么关系?深入底层剖析
首先为形参赋值的对象是同一个对象,也就是BindingAwareModelMapModel是一个接口操作模型数据最顶层的接口Map就是JDK中的MapModelMap 继承了 LinkedHashMapLinkedHashMap又实现了Map接口!所以ModelMap是Map接口的实现类在来看BindingAwareModelMapBindingAwareModelMap继承于ExtendedModelMap,所以观察ExtendedModelMap源码ExtendedMod...
2022-07-06 09:26:22
2621
原创 JavaWeb面试题梳理 你能答对多少?
http1.0不支持长链接,而1.0-是短链接,每次打开浏览器,都需要建立一个TCP链接host域,http1.1在Request消息头里多了一个host域,并且是必传的,htt1.0没有这个域带宽优化HTTP/1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了。又比如下载大文件时不支持断点续传功能,在发生断连后不得不重新下载完整的包。HTTP/1.1中在请求消息中引入了range头域,它支持只请求资源的某个部分。在响应消息中Content-Range头域声明
2022-07-01 16:08:05
855
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人