自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构中的排序

前言:程序代码的高效运行离不开数据结构,在数据结构中排序显得格外重要,一个好的排序算法能够大幅度提高排序的效率,节约内存资源、提高我们算法的可用性。1、什么是排序简单来说,所谓排序就是将杂乱无章的数据整理成有序的序列的过程,例如//排序前5、7、8、3、1、4、9、6、2//排序后1、2、3、4、5、6、7、8、9看起来是不是舒服多了呢,没错就是排序,是不是 so easy2、排序的分类当然,我们说的排序不可能只有一种,排序算法大致分为以下几种:1、插入类排序2、交换类排序.

2020-11-29 16:17:43 15

原创 数据结构之线性表

一、线性表双链表删除元素删除元素和 增加元素的大忌就是导致引用连断链s->next = p->next;s->prior = p;p->next = s;s->next->prior = s;双链表删除元素s->prior->next = s->next;s->next->prior = s-prior;f...

2020-04-06 15:38:50 182 2

原创 NDK动态注册

关于NDK想必大家都了解一点如静态注册 //动态注册 public native void registerJava01(String text);这是一个最基本的Native函数那么我们之前采用的静态注册就是在c/c++文件中填写extern "C"JNIEXPORT void JNICALLJava_com_example_myndk_MainActivity_r...

2020-02-27 20:37:17 74

原创 删除链表中指定的元素

本段代码实现了1 新建链表2 输出链表3 删除链表中的指定元素#include <stdio.h>#include <stdlib.h>#include<malloc.h>#include "test1.h"/*创建一个结构体*/typedef struct Node { int data;//数据 struct Node *nex...

2019-11-27 18:43:08 402

原创 Android开发无线调试

很多目前还在用数据线进行调试,但是其实可以进行无线调试的,今天就来介绍下,看到网上很多写的都不怎么正确,很乱,而且有的还不管用,请读者按照以下步骤操作环境:Android studio 3.4.1 设备: Android 9.01 打开开发者选项,打开USB调试2 是用USB命令F:\resource\HomeApp\android\demo>adb usbrestarting...

2019-08-19 09:14:07 184

原创 Java反射,带你全面解析Java反射

一、前言相信很多没有听说过反射,这也很正常,因为在一般的开发中反射基本上用不着、但是我再Android开发中经常涉及到内存优化、性能优化的问题,需要使用反射,那么今天带给大家一顿丰富的Java反射大餐。二、反射定义反射就是在运行中获取你想获取的一个类中的类实例、方法、成员变量。即使这个类不对外暴露三、反射的优点可以在程序运行中,操作这些对象解耦、提高程序的可扩展性四、反射的机制...

2019-07-19 14:29:05 105 1

原创 Java优雅的实现锁和超时锁

