- 博客(151)
- 收藏
- 关注
原创 【Java】有 A、B、C 三个线程,如何保证三个线程同时执行?在并发情况下,如何保证三个线程依次执行?如何保证三个线程有序交错执行?
CountDownLatch相当于体育考试场景:4位考生站在起跑线上等待考官下达口令即可往前冲。Q2:有 A、B、C 三个线程,在并发情况下,如何保证三个线程依次执行?Q3:有 A、B、C 三个线程,如何保证三个线程有序交错执行?Q1:有 A、B、C 三个线程,如何保证三个线程同时执行?
2023-09-14 23:50:04
204
原创 数据结构理论知识
遍历原始二维数组,得到有效数据的个数sum根据sum可以创建稀疏数组sparseArr[sum+1][3] 稀疏数组行不定 列固定3列将二维数组有效数据存储到稀疏数组。
2023-09-07 19:24:25
359
原创 redis面试题二
常见的过期策略惰性删除:当用户去访问key值的时候,它才去验证key值有没有过期,如果过期就删除,没有过期就直接返回(优点:不定期删除:它是定期去删除的一些工作,以保障redis能够高效的运行同时去删掉无效的信息(如下图)redis是采用惰性删除+定期删除的策略进行删除操作的。
2023-08-31 13:09:30
499
原创 python函数
如果函数的参数为数字或者字符串,在函数内部,针对形参使用赋值语句,不会影响调用函数时传递的实参的值。如果函数的参数为列表,集合,字典等类型,函数内部修改了参数的内容,会影响到外部的数据。如果一个函数内部定义了局部变量,但这个函数没有被调用,那么局部变量也不在内存中存在。全局变量从定义变量开始在内存中出现,一直到程序运行完成,和程序一起从内存中消失。局部变量从调用函数的时候开始在内存出现,函数调用完毕,局部变量从内存消失。匿名函数内部只能有一条语句,而且这条语句要有个具体的值返回。lambda注意事项。
2023-08-13 14:20:46
103
原创 SSM项目-博客系统
后端需要将验证码存储 redis, 因为在某一时间内可以生成很多验证码, 而用户输入的正确与否, 需要在后端进行判断, 后端进行判断时, 就得把生成的验证码存储到redis ,而存储 redis 我们可以借着前面生成的 UUID , 把 UUID 作为 key, 验证码作为 value 去存储. 然后再将 key 去传给前端, 前端就可以带着输入的验证码和 key 一起传给后端, 后端就可以拿着 key作为条件从redis找到相应的一个验证码, 然后与前端传过来的即用户输入的验证码,两者相互比较就行了.
2023-08-06 20:00:48
749
原创 selenium-web自动化测试
/ 1.谷歌驱动// 2.允许所有请求// 3.启动需要打开的网页显示上述图片内容后,浏览器就会自动启动,注意仔细观察。// 百度网址搜索杨紫// 1.创建驱动实例,创建会话(打开浏览器)// 2.在浏览器找到百度网址,访问百度首页// 3.找到百度首页输入框元素,并输入关键词杨紫driver.findElement(By.cssSelector("#kw")).sendKeys("杨紫");// 4.找到百度首页的百度一下按钮,并点击一下。
2023-07-31 15:14:00
776
原创 Vue-Router相关理解4
从/home跳转到/about前触发beforeRouteEnter,从/about跳转到/test前触发beforeRouteLeave。第三步:打开npmjs.com网站搜索connect-history-api-fallback。第一步:npm init出现package name:atguigu_test_server。是路由组件所独有的两个钩子,用于捕获路由组件的激活状态具体使用。项目打包npm run build。第二步:npm i express。
2023-07-18 15:38:25
559
原创 模块化+命名空间
2.修改src/store/index.js为了解决不同模块命名冲突的问题,将不同模块的namespaced:true,之后在不同页面中引入getter actions mutations state,需要加上所属的模块名。1.目的:为了让代码更好维护,让多种数据分类更加明确。4.开启命名空间后,组件中读取getters数据。5.开启命名空间后,组件中调用dispatch。3.开启命名空间后,组件中读取state数据。6.开启命名空间后,组件中调用commit。
2023-07-16 18:18:22
119
原创 理解Vuex
3.mapMutations方法:用于帮助生成与mutations对话的方法。2.mapGetters方法:用于帮助映射getters中的数据为计算属性。管理的一个Vue插件,对Vue应用中多个组件的共享状态进行集中式的管理。4.mapActions方法:用于帮助生成与actions对话的方法。1.mapState方法:用于帮助映射State中的数据为计算属性。,也是一种组件间通信的方式,且适用于任意组件间通信。该文件用于创建Vuex中最为核心的store。中创建vm时传入store配置项。
2023-07-16 16:09:26
95
原创 Vue插槽
解构赋值{games}解释:let {games}={'games':[数据]} ,这样直接用games就相当于数据。总结:插槽的使用者往插槽里面塞东西,但是作用域插槽,有一种感觉数据流逆着过去了。
2023-07-12 22:02:43
188
原创 Vue封装的过渡与动画
如果在<transition name="hello"></transition>标签添加name属性,那么css属性名生效就得这样写。,没有name属性就直接。
2023-07-11 15:07:17
142
原创 Todo-List案例版本四
a.接收数据:A组件想接收数据,则在A组件中给$bus绑定自定义事件,事件的回调留在A组件自身。b.提供数据:this.$bus.$emit('xxx',data)
2023-07-10 14:03:26
405
原创 使用Vue脚手架2
查看版本npm view webpack versions。时,这些选项将以恰当的方式进行“合并”,在发生冲突时以。注意:当props中与当前组件配置同名时,2.同名生命周期函数将合并为一个数组,props中的配置优先级高于当前组件。将在自身生命周期函数。
2023-07-06 16:13:56
459
原创 使用Vue脚手架
因为vue.runtime.xxx.js没有模板解析器,所以不能使用template配置项,需要使用render函数接收到的createElement函数去指定具体内容。这里引用的vue是vue.runtime.esm.js,不是完整版的,所以不能渲染template配置项,需要使用 render 配合,(2).vue.runtime.xxx.js是运行版的Vue,只包含:核心功能;使用vue.runtime.xxx.js好处:就能使得不用引用完整版的vue,省空间。可以查看到Vue脚手架的默认配置。
2023-07-05 21:56:10
1006
原创 Gateway网关
因此Alibaba在2021版本nacos中删除了Ribbon的jar包,因此无法通过lb路由到指定微服务,出现了503情况。重新启动,果然可以了。如果还不行把UserApplication和OrderApplication重新启动一下试试就可以了。所以只需要引入springcloud loadbalancer包即可。自定义类,实现GlobalFilter接口,添加@Order注解。然后就出现了服务无法访问的情况,一直报错。由于springcloud2020弃用了。步骤1:自定义过滤器。
2023-07-04 16:13:31
192
原创 测试用例设计方法
设计测试用例步骤无效有5种情况案例1:QQ号6-10位自然数划分等价类设计用例1.打开QQ2.输入QQ账号1.打开QQ2.输入QQ账号1.打开QQ2.输入QQ账号1.打开QQ2.输入QQ账号1.打开QQ2.输入QQ账号1.打开QQ2.输入QQ账号1.打开QQ2.输入QQ账号案例2:新浪邮箱 设计测试用例步骤案例1:QQ号6-10位自然数优化其实可以把789位qq号三种情况去掉 设计测试用例步骤 visio软件使用
2023-06-24 23:45:11
718
原创 Queue,List,Deque联系
如图所示,可以得出add(E):boolean 在队尾添加元素,添加成功返回true,如果无法添加则offer(E):boolean 在队尾添加元素,添加成功返回true,如果无法添加则。remove():E 删除队头元素,并返回删除的元素,如果poll():E 删除队头元素,并返回删除的元素,如果返回null。element():E 获取队头元素,如果队列为null将。peek():E 获取队头元素,如果队列为null将。
2023-06-23 16:07:29
845
原创 登录校验流程
登录流程,用户在前端页面登陆时,会提交验证码,手机号,可能包括一些别的信息,比如说我们的项目中就提交三种数据,一个是手机号,一个是验证码,一个是是否记住,就是下次是否免密登录。如果不存在,则自动创建新用户,把新用户存到数据库。发送短信验证码流程:首先一开始用户在前端提交手机号,我们后端会校验这个手机号,我们有一个后端接口校验手机号是否合法,其实我们前端也针对手机号做校验,但有时候可能用户会用一些postman工具绕前端的一个检测,所以我们前端,后端都做了手机号校验,校验格式是否正确?,作为用户的唯一标识。
2023-06-18 17:27:54
94
原创 Nacos和Feign
第一步:在orderService中pom.xml配置依赖--feign客户端依赖-->第二步:启动类上添加注解第三步:编写FeignClient接口第四步:orderService中使用FeignClient定义的方法代替RestTemplate@Autowired// 1.查询订单// 2.用Feign远程调用// 3.封装user到Order// 4.返回注意:启动时报错记得注释掉application.yml中的。
2023-06-15 19:35:40
759
原创 redis面试题一
等等,其次由于redis本身是一个基于内存的一个存储并且在数据结构上做了大量的一些优化,所以IO的性能会比较好,在实际开发里面,我们会把它用在应用和数据库之间的一个分布式缓存中间件,并且呢它又是一个非关系数据库的存储,它不存在表之间的关联,查询的一些问题,所以它可以很好的去提升应用程序的数据IO效率,最后作为企业级开发来说,它又提供了主从复制+哨兵以及集群的方式去实现高可用,在redis里面呢通过hash槽的方式去实现了数据的分片,进一步提升了整体的一个性能和可扩展性。基于key-value存储结构。
2023-06-10 22:31:50
963
原创 微服务eureka和nacos
解释说明: eureka-server自己也是个微服务,也需要服务名称,而且还需要配置eureka的地址(疑问:我自己就是eureka,为什么还要配置地址信息)刚才说了eureka-server自己就是微服务,所以eureka-server在启动的时候自己也注册到eureka上()上面defaultZone配置的是eureka集群的地址,有多个的话用逗号隔开,因为这里是单机,所以配置的只有自己(重点来了:这里的服务名称和地址信息都是做服务的注册)第一步:项目user-service引入依赖。
2023-06-10 15:14:57
1136
原创 Java实习生面试实录
Runnable接口就是一个执行单元,它就是java几之后,反正就是将这个执行机制和一个这种执行单元分隔看一下runnable,callable,它就是作为一个执行单元的任务体,然后传到那个thread里面去执行嘛。依赖注入是指将依赖的对象实例交给spring帮我们注入管理,从而释放到对象的管理权,比如可以统一替换接口的实现,更高效的开发程序。多线程技术就是创建线程池,然后由线程池对我们这种线程一个这种更合理更可控的一个把控吧,多线程就是一个线程池技术的使用吧。清空eden区(再次写入时又是连续空间)
2023-06-05 20:51:07
222
原创 SpringMVC
用户通过视图层发送请求到服务器,在服务器中的请求被controller接收,controller调用相应的model层处理请求,处理完毕将结果返回到controller,controller再根据请求处理的结果找到相应的view视图,渲染数据后最终响应给浏览器。session钝化:当前服务器关闭,当前session中的数据 会被保存到(钝化到)我们当前的磁盘文件上,钝化到Tomcat的work目录,重启服务器之后,会把钝化的数据重新加载到session中,(
2023-06-04 16:56:00
620
原创 Vue基础入门(下)
});// 自定义指令 directive// 局部指令// focus:{// }// }// }data(){return{hello:true},template:`
2023-06-03 22:43:23
767
原创 类实例化和实例初始化
(2)i=test()(注意:这里输出的子类重写的方法)(1)super()(最前)(4)子类的无参构造(最后)(1)super()(最前)(4)父类的无参构造(最后)(3)子类的非静态代码块。(3)父类的非静态代码块。
2023-05-29 12:45:57
618
原创 单例模式总结
静态内部类不会自动随着外部类的加载和初始化而初始化,它是要单独去加载和初始化的。说明:在内部类被加载和初始化时,才创建INSTANCE实例对象。因为是在内部类加载和初始化时,创建的,因此是线程安全的。注意生成getset方法和toString方法。
2023-05-29 11:55:51
411
原创 5.22面试题
当我们通过浏览器去进行网页访问的时候,服务器可以把某一些状态数据以key-value形式写入到cookie里面存储到客户端浏览器。,那么基于服务器端的session存储机制在结合客户端的cookie机制,我们就可以去实现有状态的http协议(答:都是属于线程的阻塞等待状态。BLOCKED是指线程在等待监视器锁的时候的一个阻塞状态,也就是说。BLOCKED的唤醒时自动触发的,而WAITING状态必须要通过特定的方法来主动唤醒。BLOCKED是锁竞争失败后被动触发的状态,WAITING是人为主动触发的状态。
2023-05-22 19:03:20
936
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人