自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(428)
  • 收藏
  • 关注

原创 select、poll、epoll之间的区别

(1)select==>时间复杂度O(n)仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),**我们只能无差别轮询所有流,**找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态, **但是它没有最大连接数的限制,**原因是它是基于链

2021-02-23 21:08:28 284

原创 leetcode刷题(121)——1143. 最长公共子序列

给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。示例 1:输入:text1 = "abcde", text2 = "ace"

2021-02-20 11:02:05 237

原创 leetcode刷题(120)——59.螺旋矩阵

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]题解class Solution { public int[][] generateMatrix(int n) { int l = 0, r = n - 1, t = 0, b = n - 1;

2021-02-17 12:22:48 164

原创 leetcode刷题(119)——54.螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]按照顺时针的顺序访问二维数组,通过while循环,跳出条件就是访问的数量和二维数组里所有元素的总和一致

2021-02-17 12:06:30 266

原创 leetcode刷题(118)——除自身以外数组的乘积

给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。题解:我们不必将所有数字的乘积除以给定索引处的数字得到相应的答案,而是利用索引左侧所有

2021-02-17 11:44:36 206

原创 重新复习Android View事件分发

一个Activity包含了一个Window对象,这个对象是由PhoneWindow来实现的。PhoneWindow将DecorView作为整个应用窗口的根View,而这个DecorView又将屏幕划分为两个区域:一个是TitleView,另一个是ContentView,而我们平时所写的就是展示在ContentView中触摸事件的类型触摸事件对应的是MotionEvent类,事件的类型主要有如下三种:ACTION_DOWNACTION_MOVE(移动的距离超过一定的阈值会被判定为ACTION_MOVE

2021-02-17 11:12:43 244

原创 重新复习Android View的绘制流程

PhoneWindow是Android系统中最基本的窗口系统,每个Activity会创建一个。同时,PhoneWindow也是Activity和View系统交互的接口。DecorView本质上是一个FrameLayout,是Activity中所有View的祖先。开始:DecorView被加载到Window中1.Activity里的PhoneWindow创建是在Activity的attach方法中,这个方法是Activity在ActivityThread被创建之后调用Activity.javaAct

2021-02-16 21:47:21 226

原创 leetcode刷题(117)——557. 反转字符串中的单词 III

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格开辟一个新字符串。然后从头到尾遍历原字符串,直到找到空格为止,此时找到了一个单词,并能得到单词的起止位置。随后,根据单词的起止位置,可以将该单词逆序放到新字符串当中。如此循环多次,直到遍历完原字符串,就能

2021-02-16 17:44:24 205

原创 leetcode刷题(116)——反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]非常简单

2021-02-16 16:33:27 126

原创 leetcode刷题(115)——剑指 Offer 67. 把字符串转换成整数

写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。注意:假如该字符串中的第一个非空

2021-02-16 15:13:04 171 1

原创 leetcode刷题(114)——4. 寻找两个正序数组的中位数

给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) /

2021-02-16 11:37:37 175

原创 ASM初探

对于 ASM 而言,它提供了 两种模型:对象模型和事件模型。ASM 的对象模型(ASM Tree API)对象模型的 本质 是一个 被封装过后的事件模型,它 使用了树状图的形式来描述一个类,其中包含多个节点,例如方法节点、字段节点等等,而每个节点又有子节点,例如方法节中有操作码子节点 等等。在对象模型下的 ASM 有 两类操作纬度,分别如下所示:1)、获取节点:获取指定类、字段、方法节点。2)、操控操作码(针对方法节点):获取操作码位置、替换、删除、插入操作码、输出字节码。1.获取节点获取一个

2021-02-15 21:49:37 928

原创 android字节码框架——AspectJ

最常用的字节码处理框架有 AspectJ、ASM 等等,它们的相同之处在于输入输出都是 Class 文件。并且,它们都是 在 Java 文件编译成 .class 文件之后,生成 Dalvik 字节码之前执行。而 AspectJ 作为 Java 中流行的 AOP(aspect-oriented programming) 编程扩展框架,其内部使用的是 BCEL框架 来完成其功能。AspectJ 的优势它的优势有两点:成熟稳定、使用非常简单。使用非常简单AspectJ 可以在如下五个位置插入自定义的代码

2021-02-15 18:08:29 517

原创 synchronized实现原理

synchronized的三种应用方式synchronized关键字最主要有以下3种应用方式,下面分别介绍修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。synchronized作用于实例方法无问题写法;public class AccountingSync implements Runnable{ //共享资源(临界资源

2021-02-14 22:45:24 1635

原创 如何理解volatile

java内存模型与原子性,可见性和有序性Java内存模型规定所有的变量都是存在主存当中,每个线程都有自己的工作内存。线程对变量的所有操作都必须在自己的工作内存中进行,而不能直接对主存进行操作。并且每个线程不能访问其他线程的工作内存。在java中,执行下面这个语句:int i=3;执行线程必须先在自己的工作线程中对变量i所在的缓存行进行赋值操作,然后再写入主存当中。而不是直接将数值3写入主存当中。原子性对基本数据类型的变量的读取和赋值操作是原子性操作,即这些操作是不可被中断的,要么执行,要么不执

2021-02-14 19:44:02 169

原创 Java单例模式的写法及优缺点

总结下Java单例模式的几种写法:1.饿汉式public class Singleton{ private static Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; }}优点:实现简单,不存在多线程问题,直接声明一个私有对象,然后对外提供一个获取对象的

2021-02-14 18:08:52 441 1

原创 Instant run动态加载机制

