自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个搬砖工人

这个楼什么什么时候可以建成呢

  • 博客(566)
  • 资源 (1)
  • 收藏
  • 关注

原创 SQL每日一题挑战计划

2021/4/1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数-- 1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数 -- 确定学生的信息在Student表中,课程的分数在Course表中select a.* ,b.s_score as 01_score,c.s_score as 02_score from student a join score b on a.s_id=b.s_id and b.c_id='01'join score c on a.s_id=c.

2021-04-01 10:16:10 483

原创 3 python基本语法 - Dict 字典

Python 中字典(dict)是一种,它的元素以“键值对(key-value)”的形式存储。相对地,列表(list)和元组(tuple)都是有序的序列,它们的元素在底层是挨着存放的。字典中,习惯将各元素对应的索引称为键(key),各个键对应的元素称为值(value),键及其关联的值称为“键值对”。

2023-12-20 16:07:09 149

原创 2 python基本语法 - Tuple不可变序列

元组和列表(list)的不同之处在于:列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列;,其中 element1~elementn 表示元组中的各个元素,可以是整数、实数、字符串、列表、元组等任何类型的数据,并且在同一个元组中,元素的类型可以不同。元组是 Python 序列的一种,我们可以使用索引访问元组中的某个元素(得到的是一个元素的值),也可以使用截取返回元组中的一组元素(得到的是一个新的子元组)。也可以反向索引,最后一个元素的索引为 -1,往前一位为 -2,以此类推。

2023-12-20 11:35:18 129

原创 1 python基本语法 - List

列表(list)是一个有序且可更改的序列,允许重复。列表可以存储整数、小数、字符串、列表、元组等任何类型的数据,同一个列表中元素的类型也可以不同,格式为,其中,listname 表示变量名,element1 ~ elementn 表示列表元素。使用 [] 创建列表后,一般使用 = 将它赋值给某个变量,语法格式为:,其中,listname 表示变量名,element1 ~ elementn 表示列表元素。2 用 list 函数创建列表除了使用 [] 创建列表外,Python 还提供了内置的 list 函数

2023-12-20 11:15:30 345

原创 Ionic组件 ion-avatar ion-icon ion-img ion-thumbnail

Avatars 是通常包裹 image or icon的圆形组件。它们可以用来表示一个person or an object。Avatars 可以自己使用,也可以在任何元素内部使用。如果放置在ion-chip or ion-item内部,avatar 将调整大小以适应父组件。要将avatar 定位在item的左侧或右侧,请分别将the slot to start or end。

2023-11-10 10:45:52 177

原创 Ionic组件 ion-list ion-list-header

列表由多行项目组成,这些项目可以包含 text, buttons, toggles, icons, thumbnails等。列表通常包含具有类似数据内容的项目,如 images and text。列表支持多种交互,包括滑动项目以显示选项、拖动以重新排列列表中的项目以及删除项目。

2023-11-10 10:29:59 912

原创 Ionic 组件 ion-item-divider ion-item-group ion-item-sliding ion-label ion-note

Item dividers是块元素,可用于分隔列表中的items。它们类似于列表标题,但它们不应该只放在列表的顶部,而应该放在items之间。

2023-11-10 10:14:07 144

原创 Ionic list - ion-item的相关用法

虽然列表中的 items有多种形式,但它们通常支持5种不同的内容类型:supporting visuals, text, metadata, actions, and controls。例如,一个可点击的项目在md模式下激活时会收到涟漪效果,在ios模式下激活后会有一个高亮显示,并且在ios模式中默认情况下有一个详细箭头。若要在不自然显示的项目上显示右箭头图标,请将detail属性设置为true。默认情况下,Items 显示插入的底部边框。边框在左侧有填充,不会出现在“start”插槽中的任何内容下。

2023-11-08 17:01:56 561

原创 Ionic header content footer toolbar UI实例

2 ionic的icon图标3 ion-header 头部ion-header 是页面的根组件,它将自己与页面顶部对齐。建议将它用作一个或多个工具栏的包装器,但它可以用于包装任何元素。当在标题中使用工具栏时,将调整内容,使其大小正确,并且标题将考虑到任何设备安全区域。3.1 半透明Header通过设置半透明属性,标头可以与本机iOS应用程序中的透明度相匹配。为了查看标题后面滚动的内容,需要在内容上设置全屏属性**。只有当模式为“ios”并且设备支持背景滤镜时,此效果才会适用**。Ionic提供

2023-11-08 14:32:30 307

原创 Ionic 模块组件的理解

