自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android Compose 渐变色Text

【代码】Android Compose 渐变色Text。

2024-03-19 18:22:12 526 1

原创 Android ToolBar标题居中显示

class CenterTitleToolBar @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = R.attr.toolbarStyle) : Toolbar(context, attrs, defStyleAttr) { override fun setTitle(title: CharSequence?) { add

2021-10-13 10:27:04 445

原创 kotlin排序

private fun IntArray.print() { this.forEach { print("$it ") } println()}private fun IntArray.swap(i: Int, j: Int) { val tmp = this[i] this[i] = this[j] this[j] = tmp}/** * 冒泡排序:比较相邻的两个元素的大小 */fun bubble(nums: IntArr

2021-09-02 10:40:27 848

原创 Android 字母导航栏

/** * @date 2021/07/28 * @desc 字母导航栏View */class LetterView @JvmOverloads constructor( context: Context, attributeSet: AttributeSet? = null, defStyleAttr: Int = 0) : View(context, attributeSet, defStyleAttr) { private val letters = ('

2021-07-29 11:42:57 446

原创 uwsgi 报错 --- no python application found, check your startup logs for errors ---

报错uwsgi --ini /etc/uwsgi.ini原因所用的uwsgi的版本和项目中的python版本不一致解决重新安装uwsgi,使用与项目对应的uwsgi版本

2020-11-27 10:12:05 5434 3

原创 Ubuntu 安装 mysqlclient 报错

报错解决apt install libmysqlclient-dev安装成功

2020-11-27 09:22:21 274

原创 pipenv ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data‘

问题:pipenv 无法创建虚拟环境原因:virtualenv 问题解决:pip3 uninstall pipenvpip3 uninstall virtualenvpip3 install pipenv

2020-11-20 15:39:24 3802 1

原创 Kotlin 使用属性代理读写 Properties

package com.example.kotlinlibimport java.io.Fileimport java.io.FileInputStreamimport java.net.URLimport java.util.*import kotlin.reflect.KPropertyclass PropertiesDelegate(private val path: String, private val defaultValu: String = "") { priva

2020-11-03 14:51:06 1071

原创 Kotlin 委托封装 SharedPreferences

1、代码package com.example.myapplication.utilsimport android.content.Contextimport android.content.SharedPreferencesimport com.example.myapplication.Appimport java.io.*import kotlin.reflect.KPropertyclass Preference<T>(val name: String, private

2020-10-31 10:50:20 780

原创 鸿蒙IDE和SDK的安装

一、DevEco studio 下载地址鸿蒙IDE下载二、鸿蒙开发者文档鸿蒙开发者文档开源地址三、SDK 安装和配置1、sdk 在 安装ide时会自动安装2、安装好之后需要重启电脑3、需要提前下载好 nodejsnodejs下载4、项目结构...

2020-09-11 09:46:35 6643

原创 kotlin 中 run、with、apply、let、also

返回 计算结果返回 this传 thisT.run {} with(T) {}T.apply {}传 itT.let {}T.also {}import java.lang.StringBuilderval msg: StringBuilder = StringBuilder()一、T.run { this } : result传 this (可省略)返回计算结果val result = msg.run { append(111)...

2020-09-01 11:22:51 98

原创 Android 计时器实现

Android 计时器实现一、handler.postDelayed二、Handler + Timer + TimerTask三、Handler + Thread.sleep()一、handler.postDelayedprivate Handler handler = new Handler();private Runnable runnable = new Runnable() { @Override public void run() { Log.d("TAG"

2020-06-23 17:34:42 9650 1

原创 Java 拦截器模式

Java 拦截器模式一、拦截器接口二、拦截器具体实现三、调度器具体实现四、具体调用五、结果查看一、拦截器接口package com.example.study.interceptor;/** * 拦截器接口:看具体操作,也可以加入泛型,灵活变化 */public abstract class Interceptor { // 在 action 之前调用 abstract void before(ActionInvocation invocation); String

2020-06-20 17:53:08 756

原创 Java 观察者模式(发布-订阅模式)

Java 观察者模式一、抽象观察者接口二、抽象被观察者接口三、实例化被观察者接口四、实例化观察者接口五、测试调用一、抽象观察者接口package com.example.study.observer;public interface IObserver { void update(String msg);}二、抽象被观察者接口package com.example.study.observer;public interface ISubject { void regis

2020-06-20 15:42:15 230

原创 Java 策略模式代替大量 if-else

Java 策略模式一、抽象策略类二、具体策略类三、策略Context,获取具体策略实例四、测试调用一、抽象策略类package com.example.study.strategy;public interface IColor { void describe(ResultCallback callback); String argb(); interface ResultCallback { void result(String msg); }

2020-06-20 14:59:14 983

原创 Android 中获取目录路径的方法

Android 中获取目录路径的方法总结一、SD 卡路径解释二、Environment1、Environment.getExternalStorageState()2、Environment.getExternalStoragePublicDirectory(String type)3、Environment.getExternalStorageDirectory()4、其他 Environment 相关三、context四、获取缓存路径一、SD 卡路径解释/storage/emulated/0 是

2020-06-12 10:16:06 4402

原创 Android 获取屏幕的宽高(包含虚拟键盘)

一、不包含虚拟键盘1、通过 getResources 获取DisplayMetrics displayMetrics = getResources().getDisplayMetrics();int width1 = displayMetrics.widthPixels;2、通过 WindowManager 获取,不包括虚拟按键DisplayMetrics dm = new DisplayMetrics(); // 屏幕分辨率容器this.getWindowManager().getDefau

2020-05-21 14:44:21 391

原创 python中pypy解释器

pypy 的下载、安装、测试一、Windows 中 pypy 下载与安装二、pip 的安装1、例如把下载下来的 zip 直接解压到 D 盘 D:\pypy3.6-v7.3.0-win322、pypy 的 pip 安装命令:pypy3 -m ensurepip三、创建 pypy 虚拟环境并简单使用四、排序算法测试一、Windows 中 pypy 下载与安装下载链接:https://www.py...

2020-04-10 14:44:26 2116

原创 python中logging模块显示不同颜色的日志

一、logging 基本使用日志级别: NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICALmylog2.pyimport loggingdef test(): logging.warning('12345')if __name__ == '__main__': test() #...

2020-04-06 16:09:49 11668 2

原创 python中xml.dom.minidom常用方法

一、加载和读取 xml 文件import xml.dom.minidom doc = xml.dom.minidom.parse(xmlfile)二、常用操作以下方法,对根节点 root 和子节点 node 都适用:1、获取 xml 文档对象root = doc.documentElement2、节点属性root.nodeName # 每个节点都有它的 nodeName,n...

2020-04-03 16:21:34 13777 2

原创 python中一句代码获取最长公共前缀

一、python中os模块实现,及其内部源码def longestCommonPrefix(self, strs) -> str: # python 中 os 模块中的方法及其源码 # import os # return os.path.commonprefix(strs) if not strs: return '' s1 ...

2020-04-02 17:24:49 367

原创 python中yield 理解

python 中 yield 理解一、yield 可以用来为一个函数返回值塞数据二、包含 yield 的函数三、应用实例1、列表数据去重,并保留顺序2、展开嵌套序列一、yield 可以用来为一个函数返回值塞数据# 取出 alist 的每一项,然后把 i + 1 塞进去def addList(alist): for i in alist: yield i + 1if __name__...

2020-03-25 17:08:37 251

原创 python首字母大写

一、capitalize()data = 'i aM chIneSe'data.capitalize() # I am chinese二、title()data.title() # I Am Chinese三、切片data[0].upper() + data[1:].lower() # I am chinese' '.join(map(lambda item: item...

2020-03-25 16:26:00 443

原创 python 中 os 模块和 shutil 模块

os 模块和 shutil 模块一、文件路径相关(os)1、当前脚本及路径2、遍历目录(1)os.listdir()(2)os.walk()3、路径及文件名的获取(1)os.path.split()(2)os.path.dirname()(3)os.path.basename()(4)os.path.splitext()(5)os.path.realpath() 和 os.path.abspath...

2020-03-25 15:56:41 551

原创 mysql 命令

mysql 命令一、连接二、数据库相关三、表相关四、插入五、通配符六、别名七、join八、外键八、查询语句九、常用内置函数十、自定义函数十一、case ... when ... then ... else ... end一、连接-- -u 用户名-- -h host-- -P port-- -p passwordmysql -u root -h 127.0.0.1 -P 3306 -p...

2020-03-24 11:09:49 83

原创 python实现几种常用的排序算法

python实现几种常用的排序算法一、冒泡排序二、选择排序三、插入排序四、shell 排序五、快速排序六、归并排序一、冒泡排序# 冒泡排序:每次循环比较相邻的两个元素def maopao_sort(nums): for i in range(n - 1): for j in range(n - 1 - i): if nums[j] > nums[j + 1...

2020-03-12 11:46:20 132

原创 Gitlab 数据迁移和升级降级

CentOS 7 中搭建 Gitlab 服务一、数据迁移1、准备工作2、备份原服务器上的数据3、把步骤2生成的 tar 文件拷贝到新服务器相应的 backups 目录下4、在新服务器上面恢复数据5、问题记录(1)当提示权限不够时(2)数据迁移后检查登录 Gitlab ,有时会跳出 500 报错(Something went wrong on our end),以及无法正常新建用户二、升级降级一、...

2020-03-09 17:19:35 1546

原创 Gitlab服务搭建记录(CentOS6)和 git 升级

CentOS 6 中搭建 Gitlab 服务一、环境搭建二、下载,安装 Gitlab三、配置四、生成秘钥,创建项目五、邮箱配置1、配置2、邮件测试六、问题记录1、内存不足2、502(1)检查是否端口冲突(2)日志文件权限(3)开启 swap 分区3、403 Forbidden七、汉化1、git 问题记录原因:CentOS 自带 git 版本太低解决:(1)更新 curl 库(不更新 git)(2)...

2020-03-09 17:15:38 207

原创 Gitlab服务搭建记录(CentOS7)

CentOS 7 中搭建 Gitlab 服务一、环境搭建二、下载,安装 Gitlab三、配置四、生成秘钥,创建项目五、邮箱配置1、配置2、邮件测试六、问题记录1、内存不足2、502(1)检查是否端口冲突(2)日志文件权限(3)开启 swap 分区3、403 Forbidden一、环境搭建yum -y install curl policycoreutils-python openssh-se...

2020-03-09 17:11:30 317

原创 docker常用命令与容器中安装python

docker 常用命令与容器中运行python一、基本命令二、容器操作命令三、镜像操作命令四、实例(安装python3.9.0a4)一、基本命令# 查看 docker 版本docker version# 查看镜像、容器、数据卷所占用的空间docker system df二、容器操作命令# 登录docker login# 查看运行中的容器docker ps# 查看所有容器...

2020-03-07 17:34:17 1023

原创 CentOS7 安装 Kafka

CentOS7 安装 Kafka一、安装 java1.81、卸载系统自带的 java2、下载安装3、java 环境变量二、安装 Zookeeper1、下载安装2、修改配置文件3、环境变量4、防火墙添加端口5、常用命令6、systemctl 服务控制三、安装 kafka1、下载安装2、zookeeper.properties 配置3、server.properties 配置4、环境变量5、开放端口6...

2020-03-06 16:26:52 388

原创 JavaScript 正则表达式操作方法

JavaScript 正则表达式一、定义一个正则表达式二、调用 RegExp 对象中的方法1、test()2、exec()3、compile()三、正则表达式拓展方法1、match()2、search()3、replace()4、split()四、其他扩展表示一、定义一个正则表达式// js中定义正则表达式有两种方法:// 1、“/正则表达式/修饰符”:var reg1 = /hello ...

2020-03-05 11:50:20 331

原创 JavaScript 数组操作方法

JavaScript 数组一、数组的创建二、数组的访问三、数组元素的添加1、array.push([item1 [item2 [...]]]) 在最后添加2、array.unshift([item1 [item2 [...]]]) 在最前添加3、array.splice(insertPos, 0, [item1 [item2 [...]]]) 指定位置添加四、数组元素的删除1、array....

2020-03-05 11:25:18 703

原创 python虚拟环境管理(virtualenv + virtualenvwrapper)

一、安装1、Windows 中pip install virtualenvpip install virtualenvwrapper-win2、Linux 中pip3 install virtualenvpip3 install virtualenvwrapper如果报错:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/s...

2020-03-02 14:28:52 98

原创 CentOS7 中查看进程端口号

一、通过进程名、进程id(pid)、端口号查询进程信息ps -ef | grep [ 进程名 | 进程id | 端口号 ]netstat -tunlp | grep [ 进程名 | 进程id | 端口号 ] # 或者 netstat -nap二、通过端口查询进程lsof -i :6379 # 需要提前安装 yum -y install lsof三、根据进程 id 杀死进程ki...

2020-03-02 09:02:53 4409

原创 python调用java代码,模块JPype

一、安装1、下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype2、然后用 pip install ****.whl3、还需要安装 numpy4、测试 import jpype,如果报错(ImportError:DLL load failed:找不到指定模块),需要进行如下安装5、下载链接: https://www.microso...

2020-02-28 16:00:12 618

原创 python常用模块之itertools

python常用模块之 itertools一、对迭代器进行切片(islice)二、计数器,指定起始位置和步长(count)三、累加(accumulate)四、连接多个列表或者迭代器(chain)五、类似数学排列组合1、列表或迭代器中指定数据的元素不重复的所有组合,无顺序,类似概率学的 C(combinations)2、允许重复的组合(combinations_with_replacement)3、...

2020-02-28 15:38:09 575

原创 python中日期和时间 datetime

本文章参照 《Python Cookbook 第三版》并加上自己的理解;python中日期和时间 datetime一、基本的日期与时间转换二、需要查找一个星期中某一天出现的日期三、计算当前月份的日期范围四、字符串和日期的相互转换一、基本的日期与时间转换from datetime import timedelta, datetimetimedelta:时间段;datetime:时间点;...

2020-02-28 15:05:44 261

原创 python同一个例子工厂模式、策略模式、建造者模式和观察者模式

一、实例类定义一个父类 Dog,三个子类 Erha、Samoye、Tugou;class Dog: def walk(self): pass def run(self): pass def bark(self, msg=''): passclass Erha(Dog): def walk(self)...

2020-02-27 16:34:38 373

原创 python理解适配器模式

适配器模式:由于系统调用方式的原因,需要把不同类里面的方法(名字不一样),用同样的方式来调用;# -*- coding: utf-8 -*-class Bird: def fly(self): print('bird is flying ...')class Dog: def bark(self): print('dog is ...

2020-02-27 11:56:19 151

.git-completion.bash

Git 自动补全.

2020-01-21

空空如也

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

TA关注的人

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