- 博客(112)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Java中new一个对象内存区域如何变化?顺序是什么?
如果你对Java内存区域了解的话,那么肯定会知道,创建对象如果是第一次的话,首先肯定是要加载对应的Class(要创建对象的类),加载的类信息就是放在方法区嘛,还有就是创建基本都会有个对象会的引用,这个引用肯定是线程中,在这个线程的栈中分配,还有就是众所周知的创建一个对象内存分配在堆中吧。栈中引用指向对象在堆内存中的地址。基本上就OK了。
2024-05-03 22:08:00
462
原创 分布式事务及CAP和BASE定理
微服务A远程调用微服务B,情况一:A的请求要是都没发出去,这时A明确知道事务应该是回滚的,是正确的。情况二:A的请求发出去了,B也接收到了,也执行完了,返回前出问题了,A发现调用出现问题,那么就要回滚,但是只是把A自己的事务回滚了,B的相关操作却是实实在在执行完了的。单体应用肯定就不存在分布式事务了,只有在分布式微服务系统中,各个服务之间通过RPC调用后,每个微服务有自己和数据库的连接,各个微服务的回滚不影响其他的微服务事务,这几必须使用分布式事务来解决分布式微服务情况下的事务回滚情况。
2023-10-19 16:50:29
246
原创 localhost和127.0.0.1一样吗?
综上所述,它们的主要区别在于:localhost” 是一个主机名,通常映射到回环地址127.0.0.1或 IPv6 地址 “::1”,而127.0.0.1是一个具体的 IPv4 回环地址。通常情况下,它们可以互换使用,但在某些情况下,应用程序可能对其中一个进行特殊处理,因此最好根据具体情况选择使用哪个。在大多数情况下,使用 “localhost” 更易读和方便。
2023-07-28 09:44:08
774
原创 九、阻塞队列
Concurrent 包中, BlockingQueue 很好的解决了多线程中,如何高效安全“传输” 数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。详细介绍 BlockingQueue 家庭中的所有成员,包括他们各自的功能以及常见使用场景。阻塞队列,顾名思义,首先它是一个队列, 通过一个共享的队列,可以使得数据由队列的一端输入,从另外一端输出;当队列是空的,从队列中获取元素的操作将会被阻塞当队列是满的,从队列中添加元素的操作将会被阻塞。
2023-07-19 14:41:54
482
原创 八、读写锁
ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有 writer,读取锁可以由多个 reader 线程同时保持。写入锁是独占的。所有 ReadWriteLock 实现都必须保证 writeLock 操作的内存同步效果也要保持与相关 readLock 的联系。也就是说,成功获取读锁的线程会看到写入锁之前版本所做的所有更新。与互斥锁相比,读-写锁允许对共享数据进行更高级别的并发访问。虽然一次只有一个线程(writer。
2023-07-18 15:02:01
232
原创 七、JUC辅助类
CountDownLatch 类可以设置一个计数器,然后通过 countDown 方法来进行减 1 的操作,使用 await 方法等待计数器不大于 0,然后继续执行 await 方法之后的语句。CountDownLatch 主要有两个方法,当一个或多个线程调用 await 方法时,这些线程会阻塞其它线程调用 countDown 方法会将计数器减 1(调用 countDown 方法的线程不会阻塞)当计数器的值变为 0 时,因 await 方法阻塞的线程会被唤醒,继续执行。
2023-07-17 13:16:40
222
原创 六、Callable接口
在主线程中需要执行比较耗时的操作时,但又不想阻塞主线程时,可以把这些作业交给 Future 对象在后台完成, 当主线程将来需要时,就可以通过 Future对象获得后台作业的计算结果或者执行状态一般 FutureTask 多用于耗时的计算,主线程可以在完成自己的任务后,再去获取结果仅在计算完成时才能检索结果;如果计算尚未完成,则阻塞 get 方法。一旦计算完成,就不能再重新开始或取消计算。get 方法而获取结果只有在计算完成时获取,否则会一直阻塞直到任务转入完成状态,然后会返回结果或者抛出异常。
2023-07-16 15:31:30
207
原创 五、多线程锁
synchronized 实现同步的基础: Java 中的每一个对象都可以作为锁。具体表现为以下 3 种形式。对于普通同步方法,锁是当前实例对象。对于静态同步方法,锁是当前类的 Class 对象。对于同步方法块,锁是 Synchonized 括号里配置的对象当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。
2023-07-15 16:39:46
217
原创 二、Lock接口简介
Lock和有以下几点不同Lock是一个接口,而是 Java 中的关键字,是内置的语言实现。在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而Lock在发生异常时,如果没有主动通过unLock()去释放锁,则很可能造成死锁现象,因此使用Lock时需要在finally块中释放锁;3.Lock可以让等待锁的线程响应中断,而却不行,使用时,等待的线程会一直等待下去,不能够响应中断;通过Lock可以知道有没有成功获取锁,而却无法办到。Lock可以提高多个线程进行读操作的效率。
2023-07-12 11:30:24
336
原创 十二、Docker Compose 介绍与安装
在使用k8s之前,随着容器数量的增加,如何对容器进行管理是一件重要的事情。例如容器之间的启动顺序管理、容器之间的网络调用管理等等。实际的开发环境和生产环境可不只是向我们刚刚开始学习时候就那几个简单的容器,复杂的容器关系也是必须处理好的一个重要任务。docker-compose就是为了解决这样的问题。Docker-Compose是Docker官方的开源项目, 负责实现对Docker容器集群的快速编排。Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。
2023-07-08 20:31:45
8241
3
原创 十一、Docker网络(Docker network)
和我们的虚拟机有些相似,也就是docker的网络相关配置。我们可以使用命令查看docker的网络模式。共有3种:其中bridge模式的网络的最常用的。网络模式简介使用bridge为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,默认为该模式使用指定,默认使用docker0hsot容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口使用指定none。
2023-07-04 09:50:56
3484
原创 十、Docker虚悬镜像
什么是虚悬镜像?虚悬镜像是哪些REGISTRY(仓库名)和TAG(标签)都为的镜像。俗称。这样的镜像没有任何存在的价值,应该删除。欢迎阅读其他Docker文章~
2023-07-04 09:22:33
582
原创 九、DockerFile
本文介绍DockerFile,是什么,怎么用,怎么写。相关的命令一定是没有官网详细的,在了解了是干什么的和基本用法,可以参考官网学习各种参数和其他用法。Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。官网对DockerFile的解释可以理解为:Dockerfile就是一份清单,将我们需要的镜像、需要执行的指令和参数都列好了,然后根据dockerfile去build构建,最后运行!编写Dockerfile文件docker build命令构建镜像。
2023-07-01 09:11:19
234
原创 七、Docker安装MySQL/Tomcat/Redis等
记录了一些常用软件的安装,也会不断增加其他的软件等。安装tomcat是按照常规步骤,平时可以直接run 镜像名,本地没有的话就会去自动拉去相应镜像。其他说明。
2023-06-29 17:19:54
962
原创 六、Docker容器数据卷
坑:容器卷记得加入· whyDocker挂载主机目录访问如果出现cannot open directory .: Permission denied解决办法:在挂载目录后多加一个–privileged=true参数即可。
2023-06-25 21:47:04
977
原创 五、Docker镜像发布到阿里云/私有库
我们可以把自己的镜像文件存放到阿里云,也可以存到自己的私服。个人版只是让我们学习时候知道基本使用,决不能用于商业。过需求或者有¥可以购买企业版使用更多功能。可能在后面私有库内容里面命令都没有说明,将会在后面的容器数据卷中写到。
2023-06-24 08:45:27
1243
原创 四、Docker镜像详情
如果只局限于,需要镜像就去pull一个,那就小了、格局小了!我们也可以自己搞一个镜像,发布一下。以后拉去自己发布的镜像。在一、Docker介绍中,简单的介绍了Docker镜像。接下来将会展开说一说。Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似Java继承于一个Base基础类,自己再按需扩展。新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层。1。
2023-06-21 22:01:04
3195
1
原创 三、Docker命令及基本使用
这些命令可能只是满足日常使用、并不是包含所有命令、若有其他需求可参考官网命令,进一步了解更多。练习着去使用,相比于原理,操作还是相对好理解。
2023-06-20 22:18:39
7326
2
原创 Typora图片左对齐问题
1.css样式研究了一下,css样式肯定是没问题的的,但是谁不想拖个图片就要改一下代写一下吧。<!--在style中float:left;--><img src="vue2+vue3学习笔记.assets/image-20220512121619418.png" alt="image-20220512121619418" style="zoom:25%;float:left" /> 3.简单的方式图片后面加一个空格...
2022-05-12 12:42:58
323
原创 SpringBoot踩坑日常:Whitelabel Error PageThis application has no explicit mapping for /error, so you are
看看你的项目目录MainApplication.class也就是启动类要和Controller同层
2022-04-19 18:53:13
2406
原创 (SSM解析错误)$%7BpageContext.request.contextPath%7D/account/save
ageContext.request.contextPath被解析错了原因是idea中maven的archetype-webapp生成的web工程,默认创建的web版本为2.3,web.xml是这样的:<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >&l
2022-04-18 00:19:40
338
原创 22哈尔滨工程大学计算机(专硕)考研经验
终于又可以回来写一些博客了,考研终于上岸了!目录前言一、初试二、复试总结前言个人情况,双非二本院校,专业成绩排名中上,英语四级在一战考研期间才过的。本科期间参加过一些算法比赛,但最高也就是省赛三等奖。做过几个项目,属于那种愿意动手打代码的类型,技术类型吧,哈哈哈。22考研成绩总分368(政治76,英二63,数二100,专业课129),初始排名95/170(170人进入复试),复试很幸运第2,成绩还挺满意的,最终排名24/128。一、初试 我...
2022-03-31 14:35:16
5053
2
原创 面向对象设计原则?
今天面试了,突然问到了面向对象的设计原则。当场蒙了,怎么也想不起来了。。。惩罚自己写篇博客回忆一下面向对象五大设计原则:1.单一职责原则(Single-Resposibility Principle)"对一个类而言,应该仅有一个引起它变化的原因。"本原则是我们非常熟悉地"高内聚性原则"的引申,但是通过将"职责"极具创意地定义为"变化的原因",使得本原则极具操作性,尽显大师风范。同时,本原则还揭示了内聚性和耦合生,基本途径就是提高内聚性;如果一个类承担的职责过多,那么这些职责就会...
2021-03-16 15:42:44
124
原创 MySQL索引:优化小细节
MySQL索引优化小细节1.当使用索引列进行查询的时候尽量不要使用表达式,把计算放到业务层而不是数据库层2.尽量使用主键查询,而不是其他索引,因为主键查询不会触发回表两种主键:(1)自然主键:和当前业务系统是有关的(2)代理主键(推荐使用):和当前这个表其他信息,在业务上是没啥关系的,比如设置一个uuid3. 使用前缀索引当我们列的值太长的时候,比如url了,或者城市名字等时候,可惜选择属性值的前n个字符进行建立索引,这里涉及到序偶引得选择性,我们可以进行测试,看看选多少.
2021-03-11 21:43:33
212
原创 MySQL索引:组合索引,什么时候使用索引?
组合索引表abc,建立组合索引(a,b,c) 语句 是否使用索引 使用情况 1 where a=1 and b=2 and c=3; 是 a,b,c 2 where a=1 and b=2; 是 a,b 3 where a=1; 是 a 4 where a=1 or b=2; 是(当只有 a,b,c列时,一般实际中不会出现这样的情况) a,b,c 5 where a=1 or ..
2021-03-08 11:17:20
741
转载 MySQL索引:聚簇索引和非聚簇索引
https://blog.youkuaiyun.com/lm1060891265/article/details/81482136
2021-03-08 11:16:14
102
原创 Maven学习笔记_02
Maven学习笔记1.常用命令mvn compile mvn clean mvn test mvn package mvn install mvn deploy2.Maven生命周期清理生命周期(Clean Lifecycle): 构建之前进行一些清理工作。 默认生命周期(Default Lifecycle): compile、test、package、install、deploy 站点生命周期(Site Lifecycle):生成项目报告,站点,发布站点。3.Maven概..
2021-03-07 21:52:40
102
原创 MySQL索引:索引的分类和索引匹配
面试时候遇到的一些相关问题:Q1:发现一些SQL语句比较慢,怎么去创建索引?Q2:在写SQL语句时,有哪些点会造成索引失效?索引分类:1.主键索引当给表创建了主键时,其他数据会按照主键来组织,这就是主键索引2.唯一索引(unique)给一列设置了值是唯一的,不允许有重复值出现3.普通索引(又叫二级索引或者普通索引)除了主键和唯一键创建的索引4.全文索引类似检索,5.6后InnoDB支持,貌似很少用5.组合索引InnoDB中使用了自适应哈希索引,Memory引擎使用..
2021-03-07 21:49:54
291
2
原创 MySQL索引:什么是MRR?
什么是MRR?全称multi-range read,MySQL5.6后新特性有student表id(主键) name age 1 路飞 18 2 索隆 20 我们对id建立索引,然后再对name建立索引。那么当我们执行select * from student where name=?时,由于索引底层数据结构的B+Tree,对name列建立的索引叫做二级索引或者副主索引,这个索引的数据存储的是id(或者唯一列、或者是6字节的row id),如下图.
2021-03-07 16:28:55
1459
关于django-xadmin中加入自己写的JavaScript文件的问题
2021-04-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人