自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孔晨瑞的博客

记录学习中的一点一滴

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

原创 android学习之旅(11)--Activity与Fragment

ActivityActivity是Android的四大组件之一,在Android应用的开发中占有举足轻重的作用。简单来说我们在屏幕上看到界面就是一个Activity,它表示一个单一屏幕的用户界面。创建Activity(1)新建类继承Activity或其子类(2)在AndroidManifest中声明(注册)(3)创建layout并在新建类的onCreate方法中设置如果是使用继承开发...

2020-01-04 18:38:25 572

原创 android学习之旅(10)--RecyclerView实现ListView

RecyclerViewRecyclerView是Android5.0退出的,它的功能十分的强大,可以用来代替ListView和GridView,而且还能实现瀑布流的布局,更加高级和灵活,提供更为高效的回收复用机制,同时实现管理与视图的解耦和。RecyclerView的使用流程1、添加RecyclerView依赖库RecyclerView属于新增的控件,Android将Recycler定义...

2019-12-10 15:13:13 442 2

原创 android学习之旅(9)---选择和开关按钮

文章目录单选框和复选框示例程序XML文件.java文件运行结果状态开关按钮和开关示例程序XML文件.java文件运行结果单选框和复选框单选框(RadioButton)和复选框(CheckBox)都是继承时了Button类,因此它们都支持Button支持的各种属性和方法。RadioBurron和CheckBox的区别在于:一组RadioButton每次只能选择一个,所以RadioButton需要...

2019-12-08 18:57:17 412

原创 android学习之旅(8)--EditText

文章目录EditText示例程序:登录界面登录UI界面(.XML文件)功能实现(.java文件)按钮样式EditText样式运行结果EditTextEditText和TextView十分的类似,它们公用了绝大部分的XML属性和方法,它们最大的区别在于:EditText可以接收用户输入。(1)inputType设置输入文本的类型,和HTML中input元素的type功能类似。示例程序:登...

2019-12-06 22:11:16 172

原创 android学习之旅(7)---button

文章目录Button普通按钮示例程序1圆角按钮botton_two_style.xml示例程序2描边按钮button_three_style.xml示例程序3按压变色按钮button_four_style.xml示例程序4按钮点击事件.java运行效果ButtonButton继承了TextView组件,它主要是在UI界面上生成一个按钮,该按钮可以供用户点击,当用户点击Button时,会自动触发...

2019-12-06 16:50:55 262

原创 android学习之旅(6)---TextView

文章目录TextView显示文字示例程序给文字添加图标示例程序给文字添加添加下划线示例程序给文本添加中划线示例程序文本框的显示不下内容时的操作示例程序1示例程序2运行结果String.xmlTextViewTextView直接继承了View,从功能上看TextView就是一个没有编辑功能的文本编辑器,主要用于文本内容的展示。TextView有非常多的XML属性,主要使用的有以下几种:(1)...

2019-12-06 13:34:01 248

原创 android学习之旅(5)---布局管理器

文章目录Android布局管理器线性布局管理器(LinearLayout)常用操作表格布局(TableLayout)帧布局(FrameLayout)帧布局示例程序1帧布局示例程序2MianActivity.javacolors.xml相对布局(RelativeLayout)示例程序网格布局(GridLayout)android中常用的布局单位Android布局管理器布局管理器可以管理安卓的应用...

2019-12-04 15:44:12 317

原创 Android学习之旅(4)----自定义View

自定义View文章目录自定义View示例程序:简单的涂鸦小程序MainActivity.javaCustonView.javalinearlayout_layout.xmlarrays.xml当Android提供的View不能满足我们的开发需求时,我们可以通过继承View来实现自定义组件。一般情况下可以重写以下方法:构造函数需要通过构造函数告诉编译器,组件依赖在那个父窗体上。onFin...

2019-12-03 16:48:53 152

原创 Android学习之旅(3)---视图(View)组件