在Java多线程中,我们会遇到多个线程访问同一个资源,产生竞争,如果操作不到会导致死锁的产生,例如在现实中的十字路口,锁就像红路灯指示器,一旦锁坏了,就会导致交通瘫痪。通过本篇文章读者可以学到以下内容多线程并发锁的使用超时锁一、编写锁的接口public interface Lock { //自定义异常类 public static class TimeOutExcepti...

2019-07-10 16:32:48 2187

原创 Java多线程消费者和生产者模式并发死锁问题解决

以下是文章的主要核心点文中采用Stream流的方式创建多个生产者和消费者利用对象的wait()进行阻塞利用synchronized 的原理创建唯一的Monitor的LOCK对象通过notifyAll()唤醒阻塞,此处不能用notify()import java.util.stream.Stream;public class ProduceConsumer { priv...

2019-07-10 13:44:05 126

原创 正确理解Java中的Future

说到这个相信很多刚入行的程序员,对这个并不是很熟悉,这个单词的意思是未来简单的给它阐述一下:这是一个对象,存储的耗时操作给它赋的值,我们先拿到他的引用,等他有值了,就可以使用。通俗的讲,就是我拿到一个变量的引用,里面没有值,子线程计算完了,把值赋值给它,我后面就可以用,不用我一直等子线程执行完。看代码://首先定义一个接口public interface Future<T&g...

2019-07-08 11:45:49 132

原创 Android 分辨率和dp px等之类的介绍

因为要做屏幕适配和内存优化,随便看了这方面的,自己总结下备用分辨率 px如:720*1080表示 => 720px *1080px=> 720像素点 * 1080像素点通俗的讲,就是宽度有720个像素点,竖向右1080个像素点。屏幕尺寸 in如:我们一般说屏幕多少寸多少寸,说的就是这个,这里说的是对角线的长度,这里有个公式1寸 就是 1英寸, 1英寸 = 2.54厘米,也...

2019-07-03 10:05:35 71

原创 App启动流程与消息机制

相信很多人对这个问题不陌生,但是大家回答的都比较简单,如谈到app启动流程有人就会是app的生命周期去了,谈到消息机制有人就会说looper循环消息进行分发,如果是面试可能面试官不会满意,今天我们搞一篇完善的源码解析来进行阐述上面的问题1、第一步了解 ThreadLocal什么是ThreadLocal呢,专业的来讲,ThreadLocal 是一个线程内部的数据存储类,通过它可以在指定的线程...

2019-06-21 14:40:24 88

原创 java对象池

首先介绍下对象池,所谓的对象池就是存储一部分对象到一个池中,需要时就取,不需要时候就释放,其实对象池中维护的是两个SparseArray。那么对象池有什么用呢,当然是有用的,假设一个场景,在消息处理的时候,比如聊天软件中每个消息都不停的创建和销毁那么这样一来就会给GC造成很大的压力,此时此刻对象池就可以派上用场了,其实在这里我们可以联想到线程池。首先我们看对象池ObjectPool,这是一个抽...

2019-06-17 00:04:58 268

原创 自定义枚举

Java中的自定义枚举优化在性能优化中,枚举的每一个都是一个实,比较耗内存,采用注解能很好的解决这个问题public class SHAPE { public static final int RECTANGLE=0; public static final int TRIANGLE=1; public static final int SQUARE=2; p...

2019-06-16 21:19:41 160

原创 Java中的Future

提到这个Future,相信英文好的人都知道,这个单词的意思是表示未来,今天的用法也跟这个单词的意思相类似在做开发中我们经常遇到这样一个问题,就是一个问题需要执行比较久,但是有需要等待它的结果,于是我们会使用线程来做,但是使用线程也会到一个问题,我什么时候调用呢,如果调用早了肯定会出现空指针异常的,今天我的就使用这个future来解决这个问题。Future相当于拿到一个应用,这个引用在线程没有执...

2019-06-15 15:26:51 1079

原创 kotlin的Anko库

Anko库是一个很强大库,我们可以从官网上的一段话看出来Have you ever been tired of parsing SQLite query results using Android cursors? You have to write lots of boilerplate code just to parse query result rows, and enclose it...

2019-06-13 16:00:44 931

原创 Android权限申请Kotlin版本

有关权限申请的我就不多做介绍了,这里我们实现一个功能1,当访问隐私功能时 申请权限2,用户点击了拒绝,下次再进来的时候弹出友善的对话框3,用户点击确定,呈现申请权限对话框4,用户点击了同意申请的对话框,申请权限5,申请成功了调用相关方法 override fun initData() { //这里我们需要查询手机内的数据,访问内存信息 handlePer...

2019-04-18 11:46:11 1229

原创 Android获取手机内的音频数据

我们经常需要获取手机信息,例如我们想做一个音乐播放器,我们需要拿到本地的音频信息,这样一来,我们就需要考虑如何拿到这些数据了1,一个神秘的apk这个叫做MediaProvider.apk是干什么的呢,和我们今天讲的东西有啥关联吗,其实这是一个正在运行的apk,这个apk是没有界面的,因此我们是看不见的,他的作用就是在后台默默的为我们收集相关的数据信息。,然后保存在数据库里面从上面的截图...

2019-04-17 10:02:44 3034 1

原创 flutter连续两次点击返回

在软件中有时候可能意外碰到返回键,导致程序返回,下面为大家提供怎么样避免这样的情况。下面的代码主要是实现,在1秒内连续两次点击才出发返回下面的代码中我们主要是通过 WillPopScope这个组件来控制点击返回按键的效果import 'package:flutter/material.dart';void main()=> runApp(MyApp());class MyApp...

2019-04-15 09:07:04 2432

原创 Flutter实现上拉刷新加载

这篇博客主要是实现以下功能flutter中 ListView的基本使用上拉加载刷新加载提示准备//在配置文件中添加这个库我们会随机生成单词 english_words: ^3.1.0基础代码下面这部分代码是死的,我就不介绍了,我们重点介绍_MyInfiniteListViewState这里面的内容import 'package:english_words/english...

2019-04-11 17:12:29 370

原创 ListView通过flutter实现

下面代码中都有详细的注释,我这里就不多写了import 'package:flutter/material.dart'; void main()=>runApp(MyApp()); class MyApp extends StatelessWidget{ @override Widget build(BuildContext context) { // TODO: ...

2019-04-04 14:40:55 141

原创 kotlin的RecycleView优雅点击事件

说道点击事件,我想大家不陌生,今天 我们主要介绍的是在RecycView中的点击事件,同时了解Java和kotlin监听事件的不同,如何优雅的看待kotlin的函数式接口大家一步步来,我们先介绍java的1,简单View的点击事件 view1.setOnClickListener(new View.OnClickListener() { @Overrid...

2019-03-25 10:28:29 1265 2

原创 Django读取图片

django这是一个很强大框架,但是里面的内容我们很难完全弄清楚,经常会遇到一些奇怪的问题,今天我们主要介绍的是在网页上加载动态图片,所谓的动态图片也就是用户上传的照片,并非静态的。用户在点击这里上传图片的时候,我们再后台上传的位置是这样写的 image = models.ImageField(upload_to="org/%Y/%m", verbose_name="封面图")因为...

2019-03-23 16:50:11 1805

原创 PyQt5定时器

想必大家都知道呢定时器的功能,就是在固定的一段时间内执行一段逻辑,下面我们来一起分析下,首先看一段代码# 自定义object对象,重写里面的timerEvent方法class MyObject(QObject): def timerEvent(self, a0: QTimerEvent): print(a0) print(time.time())cla...

2019-03-23 10:06:16 443

原创 PyQt5线程休眠和唤醒

在上一篇文章中我有写线程的终止 挂起和唤醒,下面这个例子是线程的休眠和唤醒,是通过线程内一个私有的属性来进行的,读者可以直接将代码跑起来注:网上搜索的资源#!/usr/bin/env python# -*- coding: utf-8 -*-from PyQt5.QtCore import QThread, QWaitCondition, QMutex, pyqtSignalfrom ...

2019-03-22 13:59:13 2725

原创 PyQt5中线程挂起终止和唤醒

线程的终止问题一直是可比较头疼的问题,今天找到了一个比较好的例子,分享给大家#!/usr/bin/env python# -*- coding: utf-8 -*-import ctypesfrom PyQt5.QtCore import QThread, pyqtSignalfrom PyQt5.QtWidgets import QWidget, QVBoxLayout, QPro...

2019-03-22 13:44:16 9097 11

原创 PyQt线程问题

在pyqt5中我们通常需要在子线程中处理耗时操作如网络请求,在主线程中更新UI界面,下面是一个简单的例子,运行界面如下# -*- coding: utf-8 -*-import sysfrom PyQt5.QtCore import QThread, pyqtSignalfrom PyQt5.QtGui import QIcon, QCloseEventfrom PyQt5.Qt...

2019-03-22 11:54:21 466

原创 PyQt5鼠标状态

有时候需要当鼠标进入某一视图的时候,改变鼠标的状态,如小手,忙碌 十字架等import sysfrom PyQt5.QtCore import Qtfrom PyQt5.QtGui import QCursorfrom PyQt5.QtWidgets import QWidget, QLabel, QApplicationclass Window(QWidget): def ...

2019-03-21 22:13:38 693

原创 Django注册/登陆 机制完全解析

想必很多人看到登陆完全解析就笑了,你一个注册/登陆还用解析,这么简单的问题还用解析if name=="admin" and password="123456": print("登陆成功")真的是这样码先简单介绍下本篇文章涉及到的内容path和 re_path 配置FormModel 表单验证cathcha 验证码python邮箱发送账户激活django数据库操作djang...

2019-03-21 15:36:28 293

原创 PyQt5 事件传递分析和信号解析

事件传递使我们程序员经常需要处理的问题,特别是在做用户交互型的软件开发,我们通常都会涉及到事件传递,如Android中的事件传递,当手指触摸屏幕事件一步步传到界面的控件上,今天我们来介绍下PyQt5这个强大的桌面端框架中的事件1,事件传递图Created with Raphaël 2.2.0应用启动事件产生QApplication事件处理器QWidget事件处理器具体事件2,事件传递简要概述...

2019-03-20 23:13:09 718 1

原创 Django验证码captcha实战介绍

今天给大家介绍Django如何利用captcha生成验证码1、看一下效果图2 查看captcha开发框架的介绍和基本使用情况captcha官方介绍链接 点击进入这是我在官方介绍上截取的一段信息,读者也可以点击官方链接去查看信息,首先我们来分析上面图片的内容1,安装库 pip install django-simple-captcha想必只要有python基础的人都知道2,将capt...

2019-03-20 14:28:22 745

原创 Fragment传递参数的两种方式

本文采用的是kotlin语言为例在android开发中,我们经常在fragment中传递参数,但是我们经常会使用一些不正常的手段,比如构造方法等之类的和其他的投机取巧的方法,这些方法都是不建议使用的,不利代码高效性和性能的要求,因此建议使用下面两种传递参数的方式一、设置arguments val fragment = MvPagerFragment() val ...

2019-03-19 11:07:32 2296

原创 PyQt5整套视频

PyQt5整套视频最新19年出来,有需要的加我QQ 1915224525绝对有价值

2019-03-08 08:58:58 4530

原创 Media' object has no attribute 'add_js'

在Django2.1开发的时候和xadmin会遇到很多错误,前面的一般错误 大家看我上个博客分享的连接,基本上能解决今天这个错误是‘Media’ object has no attribute ‘add_js’,只需要将xadmin的util.py文件下的vendor这个方法改下就行了def vendor(*tags): media = Media() for tag in t...

2019-03-07 16:19:49 3237 2

原创 Django2.1 和python3.6 遇到的错误

https://www.cnblogs.com/xingfuggz/p/10142388.html这个大神里面将所有的错误都列出来了,大家可以根据错误修改,所有的错误都有

2019-03-07 15:58:32 261

原创 Java8 特性笔记(六) Optional(含源码分析)

在任何语言开发中我们都会遇到很多bug,然后在众多bug中,空指针又是出现最多的,每个编程语言都有空指针,只不过有些语言对空指针有了系统处理,例如 kotlin会自动检测空指针的存在并在编写代码的时候就报错,java没有这功能,但是在java8之后 有一个类可以为我们解决空指针的问题,它就是Optional我们看源码里面的一段话,就知道optional想干嘛了A container obj...

2019-03-07 11:27:03 61

原创 Java8 特性笔记(五) NumercStream

标题中的NumercStream是什么意思呢,今天我们说的是Stream的具体化,之前我们在操作的时候都是用的Stream,当然没有错,但是当我们操作Int类型的数据如:Stream&amp;lt;Integer&amp;gt; stream = Arrays.stream(new Integer[]{1,2,3,4,5,6,7,8});Integer result = stream.reduce(0, I...

2019-03-03 20:13:06 56

原创 Java8 特性笔记(四) Stream

上一章节,我们简单的介绍了Stream,这一节我们将继续介绍Stream的相关知识1、创建方法从集合中创建private static Stream&amp;lt;String&amp;gt; cr5eateStreamFromCollection(){ return list&amp;lt;String&amp;gt; Arrays.asList(&quot;hello&quot;,&quot;world&quot;,&a

2019-03-03 19:32:31 234

原创 Java8 特性笔记(三) Stream

关于java8的stream也许有很多人听说过,但是不一定实际的用的很熟练,今天开始一点点的学习Java8有关Stream的相关知识,首先我们看一个例子本博客依据 java 8 In Action 表写需求: 在一个列表中找出小于某个数值的对象,并依次排序取出其中的值1,Stream的基本认识 static List&lt;Dish&gt; menu = Arrays.asList...

2019-02-28 23:51:35 75

原创 Java8 特性笔记(二)Lamdba和函数式推导

在前面的一章节我们介绍了,有且只有一个抽象函数的接口就是函数式接口,利用函数式接口我们就可以创建lamdba,但是其中可以包括静态方法和default1,lamdba表达式的语法首先我们来看一个简单的lamdba表达式的应用,就是在创建线程时候 //创建一个线程,将线程的名字打印出来 new Thread(()- System.out.prin...

2019-02-28 17:30:51 207 5

原创 Java8 特性笔记(一) 引入

lamdb是java8里面一个比较重要的技术更新,我们需要了解他 掌握它,这样在我门以后的开发中会极大的提高我们的工作效率1,首先我们来看 java8 in Action这本书中的一段话Writing code that can cope with changing requirements is difficult. Let’s walk through an example that we...

2019-02-27 23:23:46 68

word excel ppt 全套操作教程,完整教程

通过VIP获取的内部教程,全套完整的 word excel ppt操作教程

2018-10-10

空空如也

空空如也

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

TA关注的人 TA的粉丝

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