自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 (数据库课设)数据库连接池&&Dbutils实现数据库操作(解放双手,无需在自写增删改查)_dbutils连接数据库

int count = queryRunner.update(conn, sql, 154, “吴用”, 10001);朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**//所有的数据连接池要想被java所使用,都必须先实现sun公司提供的一个接口DateSource。//使用QueryRunner和数据库连接池实现数据库的增删改。druid测试数据库连接池技术类。//获取数据库连接池对象。

2024-05-17 04:53:31 631

原创 (数据库课设)数据库连接池&&Dbutils实现数据库操作(解放双手,无需在自写增删改查)_dbutils连接数据库(1)

采用静态类加载的方式在类第一次运行时创建数据库连接池,保证在程序未关闭之前,数据库连接池是存在的。//所有的数据连接池要想被java所使用,都必须先实现sun公司提供的一个接口DateSource。//所有的数据连接池要想被java所使用,都必须先实现sun公司提供的一个接口DateSource。//使用QueryRunner和数据库连接池实现数据库的增删改。//druid数据库连接池创建数据连接对象。//利用工厂类创建数据库连接池。//获取数据库连接池对象。//获取数据库连接池对象。

2024-05-17 04:52:58 953

原创 (二) 用QWebSocket 实现服务端和客户端(详细代码直接使用)(1)

这个类,主要是添加了QThread 和QTimer,QThread 创建一个子线程来进行服务器的开启,监听和接收数据,不会影响主线程的事件;QTimer主要是发心跳包,实现断开重连机制;(2)在客户端基类上,封装一个具体使用的类:(外面可以直接使用这个类进行通讯)(2)将客户端基类封装,改造下:(外面可以直接使用这个类进行通讯)接收和发送的数据,以二进制为例。

2024-05-17 04:52:25 298

原创 (三)行为模式:1、责任链模式(Chain of Responsibility Pattern

1)解耦发送者和接收者:请求发送者不需要知道具体的接收者,只需要将请求发送给第一个处理者即可,由处理者之间的关系来决定谁来处理请求。:实现了抽象处理者的接口,具体处理请求的逻辑。如果自己无法处理请求,则将请求传递给下一个处理者。1)请求可能无法被处理:如果没有合适的处理者来处理请求,请求可能会被忽略或丢失。(1)有多个对象可以处理同一个请求,但具体处理者在运行时才能确定。2)可扩展性:可以动态地增加或修改处理者,灵活地调整责任链的结构。:定义了处理请求的接口,并持有下一个处理者的引用。

2024-05-17 04:51:52 379

原创 最新安卓异步处理——AsyncTask<Params, Progress, Result>(3),2024年最新如何成为杰出的程序员

/TestAsyncTask被后台线程执行后,被UI线程被调用,一般用于初始化界面控件,如进度条。MainActivity代码。AsyncTask子类代码。

2024-05-17 00:49:11 684

原创 最新安卓布局——注册页面_安卓布注册登录页面,2024年最新2024大厂C C++面试最火问题

套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**android:contentDescription=“性别”这个属性的主要功能就是为视力有障碍的人增加对控件的解释。android:hint=“请输入你的用户名”android:hint=“请输入你的密码”android:text=“用户名:”/>android:text=“密 码:”android:text=“男”android:text=“女”

2024-05-17 00:48:38 377

原创 最新安卓——套接字Socket通信(未完)_安卓套接字(1),建议收藏

