持久化技术——使用LitePal操作数据库

LitePal是一款开源的Android数据库框架,采用了对象关系映射的模式。LitePal的项目主页上有详细的使用文档,地址为http://github.com/LitePalFramework/LitePal。配置LitePal在app/buile.gradle文件中声明该开源库的引用。在dependencies闭包中添加该内容compile 'org.litepal.andro...
分类: 其他 发布时间: 03-04 08:19 阅读次数: 0

持久化技术——文件存储

该方法不对存储内容进行任何格式化处理,比较适合用于一些简单的文本数据或二进制数据。将数据存储到文件中Context类中提供了一个openFileOutput()方法,用于将数据存储到指定的文件中。该方法接收两个参数:文件名。这里指定的文件名不能包含路径,所有文件默认存储在/data/data//files/目录下。文件的操作模式。MODE_PRIVATE:当指定同样的文件名时,所写的内...
分类: 其他 发布时间: 03-04 08:19 阅读次数: 0

数据存储全方案——SQLite数据库存储

创建数据库SQLiteOpenHelper是一个抽象类。包含抽象方法:onCreat()、onUpgrade()。包含实例方法:getReadableDatabase()、getWritableDatabase()。两个实例方法都可创建或打开一个现有的数据库,并返回一个可对数据库进行读写操作的对象。但当数据可以不可写入的时候,getReadableDatabase()方法返回的对象将以只...
分类: 其他 发布时间: 03-04 08:18 阅读次数: 0

内容提供器——跨程序共享数据

在DatabaseTest项目的基础上继续开发DatabaseTest项目见持久化技术——SQLite数据库存储1. 创建内容提供器右击com.example.databasetest包–>New–>Other–>Content Provider,将内容提供器命名为DatabaseProvider,authority指定为com.example.databasetest.p...
分类: 其他 发布时间: 03-04 08:18 阅读次数: 0

发送自定义广播:跨进程通信、发送有序广播、发送标准广播、本地广播

发送标准广播1.新建一个广播接收器MyBroadcastReceiverpackage com.example.broadcasttest;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget...
分类: 其他 发布时间: 03-04 08:18 阅读次数: 0

广播的最佳实践——实现强制下现功能

新建项目BroadcastBestProctice1.创建一个类ActivityCollector用于管理所有活动package com.example.broadcastbestpractice;import android.app.Activity;import java.util.ArrayList;import java.util.List;public class A...
分类: 其他 发布时间: 03-04 08:18 阅读次数: 0

通知的更多功能

1. 播放音频setSound()方法接收一个Uri参数,所以在指定音频文件时要先获取音频文件对应的URI。例如每个手机/system/media/audio/ringtones目录下有很多音频文件,我们从中随便选一个文件,就可这样指定:Notification notification = new NotificationCompat(this,"default") ...
分类: 其他 发布时间: 03-04 08:17 阅读次数: 0

leetcode——求二叉树的最大(小)深度

最大深度:从根节点到叶子节点的最长路径上的节点个数最大深度为3规则:(1)二叉树为空,返回0(2)递归计算左孩子和右孩子的深度,取最大值+1代码实现/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode righ...
分类: 其他 发布时间: 03-04 08:16 阅读次数: 0

leetcode——逆波兰表达式

