- 博客(58)
- 问答 (1)
- 收藏
- 关注
原创 MyBatis 进阶
根据传⼊的⽤户对象属性来更新⽤户数据,可以使⽤标签来指定动态内容。对集合进⾏遍历时可以使⽤该标签。它的优点是使⽤⽅便,直接定义到某个实体类即可。实现实体类中的属性 和 字段映射的功能。where 可以去除 最前面的 and。trim 通常配合 if 来用。以上标签也可以使⽤ 替换。字段名和属性名不同的情况。标签也可以使⽤ 替换。可以加到类或者方法上。
2024-01-06 19:52:56
1481
原创 MyBatis入门
MyBatis 是⼀款优秀的持久层框架,它⽀持⾃定义 SQL、存储过程以及⾼级映射。简单来说 MyBatis 是更简单完成程序和数据库交互的⼯具,也就是更简单的操作和读取数据库⼯具MyBatis 在整个框架中的定位,框架交互流程图:为什么要实现 InterFace ,而不直接实现类:原理:MyBatis 也是⼀个 ORM 框架,ORM(Object Relational Mapping),即对象关系映射。在⾯向对象编程语⾔中,将关系型数据库中的数据与对象建⽴起映射关系进⽽⾃动的完成数据与对象的互相转换:OR
2024-01-06 19:51:53
912
原创 Java Spring
可以使⽤ @Autowired 关键字之外,我们还可以使⽤ @Resource 进⾏注⼊,如下代码所示。但是如果类中有多个构造⽅法,那么需要添加上 @Autowired 来明确指定到底使⽤哪个构造⽅法。所谓的⽣命周期指的是⼀个对象从诞⽣到销毁的整个⽣命过程,我们把这个过程就叫做⼀个对象的⽣命周期。注意后 4 种状态是 Spring MVC 中的值,在普通的 Spring 项⽬中只有前两种。DI 是 Dependency Injection 的缩写,翻译成中⽂是“依赖注⼊”的意思。
2023-11-22 17:13:45
332
原创 java8函数式编程(Lambda表达式,Optional,Stream流)从入门到精通
当流中有大量元素时,我们可以使用并行流去提高操作的效率。JDK5中引入的自动装箱和自动拆箱让我们在使用对应的包装类时就好像使用基本数据类型一样方便。但是在大量的数据不断的重复装箱拆箱的时候,你就不能无视这个时间损耗了。假如接口只有一个 函数需要被重写,则可以使用 Lambda表达式来 代替 类的创建和重写。如果我们自己去用代码实现的话其实会非常的复杂,并且要求你对并发编程有足够的理解和认识。我们之前用到的很多Stream的方法由于都使用了泛型。但是你一定要知道装箱和拆箱肯定是要消耗时间的。
2023-11-13 16:38:25
695
原创 Java类加载机制
按照正常逻辑来说,既然要用到其他类中的字段,那么肯定需要加载其他类,但是这里我们结果发现,并没有对Test类进行加载,那么这是为什么呢?可以看到,在主方法中,我们使用了Test类的静态成员变量,并且此静态成员变量是一个final类型的,也就是说不可能再发生改变。(因为final不可能发生改变的,编译就会进行优化,直接来个字符串比你去加载类在获取快得多不是吗,反正结果都一样),所以说编译之后,实际上跟Test类半毛钱关系都没有了。最后就是真正的初始化阶段了,从这里开始,类中的Java代码部分,才会开始执行。
2023-11-05 20:37:58
341
原创 Java泛型
例子:泛型将数据类型的确定控制在了编译阶段我们在方法中使用待确定类型的变量时因为泛型本身就是对某些待定类型的简单处理,如果都明确要使用什么类型了,那大可不必使用泛型。如果要让某个变量支持引用确定了任意类型的泛型,那么可以使用通配符当然,泛型变量不止可以只有一个,如果需要使用多个的话,我们也可以定义多个:如果要存放基本数据类型的值,我们只能使用对应的包装类:当然,如果是基本类型的数组,因为数组本身是引用类型,所以说是可以的:泛型与多态不只是类,包括接口、抽象类,都是可以
2023-10-22 12:48:23
196
原创 java入门
文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),生成一套以网页文件形式体现的程序说明文档。多行注释:/* 注释内容*/(不推荐)单行注释:// 注释内容(用的最多)JDK、JRE、JVM之间的关系?ava中的注释主要分为以下三种。底层使用C/C++实现的。
2023-10-22 12:36:31
221
原创 Apollo介绍和入门
Apollo(阿波罗)是携程开源的一款可靠的分布式配置管理中心,它能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景目前市面上用的比较多的配置中心有:1、在Apollo配置中心修改配置2、应用程序通过Apollo客户端从配置中心拉取配置信息用户通过Apollo配置中心修改或发布配置后,会有两种机制来保证应用程序来获取最新配置:通过以上两种 机制共同来保证应用程序能及时获取到配置。应用环境集群关系命名空间一个应用下不同配置的
2023-09-13 12:26:55
2991
原创 【MySQL数据库入门】:表的约束
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。
2023-02-03 17:26:25
518
原创 【MySQL数据库入门】:库的操作
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ ci。创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]提示:这里只是学习如何修改,但在实际操作中,不建议轻易的去修改数据库。创建一个数据库,校验规则使用utf8_ bin[区分大小写]对数据库的修改主要指的是修改数据库的字符集,校验规则。
2023-01-07 10:51:34
805
1
原创 【MySQL数据库入门】:表的操作
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。备注:创建一个engine是innodb的数据库,观察存储目录。注意:删除字段一定要小心,删除字段及其对应的列数据都没了。注:新字段需要完整定义。
2022-12-27 10:59:46
126
1
原创 【MySQL数据库入门】:数据库基础和基本操作
为什么还要弄个数据库?首先文件保存数据有以下几个缺点:文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便磁盘内存为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。本文只是介绍了数据库的基本概念和操作,更详细的内容请期待后面的文章(_)。看到这了,关注下吧(_)。
2022-12-24 16:00:27
596
17
原创 C/C++的类型转换
因为要兼容C语言的类型转换,所以C++ 当中的类型转换最多只是一个建议,不强制使用,但在很多公司中会明确说明要使用C++当中的类型转换来进行规范书写和避免错误。我们在平时写代码的时候,也尽量使用C++当中的类型转换,养成良好习惯。
2022-10-11 09:42:05
1716
45
原创 C++11智能指针(auto_ptr,unique_ptr,shared_ptr,weak_ptr的详解与模拟实现)
概念:RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后在对象析构的时候释放资源。借此,我们实际上把管理一份资源的责任托管给了一个对象。这种做法有两大好处:不需要显式地释放资源。采用这种方式,对象所需的资源在其生命期内始终保持有效。
2022-10-01 12:55:34
984
59
原创 牛客刷题系列之进阶版
其实这道题是我第二次做了,但还是没有完全ac,原因就是因为自己还是在一个空格一个空格的来区分字符串,并没有清楚的认识到一个字符一个字符来处理字符串其实是更好的选择反思:以后遇到处理字符串的问题,尽量在字符层面上细致的处理。递归的题还是找不到思路,得多练。
2022-09-27 09:31:09
748
5
原创 c++11面试宝典(final,delete,deault,explicit,lambda表达式)
实际在底层编译器对于lambda表达式的处理方式,完全就是按照函数对象的方式处理的,即:如果定义了一个lambda表达式,编译器会自动生成一个类,在该类中重载operator()。比如:[=, &a, &b]:以引用传递的方式捕捉变量a和b,值传递方式捕捉其他所有变量 [&,a, this]:值传递方式捕捉变量a和this,引用方式捕捉其他变量。在C++11中,可以在默认函数定义或者声明时加=default,从而显式的指示编译器生成该函数的默认版本,用=default修饰的函数称为显式缺省函数。
2022-09-19 11:16:22
772
36
原创 c++11基础
在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于TC1主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约。
2022-09-14 21:31:48
698
43
原创 牛客刷题系列之进阶版(组队竞赛,排序子序列,倒置字符串, 删除公共字符,修理牧场)
很多小伙伴为了刷题发愁各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官。
2022-09-01 15:02:21
324
29
原创 网络入门(基础知识和网络整体的认识)
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理.IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。............
2022-09-01 08:51:14
443
原创 C++精通之路:设计模式(特殊类设计)
以上这几种设计都是通过staic的特性来实现的前面四种条件是通过将目标函数私有化,使其在外部不可调用。且用staic成员函数来在特定的条件下实行构造。(用到了staic成员函数可在类未初始化时就可调用的特性)单例模式则是通过staic成员变量的原子性来实现的。单例模式利用了一个staic 成员指针,指向一个类。再通过将目标函数(构造函数等)私有化,使其在外部不可调用。且用staic成员函数来实现对类的构造。1. 懒汉模式2. 饿汉模式。......
2022-08-30 22:43:36
742
73
原创 C++精通之路:红黑树的应用(模拟实现map/set)
因为红黑树的增删查改都是O(logN),所以用红黑树实现的map/set的增删查改也是O(logN),是个非常优秀的容器。
2022-08-16 20:18:26
1310
16
原创 C++进阶之哈希(unordered_map/set的使用及其模拟)
顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(N),搜索的效率取决于搜索过程中元素的比较次数理想的搜索方法是可以不经过任何比较,一次直接从表中得到要搜索的元素。如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素,则复杂度为O(1)非常的高效,而计数排序用的即是这种思想。......
2022-08-03 12:09:14
1015
16
原创 C++精通之路:红黑树
文章目录红黑树一:红黑树的概念二:红黑树的性质三:红黑树节点的定义四:红黑树结构五:红黑树的插入操作情况一(只需要变色):情况二(单旋加变色):情况三(双旋加变色):插入的实现旋转实现六:红黑树的验证实现代码:七、红黑树的删除八:红黑树与AVL树的比较九:红黑树的应用总结很多小伙伴为了刷题发愁今天为大家推荐一款刷题神奇哦:刷题面试神器牛客各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官红黑树一:红黑树的概念红黑树,是一
2022-08-01 09:59:15
1196
15
原创 牛客刷题系列之进阶版(搜索旋转排序数组,链表内指定区间反转)
很多小伙伴为了刷题发愁各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官。
2022-07-28 16:00:44
343
14
原创 C++精通之路:map和set
map和set一:关联式容器二:键值对三:set1. set的介绍2. set的使用3. set的使用举例四: map一:map的介绍二:map的使用三:总结四:multimap五:有关oj题一:关联式容器容器分类:序列式容器:初阶阶段中学习过STL中的部分容器,如:vector、list、deque等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身关联式容器:关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key,valu
2022-05-21 22:31:19
429
31
原创 每日一题(组队竞赛,排序子序列,倒置字符串, 删除公共字符,修理牧场)
每日一题一:组队竞赛二:排序子序列三:倒置字符串四: 删除公共字符一:组队竞赛题目:题目链接代码:#include<iostream>#include<algorithm>using namespace std;int main(){ int n; cin >> n; int sum; sum =n*3; int arr[sum]; for(int i=0;i<sum;i++)
2022-05-17 21:45:33
249
3
原创 C++从入门到精通(第十篇) :二叉搜索树
二叉搜索树一:二叉搜索树概念二: 二叉搜索树实现节点的定义二叉搜索树实现三:二叉搜索树的应用四:二叉树有关面试题一:二叉搜索树概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树 例:int a [] = {5,3,4,1,7,8,2,6,0,9};二: 二叉搜索树实现节点的定义template <cla
2022-05-11 16:22:14
623
27
空空如也
数据结构从入门到精通(第四篇) :排序的入门(插入排序,希尔排序,选择排序,冒泡排序)
2022-03-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人