视图(View)组件文章目录视图(View)组件示例代码1 将用户输入在屏幕上的文字显示出来(使用java代码开发UI界面)MainActicity.java示例程序2 简单的图片浏览器(通过XML和Java共同设计UI)acticity_main_linearlayout.xmlMainActicity.java附加(java练习题)View组件是android中所有UI组件的基类,即我们在...

2019-12-02 22:46:58 208

原创 Android学习之旅(1)---XML

XMLXML指的是Extensible Markup Language即可扩展标记语言,一般用来传输和存储数据。什么是XML(1)XML指可扩展标记语言(2)XML是一种很想HTML的标记语言(3)XML一般用来传输数据,而不是显示数据(4)XML被设计为具有自我描述性(5)XML是W3C的推荐标准XML和HTML之间的差异XML设计用来传输和存储数,其焦点是数据的内容。...

2019-12-01 18:14:34 123

原创 Android学习之旅(2)---基础知识

文章目录android体系结构Linux kernelAndroid系统运行层C/C++库Android RuntimeJava Api框架层Applications(应用程序)框架层Android Studio的工程目录android体系结构Android系统的底层是基于linux系统(linux2.6内核)之上,和其他的操作系统一样Android也采用分层的架构,从底到高分别是:Linux...

2019-11-30 17:55:58 357

原创 QT项目--简单的数据库可视化系统

简单的数据库可视化系统文章目录简单的数据库可视化系统项目截图项目代码custommessagebox.hcustommessagebox.cppdatabases.hdatabases.cppdblogin.hdblogin.cppmain.cpp项目功能:用户可以通过界面互动的方式对数据库(mySql)进行查询,更新,删除,插入的操作。项目简介:利用qt框架库+c++语言实现,用户在使用前...

2019-11-06 21:54:36 3340 6

原创 算法--单调队列

单调队列文章目录单调队列定义:使用方法:核心代码列题1:滑动窗口(acwing154)题目分析:代码:列题2:最大子序和(acwing135)题目分析:代码:定义:单调队列就是具有单调性的队列。分为:单调递增和单调递减两种。因为其具有单调性所有,单调队列可以快速的找出当前队列中最大或最小的元素。使用的频率不高。使用方法:遍历数组中的每一个元素,如果该元素的值大于(小于)当前队尾元素的值进...

2019-10-22 16:51:18 422

原创 Qt项目----基于Tcp协议的局域网内的五子棋对战

一、局域网内的五子棋对战平台项目功能: 模拟 QQ 游戏大厅,实现局域网内的五子棋对战。项目介绍: 该项目是在 windows 系统环境下,利用 qt 图形框架和 c++语言编写的。分为服务器和客户端两部分,服务器端的作用是负责记录各个客户端的状态;客户端则是为用户提供登录和游戏等功能。系统功能: (1)系统登录校验、(2)用户信息显示、(3)文字聊天、(4)人机对战、(5)网络对战、...

2019-09-08 20:19:59 912 6

原创 linux学习之旅(32)----c语言实现局域网内的文件上传和下载(模拟ftp)