关于动态加载,实际上Instant run提供了两种动态加载的机制:1.修改java代码需要重启应用加载补丁dex,而在Application初始化时替换了Application,新建了一个自定义的ClassLoader去加载所有的dex文件。我们称为重启更新机制2.修改代码不需要重启,新建一个ClassLoader去加载修改部分。我们称为热更新机制Application入口在编译时Instant run用到了Transform API修改字节码文件。其中AndroidManifest.xml文件也

2021-02-14 17:36:49 662

原创 Tinker原理

加载补丁dexTinker采用的是下发差分包,然后在手机端合成全量的dex文件进行加载。而在build.gradle配置中的tinkerPatchdex.loader = ["com.tencent.tinker.loader.*","tinker.sample.android.app.SampleApplication","tinker.sample.android.app.BaseBuildInfo"]这个配置中的类不会出现在任何全量补丁dex里,也就是说在合成后,这些类还在老的dex文件

2021-02-14 12:28:25 1070

原创 SparseArray和ArrayMap

首先我们来介绍一下HashMap,了解它的优缺点,然后再对比一下其他的数据结构以及为什么要替代它。HashMapHashMap是由数组+单向链表的方式组成的,初始大小是16(2的4次方),首次put的时候,才会真正初始化。链表长度大于8时转化成红黑树,小于6时又转化成链表。1.为什么要引入红黑树?JDK 1.8以前是数组+链表,还未引入红黑树,这就导致了链表过长时查找的时间复杂度是O(n)红黑树是一种自平衡的二叉查找树,不是一种绝对平衡的二叉树,它放弃了追求绝对平衡,追求大致平衡,在与平衡二叉

2021-02-13 17:30:01 856

原创 如何设计一个图片加载框架

需要考虑哪些问题?首先,梳理一下必要的图片加载框架的需求:异步加载:线程池切换线程:Handler,没有争议吧缓存:LruCache、DiskLruCache防止OOM:软引用、LruCache、图片压缩、Bitmap像素存储位置内存泄露:注意ImageView的正确引用,生命周期管理列表滑动加载的问题:加载错乱、队满任务过多问题当然,还有一些不是必要的需求,例如加载动画等。异步加载:线程池,多少个?缓存一般有三级,内存缓存、硬盘、网络。2个,读内存和硬盘可以放在一个线程池,网络需要

2021-02-13 12:09:18 800

原创 android如何加载长图

思路:那就是对于一张巨型图片我们可否每次指定一块区域加载显示,然后通过改变这个区域完成整张巨图的加载呢?这样内存中只有完整图片的一块区域。区域加载1、BitmapRegionDecoder指定Bitmap区域进行解码,主要用于显示图片的某一块矩形区域显示图片的某一块区域,那么至少需要两个方法:1、设置图片,2、设置显示区域。接下来通过自定义一个可以加载巨图的View展开说明:2、设置图片前面说到至少需要两个方法:1、设置图片 2、指定显示区域我们先来看如何设置图片:mOptions实际就是

2021-02-12 23:01:50 1173 1

原创 Parcelable与Serializable

由于 Java 的 Serializable 的性能较低,Parcelable 正式在这个背景下产生的,它核心作用就是为了解决 Android 中大量跨进程通信的性能问题。Serializable使用大量反射和临时变量,而Parcelable少许反射通过启动 Activity 过程分析 Parcelable 序列化过程:熟悉这一过程的朋友过程肯定知道,startActivity 方法最终会通过 AMS(ActivityManagerService)完成跨进程通信调用,但是在通信之前先要将数据序列化后进

2021-02-12 22:44:25 369

原创 你真的懂ContentProvider么

启动性能ContentProvider 的生命周期默认在 Application onCreate() 之前,而且都是在主线程创建的。我们自定义的 ContentProvider 类的构造函数、静态代码块、onCreate 函数都尽量不要做耗时的操作,会拖慢启动速度。稳定性ContentProvider 在进行跨进程数据传递时,利用了 Android 的 Binder 和匿名共享内存机制。Binder 传递 CursorWindow 对象内部的匿名共享内存的文件描述符。这样在跨进程传输中,**结

2021-02-12 20:17:39 707

原创 flutter跨平台原理

React Native最终渲染工作交还给了系统,虽然同样使用类HTML+JS的UI构建逻辑,但是最终会生成对应的自定义原生控件,以充分利用原生控件相对于WebView的较高的绘制效率。不仅框架本身需要处理大量平台相关的逻辑,随着系统版本变化和API的变化,开发者可能也需要处理不同平台的差异,甚至有些特性只能在部分平台上实现,这样框架的跨平台特性就会大打折扣。Flutter从头到尾重写一套跨平台的UI框架,包括UI控件、渲染逻辑甚至开发语言。渲染引擎依靠跨平台的Skia图形库来实现,依赖系统的只有图

2021-02-12 18:17:19 2480

原创 Android工程师应该懂得的网络知识

下面就以比较经常看到的的5层结构为例:1)应用层:如http协议,它实际上是定义了如何包装和解析数据,应用层是http协议的话,则会按照协议规定包装数据,如按照请求行、请求头、请求体包装,包装好数据后将数据传至运输层。2)运输层:TCP和UDP两种协议,使用Socket进行连接建立的时候,一般都要指定端口号,所以这一层指定了把数据送到对应的端口号。3)网络层:这一层IP协议,以及一些路由选择协议等等,所以这一层的指定了数据要传输到哪个IP地址。中间涉及到一些最优线路,路由选择算法等等。4)数据链路

2021-02-11 21:42:58 255

原创 Activity16问

横竖屏切换时Activity生命周期注意:还有一点,非常重要,一个 Android 的变更细节!当 API >12 时,需要加入 screenSize 属性,否则屏幕切换时即使你设置了 orientation 系统也会重建 Activity !2.不同场景下 Activity 生命周期的变化过程3.如何处理异常退出您可通过使用 ViewModel 对象来减轻重新初始化 Activity 的负担。系统会在配置变更时保留 ViewModel,使其成为保存界面数据的理想场所,让您无需再次查.

