自定义博客皮肤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)
  • 资源 (3)
  • 收藏
  • 关注

原创 Qt其实时报:一下插件错误无法被载入

帮助->关于插件->将报错的插件取消勾选:

2022-01-26 14:06:10 2503

原创 今天用Qt整合腾讯会议sdk时,编译的程序报:无法启动此程序,因为计算机中丢失ucrtbased.dll。尝试重新安装改程序以解决

百度找了各种资源,下载之后要么不是64位的,要么就绑定各种流氓软件。然后切换思路,在国外Bing上找了一下。说实话,还是国外网络环境好一些:有需要的可以去这个网站下:ucrtbased.dll free download | DLL‑files.com我百度网盘也放了一份,需要拿:链接:https://pan.baidu.com/s/1P9mNzOZYSfpzpIN4DJdNLw提取码:pbag...

2022-01-21 10:58:48 822

原创 Android8.0更换桌面壁纸被拉伸,不居中显示问题

更换壁纸前:随便换一个其它的:再换回来,发现拉伸了,而且没有地方设置居中显示:跟着代码,发现原因:代码位置:framewords/base/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java在你的产品定制目录的system.prop文件,比如device/mediateksample/x20l_wxga_v4_4/system.prop增加配置:r..

2021-11-25 15:11:29 2598

原创 Andorid8.0预装第三方系统应用提示unsatisfiedlinkerror-dlopen-failed-library-not-found

参考google的方案,将相应cpu架构的so文件拷贝到lib目录,然后按照如下的方式编写Android.mk:LOCAL_PATH := $(call my-dir)my_src_arch := arm64-v8a#my_src_arch := $(call get-prebuilt-src-arch, $(my_archs))include $(CLEAR_VARS)LOCAL_MODULE := TongueDiagnosisLOCAL_MODULE_CLASS := APPSLO

2021-11-25 14:05:46 428 1

原创 Andriod8.0去除Launcher谷歌搜索框

最近在做Android平板的系统定制,需要去除Google搜索框,其实很简单:找到代码:./packages/apps/Launcher3/src/com/android/launcher3去掉if (LauncherAppState.isKteLauncherUiAndroidQ())的判断,始终移除mQsbContainer。这里的mQsbContainer就是Google搜索框。如图所示:完事。...

2021-11-18 18:08:38 2041

原创 C++中 typename和class的区别