二、局域网内的文件共享系统项目功能: 模拟 FTP 的匿名模式,实现局域网内的文件共享。项目介绍: 该项目是在 linux 系统环境下,利用 c 语言和 linux 系统函数编写的,是 C/S 结构。用户利用客户端可以将本地的文件上传到服务器中或将服务器上的文件下载到本地,同时也可以查看服务器中的文件有哪些,以便用户在下载时选择。系统功能: (1)上传/下载文件(支持同时上传/下载多个文...

2019-09-08 20:19:31 930 1

原创 网络编程复习

WEB编程文章目录WEB编程HttpHttpHttp1.0的缺陷Http1.0、Http1.1和Http2.0Http1.0和Http1.1HttpsSSL和TLs加密算法SPDYHttp2.0session、cookie为什么会有session、cookie?cookiesession(会话)session和cookie的区别Get和PostGet和Post的区别?Get和Post的误区(1)...

2019-08-31 18:58:07 274 4

原创 数据库基础(2)

数据库复习(进阶)文章目录数据库复习(进阶)数据库的索引的数据结构为什么采用B+树?数据库回表?非聚集索引一定需要回表吗?覆盖索引创建索引时需要考虑的因素联合索引索引下推(Index Condition Pushdown Optimization)查询器优化查询的执行的流程Mysql客户端与服务器的通信特点视图数据库的索引的数据结构为什么采用B+树?(1)哈希索引适合等值查询,但无法进行范围...

2019-08-25 19:44:42 144

原创 数据库基础(1)

数据库基础一、什么是数据库简单来说,数据库就是用来存储计算机数据的仓库(就和水库是存储水的一样),其存储的本质还是文件,存储在其中的数据按一定数据结构来组织。1、数据库的特点(1)数据库依赖数据结构来组织数据,所以数据库十分的条理化。(2)可以实现结构化查询,方便数据的管理2、数据库模式的分类数据库一般分为两类:(1)关系型数据库(mySql) (2)非关系型数据库(redis)...

2019-08-22 21:16:57 226

原创 RocketMQ原理

一、消息队列1、什么是消息队列消息队列是一种进程间或是统一进程的不同线程的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列的记录包含有详细的说明数据,包括发生的时间,输入设备的种类,以及特定的输入参数,也就是:消息的发送者和接收者不需要同时与消息队列交互。消息会保存在队列中,直到接收者取回它。 ---维基百科这时一个比较官方的定...

2019-08-11 13:35:09 780

原创 git的常用操作

一、Git简介1、什么是gitGit是一个开源的分布式版本控制系统,可以有效、高效地处理从很小到非常大的项目版本管理,也是目前世界最先进的分布式版本控制,是由Linux的创始人为了管理Liunx的内核时开发出来的。廖雪峰老师GIT教程Git支持的功能:(1)协同修改 可以多人同时修改服务器上的同一个文件(2)数据备份 不仅可以保存目录和文件当前状态,还能保存每一个提交过的历...

2019-08-01 23:40:41 208

原创 平衡二叉树(AVL树)---四种插入方法

平衡二叉树又称为平衡二叉查找树(Self-Balancing Binary Search Tree),或称为AVL树。一、平衡二叉树的定义它是一棵空树或者任意的左右子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,将这样的二叉树称为平衡二叉树。最小二叉平衡树节点总数:F(n)=F(n-1)+F(n-2)+1。(*其中:1为根结点,F(n-1)为左子树的节点数量,F(...

2019-07-08 23:31:48 3121

原创 二叉查找树(BSTree)

难点:二叉查找树的删除二叉查找树概念:二叉查找树:要么为空树,若二叉查找树不为空,则需要满足以下性质:(1)左子树上所有的节点值均小于或等于其根结点的值。(2)右子树上所有的节点值均大于或等于其根结点的值。(3)左右子树也一定分别为二叉查找树。特点:(1)将数据分为左右子树两部分,加快了查找的速度。(2)中序遍历的结果为有序的。优点:(1)查找的时间复杂...

2019-07-02 23:06:36 910

原创 计算机网络复习

复习点:(1)Tcp如何保证可靠性 (2)HTTP和HTTPS (3)HTTP状态码 (4)IP地址和MAC地址 (5)OSI七层模型和TCP/IP层模型(6) 在浏览器中输入www.baidu.com,按下回车,到浏览器显示百度页面的过程 (7)HTTP1.0和HTTP1.1的区别 (8)阻塞、非阻塞、同步、异步一、Tcp如何保证可靠性?发送确认,超时重传,划动窗口(1)序列...

2019-06-22 21:07:22 221

原创 线程池设计和实现

线程池这个概念在之前的文章中曾经多次谈及过,但每次都是浅尝辄止,从来没有实现过。因为感觉这个东西很高深莫测,觉得自己很难实现。但是通过这几天的研究,决定在这篇文章中尝试实现一下线程池,如果大家没有看到这篇文章,那就是说明实现失败了。什么是线程池?线程池的概念在之前的文章中曾经多次的讲解过,线程池就是为了解决线程在程序中因频繁创建和销毁而消耗大量时间而存在的。它可以有效的控制程序中线程的数量...

2019-06-01 16:40:40 823

原创 条件变量

条件变量使线程同步中一个很重要的概念,在之前的文章中我们也多次提及过。条件变量条件变量(cond)使在多线程程序中用来实现“等待--->唤醒”逻辑常用的方法,是进程间同步的一种机制。条件变量用来阻塞一个线程,直到条件满足被触发为止,通常情况下条件变量和互斥量同时使用。一般条件变量有两个状态:(1)一个/多个线程为等待“条件变量的条件成立“而挂起;(2)另一个线程在“条件变量条件成立时...

2019-06-01 14:26:46 4292 4

原创 Linux基础复习(3)

复习点:(1)页面置换算法 (2)Linux锁机制 (3)线程池 (4)内存溢出和内存泄漏一、页面置换算法1、最佳(Optimal)置换算法这是一种理论上的页面置换算法,它的思想是:所选择淘汰的页面是以后用不使用的,或是在未来最长时间内不会被再次访问的页面。采用最佳置换算法可以保证获得最低的缺页率,但是由于不能确定哪一个页面在以后最长时间内不被访问,所以该算法只能存在于理论中。...

2019-05-27 22:07:32 217

原创 linux基础复习(2)

复习点:(1)linux虚拟地址空间 (2)缺页中断 (3)fork (4)exit、_exit和return的区别 (5)并发和并行 (6)内存对齐问题一、linux虚拟地址空间在程序运行时,每个进程需要占用4G的内存空间。PC的物理内存也就不过4G或8G,那在多进程程序中如何分配内配那?因为多进程中每个进程时相对独立的,所以无法确定什么时候那个进程需要内存...

2019-05-26 22:55:20 210

原创 Leetcode系列(1)

一、 电话号码的字母组合leetcode第17题:给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序...

2019-05-25 16:50:06 154

原创 牛客剑指offer系列(1)----斐波那契数列及其变种

一、斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>...

2019-05-24 18:04:58 412

原创 Linux基础复习(1)

复习点:(1)进程和线程区别 (2)进程/线程间的通信方式 (3)进程/线程的同步和互斥(4)死锁 (5)多进程/多线程程序的调试 一、进程和线程的区别进程:进程是对运行是程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发。线程:线程是进程的子任务,是cpu调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;...

2019-05-22 19:43:03 265

原创 设计模式(3)---观察者模式

观察者模式当对象存在一对多的关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它依赖对象。观察者模式属于行为型模式,又被称为发布-订阅模式、模式-视图模式、源-监听器模式或从属者模式。观察者模式中分为目标和观察者,目标可以被多个观察者所观察,目标的状态变化发生变化时,观察该目标的所有观察者将得到通知,通常被用作事件的实时处理。这种模式类似于电影...

2019-05-18 18:52:57 128

原创 设计模式(2)----工厂模式

工厂模式简介工厂模式解决的问题是:接口选择问题,即让对象自己决定调用什么构造函数来实例化自己,对象本身并不关心该构造函数是什么,工厂模式分类(1)简单工厂模式(2)工厂方法模式(3)抽象工厂模式简单工厂模式简单工厂模式是工厂模式中最简单的一种,它使用了最简单的方式隐藏了创建对象的细节,一般需要告诉工厂类所需要的类型,工厂类就会调用相应的产品类为用户产生相应的产品。用户使...

2019-05-18 12:48:10 92

原创 c++基础复习(5)---STL

STL简介STL(Standard Template Library),即标准模板库。该库提供了常用的数据结构和算法。STL三种基本组件:1、容器(container):容器是容纳、包含一组元素的对象。容器类库包括7种基本容器:向量(vector)、双端队列(deque)、列表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap)。其中...

2019-05-16 22:59:57 183

原创 c++基础复习(4)

复习点:一、strlen和sizeof 二、strcpy和memcpy 三、构造函数 四、深拷贝和浅拷贝 五、程序的编译过程 六、c和c++的区别 七、explicli一、strlen和sizeof(1)strlen是库函数;而sizeof是运算符。(2)strlen操作的对象只能是字符指针;而sizeof则支持全部的类型,包括类。(3)strlen在运行...

2019-05-10 18:57:58 225

原创 c++基础复习(3)

复习点:一、封装、继承和多态 二、重载、重写(覆盖)和隐藏 三、虚函数 四、malloc、free和new、delete的区别封装、继承和多态1、封装封装是面向对象方法的重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并且尽可能隐藏对象的内部细节。结合到c++中,这个独立的系统单位就是类,类需要有高聚合和低耦合性,即内部的属性和服务尽可能的联系紧密,而对外部只提供一...

2019-05-09 23:11:45 147

原创 c++基础复习(2)

复习点:一、c++中四种cast转化的区别 二、c++中指针和引用的区别 三、智能指针 四、函数指针和指针函数一、c++中的四种cast转化它们的使用方法都是类似:static_cast<int>(z)1、const_cast(常量转化)用于将const变量转化为非const。这里需要注意:如果一个变量被定义为const,通过const_cast转化函数转化后,这个...

2019-05-08 23:18:41 182

原创 c++基础复习(1)

复习点:一、虚拟内存 二、static关键字 三、const关键字(用法和define的区别) 四、mutable关键字虚拟内存虚拟内存是内存管理的一种方式,主要是为了解决“大作业”无法同时装入内存的问题。它将多个物理内存碎片和部分磁盘空间重定向为连续的地址空间,以此让程序认为自己拥有连续的可用内存,当物理内存不足时,操作系统会根据页面置换算法将程序需要的数据交换到内存中。...

2019-05-07 18:37:11 173

原创 设计模式(1)----单例模式

什么是设计模式?设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性,让代码更容易的被他人理解,保证代码的可靠性。设计模式使代码编写真正的工程化;设计模式使软件工程的基石脉络,如同大厦结构一样。设计模式(Design pattern)代表了最佳的实践,通常被有检验的面向对象的软件开发人员所采用。设计...

2019-05-06 20:37:01 170

原创 linux学习之旅(32)---I/O 多路复用(epoll)

epoll的产生上一篇文章中我们讲解了多路I/O复用中的select、poll,它们存在的主要问题有两个:(1)线程不安全(2)函数不能告诉应用程序具体需要处理那一路I/O,需要应用程序轮询判断。基于select和poll存在的这些问题,于是在poll出现的5年之后,也就是2002年,大神Davide Libenzi实现了epoll。epoll是I/O多路复用的最新一个实现,epo...

2019-04-18 23:03:17 158

原创 Linux学习之旅(31)---I/O多路复用(select、poll)

I/O多路复用的引入我们知道在C/S模型中,通常都是一个服务器和多个客户端的,那么这样就无可避免的产生了这样一个问题,就是服务器如何管理多个客户端。这里包括处理客户端的链接,处理客户机的数据传输等。每个客户端的链接和数据什么时候来是根本无法确定的,那该怎么办那?这时就产生了三种方法:(1)将read、accept等阻塞函数修改为非阻塞函数,即轮询模型。(2)使用多进程或多线程,将每...

2019-04-17 23:08:32 188

DataBases.rar

项目功能:用户可以通过界面互动的方式对数据库(mySql)进行查询,更新,删除,插入的操作。 项目简介:利用qt框架库+c++语言实现,用户在使用前需要先登录系统(用户登录后,信息会自动记录在配置文件中,之后会自动填写),然后选择对应的操作,之后在弹出的对话框中输入对应的信息即可。系统会根据用户输入的内容自动生成sql语言并自动去执行,最后将执行结果返回。

2019-11-06

空空如也

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

TA关注的人

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