中缀表达式转逆波兰表达式:使用栈结构规则:(1)运算符优先级 ( > * / > + - > ((2)建立两个栈,分别是数字栈和运算符栈(3)遇到数字压入数字栈(4)遇到(或读取到的运算符 > 栈顶元素,压入运算符栈(5)遇到)弹出运算符直到弹出((6)新读取到的运算符<=栈顶元素,弹出所有>=新读取到的运算符的运算符,该运算符入栈(7)读...
分类: 其他 发布时间: 03-04 08:16 阅读次数: 0

leetcode——链表排序(归并排序)

归并排序:(1)待排序的数组、链表从中间一分为二(2)递归将左半部分进行归并排序(3)递归将右半部分进行归并排序(4)将左半部分和右半部分进行有序合并分割次数 = log2^n时间复杂度O(nlogn)空间复杂度O(n)题目:在O(nlogn)的时间内使用常数级空间复杂度对链表进行排序。解析:时间复杂度为O(nlogn)的排序算法有归并排序和快排归并排序的空间复杂度为O...
分类: 其他 发布时间: 03-04 08:16 阅读次数: 0

leetcode——链表排序(插入排序)

插入排序:讲一个元素看做有序序列,其他元素看做无序序列,从无序序列中取出一个元素插入到有序序列中时间复杂度 = O(n^2)空间复杂度 = O(n)题目:使用插入排序对链表进行排序。代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNo...
分类: 其他 发布时间: 03-04 08:15 阅读次数: 0

vue造轮子——项目初始化

创建一个新的github仓库新建一个新的项目文件夹添加README.md文件不能直接在VSCode中使用该命令,无法识别touch指令README.md中添加内容将README.md提交到github上使用npm作为第三方工具安装node初始化npm也可以使用npm init -y生成一个默认的package.json提交到github仓库安装vue高版本的npm默认添加–save创建.gitignore文件,不提交node_mod..
分类: 其他 发布时间: 03-04 08:15 阅读次数: 0

vue造轮子——button

创建index.html文件,使用script标签引入vue.min.js创建button.js文件,编写button相关内容Vue.extend():创建组件构造器,传入的template代表创建的组件的模板Vue.component(‘组件名称’,组件构造器):注册组件(全局组件)index中使用创建出的按钮组件,并编写button的css样式安装第三方打包工具parcel属于开发时依赖创建打包文件4. 新建文件目录src,添加app.js和button.vue5. .
分类: 其他 发布时间: 03-04 08:15 阅读次数: 0

删除已经提交至github上的文件夹

参考:https://blog.csdn.net/wudinaniya/article/details/77508229在github上无法直接删除项目中的某个文件夹,必须使用git命令来操作想要删除上述三个文件夹git --help 帮助命令git pull origin master 将远程仓库里的项目拉下来dir 查看该项目有哪些文件夹git rm -r --cached target 删除target文件夹git commit -m ‘删除了xxx’
分类: 其他 发布时间: 03-04 08:15 阅读次数: 0

leetcode——从先序遍历与中序遍历序列构造二叉树

题目根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:二叉树深度遍历先序遍历:DLR中序遍历:LDR后序遍历:LRD根据中序和先序遍历序列重构二叉树由先序遍历特点可知,先序遍历第一个数据为根节点数据,则该二叉树的根节点值为preorder[0]=3由中序遍历特点可知,根节点左边为左子树中序遍历结果,即[9]
分类: 其他 发布时间: 03-04 08:14 阅读次数: 0

leetcode——最小覆盖字串(滑动窗口)

题目给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。示例:输入: S = “ADOBECODEBANC”, T = “ABC”输出: “BANC”说明:如果 S 中不存这样的子串,则返回空字符串 “”。如果 S 中存在这样的子串,我们保证它是唯一的答案。解析新建对象obj记录t中每种字符串出现的次数,并记录t中的字符串种类数targetvar obj = {}for(let c of t){ if(c in obj) obj[c]+
分类: 其他 发布时间: 03-04 08:14 阅读次数: 0

跨域传输

非同源限制cookie、LocalStorage和indexDB无法获取无法操作其他源下的DOMAjax请求不能发送JSONP原理script标签中的src可进行跨域,且脚本具有加载完就立即执行的特点前端将要跨域的url和要执行的函数名拼接作为src的值服务器取出函数名,将要传的值放在函数参数中,拼接为字符串返回缺点:需要前后端配合只能进行get跨域具体操作前端<script> function func(data){ //打印服务器返回的数
分类: 其他 发布时间: 03-04 08:14 阅读次数: 0

leetcode——最长回文子串

题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”中心扩散法最长的回文子串的长度可以分为奇数个和偶数个。遍历字符串中的每一个字符,假设该字符属于回文子串的中间项回文子串的长度为奇数个时,判断i-1和i+1是否相等假设回文子串的长度为偶数个时,判断i和i+1是否相等function longesPalidro
分类: 其他 发布时间: 03-04 08:13 阅读次数: 0

EventLoop例题

例1console.log('1');async function async1() { console.log('2'); await async2(); console.log('3');}async function async2() { console.log('4');}process.nextTick(function() { console.log('5');})setTimeout(function() { console.
分类: 其他 发布时间: 03-04 08:13 阅读次数: 0

LeetCode——多数之和

两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]var twoSum = function(nums, target) { for(let i = 0; i < n
分类: 其他 发布时间: 03-04 08:13 阅读次数: 0