- 博客(25)
- 收藏
- 关注
原创 2023黑马JVM相关面试题
难易程度:☆☆☆出现频率:☆☆☆☆程序计数器:线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。javap -verbose xx.class 打印堆栈大小,局部变量的数量和方法的参数。 java虚拟机对于多线程是通过线程轮流切换并且分配线程执行时间。在任何的一个时间点上,一个处理器只会处理执行一个线程,如果当前被执行的这个线程它所分配的执行时间用完了【挂起】。处理器会切换到另外的一个线程上来进行执行。
2023-05-20 14:38:03
1992
1
原创 2023黑马多线程相关面试题
CAS的全称是: Compare And Swap(比较再交换),它体现的一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性。在JUC( java.util.concurrent )包下实现的很多类都用到了CAS操作AbstractQueuedSynchronizer(AQS框架)AtomicXXX类例子:我们还是基于刚才学习过的JMM内存模型进行说明线程1与线程2都从主内存中获取变量int a = 100,同时放到各个线程的工作内存中。
2023-05-17 23:00:56
783
原创 黑马Redis-1
键值型NoSql其中键值型,是指Redis中存储的数据都是以key.value对的形式存储,而value的形式多种多样,可以是字符串.数值.甚至json:而NoSql则是相对于传统关系型数据库而言,有很大差异的一种数据库。对于存储的数据,没有类似Mysql那么严格的约束,比如唯一性,是否可以为null等等,所以我们把这种松散结构的数据库,称之为NoSQL数据库。存储方式关系型数据库基于磁盘进行存储,会有大量的磁盘IO,对性能有一定影响。
2023-05-09 11:47:04
252
原创 黑马Git教程
现在比较流行的版本管理工具是git ,但是实际上git 是近几年才发展起来的,可能有一些老的项目,还在用一些老的软件,比如svn实际上git 不仅仅支持用户名密码方式的配置,可以有另外一种相对更加安全的配置即ssh 方式配置ssh 方式的底层原理ssh连接底层是RAS加密算法,又称非对称加密,是一种现在公认的最安全的加密方式数学基础好的同学可以研究一下RAS加密算法链接。
2023-05-08 15:22:25
841
原创 2023黑马Java集合相关面试题
数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。我们定义了这么一个数组之后,在内存的表示是这样的:现在假如,我们通过arrar[1],想要获得下标为1这个元素,但是现在栈内存中指向的堆内存数组的首地址,它是如何获取下标为1这个数据的?二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只有左子节点,有的节点只有右子节点。二叉树每个节点的左子树和右子树也分别满足二叉树的定义。
2023-05-07 22:04:12
712
原创 2023黑马消息中间件面试题
如果有这样的需求的话,我们是可以解决的,把消息都存储同一个分区下就行了,有两种方式都可以进行设置,第一个是发送消息时指定分区号,第二个是发送消息时按照相同的业务设置相同的key,因为默认情况下分区也是通过key的hashcode值来选择分区的,hash值如果一样的话,分区肯定也是一样的。如果已经存在这个数据了,就说明消息重复消费了,我们就不需要再消费了。嗯,这个我们还真遇到过,是这样的,我们当时消费者是设置了自动确认机制,当服务还没来得及给MQ确认的时候,服务宕机了,导致服务重启之后,又消费了一次消息。
2023-05-07 17:26:57
346
原创 2023黑马微服务面试题
提供了两种方式:1,创建类实现IRule接口,可以指定负载均衡策略,这个是全局的,对所有的远程调用都起作用2,在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略,只是对配置的这个服务生效远程调用服务雪崩是指一个服务失败,导致整条链路的服务都失败的情形,一般我们在项目解决的话就是两种方案,第一个是服务降级,第二个是服务熔断,如果流量太大的话,可以考虑限流。
2023-05-07 16:15:31
790
原创 2023黑马框架篇面试题
第四,B需要注入A,通过三级缓存中获取ObjectFactory来生成一个A的对象同时存入二级缓存,这个是有两种情况,一个是可能是A的普通对象,另外一个是A的代理对象,都可以让ObjectFactory来生产对应的对象,这也是三级缓存的关键。主要思路是这样的,使用aop中的环绕通知+切点表达式,这个表达式就是要找到要记录日志的方法,然后通过环绕通知的参数获取请求方法的参数,比如类信息、方法信息、注解、请求方式等,获取到这些参数以后,保存到数据库。最浅显的解决办法就是将多态bean的作用由“
2023-05-07 14:22:54
725
1
原创 2023黑马MySQL面试题
*候选人:**嗯,索引在项目中还是比较常见的,它是帮助MySQL高效获取数据的数据结构,主要是用来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,也能降低了CPU的消耗好的~,聚簇索引主要是指数据与索引放到一块,B+树的叶子节点保存了整行数据,有且只有一个,一般情况下主键在作为聚簇索引的非聚簇索引值的是数据与索引分开存储,B+树的叶子节点保存对应的主键,可以有多个,一般我们自己定义的索引都是非聚簇索引。
2023-05-06 23:47:24
872
原创 黑马设计模式-day06
自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟。数据访问层。定义UserDao接口及其子实现类} }业务逻辑层。定义UserService接口及其子实现类} }定义UserController类,使用main方法模拟controller层。
2023-05-05 01:44:37
173
原创 黑马设计模式-day05
又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定。例如在下左图中,有六个同事类对象,假如对象1发生变化,那么将会有4个对象受到影响。如果对象2发生变化,那么将会有5个对象受到影响。
2023-05-05 01:38:24
162
原创 黑马设计模式-day04
运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。
2023-05-05 01:33:57
210
原创 黑马设计模式-day03
由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成,而动态代理代理类则是在Java运行时动态生成。动态代理又有JDK代理和CGLib代理两种。如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。
2023-05-05 01:27:24
265
原创 黑马设计模式-day02
用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。分离了部件的构造(由Builder来负责)和装配(由Director负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配算法的解耦,实现了更好的复用。
2023-05-05 01:09:02
261
原创 黑马程序员设计模式-day01
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。
2023-05-04 21:42:42
412
原创 三更草堂SSM整合
这样在DispatcherServlet启动时,创建完SpringMVC容器后会从servletContext域中获取到Spring容器对象,设置为其父容器,这样子容器就能获取到父容器中的bean了。不能对Controller进行增强,因为切面类会被放入父容器,而我们的Controller是在子容器中的。SpringMVC容器中的Controller需要依赖Service,能从Spring容器中获取到所依赖的Service对象嘛?子容器除了可以使用自己容器中的对象外还可以使用父容器中的对象。
2023-04-15 22:12:46
571
原创 三更草堂Spring5
三更草堂Spring5视频链接:2021最新Spring5框架教程IDEA通俗易懂版-三更录制Spring-011.Spring简介2.IOC控制反转2.1 概念2.2 入门案例①导入依赖②编写配置文件③创建容器从容器中获取对象并测试2.3 Bean的常用属性配置2.3.1 id2.3.2 class2.3.3 scope3.DI依赖注入3.1 set方法注入3.2 有参构造注入3.3 复杂类型属性注入4.Lombok①导入依赖②增加注解5.SPEL6.配置文件6.1 读取properties文件①设置读取
2023-04-15 21:59:15
2317
1
原创 三更草堂Mybatis
三更草堂Mybatis视频链接:2021最新Mybatis框架教程IDEA通俗易懂版Mybatis-011. 框架2.Mybatis介绍3. 快速入门3.9 高效编程3.9.1 配置代码模板3.9.2 Mybatis插件4. 参数获取4.1 一个参数4.1.1 基本参数4.1.2 POJO4.1.3 Map4.2 多个参数4.3 总结5. 核心类5.1 SqlSessionFactory5.2 SqlSession6.Mybatis实现增删改查6.1 新增6.2 删除6.3 修改6.4 根据id查询6.5
2023-04-15 21:53:03
2090
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人