自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

草帽小子的博客

Don't give up anytime!

  • 博客(220)
  • 资源 (3)
  • 收藏
  • 关注

转载 最重要的十年怎么做才能让自己有最好的成长

前言从 20 岁到 30 的十年,有的人在念书,有的人初涉职场拼搏,有的人在蹉跎岁月、很多时候,我们在浪费了这最宝贵最美好最精力旺盛的十年之后,才醒悟过来:十年,不长但也绝对不短的时间,竟被我们的无知碾压而过,而我们什么都没做成,自此 30 岁以后,我们过得苦逼又压抑,还哀叹命运不济。如果再给你 20 岁到...

2019-02-28 11:39:18 174

原创 input输入系统

input是Android中重要的系统服务之一,专用于处理输入设备的各种外界输入信号。首先输入设备包括屏幕,触摸,键盘,鼠标,等等。其中最常见的应该就是触摸屏幕了,那么是怎么处理的呢?这些硬件被操作后,会触发对应的硬件驱动,硬件驱动收到事件后,会将相应的事件写入到对应的输入设备节点,Input系统会去从设备节点读取事件,再一层一层往上传递,一直传递到对应的Activity。下面该图是Input输入系统和WMS以应用进程之间的调用关系图。该图参考httpsInput的基本组成部分。...

2022-07-31 18:25:35 1030 1

原创 ndk-build开发JNI

JNI开发1 创建一个java文件package com.example.jni;public class JNITools { static { System.loadLibrary("jniTest"); } public static native int add(int a,int b);}2 生成class文件通过android studio直接编译生成class文件,位于app\build\intermediates\javac\debu

2021-12-11 20:44:32 2072

原创 数据结构之AVL树

AVL树平衡二叉树和AVL平衡二叉树的定义:对于任意一个节点,左子树和右子树的高度差不能为超过1AVL树:既是平衡二叉树又是二分搜索树的树是AVL树(保持平衡的目的是为了防止二分搜索树退化成链表)AVL树是一种最为经典的平衡二叉树满二叉树是一种平衡二叉树完全二叉树是平衡二叉树线段树不是一个完全二叉树,但是一个平衡二叉树判断是否是二分搜索树//判断是否是二分搜索树public boolean isBST() { ArrayList<K> keys = new

2021-12-09 22:15:13 453

原创 数据结构-线段树

9、线段树为什么使用线段树最经典的线段染色问题什么是线段树线段树中每个节点存储的均是一个区间内的数字总和叶子节点均在最后一层叶子节点不一定都在最后一层平衡二叉树平衡二叉树中:二叉树中最大的深度和最小的深度之差最大等于1线段树是平衡二叉树堆也是平衡二叉树线段树的实现线段树的理论基础(将线段树看成是一个满二叉树,将有n个元素的数组构造成一个含有4n个节点的线段树)import java.util.Arrays;public class SegmentTr

2021-09-19 22:19:44 151

原创 数据结构-优先队列和树

