计算机
文章平均质量分 53
Ambrosedream
这个作者很懒,什么都没留下…
展开
-
设计模式二三事
设计模式学习原创 2022-07-29 17:41:49 · 221 阅读 · 0 评论 -
关于属性和实例变量
OC中属性和实例变量的区别和使用场景原创 2022-04-12 10:24:46 · 298 阅读 · 0 评论 -
git 根据已有分支创建新分支并推到远程
git 拉取新分支原创 2022-04-11 18:19:49 · 569 阅读 · 0 评论 -
2021-08-04
完整代码:公v x号 一起学习Finteach 关回 【OC代理】注复原创 2021-08-04 11:32:23 · 98 阅读 · 0 评论 -
YYCache源码解读 (一)
YYCache YYCache是 ibireme 大神在2015年设计的一个IOS缓存工具。 通常来讲,一个缓存包括内存缓存和磁盘缓存。YYCache在磁盘缓存的设计上使用数据库sqlite映射和文件系统映射的方式进行存储,内存中设计了一个双向链表的结构存储数据结点。内存和磁盘的数据淘汰策略均采用了lru算法进行实现。同时在存储上,YYCache分别对对象数量,存储容量,对象生存周期、内存警告、程序退出到后台时的状态等进行了限制。同时采用锁结构和信号量保证了线程同步与安全。图一:YYCache原创 2021-07-29 14:54:14 · 298 阅读 · 0 评论 -
OC KVO学习
KVO KVO 即 Key-Value Observing键值监听。可以将其直接理解为观察者模式。 例如,存在一个Person类和一个Account类分别代表一个人和一个银行账户,每当银行账户发生变化时,Person应当收到一个更改通知,知道自己账户变化。//// ViewController.m// MyFirstApp//// Created原创 2021-07-07 15:46:16 · 198 阅读 · 0 评论 -
OC中的KVC
KVCkvc 即 Key-Value Coding键值编码。提供了一种间接访问对象属性的机制。键值编码是一种使用字符串标识符间接访问对象属性和关系的机制。它支持或与 Cocoa 编程特有的几种机制和技术相关,其中包括核心数据、应用程序脚本性、绑定技术和声明属性的语言特性。 (脚本能力和绑定特定于 OS X 上的 Cocoa。)您还可以使用键值编码来简化您的程序代码。KVC行为访问对象属性值。 操作集合的属性。 在集合对象上调用集合运算符。 访问非对象...原创 2021-07-07 15:17:11 · 200 阅读 · 0 评论 -
OC学习笔记一
Object-C概述面向对象语言OC的h文件和m文件有什么区别以及作用?h:头文件。头文件包含类,类型,函数和常数的声明。//因此就像是接口文件一般。m:源代码文件。这是典型的源代码文件扩展名,可以包含Objective-C和C代码。//具体的实现文件就像C程序中的.h .c文件。在.m文件中声明的变量是无法被外界看到的,属于私有属性,而.h文件中的属性属于public属性。Object-c不支持多重继承;C++支持;Object-c是动态语言动态语言是指程序原创 2021-07-05 22:11:16 · 762 阅读 · 1 评论 -
Date数据的Int类型与Date类型转换
文章目录问题出现js端转换方法result获取年月日Date方法表问题出现在Springboot中,使用【com.alibaba.fastjson.JSON】的【JSON.toJSONString(Obj)】时,Obj对象中的【Date(java.util.Date)】对象的数据转换为整型数字(秒数)。js端转换方法首先将数字封装在Date对象中:var date = new Date(1617033600000);result获取年月日//年份var year = date.ge原创 2021-04-20 22:31:06 · 1912 阅读 · 0 评论 -
from origin ‘null‘ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ header is prese
跨域问题文章目录跨域问题Spring 项目Other项目Spring 项目@CrossOrigin在对应方法上加入这个注解即可。注解详解:未完待续Other项目增加如下代码可以解决。(HttpServletResponse)resp.setContentType("text/json; charset=utf-8");(HttpServletResponse)resp.setHeader("Access-Control-Allow-Origin", "*");注意括号内原创 2021-04-20 17:11:51 · 3725 阅读 · 2 评论 -
Python 股票数据处理二三事
文章目录TuShare 股票数据接口使用股票基本信息读取股票基本指标Python日期遍历DataFrame垂直拼接TuShare 股票数据接口使用股票基本信息读取股票基本指标Python日期遍历import datetimestart = datetime.datetime(2021,4,1)end = datetime.datetime.today()for i in range((end-start).days+1): day = start+datetime.timedelta(原创 2021-04-18 00:24:58 · 231 阅读 · 0 评论 -
数组不重复子集求法
数组不重复子集文章目录数组不重复子集子集思路代码实现运行结果子集数组子集,即包含有限个数组元素的集合。eg. [1,2,3]的子集,[[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]思路我们之前采用【回溯算法】计算指定长度的数组子集组合。eg. 在数组[1,2,3,4,5][1,2,3,4,5][1,2,3,4,5]找长度为【3】的数组子集,我们首先确定前两个数,【1,2】然后增加【3】则满足数组长度为3,将这个结果增加到答案中,同时return, 递归弹栈并原创 2021-04-14 19:34:24 · 844 阅读 · 0 评论 -
求平方根
袖珍计算器算法【袖珍计算器】是一种使用【指数函数 expexpexp】和【对数函数lnlnln】代替平方根的方法。x\sqrt{x}x = x12x^{\frac{1}{2}}x21 = (elnx)12(e^{lnx})^{\frac{1}{2}}(elnx)21 = e12lnxe^{\frac{1}{2} \ln x}e21lnx注意: 由于计算机无法存储浮点数的精确值(浮点数的存储方法可以参考 IEEE 754,这里不再赘述),而指数函数和对数函数的参数和返回值均为浮点数,因此运算原创 2021-04-12 15:16:13 · 150 阅读 · 0 评论 -
ASCII码与字符移动
ascii码ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符.百度百科【48~57】为【0~9】十个阿拉伯数字。【65~90】为26个大写英文字母。【97原创 2021-04-11 21:50:33 · 946 阅读 · 0 评论 -
python深拷贝和浅拷贝
直接赋值等同于对象引用浅拷贝(copy)拷贝父对象,不会拷贝对象内部的子对象。>>>a = {1:[1.2.3]}>>>b = a.copy()>>>a,b({1:[1,2,3])},{1:[1,2,3]})>>> a[1].append(4)>>>a,b({1:[1,2,3,4]},{1:[1,2,3,4]})>>>b[2] = [1,2]>>>原创 2021-04-10 22:10:37 · 79 阅读 · 0 评论 -
设计模式之代理模式
代理模式代理模式是一种能有效为大型系统提升效率的设计模式。如图所示,【Printer】是一个打印机类,此类的主要工作是打印名字。但是print方法是一项耗时很长的工作【重活】,而【set】和【get】方法是相对轻松的工作而且这两种方法比较频繁,对象【Printer】的构造方法中需要执行重活,所以我们设计了代理类,当且仅当使用【print】方法时我们才会创建【Printer】对象,否则【get】/【set】这种轻松的工作由代理者【PrinterProxy】完成。设计模式源码温故知新 未央书斋原创 2021-04-07 16:08:32 · 101 阅读 · 0 评论 -
HTTP和HTTPS
基本概念http: 超文本传输协议。https: 使用SSL加密的http.区别https协议需要ca证书,费用较高。http是明文传输,https是具有安全性的加密传输协议。使用不同的链接方式,端口也不同:http:80;https:443优缺点优点使用HTTPS协议可以认证用户和服务器,确保数据发送到正确的客户机和服务器。HTTPS协议是由SSL+HTTP协议构建的可以进行【加密传输】、【身份认证】的网络协议。它比http更加安全,可以防止数据在传输过程中被窃取、改变、确保原创 2021-04-03 16:09:11 · 280 阅读 · 1 评论 -
简单死锁实现
public class Main{ public void func(){ Object o1 = new Object(); Object o2 = new Object(); new Thread(()->{ while(true){ synchorized(o1){ synchorized(o2){ .原创 2021-04-01 15:35:01 · 106 阅读 · 0 评论 -
操作系统存储管理(一)
虚拟存储器(一)问题程序执行时,所需要的指令和数据必须一次性调入内存。系统的并发性受到物理内存大小的影响。解决问题在程序装入时,只将当前需要执行的部分页或者段读取到内存,就可以让程序执行。执行过程中如果需要执行的指令或者数据不再内存中(缺页或缺段),操作系统将使用页调用算法将数据调入内存。同时将不使用的页或者段调出到外存中。好处程序大小不受物理内存限制系统并发性提高载入内存的数据可能减少,提高系统性能无需编程人员介入虚拟页式机制以页式管理为基础,增加页调度算法需要原创 2021-04-01 12:56:25 · 187 阅读 · 0 评论 -
关于java GC大纲
GC是java的垃圾回收机制。GC的区域是堆和方法区,堆又分为新生代和老年代,新生代按8:1:1分为Eden/to servior/from servior。GC对象:1. 引用计数:无法解决循环引用问题2. 可达性分析什么时候触发GC:1. System.gc();2. Minor GC: Eden满3. Full GC: 调用System.gc/老年代空间不足/方法区空间不足常用算法:1. 标记清除算法2. 标记压缩算法3. 复制算法4. 分代收集算法(主流)新生代一般采用.原创 2021-03-31 23:40:28 · 74 阅读 · 0 评论 -
Mysql优化策略(一)
字段优化一般情况下数据库中的表越小,执行效率越高,所以我们在创建表的时候,为了获得更好的性能,要讲字段的宽度设计的尽可能小。eg.定义邮政编码,我们不要盲目的将其设置为CHAR(255)CHAR(255)CHAR(255)或者VARCHAR()VARCHAR()VARCHAR()我们只需要使用CHAR(6)CHAR(6)CHAR(6)就可以很好的完成任务了。此外,我们设计字段的时候,尽可能设计非空字段,因为执行查询时,数据库比较空值也是一项开销。对于某些省份、性别,我们可以将其定义为ENUME原创 2021-03-29 21:20:10 · 79 阅读 · 1 评论 -
HashMap深入学习
Class HashMap<K,V>继承关系KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲java.lang.Obje…原创 2021-03-29 15:59:38 · 89 阅读 · 0 评论 -
动态规划之容量问题
题目:给你一个二进制字符串数组 strs 和两个整数 m 和 n 。请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 。如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。输入:strs = [“10”, “0001”, “111001”, “1”, “0”], m = 5, n = 3输出:4解释:最多有 5 个 0 和 3 个 1 的最大子集是 {“10”,“0001”,“1”,“0”} ,因此答案是 4 。其他满足题意但原创 2021-03-29 15:33:50 · 279 阅读 · 0 评论 -
Java 锁(一)
乐观锁悲观锁自旋锁在短时间内,持有锁的线程能够释放资源,等待的线程不必做内核态与用户态之间的切换,只需要做一个自旋的操作等待持有锁的线程释放锁就可以立即获得锁。Synchronized同步锁独占式悲观锁可重入锁非空对象可以加锁作用范围作用于方法时:锁住对象实例作用于静态方法时,锁住Class实例,相当于类的全局锁,所有调用该方法的线程都会被锁。作用于一个对象实例时,锁住的是所有以该对象为锁的代码块。核心组件wait Set:Contention ListEntry原创 2021-03-27 14:45:20 · 242 阅读 · 0 评论 -
操作系统之内存管理
虚拟内存分段和分页页式信息的物理单位,分页是为了实现离散分配方式以减少内存的外碎片,提高内存的利用率。分页仅仅是系统管理的需要。段式信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。页的大小固定,且由系统确认,将逻辑地址分为页号和页内地址两部分。段的长度不固定,决定于用户编写的程序,通常由编写程序对源代码进行编辑时根据信息的性质划分。分页的地址空间是一维的,分段的地址空间是二维的(页号、页内地址)。进程间通信信号量: 计数器,锁机制:用来同步信号原创 2021-03-26 23:03:37 · 112 阅读 · 0 评论 -
后端面试复习(二)
进程和线程的区别进程是资源分配的基本单位;线程是系统调用的基本单位。进程有自己独立的地址空间,启动进程的消耗比较大;线程共享进程中的数据,使用相同的地址空间。线程通信更加方便,同一个进程下的线程共享全局变量,静态变量等数据,进程之间的通信需要通过复杂方式。(处理好同步和互斥是编写多线程程序的难点)。多进程程序更加健壮,多线程程序只要有一个线程死掉,整个进程就死了如何保证线程安全线程安全程度:不可变 :可靠性最高绝对线程安全:高标准安全相对线程安全:我们保证的安全线程兼容:一般不安全原创 2021-03-26 17:23:18 · 141 阅读 · 0 评论 -
计算机网络之运输层(四)
TCP运输连接管理连接的三个阶段:连接建立数据传送连接释放连接建立中需要解决的问题:使双方知道对方的存在。允许双反协商一些参数。能够对运输实体资源进行分配。TCP三次握手第三次握手的必要性:防止已失效的链接请求报文段突然又传输到了B,因而产生错误。即:假设只需要两次握手,考虑这样一种情况,如果A发送了一条连接请求,中途丢失或者由于拥塞原因没有及时送到,超时后A再次发送请求,连接成功,数据传输、连接断开。此时,第一次发送的链接请求突然到达了B,此时只要B对这个请求作出反应,连原创 2021-03-04 14:10:11 · 258 阅读 · 3 评论 -
计算机网络之运输层(三)
拥塞控制计算机网络的资源:链路容量(带宽)、交换节点中的缓存、处理机等。拥塞:某段时间内,对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。 即对资源需求之和大于可用资源。拥塞控制: 就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。开环控制:在设计网络时事先把有关发生拥塞的因素考虑周到,力求在网络工作时不产生拥塞,系统运行后不会中途改正。闭环控制:基于反馈环路:检测网络系统已检测拥塞在何时,何处发生。把拥塞发生的信息传送到可采取行动的地方。原创 2021-03-03 15:50:13 · 91 阅读 · 0 评论 -
递归之镜像二叉树
关于树的题目使用递归解决是最方便的。题目:给定一棵二叉树,判断琪是否是自身的镜像(即:是否对称)题目来源初始思路最直观的解法就是比较对称位置上的结点值是否相同。我们知道二叉树的遍历有前序、后序、中序三种最常用的方法。我们可以在迭代遍历二叉树的同时进行数值的比较。只要有一个不等就可以确定不相似。第一个问题就是对称点的对应问题,我们必须保持根节点的两个子树的遍历顺序是镜像的,即左子树:根、左、右;右子树:根、右、左。我们可以使用前序遍历遍历左子树,使用对称的前序遍历遍历右子树。改进思路我们每原创 2021-03-02 15:22:21 · 153 阅读 · 0 评论 -
计算机网络之运输层(二)
连续ARQ(自动重传请求)由于停止等待协议的信道利用率太低。信道利用率U=TDTD+RTT+TA信道利用率 U = \frac{T_D}{T_D+RTT+T_A}信道利用率U=TD+RTT+TATD连续的ARQ采用了流水线传输方式。滑动窗口协议如下图所示,发送方维持的发送窗口中5个分组都可以连续发送出去,而不需要等待对方的确认。连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个窗口的位置。滑动窗口累计确认的优缺点:优点:接收方不必对收入的分组逐个发送确认原创 2021-03-01 20:18:04 · 268 阅读 · 0 评论 -
计算机网络运输层
计算机网络之运输层端口的意义众所周知,单个计算机中进程用进程标识符(一个不大的整数)标志。计算机之间的通信实际上时计算机的进程之间的通信,而在互联网环境中,不同的计算机操作系统之间进程标识符的格式并不一致,这也就导致了不能使用进程标识符进行网络间的进程通信。为了解决这一问题,必须使用同一的方法对TCP/IP体系的应用进程进行标志。同时我们不能直接把某个进程作为通信的最终点,因为进程的创建和撤销都是动态的,通信的一方几乎无法识别对方机器上的进程。此外,我们常常利用目的主机提供的功能识别终点,所以通信中往原创 2021-02-28 20:47:34 · 270 阅读 · 0 评论 -
Java字符串与整数转化
Java字符串与整数leetcode 题目 整数反转:给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。将整数转换为字符串int x = 100;String str = String.valueOf(x);//way twoString str1 = Integer.toString(x);//way threeString str3 = x+"";字符串反转// use stringbuilder String tmp = "1234";Stri原创 2021-02-22 21:50:14 · 281 阅读 · 0 评论 -
并查集学习
并查集并查集是一种森林或树数据结构,常用来处理不相交集合的合并、查询问题。并查集和深度优先搜索、广度优先搜索是图的环的三个查询方法。如上图所示,我们通常将并查集初始化为nnn个 单节点集合,然后根据题目中提供数据对并查集进行合并,最后可能构成一棵树(连通图)或者一个森林(非连通图)。采用并查集处理的问题一般都有如下特点:数据量极大,用其他数据结构往往空间复杂度难以接受。使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果。原创 2021-01-27 15:05:37 · 109 阅读 · 0 评论 -
二维数组排序Java
java的集合类提供一个排序方法,可以根据自定义的方法对集合进行排序。public static void main(String[] args) { int[][] res = {{1,2},{3,4},{2,1},{5,6}}; Arrays.sort(res, new Comparator<int[]>(){ @Override public int compare(int[] o1, int[] o2)原创 2021-01-26 13:31:27 · 237 阅读 · 1 评论 -
Mysql忘记密码或者初始化密码
Mysql解决登录问题并修改密码(Ubuntu/Debian)以上两类系统中存在这样的一个文件,里面有用户和密码,可以使用这个账户登录mysql进行密码修改!!!登录如下:修改密码使用mysql数据库: use mysql;查看数据表并查看user表:show tables;describle user;其中以下这一项数据就是密码:如下图修改密码:>update user set authentication_string=PASSWORD("1234原创 2021-01-25 20:13:14 · 438 阅读 · 0 评论 -
mysql彻底卸载
Mysql卸载(Ubuntu系统)有时mysql的安装过程中由于某些问题会导致一些包安装不全,这时安装后的mysql并不能正常启动。在ubuntu系统中彻底删除Mysql只需要进行以下两个步骤:apt-get卸载主要安装文件sudo apt-get remove mysql-*清理掉残余文件dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P...原创 2021-01-25 19:36:25 · 165 阅读 · 0 评论 -
Semaphore详解——参考jdk文档
Semaphore学习所在包:java.util.current.Semphore. implemented interfaces: Serializablesemaphore是一个计数信号量,在概念上,信号量维持一组许可证。每个acquire()都会阻塞,当许可证可用时,才可以使用它。每个release()是添加许可证,通过释放阻塞获取方而没有使用实际的许可证对象。信号量常用于限制线程数:class Pool { private static final int MAX_AVAILABL原创 2021-01-24 13:08:48 · 159 阅读 · 0 评论 -
ArrayList效率提高
Java的ArrayList是十分常用的一个容器。今天在做Leetcode的时候发现使用add的效率问题。 如上图所示,java提供了两种add,分别是类似python 的append,和类似insert可以在任意位置插入的add.leetcode题目989,这是一道简单题:对于非负整数X而言,X的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果X = 1231,那么其数组形式为[1,2,3,1]。给定非负整数 X 的数组形式A,返回整数X+K的数组...原创 2021-01-22 15:12:51 · 289 阅读 · 0 评论 -
损失函数--KL散度与交叉熵
损失函数 在逻辑回归建立过程中,我们需要一个关于模型参数的可导函数,并且它能够以某种方式衡量模型的效果。这种函数称为损失函数(loss function)。 损失函数越小,则模型的预测效果越优。所以我们可以把训练模型问题转化为最小化损失函数的问题。 损失函数有多种,此次介绍分类问题最常用的交叉熵(cross entropy)损失,并从信息论和贝叶斯两种视角阐释交叉熵损失的内涵。...原创 2019-12-04 01:38:50 · 5486 阅读 · 0 评论 -
error: (-210:Unsupported format or combination of formats) [Start]FindContours supports only CV_8UC1
python-opencv问题:解决办法:https://www.cnblogs.com/ambdyx/p/11961826.html原创 2019-11-30 11:32:44 · 5396 阅读 · 0 评论