- 博客(172)
- 收藏
- 关注
原创 Kotlin扩展函数实现原理
package study.yang.carditemdemo.capturefun String.contact(str: String): String { return this.plus(str)}fun main(){ println("====".contact("哈哈喜欢"))}package study.yang.carditemdemo.capture;import kotlin.Metadata;import kotlin.jvm.interna
2022-05-31 16:12:13
360
原创 算法学习记录014_堆排序算法
package com.study.data.structures.sort;import java.util.Arrays;/** * 堆排序 * 二叉堆本质上是完全二叉树 * <p> * {4,6,8,5,9},利用最大堆对数组进行升序排列 * 当前结点下标为i,则该结点的左子结点是2*i+1,右子结点是2*i+2。 * 何为大顶堆? * 每个结点的值都大于或等于其左右孩子结点,成为大顶堆 */public class HeapSort { public
2022-04-05 13:55:54
530
原创 003_v-model实现原理
一、v-model原理v-model指令实质上就是一个语法糖,默认用于支持form表单类型控件实现双向绑定。二、源代码用如下这段代码来探寻v-model的实现原理<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <title>数据绑定</title> <!-- 引入Vue --> <script type="text/javascri
2022-03-23 17:36:24
2858
原创 算法学习记录013_斐波那契查找算法
package com.study.data.structures.search;import java.util.Arrays;/** * 斐波那契数列的方式进行有序数组的查找 * 斐波那契数列:{1,1,2,3,5,8,13,21,34,...} * f(n) = f(n-1)+f(n-2),推导出f(n)-1 = [f(n-1)-1] + [f(n-2)-1] + 1 * 任何一个数组长度为f(n)-1的数组,都可以通过斐波那契数列的原理进行分割下去,直到找到要查找的元素。 * 一个
2022-02-28 16:59:54
185
原创 算法学习记录012_插值查找
package com.study.data.structures.search;/** * 插值查找算法: * 优点:对于数据量较大,关键字分布比较均匀的查找表来说,采用插值查找,速度比较快 */public class InterpolationSearch { public static void main(String[] args) { int[] array = new int[100]; for (int i = 0; i < 100;
2022-02-14 10:07:27
186
原创 算法学习记录011_二分查找
package com.study.data.structures.search;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 对有序数组进行二分查找 * {23, 45, 67, 86, 86, 90, 91} * 查找45: * 第一次查找:left=0,right=arr.length-1 * middleIndex = (0+7)/2=3 * middleValue
2022-01-19 19:04:50
431
原创 算法学习记录010_基数排序
package com.study.data.structures.sort;import java.util.Arrays;/** * 基数排序 * 所有自然数都是由0到9构成的,所以准备一个二维数组来进行数据的装填 * 定义二维数组, * int[][] arr = new int[11][arr.length] * {43, 986, 7, 21, 591, 87} * <p> * 第一轮: * 依次取出待排序元素,并获取该元素的个位数放到其对应的数组中。例如:4
2022-01-11 10:23:54
379
原创 前端学习记录013_绝对定位的原点与其包含块的关系
一、效果图 二、源代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
2021-12-19 13:24:00
161
原创 算法学习记录010_归并排序
方式1:package com.study.data.structures.sort;import java.util.Arrays;/** * 归并排序: */public class MergeSort { //当数组长度小于阈值的时候就开始排序,可以通过修改阈值来调节排序速度,但是并不是越大越好 private final static int THRESHOLD = 2; public static int[] sort(int[] arr) {
2021-12-19 13:08:03
264
原创 算法学习记录009_快速排序
一、java版本package com.study.data.structures.sort;import java.util.Arrays;/** * 快速排序 * int[] arr={9, 4, 2, 1, 3, 6, -11}; * 假设以index=(0+7)/2=3为基准,小于arr[3]=1的放到arr[3]=1的左边,大于arr[3]的放到arr[3]的右边。 * 第一次调用quickSort方法 * 0)传入待分组的数组arr,传入left=0和right=arr.le
2021-12-14 12:16:02
501
原创 算法学习记录008_希尔排序
一、java版本package com.study.data.structures.sort;import java.util.Arrays;/** * 希尔排序 * 交换法: * 以长度为10的数组int[] arr = {9, 4, 6, 1, 5, 11, 32, 12, 8, -3};为例子 * 第一步: * step=10/2,将数组分为5个部分,每个部分各个元素之间下标间隔为5。 * 即index=0与index=5,index=1与index=6,index=2与inde
2021-12-13 10:06:14
1063
原创 算法学习记录007_排序算法之冒泡、选择、插入
一、冒泡排序package com.study.data.structures.sort;import java.util.Arrays;/** * 冒泡排序 */public class BubblingSort { public static void main(String[] args) { int[] arrays = new int[80000]; for (int i = 0; i < 80000; i++) {
2021-12-05 11:29:14
366
原创 002_组件的二次封装
一、介绍针对element-ui的el-input组件进行封装,需要添加element-ui的依赖二、FirstCustomWrapInput组件<template> <div> <el-input v-model="value" @input="$emit('input', value)" @blur="$emit('blur1')" @focus="$emit('focus1')" ></
2021-11-15 16:32:30
1059
原创 001_自定义组件使用v-model
一、APP组件<template> <div> <div> <h3>自定义MyInput组件</h3> <my-input v-model="mValue" /> {{ mValue }} </div> <hr /> <div> <h3>自定义MyRadio组件</h3> <
2021-11-15 15:01:32
733
原创 003_redux-actions的使用
一、效果图二、组件间的关系说明三、源代码3.1 CountReducerimport { createActions, handleActions, combineActions } from 'redux-actions'import { INCREMENT, DECREMENT } from '../../utils/constant'export const { increment, decrement } = createActions({ [INCREMENT]:
2021-11-15 10:18:42
320
原创 Android学习记录045_java获取运行时泛型类的真实泛型
一、泛型类class GenericType<T> { private T data; public void setData(T data) { this.data = data; } public T getData() { return data; }}二、获取泛型类的真实泛型//这种方式定义泛型变量,要想通过操作appleGenericType.getClass()是无法获取到泛型的真实类型的//因
2021-10-29 10:25:19
1881
原创 Android学习记录044_监听Android截屏或者录屏
一、源代码package com.study.capturescreenlistenerimport android.annotation.SuppressLintimport android.content.ContentResolverimport android.content.Contextimport android.net.Uriimport android.os.Handlerimport android.os.HandlerThreadimport android.os.
2021-10-28 18:29:37
5538
2
原创 Android学习记录043_java泛型与kotlin泛型
一、java泛型package generically;public class Main { public static void main(String[] args) { GenericType<Fruit> genericTypeFruit = new GenericType<>(); GenericType<Apple> genericTypeApple = new GenericType<>();
2021-10-28 10:43:01
1605
原创 Android学习记录042_利用广播实现强制退出登录以及悬浮弹框的使用
一、效果图二、源代码静态广播弹出的弹窗是由悬浮弹窗所实现的package com.study.forcelogoutdemoimport android.content.Intentimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.view.Viewclass MainActivity : BaseActivity() { override fun
2021-09-25 12:13:12
376
原创 Android学习记录041_webview播放视频的全屏问题以及状态栏隐藏显示问题
一、效果图 二、说明Demo里面使用X5WebView和原生WebView,均可以正常横竖屏三、源代码package com.study.fullscreendemo.system_webview;import android.app.Activity;import android.content.pm.ActivityInfo;import android.content.res.Configuration;import android.graphics.PixelFo
2021-09-16 15:17:58
1157
原创 002_学习redux以及react_redux
一、redux之自定义createStore/** * 自定义Store,返回一个对象 */export function createStore(reducer) { let state = reducer(undefined, { type: "redux/init@@" }) //添加获取获取state方法 function getState() { return state } //定义分发action方法 functi...
2021-08-25 14:36:14
117
原创 001_探究setState的用法
一、setState的基本使用import React, { Component } from 'react'export default class index extends Component { state = { count: 0 } /** * 如果不依赖原来的值,建议使用对象方式调用setState */ incrementByObject = () => { this.setState({ count: 5 }, ()
2021-08-19 16:54:30
369
原创 Android学习记录040_手机抓包
一、抓包软件whistle1.1 安装文档二、注意事项默认只能抓取HTTP的包,要是想要抓取Https的包需要安装证书。2.1 操作步骤1.1 安装成功后,调用w2 start命名 # 出现如下视图1.2 在浏览器中输入http://127.0.0.1:8899 #出现如下视图 ...
2021-07-12 19:42:46
166
2
原创 算法学习记录006_深层递归
<script> /** * [1,2,[3,4]]=>{children:[{value:1},{value:2},children:[{value:3},{value:4}]]} * * */ function arrToObj(array){ let obj; if(Array.isArray(array)){ ob.
2021-07-09 14:50:06
161
原创 算法学习记录005_寻找字符串中连续最长字符以及个数
一、寻找最长 <script> function count(str){ let i = 0; let j = 0; let maxChar = ''; let maxCount = 0; while(i<str.length){ //当i指向的元素与j指向的元素不相等的时候,说明字符发生了变化
2021-07-09 14:14:20
335
原创 算法学习记录004_三种方式实现斐波那契数列
<script> //方式一: // function fbi(n){ // console.count("计数") // return n < 2 ? 1 : fbi(n-1) + fbi(n-2) // } //方式二,做缓存,减少递归次数 let cache = {} function fbi(n){ conso
2021-07-09 14:11:09
135
原创 前端学习记录012_利用nodejs写shell脚本
主要利用shelljs库将shell脚本的命令转化为js语法,从而达到在windows上写shell脚本的目的。一、环境配置1.1 nodejs环境变量1.2 gradle环境变量二、示例源代码如下:var shell = require('shelljs');var fs = require('fs');// 命令行参数 第一个参数是表示更不更新引擎工程代,第二个参数表示是否重新安装引擎工程依赖// node .\windowsAndroidBuildRelase.js -u -g
2021-06-22 10:56:35
391
原创 Android学习记录039_软键盘问题的探究
方案:通过监控软键盘的高度变化,在其顶部添加输入控件从而达到在不影响原有布局的情况下,既能输入内容,又能看到输入控件。一、效果图:二、源代码package com.study.softkeyboard;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity;import android.content.res.Configuration;import android.os.Bundl
2021-06-22 10:46:24
419
原创 前端学习记录011_自定义对话框
二、源代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"> <title>自定义提示对话框<...
2021-05-27 16:06:08
191
原创 前端学习记录010_水平平分指定宽度的div(均分不换行)
一、利用浮动实现 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>div均分换行</title> <style> *{ margin: 0px; padding: 0px; } .container{ position: absolute; w
2021-05-21 16:20:58
746
原创 前端学习记录009_构造函数中的this是谁
一、源代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title&
2021-04-22 16:12:59
121
原创 前端学习记录008_Symbol创建对象属性值(调用Symbol标识声明的方法)
一、源代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title
2021-04-19 16:07:34
562
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人