2021-02-11 17:45:41 308

原创 JAVA虚拟机与Android虚拟机的区别

1.JAVA虚拟机运行的是JAVA字节码,Dalvik虚拟机运行的是Dalvik字节码java虚拟机:JAVA->class文件dalvik虚拟机:JAVA->class文件->Dalvik字节码->打包到dex中->DVM通过解释DEX文件来执行这些字节码。class文件的缺点如果A类文件引用B类文件中的方法,方法签名也会被复制到A类文件中,多个不同的类会同时包含相同的方法签名大量的字符串常量在多个类文件中也被重复使用因为大量的冗余信息,会严重影响jvm虚拟机解

2021-02-11 16:06:06 1450

原创 你真懂的ViewStub,include,merge么

1.includeinclude就是为了解决重复定义相同布局的问题<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:id="@+id/my_title_parent_id" andro

2021-02-10 12:36:30 824

原创 你真的懂SharedPreferences么

1.SharedPreferences首次创建,实际类型是SharedPreferencesImpl,系统会将每个 SharedPreferences 文件对应的操作对象(实际为 SharedPreferencesImpl)进行缓存,SharedPreferencesImpl和sp文件路径file映射关系存放在Arraymap中,api28以后,之前是HashMap2.SharedPreferencesImpl创建过程中,会开启异步线程加载对应 name 的 XML 文件内容到 Map 容器中,这里应用了

2021-02-09 18:02:06 349

原创 leetcode刷题(113)——241. 为运算表达式设计优先级

给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。示例 1:输入: "2-1-1"输出: [0, 2]解释: ((2-1)-1) = 0 (2-(1-1)) = 2示例 2:输入: "2*3-4*5"输出: [-34, -14, -10, -10, 10]解释: (2*(3-(4*5))) = -34 ((2*3)-(4*5)) = -14 ((2*(3-4))*5) =

2021-02-09 16:27:37 305

原创 leetcode刷题(112)——560. 和为K的子数组