创建公共模块以及组件公共模块slide.module.ts 中暴露对应的组件// 1 导入组件// 2 声明组件imports: [],// 3 暴露组件})用到的地方引入自定义模块,并依赖注入自定义模块// 1 引入自定义模块imports: [// 2 依赖注入自定义模块],})使用自定义模块-- 使用模块-->// 1 导入ionic核心模块imports: [// 2 依赖注入ionic核心模块],})

2023-11-06 15:52:53 1041

原创 Angular 中的app.module.ts

【代码】Angular 中的app.module.ts。

2023-11-03 15:40:55 438

原创 Angular 中的路由

routerLinkActive: 设置 routerLink 默认选中路由。

2023-11-03 15:31:15 1065

原创 Angular 中的数据交互GET POST

Angular5.x 以后 get、post 和和服务器交互使用的是 HttpClientModule 模块。Angular5.x 以后 get、post 和和服务器交互使用的是 HttpClientModule 模块。在用到的地方引入 HttpClient、HttpHeaders 并在构造函数声明 HttpClient。在 app.module.ts 中引入 HttpClientModule 并注入。在 app.module.ts 中引入 HttpClientModule 并注入。

2023-11-03 11:40:55 422

原创 Angular异步数据流编程

如果我们想让异步里面的方法多次执行,这一点 Promise 是做不到的。而 Observable 不一样,它可以不断地触发下一个值,就像 next() 这个方法的 名字所暗示的那样。Promise 里面用的是 then() 和 resolve(),而 RxJS 里面用的是 next() 和 subscribe()。Promise 的创建之后,动作是无法撤回的。Observable 不一样,动作可以通过 unsbscribe() 方法中途撤回,而且 Observable 在内部做了智能的处理。

2023-11-03 11:19:27 730

原创 Angular组件通信

通过在子组件中定义一个Output属性,子组件可以通过EventEmitter触发这个属性,父组件可以通过@Output的形式监听子组件的属性,并在属性被触发时调用相应的方法。在上面的例子中,我们定义了一个名为outter 的Output属性,并在按钮的点击事件中通过EventEmitter触发了这个属性,并向父组件传递了一个字符串 i am sonValue。在父组件中引入子组件,并在模板中使用@Output装饰器监听子组件的Output属性。在子组件中定义Output属性和触发事件的方法。

2023-11-03 09:29:02 346

原创 Angular模板语法

这将在你的项目目录中创建一个名为your-service-name.service.ts的文件,并自动生成基本的Angular服务代码。Angular的ViewChild用法是用来获取模板视图中的元素或组件的引用。

2023-11-02 20:41:54 102

原创 Angular组件生命周期详解

当 Angular 实例化组件类 并渲染组件视图及其子视图时,组件实例的生命周期就开始了。生命周期一直伴随着变更检测,Angular 会检查数据绑定属性何时发生变化,并按需更新视图和组件实例。当 Angular 销毁组件实例并从 DOM 中移除它渲染的模板时,生命周期就结束了。当 Angular 在执行过程中创建、更新和销毁实例时,指令就有了类似的生命周期。

2023-11-02 15:56:36 884

原创 FE_Vue学习笔记 - 组件的理解vue vc

当我们写构造函数的时候,属性我们直接写在构造函数体内,方法我们写在原型上。

2023-09-15 17:11:37 414

原创 FE_Vue学习笔记 - 数据代理

Vue中的数据代理是一种机制,通过它,Vue实例(vm)可以代理其数据对象(data)中的属性操作。在Vue实例化时,会将data对象中的所有属性收集到vm._data中,属性值不再直接给出,而是通过响应式getter获取,当data中数据改变时,就会调用响应式setter,导致重新解析模板,然后生成新的虚拟DOM进行新旧DOM对比,最后更新页面。通过这种方式,Vue实例可以方便地代理其数据对象中的属性操作,使得我们不需要直接操作data对象,简化了代码并提高了可维护性。

2023-09-15 16:04:18 194

原创 redis深度历险 千帆竞发 —— 分布式锁