本质上没有区别。在使用类模板时,typename 或 class 表示定义一个通用的类型说明符。比如编写一个求数组长度的函数:template<class T>intgetArryLen(T&array){returnsizeof(array)/sizeof(array[0]);}上面的代码等效于:template<typenameT>intgetArryLen(T&array){ret...

2021-10-23 22:11:33 653

原创 UVCCamera部分分辨率获取回调帧时运行一段时间卡死奔溃问题

最近在开发USB摄像头相关的项目,在通过camera.setFrameCallback(mIFrameCallback, UVCCamera.PIXEL_FORMAT_YUV420SP/*UVCCamera.PIXEL_FORMAT_NV21*/);获取帧数据时,发现有些分辨率正常,但是2064*1548分辨率程序运行一会儿就会退出。奔溃日志如下:发现这个分辨率和其它分辨率的不同之处在于,1548不能被8整除,并配合arm-linux-androideabi-addr2line..

2021-10-13 10:25:30 1176

原创 Callable接口的使用误解

这个接口不太常有,比起其它几种线程的创建方式,它的其中一个明显特点是可以有返回值。一开始,我就觉得,既然是线程,因为是异步执行,那返回值岂不是没有机会拿到?其实,从返回值类型Future可以看出,它是代表未来的值,使用场景一定是未来的某一个时刻去获取它的返回值。而且Futrue.get()方法在没有获取到返回值时会阻塞当前线程。如果你刚运行线程就尝试获取返回值,这样使用线程没有意义。比如下面这段代码,100的打印在6秒之后,而不是11秒,如果去掉6秒的等待,那就是5秒之后获取到返回值:pa

2021-09-29 10:41:27 134

原创 解决:Android Studio导入moudle时发生的一个错误

A problem occurred evaluating settings 'ApplicationA'.> Project with path ':被导入的 Moudle B' could not be found.* Exception is:org.gradle.api.GradleScriptException: A problem occurred evaluating settings 'TongueDiagnosis'. at org.gradle.groovy....

2021-09-26 17:00:57 2697

原创 进程和线程的区别

看了很多文章,大多数讲的都很抽象,我简单总结一下,帮助你理解:1.在应用层面来看,进程是一个运行中的程序,是系统进行资源分配和调度的一个独立单位,类似于容器,为线程的运行提供运行环境。但是在计算机底层,不管是进程还是线程,最终都会翻译为一堆指令的集合。2.线程没有自己的地址空间,与进程共享内存单元。3.进程之间相互隔离。在没有保护机制的前提下,线程的奔溃会导致所在进程的崩溃。4.线程是操作系统调度的最小单位。5.一个进程可以包含多个线程。一个进程至少需要一个线程。...

2021-09-22 19:19:14 69

原创 用 Kotlin 实现归并排序

package liwen.zhaoclass MergeSort(){ /** * 通过递归,将集合左右两部分不断一分为二,然后进行排序合并 */ private fun dichotomyAndmergeSort(arrayList: ArrayList<Int>,l:Int,r:Int){ if(r-l<=0) return var mid = (l+r)/2 dicho.

2021-09-17 19:01:35 158

原创 Android 通过代码执行shell命令获取电量百分比

shell 执行adb shell dumpsys battery 命令,得到如下信息:获取返回值内容,可以参考这篇文章:https://www.cnblogs.com/lipeineng/p/6078859.html关键之如何获取scale:100中的数字?可以通过正则表达式://获取电量private String getBatteryLevel() { String res = ""; String lines = new ExeCommand().run(".

2020-11-27 16:10:30 817

原创 学习计划

学习计划是一款辅助学习的软件,有了它,你可以详细了解到每天学习的进展和统计,让你坚持到底。功能特色在计划选项卡下,你可以添加和编辑每一天要实现的计划,点击今天标签,可以调出日历控件,查看每一天的计划完成情况。如果想更直观的看到每一天的计划完成情况,可以点击统计选项卡,其中用不同柱状颜色标明每一项计划在过去每天的完成情况百分比。如果当天某一项的训练计划在规定的时间完成,将获得相应的铜、银、金奖杯作为奖励。在成就选项卡中可以查看某年末月某日在哪项任务获得过哪项奖杯。为了更好的帮助大家坚持而完整地完成

2020-09-19 23:03:18 111

原创 scala 简易倒排索引

需求:统计出指定磁盘目录下文件中的单词在哪些文件存在过:文件doc1.txt:hello sparkhello hadoop文件doc2.txt:hello hivehello hbasehello spark文件doc3.txt:hadoop hbasehive scala我的实现方式:package liwen.zhao.invertimport org.apache.spark.SparkContextimport org.apache.spark.Spark

2020-07-21 22:39:24 595

原创 Hadoop HDFS十八问

通过对以下问题的回答,可以检查自己对Hadoop 的 HDFS学习情况有个大致的把握。什么是HDFS?NameNode的作用是什么?从两方面回答。edits_inprogress文件的作用?edits文件发生滚动的三个条件?元数据分别存储在什么地方?DataNode的作用是什么?NameNode如何判断某个DataNode挂掉了?如果检测出某个NataNode挂掉,会做什么处理?心跳信息包括哪些?节点状态包括哪些?什么是安全模式?如何退出?什么是副本放置策略?2.7版本前后的副本放置策

2020-07-20 21:11:18 120

原创 假设有一张表,有字段ID(主键),A,B,C,D;如果字段A的值和字段B的值和上一条(或者某一条)记录都相同的话就算重复,就需要删除其中重复的记录,只保留一条不重复的记录,请问该如何写这条SQL?

创建表CREATE TABLE tmp(id INT PRIMARY KEY,A VARCHAR(5),B VARCHAR(5),C VARCHAR(5),D VARCHAR(5));插入测试数据INSERT INTO tmpSELECT 1 ,‘A1’,‘B1’,‘C1’,‘D1’UNION ALLSELECT 2 ,‘A1’,‘B1’,‘C2’,‘D2’UNION ALLSELECT 3,‘A2’,‘B2’,‘C3’,‘D3’UNION ALLSELECT 4

2020-07-19 09:23:12 458

原创 栈溢出、内存溢出和内存泄漏的区别

这三个概念在初学java的时候经常搞混。今天简单概括一下。栈溢出Java的内存结构中,栈的大小不是无限的。大量的方法调用过程,导致不断压栈最终将栈内存占满,产生StackOverflowError错误,程序直接终止运行。产生栈溢出的场景:比如不合理(递归太深)的递归调用。内存溢出创建了大量线程、对象,导致垃圾回收器来不及回收,分配的堆内存被占满,产OutOfMemoryError错误。产生栈溢出的场景:比如死循环中创建对象。内存泄漏当很多对象使用之后已经没有再使用的必要而没有置为null,

2020-07-15 19:11:10 2029

原创 MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?

这个问题主要考察了以下几点内容:1.Redis的内存淘汰策略。2.Redis的最大内存设置。思路:首先计算出20w数据所需的内存空间,设置最大内存,然后选择合适的内存淘汰策略。内存淘汰策略在Redis的redis.conf配置文件中,列出了8种策略:(1)volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。(2)volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰。(3)volatile-random:从已设置过期时间的数据集中任意选择数据

2020-07-14 20:37:51 3647 2

原创 HBase 启动时日志中出现org.apache.hadoop.hbase.ClockOutOfSyncException的解决方案

今天在安装Hbase时,主节点正常启动,另外两台从节点始终无法正常启动HRegionServer进程,查看日志发现报一些错误:2020-07-11 22:36:46,755 FATAL [regionserver/hadoop01/192.168.43.88:16020] regionserver.HRegionServer: Master rejected startup because clock is out of syncorg.apache.hadoop.hbase.ClockOutOfSyn

2020-07-11 22:56:43 504

原创 java中对[的正则匹配为什么需要用两个\转义?

最近在使用Hive中的Serde时,通过正则表达式对不规则数据进行处理时,需要对文本文件中一行带有中括号的字符进行匹配,例如:那么正则表达式匹配这个 [ 就需要写成 \\[。因为Hive是用Java开发的,Java中一个\代表转义,而在正则表达式中[ ]、{ }都有特殊含义,同样也需要对其进行转义,那么正则表达式对[ ]和{ }字符本身的表示就是 \[ 、 \]、 \{ 、 \}。所以\\[ 第一个\只是对后面\的转义。正因如此,对[ 的匹配需要用两个\。...

2020-07-10 22:04:08 2354

原创 Hive中的表类型

内部表和外部表内部表概念:内部表示Hive中最基本也是最简单的表结构。所谓内部表就是直接在Hive中创建的表,并手动向其中添加数据。案例:建立一张表名为my_internal的内部表:create table my_internal(id int , name string);内部表创建时,将在HDFS的/user/hive/warehouse/下创建同名文件夹:注意事项:如果在Hive中删除内部表,HDFS相应的文件夹也会被一同删除。外部表概念:在Hive中创建表管理HDFS中

2020-07-09 18:17:55 345

原创 10.从零开始搭建基于SpringCloud的京东整站_内容管理微服务_使用RabbitMQ实现商品秒杀

数据准备在后台添加3个秒杀商品,每个秒杀数量为1:商品1:商品2:商品3:在添加商品的同时,将库存记录到Redis: public SysResult addSecKill(Seckill seckill) { try { secKillMapper.add(seckill); //将商品库存在Redis进行记录 redisTemplate.opsForValue().set("shop"+seckill.getId(),secki

2020-07-08 21:01:26 221

原创 Linux 中的Mysql插入中文变为??乱码的解决方案

第一步:通过Mysql客户端登录MySql,通过以下命令查看当前数据库的编码:show variables like 'character_set%';我们发现,character_set_database 和 character_set_server 两者的编码是latin1,如果你查询的结果和这两个位置的展示内容相同,那多半是这个问题导致的。编辑你你的my.cnf文件,在[mysqld]下面增加两句话:character-set-server=utf8init_connect='SET

2020-07-07 19:38:08 384

原创 消息队列_RabbitMQ中的五种工作模式

简单模式每一个队列,只被一个消费端监听

2020-06-26 22:46:44 1263

原创 Linux设置Shell脚本开机自动运行

以CentOS举例。1.编辑xx.sh, 在shell脚本的 #! /bin/bash下,增加如下两行内容:注:不要讲前面的#去掉,这里虽然是注释,但是chkconfig会读取这两行内容,如果去掉#,shell执行时会出错。# chkconfig: 2345 85 15 # description: myservice2345 的解释:等级2表示:无网络连接的多用户命令行模式等级3表示:有网络连接的多用户命令行模式等级4表示:不可用等级5表示:带图形界面的多用户模式85 15 的解

2020-06-26 20:20:37 1975

原创 消息队列_RabbitMQ介绍&安装

消息队列概述    不管是现在还是之前,你肯定有过排队买票的经历。在售票窗口两边竖起围挡,中间留有一人宽的空隙,每个人只能从这个围挡形成的通道到达售票窗口,起到强制排队的效果。试想如果没有这个围挡,在高峰期一群人蜂拥到窗口是什么效果?说不定把窗口挤爆了,最后你争我抢都买不着票。    互联中的很多技术都是对现实世界的抽象,为了应对类似集中访问服务器的场景(比如商品秒杀、抢红包等),使用了消息队列机制。将这些洪水般的请求放到一

2020-06-25 10:48:47 203

原创 CAP理论

概述有的人叫CAP原则或CAP定理,大体上都是一个意思。要理解CAP理论的原理,首页要理解其中三个字母分别代表的含义。C:Consistency的缩写,表示一致性;A: Availability的缩写,表示可用性;P:Partition tolerance的缩写,表示分区容忍度。什么是分区?简单理解就是由于网络波动或网络故障等原因,系统各模块直接无法正常通信的一种彼此隔离的状态。在分布式系统中,C A P三者不能同时满足,最多只能同时满足两种情况:要么AP,要么CP,要么AC,这些是被通过严格理论论

2020-06-25 09:33:56 147

原创 MySql 设置允许远程连接

当通过Sqlyog等工具连接云主机或虚拟机的Mysql时,如果出现:1130-Host "192.168.43.1" is not allowed to connect to this MySql server。说明你的Mysql登录用户未对远程连接授权。需要进行以下几步操作:在云主机或虚拟机登录Mysql:1.update user set host = '%' where user = 'root';以下代表允许root用户远程连接MySql:2.GRANT ALL PRIVILEG

2020-06-24 22:06:27 211

原创 JUC_并发映射

ConcurrentMapConcurrentMap是java1.5提供的一套应对高并发的映射机制,其数据结构是数组+链表。    主要特点:    1.因为其应用了分桶/端锁、读写锁机制以及无锁算法CAS,在并发的情况下还能保住线程的安全。    2.当桶中的节点个数大于8个,将桶中的链表转为红黑树。节点个数小于7个时,转为链表。    

2020-06-23 22:56:34 110

原创 JUC_阻塞式队列

    在讲阻塞式队列之前,首先理解什么是JUC。    JUC是(java.util.concurrent的简称),是java1.5提供的一个处理线程的工具包及其子包。JUC的主要内容包括:阻塞式队列、并发映射、锁、执行器服务、原子性操作。本次给大家首先介绍的就是其中的阻塞式队列。阻塞式队列(Blocking Queue)    顾名思义,“阻塞式”是对“队列”的形容,主语还是“队

2020-06-22 20:19:28 234

原创 9.从零开始搭建基于SpringCloud的京东整站_内容管理微服务_使用Redis集群实现商品缓存

本次目标使用Redis集群实现商品缓存。在实际项目中,对于频繁从数据库获取的热门商品放入缓存,比如Redis或者其它第三方缓存应用,可以极大减少数据库的访问压力。实现过程在数据库中,增加商品是否缓存的字段。在后台商品管理中,添加是否缓存的选项:在添加商品的逻辑中,加入缓存机制:try { articleMapper.addArticle(article); //添加成功后,对信息进行缓存 if(article.getIfCache()==1){ Stri

2020-06-20 21:48:14 145

原创 MyBatis获取插入数据库的ID而不是影响的行数

使用Redis在新增数据时,默认返回的是影响的行数,而不是插入数据库的主键自增的id。映射文件可以通过如下方式配置(将文章对象article的数据录入到数据库):<insert id="addArticle" useGeneratedKeys="true" keyProperty="id"> insert into 表 () values ()</insert>在代码中:articleMapper.addArticle(article);这里需要注意:插入数据

2020-06-20 21:29:51 408

原创 JUC_ExecutorService详解

概述    在对数据库操作时,有连接池的概念,比如:C3P0连接池、德鲁伊连接池。而ExecutorService本质上是线程池。无论连接池也好,线程池也好,它们存在的主要意义就是减少频繁创建和销毁资源的频率,达到提高资源的利用率的目地。    可以将ExecutorService简单称作:执行器服务。主要内容核心线程队列    核心线程队列是ExecutorService最主要

2020-06-17 21:38:55 150

原创 全文检索技术_设置默认分词器

在创建索引之前,打开elasticsearch-head-master的符合查询选项卡。提交类型选择:_template/template_http_request_record提交方式:put提交内容:{ "index_patterns": [ "*" ], "settings": { "number_of_shards": 5, "number_of_replicas": 1, "index" : { "analysis

2020-06-17 18:29:04 372

原创 8.从零开始搭建基于SpringCloud的京东整站_内容管理微服务_使用Elasticsearch实现商品搜索

本次目标后端:使用Elasticsearch实现商品搜索。前端:使用Vue对查询的商品列表进行展示。使用Elasticsearch实现商品搜索配置TransportClient客户端通过TransportClient发起对ES(Elasticsearch的简称)的索引创建、关键词查询等功能。1. 在工程的POM.xm文件中添加相关依赖Jar包。在父级工程中,添加TransportClient的版本管理:<!--Elasticsearch--><dependency>

2020-06-17 08:23:30 300

原创 全文检索技术_IK分词器7.7.1版本的安装

1. 在linux系统中,首先将将IK分词器下载下来wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.1/elasticsearch-analysis-ik-7.7.1.zip将文件加压到Elasticsear安装目录的plugin/analysis-ik下unzip elasticsearch-analysis-ik-7.7.1.zip -d /usr/share/elasticsearch

2020-06-16 19:44:10 535

原创 全文检索技术_设置索引默认分片和副本个数

可以通过elasticsearch-head-master设置。elasticsearch-head-master的安装,可以参见文章:全文检索技术_elasticsearch-head-master插件的下载安装通过浏览器进入,选择复合查询选项卡:查询地址:输入你对应服务elasticsearch的地址。索引模板选择:_template/template_http_request_record提交方式:putjson提交内容:以下的内容提交成功后,将为之后的索引创建默认生成5个分片和一个

2020-06-16 19:11:30 296

原创 全文检索技术_elasticsearch-head-master插件的下载安装

elasticsearch-head-master插件,可以非常方便地查看Elasticsearch的集群信息、节点状态等信息,并提供了通过网页进行索引的创建、关闭、删除等功能。elasticsearch-head-master下载地址:点击进入下载页面1.通过unzip elasticsearch-head-master.zip命令将文件解压。解压成功后,进入elasticsearch-head-master目录。因为该插件是用node.js相关技术开发的,所以需要配置一下node.js相关环境。

2020-06-14 23:17:54 2097

原创 全文检索技术_Elasticsearch下载安装

Elasticsearch官网:https://www.elastic.co/安装流程可以通过两种方式安装。1.CentOS通过yum安装:配置yum源:[elasticsearch]name=Elasticsearch repository for 7.x packagesbaseurl=https://artifacts.elastic.co/packages/7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-e

2020-06-14 22:37:55 139

原创 REST风格介绍

在通过HTTP协议请求一个资源时,除去URL域名和端口剩下的部分,称为URI,意思是统一资源标志符(Uniform Resource Identifier),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行标识的。但是很多时候,我们习惯于通过POST和GET请求,然后搭配不同的URL完成对服务器同一资源的增删改查。这其实是违背了HTTP对URI的定义的。正确的做法是对于相同的资源,就使用相同的URI,对资源的不同操作就使用不同的请求方式(如GET、POST、U

2020-06-14 16:38:53 565

luke-6.0.0-luke-release.zip

luke是用java开发的一款小型工具,不需要安装,解压之后直接点击luke.bat即可运行。可用于查看Lucene创建的二进制索引文件、文档等内容。

2020-06-14

C语言库函数使用大全

C语言库函数使用大全

2011-12-07

C程序100例

C程序100例

2011-12-07

空空如也

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

TA关注的人

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