给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。关键是,如何快速得到某个子数组的和呢,比如说给你一个数组nums,让你实现一个接口sum(i, j),这个接口要返回nums[i…j]的和,而且会被多次调用,你怎么实现这个接口呢?因为接口要被多次调用,显然不能每次都去遍历nums[i…j],有没有一种快速的方法在 O(1) 时间内算出nums[i

2021-02-08 22:19:26 300

原创 leetcode刷题(111)——1109. 航班预订统计

这里有 n 个航班,它们分别从 1 到 n 进行编号。我们这儿有一份航班预订表,表中第 i 条预订记录 bookings[i] = [j, k, l] 意味着我们在从 j 到 k 的每个航班上预订了 l 个座位。请你返回一个长度为 n 的数组 answer,按航班编号顺序返回每个航班上预订的座位数。示例:输入:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5输出:[10,55,45,25,25]可以使用差分数组,差分数组的主要适用场景是频繁对原始数组

2021-02-08 21:01:35 311

原创 leetcode刷题(110)——752. 打开转盘锁

你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串 target 代表可以解锁的数字,你

2021-02-08 19:42:50 166

原创 leetcode刷题(109)——283. 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。仍然使用快慢指针,然后将所有的0放置在最后即可class Solution { public void moveZeroes(int[] nums) { int slow = 0; int fast = 0; i

2021-02-07 21:09:31 167

原创 leetcode刷题(108)——83. 删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3其实和数组去重是一模一样的,唯一的区别是把数组赋值操作变成操作指针而已,所以同样是:class Solution { public ListNode deleteDuplicates(ListNode head) { if (head == nu

2021-02-07 19:03:50 139

原创 leetcode刷题(107)——26. 删除排序数组中的重复项

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组

2021-02-07 12:41:08 154 1

原创 leetcode刷题(106)——316. 去除重复字母

给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例 1:输入:s = "bcabc"输出:"abc"示例 2:输入:s = "cbacdcbc"输出:"acdb"要求一、要去重。要求二、去重字符串中的字符顺序不能打乱s中字符出现的相对顺序。要求三、在所有符合上一条要求的去重字符串中,字典序最小的作为最终结果。我们先暂时忽略要求三,用「栈」来实现一下要求一和要求二,至于为什么用栈来实现,后面你就

2021-02-07 12:22:44 1259

原创 leetcode刷题(105)——710. 黑名单中的随机数

给定一个包含 [0,n ) 中独特的整数的黑名单 B,写一个函数从 [ 0,n ) 中返回一个不在 B 中的随机整数。对它进行优化使其尽量少调用系统方法 Math.random() 。提示:1 <= N <= 10000000000 <= B.length < min(100000, N)[0, N) 不包含 N,详细参见 interval notation 。示例 1:输入: ["Solution","pick","pick","pick"][[1,[]],[],

2021-02-07 11:10:31 210

原创 leetcode刷题(104)——380. 常数时间插入、删除和获取随机元素

设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。// 初始化一个空的集合。RandomizedSet randomSet = new RandomizedSet();// 向集合中插入 1 。返回 true 表示 1 被成功地插入。randomSet.insert(

2021-02-06 21:14:04 313

原创 leetcode刷题(103)——503. 下一个更大元素 II

给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数; 第二个 1 的下一个最大的数需要循环搜索,结果也是 2。注意: 输入数组的长度不会超过 10000。比如输入一个数

2021-02-02 15:15:24 197

基于SpringBoot + MySQL + Redis + RabbitMQ + Guava开发的高并发商品限时秒杀系统

1. 两次MD5加密 将用户输入的密码和固定Salt通过MD5加密生成第一次加密后的密码,再讲该密码和随机生成的Salt通过MD5进行第二次加密,最后将第二次加密后的密码和第一次的固定Salt存数据库 好处: 第一次作用:防止用户明文密码在网络进行传输 第二次作用:防止数据库被盗,避免通过MD5反推出密码,双重保险 2. session共享 验证用户账号密码都正确情况下,通过UUID生成唯一id作为token,再将token作为key、用户信息作为value模拟session存储到redis,同时将token存储到cookie,保存登录状态 好处: 在分布式集群情况下,服务器间需要同步,定时同步各个服务器的session信息,会因为延迟到导致session不一致,使用redis把session数据集中存储起来,解决session不一致问题。 3. JSR303自定义参数验证 使用JSR303自定义校验器,实现对用户账号、密码的验证,使得验证逻辑从业务代码中脱离出来。 4. 全局异常统一处理 通过拦截所有异常,对各种异常进行相应的处理,当遇到异常就逐层上抛,一直抛到最终由一个统

2024-05-27

大麦抢票辅助(只抢待开抢中的)

大麦抢票辅助(只抢待开抢中的) 重要提示:因为该软件原理是抓取页面ui控件id,模拟点击 如果页面渲染太慢,就会抓取失败导致点击超时无效,所以可以手动辅助点击 该软件只能起到辅助效果,帮忙快速点击 推荐:不能稳定打开跳转到抢票页的话,可以开启软件后,手动将大麦挂在抢票页 注意:一定要提前选好场次、价格还有观影人,收藏到想看 操作步骤 先去演唱会主页预选好场次、价格还有观演人,点击想看 (可选)手机后台杀掉大麦app任务 打开辅助app,给于对应权限 (可选)输入歌手名字,默认五月天 点击开抢按钮即可 如果点击开抢后,页面未开始自动跳转,可手动杀死大麦,再次切到辅助app点击开抢 如果想终止辅助app,点击右上角悬浮窗<点击停止>即可

2024-04-27

大麦网演唱会抢票软件,一个基于 tauri + rust + vue 调用接口的抢票软件

一个基于 tauri + rust + vue 构建的抢票软件,全部调用大麦的接口。目前只支持大麦平台(默认)。 1.安装 rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh rust 官网 (输入 rustc -V 显示版本号,则表示安装成功) 2.安装 node node 官网 (输入 node -v 显示版本号,则表示安装成功) 3.运行 yarn install 安装依赖 4.运行 yarn tauri dev 启动本地项目(如果windows系统,可能需要准备 tauri 需要的环境),使用编译的app来进行调试。 5.运行 yarn tauri build 打包程序。生成的程序在 src-tauri/target/release 下。

2024-04-21

i茅台预约工具-GitHub Actions版

集成Github Actions 多账号配置 账号有效期管控 手机号加密保存 自动获取app版本 微信消息推送

2024-04-21

某宝、某猫抢购,抢电视、抢茅台

web版使用说明 1、抢购前需要校准本地时间,然后把需要抢购的商品加入购物车 2、如果要打包成可执行文件,可使用pyinstaller自行打包 3、不需要打包的,直接在项目根目录下 执行 python3 main.py 3.1、(可选)需要推送消息提醒(如微信/群机器人/短信),在 https://sre24.com 免费注册得到推送 token,执行 TOKEN=xxx python3 main.py 4、程序运行后,会打开淘宝登陆页,需要自己手动点击切换到扫码登陆

2024-04-21

i茅台app自动预约,每日自动预约,支持docker一键部署

i茅台app,每日自动预约茅台 1. 平台注册账号 2.添加多个用户 3.自动预约 4.类型选择(本市出货量最大的门店,或位置附近门店) 5.自动旅行 6.首次旅行分享 7.获取申购耐力值 8.自定义时间/随机时间预约或旅行 9.申购结果消息推送

2024-04-21

python 12306 购票助手

多日期查询余票 自动打码下单 用户状态恢复 电话语音通知 多账号、多任务、多线程支持 单个任务多站点查询 分布式运行 Docker 支持 动态修改配置文件 邮件通知 Web 管理页面 微信消息通知

2024-04-21

SpringBoot网上商城是一个基于Spring Boot的综合性B2C仿天猫电商平台

一、系统介绍 需求设计主要参考天猫商城的购物流程: 用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。 管理后台包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块。 二、所用技术 后端技术栈: Spring Boot+MySQL+Druid+Log4j2+Maven+mybatis 前端技术栈: JSP+Echarts+Bootstrap 三、环境介绍 基础环境 :IDEA/eclipse, JDK 1.8, Mysql5.7及以上,Maven 源码+数据库脚本

2024-04-20

JAVA+SpringBoot网上商城

一、系统介绍 前台商城系统:包含首页登录、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、个人订单管理、会员中心、帮助中心等模块。 后台管理系统:包含数据面板、轮播图管理、商品管理、订单管理、会员管理、分类管理、设置等模块。 二、所用技术 后台:Springboot + Mybatis + Swagger2 + Maven +mysql 前台:Thymeleaf + Bootstrap + AdminLTE 三、环境介绍 基础环境 :IDEA/eclipse, JDK 1.8, Mysql5.7,Maven 源码+数据库脚本

2024-04-20

Java+SpringBoot网上商城

一、系统介绍 前台功能 商品分类查询,加入购物车,提交订单,查看订单 后台功能: 用户管理,订单管理,分类管理,商品管理 二、所用技术 后端技术栈: springboot jpa mysql 前端技术栈: thymeleaf 三、环境介绍 基础环境 :IDEA/eclipse, JDK 1.8, Mysql5.7及以上,Maven 源码+数据库脚本

2024-04-20

基于Java+Springboot电影购票系统

一、系统介绍 前台 普通用户注册、登录、注销 用户信息修改:邮箱、密码、头像 影片的信息浏览:影片的名称、导演、演员、简介及上映时间等 观影的房间、座位的选择:用户选择观影的影院、房间、座位,用户不能选择已出售的座位 用户的评价:用户登录后可对影片写一些评价 订单信息查询:历史订单信息,包括金额、对应电影票、场次、座位等 后台-管理员登录 对影片的信息进行管理:影片的名称、导演、演员、简介及上映时间等,对影片进行新增、删除、编辑等 对影评信息进行管理:对评语进行修改、删除等。 对所有电影院中影片价格进行修改 对电影放映场次进行管理:增加,修改,下架场次 对影院进行管理:增加修改影院 对用户信息进行查询、修改等管理功能。 对电影票订单信息进行查询和管理 票房统计:票房数据可视化 二、所用技术 后端技术栈: springboot jpa mysql 前端技术栈: freemaker 三、环境介绍 基础环境 :IDEA/eclipse, JDK 1.8, Mysql5.7及以上,Maven 源码+数据库脚本

2024-04-20

基于Java+Springboot的景区旅游信息管理系统

一、系统介绍 本项目分为管理员与普通用户两种角色 用户登录 前台功能:旅游路线、旅游景点、旅游酒店、旅游车票、旅游保险、旅游策略 管理员登录 后台功能:用户管理、旅游路线管理、旅游景点管理、旅游酒店管理、 旅游车票管理、旅游保险管理、旅游策略管理、订单管理管理、留言管理、数据分析等等。 二、所用技术 后端技术栈: springboot mybatis mysql 前端技术栈: html+layui 三、环境介绍 基础环境 :IDEA/eclipse, JDK 1.8, Mysql5.7及以上,Maven 源码+数据库脚本

2024-04-20

基于springboot 网上花店商城 springboot+MybatisPlus+mysql

一、系统介绍 包括管理员、普通用户两种角色,外加游客(未登录情况) 权限 游客 < 普通用户 < 管理员 1、游客功能 查看鲜花信息 2、普通用户功能 购买鲜花、订单管理、地址管理 个人信息修改、密码修改,登录登出 3、管理员功能 用户管理、地址管理、鲜花管理、订单管理 个人信息、密码修改、销量统计 二、所用技术 后端技术栈: springboot mybatis-plus mysql 前端技术栈: jsp bootstrap 三、环境介绍 基础环境 :IDEA/eclipse, JDK 1.8, Mysql5.7及以上,Maven

2024-04-20

java基于springboot的宠物商城 Spring Boot+Mybatis+mysql+Thymeleaf+Shiro

一、系统介绍 未注册用户 非注册用户(即游客身份)进入宠物官网首页,可以浏览关于宠物的宣传以及医院发布的文章,进入宠物商城浏览正在发售的商品,搜索已发布的文章和商品,注册以及登录。 已注册用户 注册用户可以修改个人信息和宠物信息,发布预约单(预约医生和美容师),在医院的商城购物,收藏商品,给官方留言,查看与自己相关的记录信息,如:病例记录、预约记录、问诊记录、订单记录等,注销退出系统。 业务管理员 业务管理员具有进货管理(包括进货入库、退货出库、进货单据查询、退货单据查询以及当前库存查询)、销售管理(包括销售出库、客户退货入库、销售单据查询、退货单据查询)、库存管理(包括商品报损、商品报溢、库存报警、报损报溢记录查询)、查看统计数据(供应商进退货单统计、客户进退货单统计、按日统计销售利润、按月统计销售利润)、供应商管理、客户管理、商品管理、期初库存管理、前台轮播图管理、设备类型管理、设备管理、设备使用管理、设备使用记录管理、文章类型管理、文章管理、客户留言管理、医院用品管理、医院用品出入库管理、医院用品出入库记录管理、客户消息管理、客户订单处理、客户预约单管理、客户问诊记录管理

2024-04-20

基于Java+Springboot+vue的宠物交易/领养系统

一、系统介绍 包括管理员、普通用户两种角色,外加游客(未登录情况) 权限 游客 < 普通用户 < 管理员 1、游客功能 查看宠物信息 2、普通用户功能 出售/领养宠物、购买/收养宠物、订单管理、地址管理 和卖家/卖家对话 个人信息修改、密码修改 3、管理员功能 用户管理、地址管理、宠物管理、订单管理 个人信息、密码修改 二、所用技术 后端技术栈: springboot+mybatis+mysql+java 前端技术栈: vue 三、环境介绍 基础环境 :IDEA/eclipse, JDK 1.8, Mysql5.7及以上,Maven 源码+数据库脚本

2024-04-20

基于springboot房屋租赁系统 springboot+mybatis+mysql+shiro

一、系统介绍 包括管理员、房东、租客三种角色,外加游客(未登录情况) 出租类型包含整租和合租 权限 游客 < 租客 < 房东 < 管理员 1、游客功能 登录、注册(可以注册房东或租客)、搜索房子、查看箱子信息、新闻咨询查询 搜索功能,根据价格范围,面积范围,城市,小区,整租/合租搜索 房子信息,基本信息、轮播图、地图定位 2、租客功能 预定房子(创建订单、签订合同、支付订单) 订单管理(取消订单、查看订单、查看合同、退租) 我的家(查看我的当前有效订单房子信息、查看合租情况) 反馈管理(提交反馈、反馈列表、删除反馈) 收藏管理(收藏房子、收藏列表、取消收藏) 个人信息修改、密码修改、联系房东(自动给房东发邮件) 3、房东功能 房子管理(发布出租/编辑房子信息,发布后需要管理员审核;删除房子;下架房子) 订单管理(订单列表、退租、查看合同) 发布出租(包括标题、描述、价格、各种配套信息、地图位置、轮播图等20多个字段信息) 反馈管理(提交反馈、反馈列表、删除反馈) 个人信息、密码修改 4、管理员功能 用户管理(禁用用户、启用用户)

2024-04-20

基于JAVA+Springboot的OA人事管理系统

一、系统介绍 用户模块 日志模块 考勤模块 工作流模块 请假 岗位 会议申请 菜单 定时任务月末统计考勤状况 等功能 管理员输入登录账号和密码,登录成功后,可以进行自身信息的修改,还有员工管理、部门管理、角色管理、菜单管理、岗位管理、公告管理、个人便签、通讯录、签到签退、个人信息管理、会议室管理、会议管理等功能。 员工输入登录账号和密码,登录成功之后,可以对个人信息修改,进行每天上班的签到签退,个人便签管理,也可以查询公司的通讯录可以方便联系到公司所有人。 二、所用技术 springboot+mybatis+ shiro +mvc + activiti+thymeleaf+quartz 三、环境介绍 基础环境 :IDEA/eclipse, JDK 1.8, Mysql5.7及以上,Maven 源码+数据库脚本 所有项目以及源代码本人均调试运行无问题 可支持远程调试运行

2024-04-20

基于Vue和SpringBoot的超市账单管理

一、系统介绍 管理员: 系统基础管理:对登入用户、部门、角色、权限进行维护。 商品管理:对超市所出售的商品档案进行维护。 供应商管理:对超市所合作的供应商档案进行维护。 账单管理:对超市所管理的账单档案进行维护。 职员:商品管理、账单管理 经理:商品管理、账单管理、供应商管理 二、所用技术 后端技术栈: springboot mybatisPlus SpringSecurity mysql Java 前端技术栈: vue View UI 三、环境介绍 基础环境 :IDEA/eclipse, maven3.x, JDK 1.8 , Mysql, node.js 源码+数据库脚本

2024-04-20

基于Java+Springboot的酒店预订管理系统

一、系统介绍 本项目分为管理员与普通用户两种角色 管理员角色包含以下功能: 超级管理员拥有所有权限 后台功能: 工作人员管理、角色管理、应用管理、 日志管理、客户管理、留言管理、 房型管理、房间管理、预约订单管理、 入住管理、统计分析管理 用户角色包含以下功能: 客户登录、找回密码 留言板留言 浏览客房和预定客房 二、所用技术 前端技术栈 jsp、layer、easyui 后端技术栈 springboot,java,mysql,mybatis 三、环境介绍 基础环境 :IDEA/eclipse, JDK 1.8, Mysql5.7及以上,,Maven 所有项目以及源代码本人均调试运行无问题 可支持远程调试运行

2024-04-20

机器学习面试复习资源集合

一、特征工程 (一)特征预处理 标准化、归一化、异常特征清洗、不平衡数据 不平衡数据的处理方法 (二)特征表达 缺失值、特殊特征(eg.时间)、离散特征、连续特征 连续特征离散化的好处 什么样的模型对缺失值更敏感? (三)特征选择 过滤法、包装法、嵌入法 Kaggle中的代码实战 二、算法基础 (一)评价指标 PR曲线和F1 & ROC曲线和AUC AUC & GAUC (二)正则项 正则化与数据先验分布的关系 L1在0点处不可导怎么办?可采用坐标轴下降、最小角回归法 L1为什么比L2的解更稀疏 (三)损失函数 常见损失函数 常见损失函数2 (四)模型训练 经验误差与泛化误差、偏差与方差、欠拟合与过拟合、交叉验证 参数初始化为什么不能全零 深度学习参数初始化 Lecunn、Xavier、He初始化 dropout Batch Normalization dropout和BN在训练&预测时有什么不同 Layer Normalization Transformer为什么用LN不用BN(LN和BN两者分别关注什么) ResNet (五)优化算法 梯度下降法、牛顿法和拟牛顿法 深度学习优化算法

2024-04-20

Tensorflow实战学习笔记、代码、机器学习进阶系列

Tensorflow实战学习笔记 机器学习进阶系列 tensorflow实战代码 人脸检测系列 tensorflow api解读 机器学习实战代码注释 tensorflow2_tutorials_chinese

2024-04-20

算法工程师-机器学习面试题总结

基本概念 1-1 简述解决一个机器学习问题时,你的流程是怎样的? 1-2 损失函数是什么,如何定义合理的损失函数? 1-3 回归模型和分类模型常用损失函数有哪些?各有什么优缺点 1-4 什么是结构误差和经验误差?训练模型的时候如何判断已经达到最优? 1-5 模型的“泛化”能力是指?如何提升模型泛化能力? 1-6 如何选择合适的模型评估指标?AUC、精准度、召回率、F1值都是什么?如何计算?有什么优缺点? 1-7 什么是混淆矩阵? 1-8 ROC曲线如何绘制?相比P-R曲线有什么特点? 1-9 如何评判模型是过拟合还是欠拟合?遇到过拟合或欠拟合时,你是如何解决? 1-10 你是如何针对应用场景选择合适的模型? 1-11 如何选择模型中的超参数?有什么方法,并说说其优劣点 1-12 误差分析是什么?你是如何进行误差分析? 1-13 你是如何理解模型的偏差和方差?什么样的情况是高偏差,什么情况是高方差? 1-14 出现高偏差或者高方差的时候你有什么优化策略? 1-15 奥卡姆剃刀定律是什么?对机器学习模型优化有何启发?举例说明

2024-04-20

吴恩达机器学习课程的讲义

吴恩达机器学习课程的讲义

2024-04-20

使用机器学习算法完成对12306验证码的自动识别

使用机器学习算法完成对12306验证码的自动识别 两个必要的数据集: 文字识别,model.h5 图片识别,12306.image.model.h5

2024-04-20

PTA 天梯赛习题思路和题解

PTA 天梯赛习题思路和题解

2024-04-20

PAT-GPLT(中国高校计算机大赛团体程序设计天梯赛)题解

环境 开发语言:C (c99标准) 编译环境:gcc 4.7.2 相关参数:-DONLINE_JUDGE -fno-tree-ch -O2 -Wall -std=c99 -pipe $src -lm -o $exe

2024-04-20

2021年华为杯第十八届中国研究生数学建模竞赛D题解决方案(国二)

问题分析 第一问采用随机森林+相关性分析筛选20个变量 第二问采用决策树回归、线性回归、梯度提升向量机、随机 森林回归、多层次感知机回归、XGBoost 回归和LightGBM 模型对生物活性预测。最终得出LightGBM 模型的效果比较好 第三问采用多层感知机(MLP)对化合物的 ADMET 性质进行预测。训练集采用90%的样本,测试集采用10%的样本。五种性质的平均准确率为90.5% 第四问采用改进型贪心调优

2024-04-20

第十届大唐杯真题及答案

第十届大唐杯真题及答案

2024-04-20

2020中国华录杯·数据湖算法大赛-定向算法赛(吸烟打电话检测)决赛第二名项目代码

一、算法简介 数据处理时,观察很多手机拍摄高清图片分辨率很大,因为我机器不大好,IO比较耗时,为了加速训练,先预先等比缩放保存好; 然后合并初赛的数据,进行一个清洗、去重; 最后通过定制化的CutMix进行数据预增强,先生成好部分图片。 主要训练方式基础模型是EfficientNet-B4,使用了对抗学习的预训练模型,使用了Ranger优化器,使用了SGDR的学习率衰减策略,然后通过监测验证集的mAP分数来选择最好的模型,使用early stop停止训练。在训练时还加入了梯度截断等策略。 最后使用了模型自蒸馏的训练方案。具体训练过程是,第一步先把训练集随机划分为5折,分别训练5个模型,然后生成对应的训练集预测标签;第二步重新训练5折模型,此时训练集所使用的标签为原始标签和蒸馏标签的加权和,分别训练5个模型。最后尝试不同的模型组合,选择A榜最高的作为最终提交方案。 二、数据处理 使用了初赛发布的两批数据混合在一起,没有使用外部数据。 训练数据处理过程: 先按最大边等比缩放到600尺寸;(参考脚本data/resize.py)

2024-04-19

12306抢票脚本源码

12306抢票软件源码 下载源码运行请注意下面几条: 1.此项目用到了selenium库,浏览器是chrome 2.将driverchrome放到main同级目录下。 3.进入setting.py文件配置一下chrome.exe的路径。注意driverchrome与chrome的版本要一致!!! 4.请确保安装了PyQt5库。 5.run文件是ESTrain.py

2024-04-17

大麦网自动购票脚本, 支持docker一键部署

使用说明 下载docker-compose配置文件: wget https://github.com/ClassmateLin/dm-ticket/releases/download/v0.1.0/dm-ticket.zip 解压zip: unzip dm-ticket.zip && cd dm-ticket 运行容器: docker-compose up -d 修改配置: vim config/config.yaml, 配置项在config/config.yaml中有详细注释 编写本项目主要目的为学习和研究Rust,无法保证项目内容的合法性、准确性、完整性和有效性。 本项目涉及的数据由使用的个人或组织自行填写,本项目不对数据内容负责,包括但不限于数据的真实性、准确性、合法性。使用本项目所造成的一切后果,与本项目的所有贡献者无关,由使用的个人或组织完全承担。 本项目中涉及的第三方硬件、软件等,与本项目没有任何直接或间接的关系。本项目仅对部署和使用过程进行客观描述,不代表支持使用任何第三方硬件、软件。使用任何第三方硬件、软件,所造成的一切后果由使用的个人或组织承担,与本项目无关。

2024-04-17

数据库设计课程设计-高校选课管理系统

开发意义: 随着信息技术不断向深入发展,越来越多的学校开始着手信息化建设。其中学生选课、成绩信息化管理就是其中重要的一块内容。学生选课与成绩信息规模大、项目条数多、信息量庞大,传统的人工管理方式显然已经无法满足要求,需要借助计算机来进行现代化信息管理,从而提高管理的准确性与高效性。 可行性: 传统人工管理成绩存在诸多弊病,比如准确性低、效率低等。计算机具有存储快、查找便利、准确性高的特点,能非常好的解决人工管理的弊病。 应用环境: Web服务器:tomcat8.5; 编程工具Eclipse Java 2019-09; 数据库:SQL sever 2017; 技术路线: jsp+servlet+javabean; 系统功能框架介绍,处理模块描述。 管理员: 1.查询教师名单; 2.添加教师信息; 3.修改教师信息; 4.删除教师信息; 5.查询学生名单; 6.添加学生信息; 7.修改学生信息; 8.删除学生信息; 9.查询课程信息;

2024-04-16

大麦抢票脚本 V1.0 已有大佬验证可以成功!

功能介绍 通过selenium打开页面进行登录,模拟用户购票流程自动购票 1. 配置环境 1.1安装python3环境 Windows 访问Python官方网站:https://www.python.org/downloads/windows/ 下载最新的Python 3.9+版本的安装程序。 运行安装程序。 在安装程序中,确保勾选 "Add Python X.X to PATH" 选项,这将自动将Python添加到系统环境变量中,方便在命令行中使用Python。 完成安装后,你可以在命令提示符或PowerShell中输入 python3 来启动Python解释器。

2024-04-13

东方财富网股吧爬虫,爬取帖子及其评论的相关信息,并储存到数据库中(附详细操作说明)

该项目使用 selenium 模拟用户操作抓取股吧 发帖 和 评论 数据(允许多线程同时抓取多支股票的相关信息),并将抓取到的数据储存到 MongoDB 中,方便后续使用。 附加说明:非科班新手第一次写爬虫,代码效率一般(比如未使用 redis 做消息队列等等),适合新手入门或小规模爬取。以后若有能力与时间会对代码进行迭代维护,提高爬取效率。 主要功能 爬取指定股票股吧中的发帖信息,包括帖子标题,浏览量,评论数,帖子链接,发帖时间 (YYYY-MM-DD, HH: MM),以 post_XXXXXX 为集合名储存到 MongoDB 中。 爬取指定时间范围中股吧帖子下的评论信息,包括评论内容,是一级或二级评论,点赞数,发帖时间 (YYYY-MM-DD, HH: MM),以 comment_XXXXXX 为集合名储存到 MongoDB 中。 可以通过 post_XXXXXX 下的 _id 与 comment_XXXXXX 下的 post_id 建立映射关系,对帖子标题和评论内容进行匹配。

2024-04-13

某乎爬虫,用于爬取某乎页面 话题 问题 回答 评论 的爬虫 支持 asyncio 异步高并发 支持多用户登陆

某乎爬虫,用于爬取某乎页面 话题 问题 回答 评论 的爬虫 支持 asyncio 异步高并发 支持多用户登陆

2024-04-13

掘金小册爬虫脚本 将小册保存为 markdown,pdf,html 格式

本项目案例使用爬虫爬取的为公开的掘金小册。可在掘金小册/阅读 中查看。本项目仅供学习交流使用,请勿将个人付费小册公开。若公开由此造成的一切后果,与本项目无关。

2024-04-13

轻量型A股每日数据爬虫项目

核心逻辑1:通过财经网址获取全部股票的动态数据,并且经过分析,将日涨,日跌超过x%的股票进行筛选,按照股票的涨跌幅进行排序;通过对股票的大额买入卖出订单进行排序,并预测前10位买入卖出的之后的大概股价,并对买入卖出进行排序;并存储到数据库(DB:Mysql,需要跟进) 核心逻辑2:对保留到数据库的数据按照5日,20日进行分析排序,筛选出5,20日上涨,下降的前x位的股票,进行排序,并存储到数据库(DB:Mysql) 核心逻辑3:做T,通过股票的涨跌幅,对股票进行T操作 (此为量化核心逻辑) 使用技术指标建模交易信号。比如利用布林通道、均线交叉等技术分析指标,建立买入和卖出规则。 加入风险管理作为交易决策依据。比如设置止损价格和动态调整仓位,降低单日风险。 采用复合指标相结合,避免单一依赖某一指标。比如结合MACD、KDJ等多 time frame 的指标信号。 进行回测优化,找出参数组合效果好的交易策略。优化周期、触发点设定等策略变量。 采用平滑移动平均线,避免被短期波动误导。比如用EMA作为买入信号。 重点跟踪行业领跑股票,利用行业势头。同时观察大盘走势变化。

2024-04-13

新浪某博热榜爬虫,利用 Github Action 的调度脚本

使用PHP实现的,爬取新浪某博每日热榜内容,以下是今日热榜 更新于 2024-04-13 20:50:32 Thurman猫一杯视频号被封 1.7M 车辆发生剐蹭女子叫嚣自己老公是国足 1.4M 在高原感受别样的春日浪漫 1.2M 保时捷撞车后女子砸门被行政拘留 1.1M 郑合惠子 垃圾堆里扒好东西 924.0K 张一山银发 892.0K 金秀贤金智媛不再合体 640.4K 伊朗对美国发出警告 509.0K 眼泪女王 482.6K 男子养了20年的海龟竟是国保玳瑁 480.9K 赵丽颖说谢谢狗哥 480.3K 伊朗扣押一艘和以色列相关货船 479.3K 绝大部分人感染HPV后会自愈 470.8K RNG直播需付费观看 446.3K 成龙为刘浩存提裙摆 440.8K 承欢记 404.6K

2024-04-13

矩阵快速幂求解斐波那契

二. 矩阵相乘 若A为n×k矩阵,B为k×m矩阵,则它们的乘积AB(有时记做A·B)将是一个n×m矩阵。其乘积矩阵AB的第i行第j列的元素为: image 代码如下: ###### 矩阵乘法 ###### def mutiply(self,a,b): temp=[[0,0],[0,0]] for i in range(len(a)): for j in range(len(b)): for k in range(len(temp)): temp[i][j]+=a[i][k]*b[k][j]%1000000007 return temp 三. 矩阵快速幂 幂又称乘方。表示一个数字乘若干次的形式,如n个a相乘的幂为a^n ,或称a^n为a的n次幂。a称为幂的底数,n称为幂的指数。 快速幂的思路就是:设A为矩阵,求A的N次方,N很大。例如:A的9次方 A^9 = A*A*A*A*A*A*A*A*A 【一个一

2024-04-13

走迷宫 广度优先搜索与优先队列

2.0版本 迷宫按以下格式输入:第一行输入m与n 表示迷宫行数列数。随后输入m行字符 由# . r a x组成 表示墙壁 地面 地面(起点) 地面(终点) 可破坏的墙壁 迷宫中含有可破坏的墙壁 破坏墙壁可以多罚n步 可以有多个起点 会算出最短的路径 无解的迷宫会打印一个最长的路径 采用优先队列 由队列链表实现 1.0版本 解决简单的迷宫 从控制台输入格式:第一行输入m与n 表示迷宫行数列数。随后输入m行字符 由# . r a组成 表示墙壁 地面 地面(起点) 地面(终点) 输出0 表示无法解出 若能解出 会随后输出路径 采用简单的队列

2024-04-13

空空如也

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

TA关注的人

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