分布式应用进行逻辑处理时经常会遇到并发问题。比如一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的。(Wiki 解释:所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch 线程切换。这个时候就要使用到分布式锁来限制程序的并发执行。

2023-09-14 18:58:25 283

原创 redis深度历险 2 - Redis的基本数据类型以及使用场景

Redis的基本数据类型包括五种:String(字符串)、Hash(哈希)、List(列表)、Set(集合)及ZSet(有序集合)。

2023-09-14 16:14:00 310

原创 redis深度历险 1 - Redis基础数据结构-001

Redis有5种基础数据结构,分别为: string (字符串)、list(列表)、set (集合)、hash (哈希)和zset (有序集合)。熟练掌握这5种基本数据结构的使用是Redis 知识最基础也最重要的部分,它也是在 Redis面试题中问到最多的内容。

2023-09-14 11:47:31 176

原创 探究Nginx应用场景

在上面的配置中,server_name指令指定了域名,location /指令指定了URL路径匹配规则,proxy_pass指令指定了反向代理的目标服务器地址。假设你有一个静态资源目录/var/www/html,该目录下存放着一些HTML、CSS、JavaScript等静态文件,并且你希望使用Nginx来处理这些静态文件的请求,同时将动态请求转发给后端的应用程序服务器。Nginx是一个流行的Web服务器和反向代理服务器,它可以用于实现动静分离,提高Web应用程序的性能。

2023-09-13 16:09:04 358

原创 爽文式的带你快速理解Nginx

正向代理和反向代理是代理服务器的一种分类方式,根据代理服务器在客户端和目标服务器之间的位置不同来区分的。正向代理是指位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。使用代理上网就是正向代理的一个应用实例。正向代理可以隐藏客户端的真实身份和位置,并且可以绕过访问限制、提供缓存和性能优化,增加访问的安全性。

2023-09-13 15:23:31 135

原创 2023-09-12 - 7 搜索排序

现在我们来思考一下上述match查询的打分细节,在默认情况下,文档的boost为BM25中的k1+1,因为在默认情况下k1=1.2,所以boost=k1+1=1.2+1=2.2。title字段使用标准分析器,设置“金都”这个match查询的boost值为2后,在查询时“金都”被切分成“金”“都”,这两个切分的字在BM25查询中的最终boost值都为4.4。例如,可以为查询A设定boost值为3,为查询B设定boost值为6,则在进行相关性计算时,查询B的权重将比查询A相对更高一些。

2023-09-12 09:51:15 194

原创 Elasticsearch近实时架构

在Lucene中,索引是由多个分段(segment)组成的,每个分段都是一个独立的数据集,保存了文档的倒排索引等信息。需要注意的是,虽然每个Lucene索引和每个Elasticsearch分片在内部结构上相似,但它们在实际使用和管理上存在一定的差异。在创建索引时,可以指定主分片的数量和副本分片的数量。在Elasticsearch中,索引是由多个分片(shard)组成的,每个分片都可以在多个节点上分布存储和搜索。主分片承载了索引数据的主要部分,而副本分片则是主分片的副本,用于提高搜索和数据存储的可靠性。

2023-09-11 16:16:31 385 2

原创 前端表单验证工具类 - graceChecker

【代码】前端表单验证工具类 - graceChecker。

2023-08-31 15:59:44 409

原创 MyBatis要实现动态传入表名、列名

这意味着MyBatis会为SQL语句创建一个PreparedStatement,并使用User对象的name和age属性来填充占位符。statementType:STATEMENT(非预编译),PREPARED(预编译)或CALLABLE中的任意一个,这就告诉 MyBatis 分别使用Statement,PreparedStatement或者CallableStatement。在MyBatis中,statementType是一个枚举类型,它指定了在MyBatis配置文件中mapper XML文件中的每个。

2023-08-31 14:46:52 1695

原创 Mybatis为什么需要预编译等一系列问题

因此,应该谨慎使用 ${},并确保传入的参数是安全的。这种方式可以避免 SQL 注入等安全问题,因为 MyBatis 会自动对参数进行转义和预处理,确保生成的 SQL 语句是安全的。SQL 预编译是一种提高数据库访问效率的技术,它通过将 SQL 语句预编译并存储在数据库中,减少每次执行时需要进行解析和编译的开销,从而提高数据库访问的效率。相比之下,#{} 是预编译操作符,它会在预编译阶段对参数进行转义和预处理,确保生成的 SQL 语句是安全的。中,并对其进行适当的转义,以确保生成的 SQL 语句是安全的。

2023-08-31 14:12:41 304

原创 探讨uniapp的组件使用的问题

就可以在该容器内按行或列排布子组件。uni-app推荐使用flex布局, 因为flex布局有利于跨更多平台,尤其是采用原生渲染的平台。Flex是Flexible Box的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性。后,继续给view等容器组件设置。

2023-08-26 16:16:57 1088

原创 探讨uniapp的路由与页面生命周期问题

关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。关闭当前页面,跳转到应用内的某个页面。关闭所有页面,打开到应用内的某个页面。跳转到 tabBar 页面,并。

2023-08-26 11:32:26 1131

原创 探讨uniapp的路由与页面栈及参数传递问题

uni-app 有两种页面路由跳转方式:使用navigator组件跳转、调用API跳转。页面的路由操作无非:初始化、打开新页面、页面重定向、页面返回、tab切换、重加载。注意:这里页面回退操作将无法起作用,因为页面栈中已经不存在之前的页面了!跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。保留当前页面,跳转到应用内的某个页面,使用。关闭当前页面,跳转到应用内的某个页面。关闭所有页面,打开到应用内的某个页面。该组件类似HTML中的。与上面的行为保持一致。

2023-08-26 10:58:37 1507

原创 探讨uniapp的页面问题

接下来我们介绍onLoad、onReady、onShow的先后关系,页面加载的详细流程。uni-app框架,首先根据pages.json的配置,创建页面。所以原生导航栏是最快显示的。页面背景色也应该在这里配置。根据页面template里的组件,创建dom。这里的dom创建仅包含第一批处理的静态dom,对于通过js更新data,然后通过v-for再创建的列表数据,不在第一批处理。要注意一个页面静态dom元素过多,会影响页面加载速度。

2023-08-26 09:16:42 1939

原创 ThreadLocal的应用案例详解

通过以上代码可以看到,在Hibernate的getSession()方法中,首先判断当前线程中有没有放进去Session,如果还没有,那么通过sessionFactory().openSession()来创建一个Session,再将Session设置到ThreadLocal变量中,这个Session相当于线程的私有变量,而不是所有线程共用的,显然其他线程中是取不到这个Session的。使用ThreadLocal保存函数之间需要传递的数据,在需要的地方直接获取,也能避免通过参数传递数据带来的高耦合。

2023-08-24 14:24:39 175

原创 请你谈谈多线程基本知识 - 乐观锁与悲观锁的适用场景

这种问题怎么解决了,也就是上面我们所说的版本号机制,加入版本号(版本号必须是顺序递增的)之后,判断版本,只有当版本号相同时才更改值,然后版本号+1;读完上面这一段,我们应该已经知道乐观锁的意思了,也就是说大部分乐观锁其实就是加了版本号version字段,根据这个字段实现的乐观锁机制,那么还有什么方式可以实现乐观锁呢,聪明的你肯定已经想到了CAS,对的,CAS(compare and swap)比较并修改,CAS需要三个参数,内存地址V,旧的预期值A和新值B,只有当V的值等于A时,才会将V的值改为B。

2023-08-24 09:39:14 114

原创 探讨uniapp的数据缓存问题

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。从本地缓存中异步获取指定 key 对应的内容。从本地缓存中同步获取指定 key 对应的内容。从本地缓存中异步移除指定 key。从本地缓存中同步移除指定 key。同步清理本地数据缓存。

2023-08-14 15:36:00 1257

原创 探讨uniapp的网络通信问题

最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String。如果希望返回一个 requestTask 对象,需要至少传入 success / fail / complete 参数中的一个。如果没有传入 success / fail / complete 参数,则会返回封装后的 Promise 对象:Promise 封装。uni-app 中有很多原生的 API,其中我们经常会用到的肯定有:uni.request(OBJECT)

2023-08-14 09:49:00 754

原创 探讨uniapp的navigator 页面跳转问题

navigator 页面跳转。该组件类似HTML中的组件,但只能跳转本地页面。目标页面必须在pages.json中注册。

2023-08-12 16:29:02 1068

原创 探讨uniapp的生命周期问题

在uniapp中,生命周期函数分为应用生命周期函数、页面生命周期函数和组件生命周期函数.

2023-08-12 13:34:27 903

原创 JUC线程池的实战问题 - 线程池参数应该如何配置?

这个建议是基于以下考虑:对于 CPU 密集型任务,线程需要大量计算,因此需要足够多的 CPU 资源,而处理器核心数加 1 或者 2 的数量可以充分利用 CPU 资源,避免线程之间的竞争和阻塞;这个建议是基于以下考虑:对于 CPU 密集型任务,线程需要大量计算,因此需要足够多的 CPU 资源,而处理器核心数加 1 或者 2 的数量可以充分利用 CPU 资源,避免线程之间的竞争和阻塞;workQueue的值应该根据具体的业务场景和需求来设置,不同的队列类型有不同的特点和适用场合。

2023-08-11 10:11:19 83

springboot——员工管理系统源码

springboot——员工管理系统源码

2021-01-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除