8、优先队列和树优先队列普通队列:先进先出,后进后出优先队列:出队顺序和入队顺序无关,和优先级有关为什么使用优先队列动态选择优先级最高的执行任务关键词:动态优先队列实现接口优先队列的实现方式:普通顺序结构:数组顺序线性结构:已经排序好的堆:最大堆或者最小堆优先队列的实现(基于堆)public class PriorityQueue <E extends Comparable<E>> implements Queue<E> {

2021-09-18 22:39:33 260

原创 数据结构-Set和Map

7、集合和映射(set and map)集合Setvoid add(E) 添加一个元素,不能添加重复元素void remove(E) 删除元素boolean contains(E) 是否包含某元素int getSize() 尺寸大小boolean isEmpty() 是否为空典型应用客户统计词汇量统计基于二分搜索树实现集合基于链表实现集合二分搜索树和链表均属于动态数据结构集合的时间复杂度分析基于链表构成的集合增 add O(n)删 remove O(n)

2021-09-17 23:16:43 404 2

原创 数据结构-二叉树

6、树结构6.1 为什么需要研究树结构树结构本身就是一种天然的组织结构高效将数据使用树结构存储后,出奇的高效二分搜索树平衡二叉树:AVL,红黑树堆:并查集线段树:字典树6.2 二分搜索树6.2.1 二叉树和链表一样,也是动态数据结构class Node{ E e; Node left;//左孩子 Node right;//右孩子}二叉树具有唯一根节点二叉树每个节点最多有两个孩子每个孩子最多有一个父亲节点二叉树具有天然递归结构每个节点的左子树也是二叉树每

2021-09-16 22:37:07 74

原创 数据结构-链表

4、链表4.1 线性数据结构底层依托静态数组,靠resize解决固定容量问题动态数组栈队列真正的动态数据结构链表,不需要处理固定容量大的问题4.2 链表的重要性更深入的理解引用(或者指针)更深入的理解递归最简单的动态数据结构辅助组成其他数据结构4.3 链表数据存储在节点Node中class Node{ E e; Node next;}丧失了随机访问的能力数组和链表的对比数组最好用于索引有语义的情况,最大的优点是支持快速查询链表不适合具有

2021-09-14 22:33:30 80

原创 数据结构-栈

3、栈3.1 定义一个栈接口public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e); E pop(); E peek();}3.2 实现接口public class ArrayStack<E> implements Stack<E> { public Array<E> array; publi

2021-09-13 22:38:22 55

原创 2021-09-11

CREATE TABLE qcc.new_table (id INT NOT NULL AUTO_INCREMENT,employeeId VARCHAR(45) NULL,deviceName VARCHAR(45) NULL,originalOwner VARCHAR(45) NULL,owner VARCHAR(45) NULL,roomNumber VARCHAR(45) NULL,withCamera VARCHAR(45) NULL,deviceClassify VARCHAR(

2021-09-11 16:34:41 60

原创 数据结构-队列

2 队列队列是一种先进先出的数据结构First in First out2.1 数组队列的实现Queuevoid enqueue(E),队尾添加数据,复杂度O(1)E dequeue(),队首去除数据,复杂度O(n)boolean isEmpty()int getSize()2.2 定义队列接口public interface Queue<E> { int getSize(); boolean isEmpty(); void enqueue(E

2021-09-07 23:31:14 286

原创 数据结构-数组

1、数组1.1 使用java中的数组public class Test{ public static void main(String[] args){ int[] arr = new int[10]; for(int i=0 ; i<arr.length ; i++){ arr[i] = i; } int[] scores = new int[]{100,99,88}; f

2021-09-05 17:43:21 262

原创 MySQL语法

数据库选择语句USE sql_store;SELECT *FROM customers– WHERE customer_id = 1ORDER BY first_name选择子句SELECT first_name,last_nameFROM customersDISTINCT:选择不重复SELECT DISTINCT first_nameFROM customers;AS:命名一个列进行显示SELECT price price*10 AS ‘new price’FROM cu

2021-08-23 21:53:04 374 1

原创 Java之IO流解读

Java IO流编程语言的IO类库经常使用流这个抽象的概念,它将所有的数据源和数据接收器表示能够产生或者接受数据的对象。在java中,Java中IO类库不仅能面向字节的类库,而且还有面向字符和基于Unicode的类。IO流屏蔽了实际的IO设备中处理数据的细节:1、字节流对应原生的二进制数据2、字符流对应字符数据,它会自动处理与本地字符集之间的转换3、缓冲流可以提高性能,减少底层API的调用次数来优化IOJava中,将IO类库分为两种,分为输入和输出两种,所有与输入有关的类继承于InputStre

2020-09-06 19:18:40 2483

原创 java类之初始化解读

java初始化成员初始化java中的局部变量是必须要进行初始化,如果在没有进行初始化的前提下进行使用,会导致编译不通过,因为不会为局部变量赋予默认值.如下列情况,就会导致编译不通过.void { int i; i++;}这种方式也是逼迫程序员提供一个默认值,否则可能会导致程序员遇到一些关于局部变量的Bug问题.相反,编译器会为成员变量赋予默认值,这是与局部变量所不同的一个地方.成员变量的默认值是多少呢?public class InitialValues { bool

2020-08-02 22:24:37 256

原创 Android事件之浅析

Android事件基于监听的事件处理事件源:事件发生的产所,一般为各个控件事件:在事件源上发生的事情,如单击,双击等等事件监听器:负责监听事件源发生的事件,并对各种事件进行响应基于监听的事件处理是一种委派式的事件处理方式,在这种处理方式中,事件源将整个事件处理委托给事件监听器进行处理,事件监听器调用相应的方法进行处理。委派式的处理方式将事件源和事件监听器进行分离,从某种程度上来说提高了程序的可读性。基于内部类的事件监听方式在类内部写一个监听器类,并实现监听接口。如下所示:public Lis

2020-08-01 11:07:11 153

原创 java异常处理机制之解读

java异常基本概念java 程序运行发生了错误,导致程序不能按照预期的进行下去。这时候java异常机制就是为了程序不发生崩溃而提供的一种处理方法,使得在发生异常时,不再按照原先的逻辑进行下去,而是按照异常的处理逻辑执行下去。程序发生的错误可能包括以下几种:1、程序在编译的时候发生错误,这种错误一般由于没有按照语法规则要求导致的常见错误2、程序在运行时发生的错误,这种错误一般在程序的实现时不可见的,但是在程序执行的时候可能会发生的错误异常类型java中所有的java异常类型都是继承于Thro

2020-08-01 11:03:45 191

原创 Android异步消息处理机制

Android多线程1 多线程的使用Android 主线程: Android主线程也可以称为UI线程,其实就是ActivityThread,该主线程有点类似于Java中的main函数。Android中的主线程用于处理四大组件的稳定运行和一系列事件的处理,比如系统事件,用户输入事件,视图的渲染等等。因此,为了减轻主线程的负担,Android中将一些任务量大的工作单独开辟线程去跑。子线程:为了减轻主线程的负担,将一些耗时的操作放在子线程中运行,比如访问数据库等等的一些耗时操作,如果将这些耗时操作放在主

2020-07-12 16:07:46 402

原创 Android之通知的使用-Notification

通知基本概念Notification是一种Android中的通知状态栏,其设置在屏幕的顶部,当我们往下手动滑的时候,可以看到具体的通知内容.当有通知来的时候,如果不往下拉的时候,通知会是一个小图标呈现在手机顶部的状态栏.通知的使用涉及到的类:Notification和NotificationManagerNotification:用于设置通知中内容的类NotificationManager:用于管理通知的类用法:获得NotificationManager对象NotificationMa

2020-07-05 22:12:07 401

原创 什么是面向对象?

什么是面向对象学过Java的都知道Java是一门名副其实的面向对象的语言,在Java中,我们可以通过实例化轻轻松松new出来一个对象。那么到底什么是对象,这个对象是从何而来呢?在这里首先要讲一讲另一种编程思路,就是面向过程。面向对象出现之前,编程都是基于面向过程的,比如说实现一个计算一个等差数列1+2+3....+100的总和,那么我们会根据等差数列的公式,按照公式的思路一步一步实现函数,并进行...

2020-04-16 21:10:05 182

原创 基本数据结构之栈

基本数据结构之栈前言继前一篇文章后面,本文这里聊一聊一种非常重要的数据结构—栈,提到栈大家都会想到先进后出或者后进先出。正是因为栈的这种特点,使得栈这种数据结构具有非常广泛的应用,比如在浏览器进行上网时,当你需要撤回到前面一个网页时,你需要点击后退键返回到上一级网页进行浏览;当你使用PPT、Word进行图像或者文字处理时,如果出现了错误,需要前面的结果时,这时候也需要撤回功能;此外,还有很多...

2020-04-14 17:20:59 279

原创 java视频学习—基础知识

1 两种核心机制jvm虚拟机机制垃圾回收机制java语言的特点跨平台性,在每个操作系统均安装对应版本的jvm,java程序运行在jvm上,jvm将程序翻译成计算机可以运行的指令2 垃圾回收垃圾回收是自动的,开了一个系统级线程,检测哪些线程是不用的,并对其进行回收(这种带来的优势是不会忘记回收,缺点是回收不及时)3 java的jdk jre jvmJDK(java...

2020-04-10 20:29:06 164

原创 java核心技术读书笔记—继承

继承1 类、超类及子类1.1 定义子类在java中,使用关键字extends进行继承,具体实现方式如下,这里Manager表示子类,Employee表示超类,下面所示关系是类Manager继承于类Employee。pubic Manager extends Employee{ }通过这种继承的方式,子类可以继承很多超类中允许继承的方法和变量,因此子类定义的对象能够直接使用这...

2020-04-05 10:03:21 160

原创 Linux环境下文件与目录

Linux文件权限与目录配置1 使用者与群组文件拥有者Linux是多人多任务的系统,能够满足多人同时使用一部主机进行工作。与此同时需要注意的是,每个人的文件具有一定的保密性,我们不想让别人可以查看我们的文件,因此文件拥有者的概念就很重要。通过文件拥有者这个角色可以将文件设置成只有文件拥有者具有查看的权限,其他人就看不了该文件。假设某公司有两个团队,分别是团队A和团队B,团队A中有成员cl...

2020-04-02 13:57:37 271

原创 java核心技术读书笔记—类与对象

类与对象1 面向对象1.1 类类是构造对象的模板。由类构造对象的过程称为创建类的实例。类具有一下三种特性:多态性封装性继承性1.2 对象对象主要存在三种特性,分别是:对象的行为对象的状态对象标识1.3 类之间的关系在类之间依然存在一些关系,最常见的关系包括以下几种。依赖关系(“uses-a”)聚合关系(“has-a”)继承关系(“is-a”)依赖:在一...

2020-03-31 16:30:00 133

原创 java核心技术读书笔记

java的基本程序设计结构1. 数据类型1.1 整型java的整型共包括四种类型,分别是int short long byte 这四种,这四种数据类型的占用内存与数值范围如下图所示。1.2 浮点型在java中总共提供两种浮点数据类型,分别是float double 这两种数据类型。具体的占用内存情况与数值范围如下图所示。1.3 Unicode和char类型char类型原本用于表...

2020-03-30 19:42:19 397

转载 QMutexLocker

QMutexLocker用来简化互斥量的锁定和解锁操作。在复杂函数或者异常处理代码中互斥量的锁定和解锁容易出错和难以调试。QMutexLocker就可以应用于这些情况,确保互斥量状态总是定义明确。应该在程序中QMutex需要被锁定处创建QMutexL...

2020-01-08 22:36:45 694

转载 QWaitCondition

QWatiConditio...

2020-01-08 22:07:55 358

转载 QSemaphore

QSemaphore 类例子 原创 ...

2020-01-08 22:05:55 263

原创 取double数据位上的数据

取double数据位上8位的数据:思路:将数据右移8位,每移动8位,将需要的数据位移动到最低位,与0x00FF相与得到的结果为该8位上的数据。代码:#include<iostream>#include<cmath>using namespace std;int main(){ double data = 47289.0; unsigned int...

2020-01-08 16:30:07 327

转载 QSplitter、QDockWidget、QToolBar、布局

最近使用Qt完成一个页面,里面很对东西都是自己摸索的,现在网上信息太分散,之前想做子窗口嵌套的效果,在网上找了好长时间都没有发现有人用QDockWidget,我很纳闷。我做一下整理,和大家分享。定义一个Qwidget * widget,把mainsplit...

2020-01-03 21:31:26 573

原创 QT/MFC获取控件句柄显示图像

MFC中获取句柄显示图像 void ShowImage(IplImage* img, UINT ID) //在picture控件中显示图片的代码{ CDC* pDC=GetDlgItem(ID)->GetDC(); HDC hDC=pDC->GetSafeHdc(); CRect rect; GetDlgItem(ID)->GetClientRect(&am...

2020-01-03 14:10:45 1200

转载 MFC/QT 获取控件句柄实时显示图像

MFC/QT 在控件上实时显示图像 原创 ...

2020-01-03 14:05:32 889

转载 C++面试题之虚函数(表)实现机制

前言大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过...

2019-09-16 08:56:36 370

原创 高精度整数加法

题目描述:在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-2^31~2^31-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。如下:9876543210+1234567890=?让字符串num1="9876543210",...

2019-08-25 09:32:46 585

转载 数字图像处理:形态学操作、腐蚀、膨胀、开运算、闭运算

在图像处理技术中,有一些的操作会对图像的形态发生改变,这些操作一般称之为形态学操作(phology)。数学形态学是基于集...

2019-08-22 16:08:40 5370 1

原创 合法IP

题目描述:现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。现在需要你用程序来判断IP是否合法。示例:输入1:10.138.15.1输出1:YES...

2019-08-21 11:41:53 237

原创 密码强度

题目描述:密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。一、密码长度:5分:小于等于4个字符10分:5到7字符25分:大于等于8个字符二、字母:0分:没有字母10分:全都是小(大)写字母20分:大小写...

2019-08-21 10:29:11 386

原创 求最大连续BIT数

题目描述:功能:求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1输入:一个byte型的数字返回:对应的二进制数字中1的最大连续数示例输入13输出12输入27输出23代码:#include <iostream>using namespace std;int...

2019-08-21 09:40:42 99

彻底搞定C指针(完全版·修订增补版)

姚云飞先生的大作《彻底搞定 C 指针》是互联网上中文 C/C++界内为数不多的专门阐述 C 指针问题的优秀文献资源之一。

2019-03-05

空空如也

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

TA关注的人

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