- 博客(48)
- 资源 (4)
- 收藏
- 关注
原创 网易云NCM格式转换器
借鉴了GitHub上的ncmdump项目代码并使用PYQT做了一个界面出来百度云下载链接链接:https://pan.baidu.com/s/13KX4at8jOq49DZgCc3p13A提取码:s5v3复制这段内容后打开百度网盘手机App,操作更方便哦如果可用麻烦各位给个赞喔,或者留言一下import binascii, structimport bas...
2019-07-24 19:52:53 61477 56
原创 轻量级智能穿戴开发:JS表冠滑动问题
在华为Gt3这款表上,支持通过表冠来进行滚动的操作,而在GT2系列还不支持想要通过js来实现表冠滑动的功能,需要加上如下代码onShow() { if (this.$ref.ref名称.rotation) { this.$ref.ref名称.rotation(); }},onHide() { if (this.$ref.ref名称.rotation) { this.$ref.ref名称.rotation({"focus":false})
2022-05-30 20:15:09 355 1
原创 一入鸿蒙深似海,从此Spring是路人:鸿蒙Lite开发问题
1. 运动表,也即是 litewearable设备,目前只能采用js开发。2. lite开发过程中,写js或者是hml、css时,本来正常的,写着写着可能设备就黑屏啥也不显示了,还报个JS异常。Jerry Launcher: [JS Exception]: TypeError: wrong type of argument。后来发现js在编译之后,会将相关联的依赖的js、对应的hml和css都编译一个文件,而运动表的运行内存在64KB左右,这也就限制了每个编译生成的文件大小限制在 30K
2022-05-07 21:16:04 594
原创 一入鸿蒙深似海,从此Spring是路人:鸿蒙JAVA开发问题
1. 通过不同的入口启动应用,会重复调用Ability的onStart方法,也就是不同的Intent会创建多个Ability的实例。方法一: 在config.json中设置为单例模式{ "orientation": "unspecified", "visible": true, "name": "com.example.myapplication.SplashScreenAbility", "icon": "$media:icon", "descriptio
2022-05-06 21:33:26 1448
原创 Lombok
网上优缺点:优点 缺点 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率 JDK版本升级(但我司的可能性不大) 让代码变得简洁,不用过多的去关注相应的方法 降低代码可读性(巨型构造器的存在) 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等 不支持多种参数构造器的重载 public class Student{ private Long
2021-11-10 23:06:02 1274 1
原创 代码整洁之道:程序员的职业素养(读书笔记)
学会说不1.在高风险的关键时刻,要及时上报风险,该说不就说不,做不到就是做不到,不要用尝试等比较模糊的词,要把完整的风险信息传递给自己的老大,不要瞒报,这对于一个项目最终能否成功是一个。...
2021-06-13 01:15:09 575 1
原创 设计模式:过滤器
场景:过滤,过于简单,以至于想不到有啥好解释的interface 过滤器接口{ public List<T> filter(List<T> list);}class 过滤器实现类 implement 过滤器接口{ @Override public List<T> filter(List<T> list){ return list.stream() // 具体实现逻辑
2021-06-03 20:55:04 88
原创 设计模式:桥接
场景解决继承导致的类爆炸问题(曾经在我司的代码看到一个继承高达二十层的类)将抽象部分和实现部分分离,可以独立变化将多个维度设计出独立的结构
2021-06-03 20:44:45 91
原创 设计模式:原型模式
场景:当直接创建对象的代价比较大时,又有现成的可借鉴的对象时,就用这种,感觉其实就是直接克隆。通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。 就是java中的克隆技术,以某个对象为原型,复制出新的对象。显然,新的对象具备原型对象的特点 优势有:效率高(直接克隆,避免了重新执行构造过程步骤) 。 克隆类似于new,但是不同于new。new创建新的对象属性采用的是默认值。克隆出的对象的属性值完全和原型对象相同。并且克隆出的新对象改变不会影响原型对象。然后,再修改克隆对
2021-06-02 21:04:53 75
原创 设计模式:建造者模式
使用场景当一个类的构造函数参数超过4个,且不是所有的参数都是必选项,可以考虑使用构造函数。// Builder在java中的简化使用public class Product{ private final String a;//必须 private final int b;//可选 private Computer(Builder builder){ this.a=builder.a; this.b=builder.b; }
2021-06-02 00:45:28 139
原创 Redis设计与实现:SDS与C字符串
❑Redis只会使用C字符串作为字面量,在大多数情况下,Redis使用SDS(Simple Dynamic String,简单动态字符串)作为字符串表示。❑比起C字符串,SDS具有以下优点:1)常数复杂度获取字符串长度。2)杜绝缓冲区溢出。3)减少修改字符串长度时所需的内存重分配次数。4)二进制安全。5)兼容部分C字符串函数...
2021-06-01 00:50:38 121
原创 JAVA设计模式:单例模式
单例模式:比较巧妙的做法,通过4.5之后的枚举类来实现单例模式public enum Singleton { INSTANCE; public void doSomething() { System.out.println("doSomething"); }}
2021-05-31 00:42:52 113
原创 Spring循环依赖问题(笔记)
问题来源:A类中有成员变量B类的对象。B类中也有成员变量A类的对象。// 简单来说就,就是如下情况class A { @Autowire B b;}class B { @Autowire A a;}在一开始的开始也就是程序第一次获取A的实例时,需要从spring容器单例池中获取。但此时单例池中还没有A的实例,所以要new 一个A对象。在A实例 创建和初始化的时候,要获取成员变量b的实例,这也需要从单例池中获取,但此时B类在池子中也没有
2021-03-21 02:59:10 245
原创 线程池线程数量
类型 判断依据 线程池数量 IO密集型 算、逻辑判断量非常大而且集中 IO耗时/CPU耗时 +1 (也就是把CPU耗时当做一个单位,计算IO和CPU总的线程数) 计算密集型 磁盘的读取数据和输出数据非常大 CPU核数 +1 (+1是为了防止某些原因导致阻塞) ...
2020-12-14 09:38:57 234
原创 Java NIO
NIO概述Java1.4版本引入的一组新的IO API (核心为 Channels 、 Buffers 、Selectors 三部分),用于改善IO操作性能。NIO与IOIO操作流程IO操作会涉及到两个系统对象,一个是调用这个IO的进程或者线程,另一个是系统内核(kernel)。该IO操作会经历两个阶段: 1.将数据 拷贝到 操作系统内核的 缓冲区 2.将内核缓冲区的数据拷贝到用户进程面向流与面向缓冲区IO是面向流的,输入和输出流...
2020-11-27 16:05:25 142
原创 Java 类加载 学习笔记
类加载过程加载:从硬盘上读入类的字节码文件到JVM方法区,同时在堆中创建Class对象 验证:校验字节码文件正确性 准备:给类的静态变量分配内存,并初始化默认值(int的默认值为0,这里初始化的值并不是由代码里面的决定,哪怕代码是 static int a = 3 ,初始化也是0) 解析:把类中 的符号引用(对方未分配内存时的代称)转换为直接引用(对象所在的内存区域) 初始化:对类的静态变量初始化为指定的值(此时才是初始化为代码赋的初始值),执行静态代码块上述操作都是由 类加载器 来完成的..
2020-11-24 18:45:48 88
原创 挂载磁盘
mkfs -t ext4 /dev/xvdepvcreate /dev/xvdevgcreate vg1 /dev/xvdelvcreate -L 179G -n lv1 /dev/vg1lvsmkfs -t ext4 /dev/mapper/vg1-lv1mount /dev/mapper/vg1-lv1 /opt
2020-09-21 17:21:35 118
原创 Kafka 菜鸟学习笔记
kafka:集群模式,即便只有一个节点,也是集群 基于zookeeper的分布式消息系统,分布式流平台,并不单纯是个消息队列 具有高吞吐率、高性能、实时及高可靠等特点基本概念: broker: 一个独立的kafka服务器,接受来自生产者的消息 brkoer集群:若干个broker组合起来的集群 Topic: 主题。一个虚拟的概念,代表消息的类型,一个主题可以有多个分区,分区存放在不同的broken上 Partition: 分区...
2020-08-31 15:36:40 565
原创 操作系统 内存管理
操作系统要做的事情内存空间的分配与回收内存分配 优点 缺点 连续内存分配 单一连续分配 内存被分为系统区和用户区 内存中只能有一道用户程序,独占整个用户区空间 实现简单 无外部碎片 可以采用覆盖技术扩充内存 不一定要内存保护 只能用于单用户和单任务的操作系...
2019-08-31 12:05:01 158
原创 操作系统 设备基本概念和分类
I/O设备基本概念和分类什么是I/O设备 按使用特性分类 按传输速率分类 按信息交换的单位分类I/O设备I/O就是输入和输出(Input / Output)I/O设备就是可以将数据输入到计算机,或者可以接受计算机输出数据的外部设备,属于计算机中的硬件设备。输入型设备:鼠标键盘输出型设备:显示器,音响输入输出型设备:硬盘分类按使用特性分类人机交...
2019-08-30 20:14:52 3404
原创 操作系统 死锁的处理
死锁的处理死锁预防死锁预防 条件 解决方法 缺点 破坏互斥条件 只有对必须互斥使用的资源的争夺才会导致死锁 采用某种技术(如SPOOLing技术)将资源改造成逻辑上共享的资源 1.并不是所有资源都可以改造成共享的 2.为了系统安全,要保障资源的互斥性 3.因此大多数时候无法打破互斥条件 破坏不剥夺条件 ...
2019-08-30 19:51:13 485
翻译 Python中的Web爬虫101:工具概述&每种工具的优缺点
原文地址:web-scraping-101-in-python原文作者:Pierre译者:CoderSan作为我网页爬虫最终指南的后续, 我们将在这篇文章中涵盖python提供给您的几乎所有的网页爬取工具。我们将从最基本的开始讲起,并逐步涉及到当前最前沿的技术,并且对他们的利弊进行分析。当然,我们不能涵盖我们讨论的每个工具的所有方面。但这篇文章应该足以让你很好地知道哪些工具做什么...
2019-08-30 01:56:39 661
原创 操作系统 死锁
什么是死锁在哲学家进餐问题中已经说过,当每个哲学家都拿起自己左边的筷子时,就都在等待自己右边的筷子,此时会导致每个哲学家都不能进餐的情况,也就是一个简单的死锁模型。或者简单来说,一个四角恋关系,每个人都爱着另一个人,并且等着对方也爱自己,中途不会变心,此时就是一种死锁模型,会导致成不了一对的情况。在并发情况下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法...
2019-08-27 18:52:18 676
原创 操作系统 读者写者同步问题
有读者写者两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程同时访问共享数据时则可能导致数据不一致的错误,因此,要求:允许多个读者可以同时对文件执行读操作 只允许一个写者往文件中写信息 任意写者完成写操作之前不允许其他读者或写者工作 写者执行写操作之前,应该让已有的读者和写者全部退出下面算法是读进程优先的,因为可能会导致写进程饥饿...
2019-08-27 17:52:33 1229
原创 操作系统 信号量机制
信号量机制 格式 wait()/P操作 signal()/V操作 整型 int S = 1; while(s<=0); S=S-1; S=S+1; 可能会忙等 记录型 type struct{ int value; struct...
2019-08-26 17:53:01 285
原创 操作系统 进程互斥 软硬件实现方式 (笔记)
硬件实现 方法 优点 缺点 中断屏蔽 利用“开/关中断指令”实现, 简单,高效 1.不适用于多处理机的系统 2.只适用于内核进程,不适用于用户进程 TesstAndSet指令 (TS指令、TSL指令) TSL指令使用硬件实现的,在执行过程中不允许被中断,只能一气呵成 bool ...
2019-08-25 05:38:28 391
原创 操作系统 处理机调度
处理机调度三个层次 调度类别 调度内容 要点 高级调度(作业调度) 由于内存空间有限 系统按照一定原则从外存的后备队列中挑选若干个作业分配内存等资源,并创建PCB 以获得竞争处理机使用权的权利 调入时建立PCB 调出时撤销PCB 中级调度(内存调度) 引入虚拟存储技术,以缓解内存不足的问题 ...
2019-08-23 04:16:08 338
原创 操作系统 进程间通信
各进程拥有的内存地址空间相互独立一个进程不能直接访问另一个进程的地址空间进程间通信 方法 种类 共享存储 操作系统开辟一个共享空间 两个进程对该共享空间的访问是互斥的 (互斥访问通过操作系统提供的工具实现,如PV操作) 1.基于数据结构(低级) 2.基于存储区共享(高级) 消息...
2019-08-21 13:18:50 422
翻译 Platypus 5.3 文档(手工翻译,见谅)
基础主界面Platypus的主界面比较直白明了,一旦启动Platypus应用程序,就会看到如下所示的窗口:App Name(应用程序名称)你应用程序的名称Script Path(脚本路径)要创建应用程序的脚本的路径。或者使用选择按钮可选择脚本,或在Platypus窗口中拖动脚本文件。您还可以手动输入路径(文本字段支持shell样式 按tab键自动填充)。一旦选择了脚本,就可以按...
2019-07-23 18:57:30 1359
原创 使用Scrapy框架编写 东方财富网eastmoney的爬虫
打开http://guba.eastmoney. om/点击 热门个股吧 里面的更多进入到这个界面,可以看到股票基本上有了,然后点击F12,打开网页源码首先可以查看菜单也就是泸市,深市那一块然后 为了方便,干脆就直接列出如下的起始地址'http://guba.eastmoney.com/remenba.aspx?type=1&tab=1'"h...
2019-06-29 16:15:13 2666
原创 汇编16位指令集 实现1000的阶乘并输出
DATAS SEGMENT ;此处输入数据段代码 ;使用公式 aln10/ln2 <=b来估算出大概需要多少缓存空间 ;定义一个1300个字长的缓冲区,因为不知道会输出到多长 DATA1 DB 1300 DUP(0) DATA2 DB 1300 DUP(0) ;存放被乘数 BEICHENG DW 0h ;存放进位数 ...
2019-06-17 20:26:42 877 4
原创 汇编16位指令集 实现1000的累加
DATAS SEGMENT ;此处输入数据段代码 DATA1 DB 0h,0h,0h,0h N DW 4 X DW 0DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV A...
2019-06-17 20:26:15 1190
原创 java实现链表作为存储结构,实现线性表的插入、删除、查找、排序、合并等操作
package list;public class LinkList { private Node head; //声明节点 public class Node{ private int data; private Node next; public Node(){ } public N...
2019-06-09 22:43:07 1045
原创 java实现 二叉树的常用操作算法:包括二叉树的建立、遍历、求高度、线索化等操作
实现二叉树的常用操作算法:包括二叉树的建立、遍历、求高度、线索化等操作package tree;public class Tree<T> { private treeNode<T> pre ; //线索化时记录前一个节点 public treeNode<T> root; //根节点 //声明节点 s...
2019-06-09 22:41:44 205
原创 常见排序算法 java实现
插入排序/** * 插入排序 * 感觉下面的写法和冒泡排序类似 * 时间复杂度: * 最坏:O(n2) * 最好:O(n) * 平均:O(n2) */package others;public class insertSort { //所谓插入排序,其实就是类似于我们玩纸牌的时候的排序方法,每抽一张牌,都在前面已经排好序的牌中找一个合适...
2019-06-09 22:39:01 137
ncm格式转换器2.exe
2020-03-31
cn.codersan.nhzx.zip
2019-07-08
网易云音乐NCM格式转换器
2018-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人