接下来创建一个InetAddress对象,这个对象类似与一个网络的发送地址(InetAddressserveraddress=InetAddress.getByName(”172.168.1.120”)).定义要发送的一个字符串,创建一个DatagramPacket对象,并制定要讲这个数据报包发送到网络的那个地址以及端口号,最后使用DatagramSocket的对象的send()发送数据。接下来创建一个空的DatagramSocket对象用于接收数据(bytedata[]=newbyte[1024;

2024-05-17 00:48:05 273

原创 最新学 C++ 是种怎样的体验?_c++学到极致是什么样子(1),跳槽字节跳动

第十一阶段:你用 gcc 6 编译了代码,然后用你库的人:what the f*ck?第十阶段:你学会了模板元编程,SFINAE,并成功地使用不到 30 行代码使编译器输出了 4G 错误信息。第二阶段:为了实现多态,你学会了继承、虚函数、多继承和虚继承,然后你用这些技术改写了一些代码,实现了代码重用;第三阶段:你学会了用抽象类作为接口,发现以前的继承关系太复杂,用接口更清晰,于是把代码都改成了单继承+接口;第六阶段:你学会了异常;第七阶段:你学会了移动语义,你觉得很开心,可以用值的形式写出更高效的代码。

2024-05-17 00:47:32 754

原创 [万字逐步详解]使用 webpack-dev-server + ESLint 配置 vue 项目的开发环境_在运行dev的时候运行eslint(2)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!从命令行就能看到,保存过后就会重新编译,这样热更新就完成了: 最终效果:添加 source map 是为了能够方便 debug,现在打开 chrome 中的 s

2024-05-16 15:47:59 328

原创 [万字逐步详解]使用 webpack-dev-server + ESLint 配置 vue 项目的开发环境_在运行dev的时候运行eslint(1)

添加 source map 是为了能够方便 debug,现在打开 chrome 中的 source,显示的代码是不可读的:如果是开发公共组件,在有些时候,直接提供打包好的 bundle 对其他的使用这个开源库的用户来说,就会有阅读困难的问题。所以,这里会加上添加 source map 的功能。

2024-05-16 15:47:26 378

原创 [Typora Markdown BP] 修改文字格式、图片缩放对齐居中、Excel表格互转、手动分页、表格不分页、Mermaid自定义绘图

BP,即Best Practice,最佳实践,记录一些我在使用Typora时的技巧,以期帮助更多的人。标题中强调了是Typora而不是Markdown,是因为Markdown只是一种标记语言,不同的编辑器对其的渲染策略是不一样的。Typora基于Electron,本质上是一个魔改过的Chromium浏览器(不信可以用Shift+F12打开Console).所以下面介绍的技巧很多是前端的内容,是HTML/CSS的特性发挥的作用而不是Markdown本身的特性,在其他编辑器中可能有用也可能没有用。

2024-05-16 15:46:53 300

原创 最全RestfulAPI_手写c++restful服务器,2024年最新2024年C C++开发者跳槽指南

RESTful本质是一种软件架构风格,核心是面向资源。解决的问题:降低开发的复杂性、提高系统的可伸缩性。

2024-05-16 08:13:29 945

原创 最全Redis怎么保持缓存与数据库一致性?_redis如何和数据库保持一致,我是如何拿到阿里、网易双offer的

这么做引发的问题是,如果A,B两个线程同时要更新数据,并且A,B已经都做完了删除缓存这一步,接下来,A先更新了数据库,C线程读取数据,由于缓存没有,则查数据库,并把A更新的数据,写入了缓存,最后B更新数据库。这么做引发的问题是,如果A,B两个线程同时做数据更新,A先更新了数据库,B后更新数据库,则此时数据库里存的是B的数据。这样缓存和数据库的数据也不一致。按照我提到的这种更新缓存的策略,理论上也是有不一致的风险的,之前在其他的博客文章有看到过,只不过概率很小,我们暂时可以不考虑,后面我们有其他手段来补救。

2024-05-16 08:12:56 541

原创 最全Redis怎么保持缓存与数据库一致性?(1),C C++面试流程

这么做引发的问题是,如果A,B两个线程同时要更新数据,并且A,B已经都做完了删除缓存这一步,接下来,A先更新了数据库,C线程读取数据,由于缓存没有,则查数据库,并把A更新的数据,写入了缓存,最后B更新数据库。这么做引发的问题是,如果A,B两个线程同时做数据更新,A先更新了数据库,B后更新数据库,则此时数据库里存的是B的数据。这样缓存和数据库的数据也不一致。按照我提到的这种更新缓存的策略,理论上也是有不一致的风险的,之前在其他的博客文章有看到过,只不过概率很小,我们暂时可以不考虑,后面我们有其他手段来补救。

2024-05-16 08:12:22 561

原创 最全redis介绍及常见用法_redis 的常见用法,2024阿里+头条+腾讯等大厂C C++笔试题分享

【代码】最全redis介绍及常见用法_redis 的常见用法,2024阿里+头条+腾讯等大厂C C++笔试题分享。

2024-05-16 08:11:49 884

原创 大学四年,自学编程常用的10个学习网站_w3school和菜鸟教程哪个好

提供了最全的Web技术基础教程,介绍了HTML教程、CSS教程、Javascript教程、Python基础教程,PHP教程等各种建站基础。同时也提供了大量的在线实例,通过实例,可以更好的学习如何建站。

2024-05-16 04:10:21 636

原创 大学四年,自学编程常用的10个学习网站_w3school和菜鸟教程哪个好(1)

腾讯倾注大量资源打造的线上教育平台,一般我们只会用两个字来形容这种网站:无解。

2024-05-16 04:09:48 668

原创 大学四年,工作2年我总结了后端面试的所有知识点(持续更新)_后端开发学习资料

信号量是一种固定资源的限制的一种并发工具包,基于AQS实现的,在构造的时候会设置一个值,代表着资源数量。信号量主要是应用于是用于多个共享资源的互斥使用,和用于并发线程数的控制(druid的数据库连接数,就是用这个实现的),信号量也分公平和非公平的情况,基本方式和reentrantLock差不多,在请求资源调用task时,会用自旋的方式减1,如果成功,则获取成功了,如果失败,导致资源数变为了0,就会加入队列里面去等待。调用release的时候会加一,补充资源,并唤醒等待队列。

2024-05-16 04:09:15 787

原创 大学四年自学走来,这些私藏的实用工具 学习网站我贡献出来了_丁香网

只要你把相应的链接复制粘贴到冰点文库相应的地方就可以了。。这个软件主要是用来搜索本地文件的,假如你忘了某个文件放在哪里了,就可以用这个软件直接搜索,这个软件比系统自带的文件搜索不知快上了n倍,基本秒找到,而且可以根据很多条件来搜索,例如限制搜索文件的大小、拓展名、指定路径、正则表达式,等等,用一下你就知道了。

2024-05-16 04:08:37 537

原创 【开开心心学java,快快乐乐写代码】引用类型的比较_两个个引用数据类型如何比较大小 (3)

不熟悉的友友可以去看一下我的这两篇文章,

2024-05-16 00:07:20 531

原创 【开开心心学java,快快乐乐写代码】引用类型的比较_两个个引用数据类型如何比较大小 (2)

jdk中没有提供自定义类型大小的比较,这就需要我们自己去定义如何比较了。文章最开始就说了,自定义类型(也就是引用类型)的比较无非就两种,一是实现Comparable接口,二是实现Comparator接口。这两个接口究竟是什么呢?我们借助一个例子来理解理解。假设、我现在要对一个学生数组进行排序,每个学生都有姓名、年龄、成绩。我们知道,对一个基本数据类型的数组进行排序,不就是调用Arrays.sort()方法嘛,这有什么难的?

2024-05-16 00:06:47 782

原创 【开开心心学java,快快乐乐写代码】引用类型的比较_两个个引用数据类型如何比较大小 (1)

jdk中没有提供自定义类型大小的比较,这就需要我们自己去定义如何比较了。文章最开始就说了,自定义类型(也就是引用类型)的比较无非就两种,一是实现Comparable接口,二是实现Comparator接口。这两个接口究竟是什么呢?我们借助一个例子来理解理解。假设、我现在要对一个学生数组进行排序,每个学生都有姓名、年龄、成绩。我们知道,对一个基本数据类型的数组进行排序,不就是调用Arrays.sort()方法嘛,这有什么难的?

2024-05-16 00:06:14 862

原创 【开发环境】Mac 安装 Visual Studio Code ② ( 装 C C++ 扩展 安装配置 Code Runner 扩展插件 运行 C 语言程序 )_mac vs 怎么扩展 c环境

取消勾选 " Preserve Focus " 选项 , 如果设置该选项 , 在代码运行后 , 代码编辑器会自动获取焦点 , 这个比较影响开发体验 , 运行后就在后台运行即可;勾选 " Run in Terminal " , 勾选后 , 每次执行代码时 , 都在 VSCode 的集成终端中运行 , 与之对应的时 系统的 自带 Terminal 终端;在 扩展 面板中 , 搜索 " runner " , 搜索出的第一个 " Code Runner " 选项 , 就是要安装的插件;

2024-05-16 00:05:41 542

原创 2024年最全异常(C++)_c++捕获所有的异常,2024年最新C C++ui基础教程

如果你抛一个异常,他抛一个异常,XXX都抛了异常,那么上层捕获的人就会很难受。所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了。cin >> i;throw CacheExcetion(1, "数据不存在");int main()

2024-05-15 16:24:58 381

原创 2024年最全开源城市驾驶模拟器CARLA使用教程_carla simulator(2),作为一个C C++程序员

键盘操作说明##客户端服务器模式运行,通过api调用##步骤1: 运行 Python 客户端推荐python3,但也支持python2下载源码并解压https://github.com/carla-simulator/carla/releases/tag/0.7.1安装依赖脚本“PythonClient / client_example.py”提供了控制车辆和将图像保存到磁盘的基本功能。运行帮助命令查看可用选项。

2024-05-15 16:24:25 235

原创 2024年最全开源城市驾驶模拟器CARLA使用教程_carla simulator(1),2024年最新我的华为面试经历分享

最新的下载链接: https://github.com/carla-simulator/carla/releases/tag/0.7.1。除了开源代码和协议,CARLA 还提供了为自动驾驶创建的开源数字资源(包括城市布局、建筑以及车辆),这些资源都是可以免费获取和使用的。下载源码并解压https://github.com/carla-simulator/carla/releases/tag/0.7.1。录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

2024-05-15 16:23:52 320

原创 C语言关键字详解(四)带你全面了解 const 关键字_const关键字(1)

const 修饰变量:给该变量赋上只读属性,使该变量不可直接被修改。const 修饰数组:给该数组赋上只读属性,使该数组中的每个元素都不可直接被修改。const 修饰指针:const 放在类型名(int*)前:表示指针指向的变量不能直接被修改,指针的指向可以被修改。const 放在类型名(int*)后面:表示指针的指向不能直接被修改,指针指向的变量可以直接被修改。const 同时放在类型名(int*)前面和后面:表示指针指向的变量和指针的指向都不能被直接被修改。

2024-05-15 10:28:33 304

原创 C语言入门必做踩坑题《篇二》_以下程序运行时,若输入1abcedf2df(1)

所以选择 A。

2024-05-15 10:27:57 309

原创 C语言二进制、八进制、十进制、十六进制深入探究_c语言 表示二进制数

运行结果:从这个例子可以发现,一个数字不管以何种进制来表示,都能够以任意进制的形式输出。数字在内存中始终以二进制的形式存储,其它进制的数字在存储前都必须转换为二进制形式;同理,一个数字在输出时要进行逆向的转换,也就是从二进制转换为其他进制。

2024-05-15 10:27:21 325

原创 C语言中的图形用户界面开发:使用库如GTK+或ncurses创建GUI应用程序(一)

GTK+概述GTK+,全称为GNOME Toolkit,是一款广泛应用于C语言图形用户界面开发的跨平台、自由软件库。自1997年作为GIMP(GNU Image Manipulation Program)图形编辑器的附属工具包诞生以来,GTK+经历了长期的演进和发展,现已成为构建桌面应用程序的主流选择之一,尤其在Linux生态系统中占据主导地位。主要特点:跨平台。

2024-05-15 10:26:43 361

原创 C C++最新【C语言】从此不再恐惧——C语言指针详解,2024年最新一招教你看懂Netty

在32位的机器上(X86环境),地址是32个0或者1组成二进制序列,那地址就得用4个字节的空间来存储,所以一个指针变量的大小就应该是4个字节。在64位的机器上(X64环境),地址是64个0或者1组成二进制序列,那地址就得用8个字节的空间来存储,所以一个指针变量的大小是8个字节。数组能够存放一组数,是一个连续的空间,数组的大小取决于元素个数。(double*)+1------跳过一个double类型的大小,也就是向后走8个字节;(char*)+1------跳过一个char类型的大小,也就是向后走1个字节;

2024-05-15 06:02:18 549

原创 C C++最新【C语言】【指针】,36岁老码农现身说法

接下来的第3句中,指针ptr被加了1,编译器是这样处理的:它把指针ptr 的值加上了sizeof(int),在32 位程序中,是被加上了4,因为在32 位程序中,int 占4 个字节。总的来说一个指针ptrold 加(减)一个整数n 后,结果是一个新的指针ptrnew,ptrnew 的类型和ptrold 的类型相同,ptrnew 所指向的类型和ptrold所指向的类型也相同。这是指针本身所具有的类型。从语法上看,你只须把指针声明语句中的 指针名字和名字左边的指针声明符* 去掉,剩下的就是指针所指向的类型。

2024-05-15 06:01:42 724

原创 C C++最新【Cocos2D -x C++】学习笔记(一(1),2024年最新做了5年C C++

精灵是您在屏幕上移动的对象,它能被控制。可以被配置的属性,比如:位置,旋转角度,缩放比例,透明度,颜色 等等。

2024-05-15 06:01:06 291

原创 C C++最新【C++进阶:继承】C(1),2024年最新面试一路绿灯Offer拿到手软

在 C++ 初阶专栏 ➡ 类和对象一文中,我们提出了面向对象的三大特性 —— 封装、继承、多态。但在 C++ 初阶专栏中涉及到的只是封装,而这里我们直接以封装和继承作为 C++ 进阶专栏中的敲门砖。我们说过 C++ 是大佬从 C 发展出来的,最开始的 C++ 叫做 C With Class,就是在 C 的基础上增加了类。经过 C++ 初阶的学习,我们知道了 C++ 中类,就是为了对标并解决 C 的缺陷,比如构造、析构等。

2024-05-15 06:00:29 1004

原创 C C++最全每日力扣-961,2024年最新阿里出品

【代码】C C++最全每日力扣-961,2024年最新阿里出品。

2024-05-15 01:33:38 329

原创 C C++最全模仿学习(Imitation Learning)概述,【2024C C++最新学习路线】

在这个课程中,作者举的例子是我们假设车里面坐了一个专家,专家在每个不同的环境下都会给一个策略,但是机器仍然是按照原本的模型输出的策略行进的,这样子当汽车偏离的时候,虽然车可能依然会撞墙,但是此时专家就会把这个模型缺失的一部分数据补充上。如下图所示,传统的强化学习下方的箭头应该是从左到右的,基于奖励函数与环境交互,做出最大奖励的行为,但是在逆向强化学习算法中,这个过程却是从右向左进行,通过专家数据学习到奖励函数(注意,在逆向强化学习算法中从左到右也要走,后面会讲到)。行为克隆是一种十分简单,十分直接的想法。

2024-05-15 01:33:02 759

原创 C C++最全概述、 BGP AS 、BGP 邻居、 BGP 更新源 、BGP TTL 、BGP路由表,2024年阿里+腾讯+快手offer都已拿到

当前所使用的计算机网络中,一个网络,通常用一个IP网段来表示,要将所有网络连接起来,并且要通信,就需要将这些IP网段连接起来,让每个IP网段都知道其它IP网段的信息,就可以实现全网通信。将网络与网络连接起来的设备都是路由器,只要网络中每一台路由器都得知所有的IP网段信息, ,就可以为全网提供数据转发,如果某一台路由器不能得知所有的IP网段信息,也就表示这台路由器所连接的网络不能与其他网段通信。

2024-05-15 01:32:26 542

原创 C C++最全树和二叉树 (C语言)《数据结构与算法》_和树相关的算法c语言,2024年最新C C++面试流程

通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址。设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。要注意的是满二叉树是一种特殊的完全二叉树。

2024-05-15 01:31:49 994

原创 C C++最全C语言实现三子棋(具体步骤和代码)_三子棋代码c语言,2024年最新最新C C++笔试题分享

这里不是棋盘没打印出来,而是我们使用’ '表示空白区域,所以我们看到的棋盘是一片黑色。(2)如果数组中有元素为’ ‘,那么没满,返回0。如果全不为’ ',满了,返回1。4.玩家落子(玩家输入行列坐标的方式来落子),'x’表示玩家落子。6.电脑落子(随机位置落子) ,'o’表示电脑落子。1.推高代码可读性,后续代码中遇到3,方便理解含义。5.判定胜负关系(输,赢,和棋),'q’表示和棋。玩家输入行列坐标表示落子,使用’x’表示玩家落子。电脑随机产生行列坐标,'o’表示电脑落子。1.玩家落子需要在棋盘范围内。

2024-05-14 21:00:54 785

原创 C C++最全C语言基础 - 文件编程 —— 概述篇_文件式编程(1),纯干货

1.stdin: 标准输入,默认为当前终端(键盘),我们使用的scanf、getchar函数默认从此终端获得数据。2.stdout:标准输出,默认为当前终端(屏幕),我们使用的printf、puts函数默认输出信息到此终端。3.stderr:标准出错,默认为当前终端(屏幕),我们使用的perror函数默认输出信息到此终端。2)联合体的大小,是内部成员变量中,最大的那个成员变量的大小。枚举:将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。3)修改其中任意一个成员变量的值,其他成员变量会随之修改。

2024-05-14 21:00:18 592

空空如也

空空如也

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

TA关注的人

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