自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (21)
  • 问答 (18)
  • 收藏
  • 关注

原创 由Handler引发的思考

    先说一下,这个问题,我自己花了一晚上去思考这个问题,起源于大家都耳熟能详的Handler在Activity容易导致内存泄漏,我相信大家都知道,但是这里面的细致原因,却之前自己没有深究,所以写一下这篇博客,记录一下自己的思考。Handler导致内存泄漏我们都知道Handler因为持有外部Activity引用导致了,Activity的无法释放,但是...

2019-03-25 16:02:08 313

原创 ObjectBox的探究

ObjectBox的介绍    ObjectBox是一个专门为物联网和移动设备打造出的非常快速的面向对象的数据库,它有一下几个特点ObjectBox是小于1MB的,所以非常适用于移动App和小的物联网设备,ObjectBox是第一个高性能,NoSQL,并且兼容ACID的边缘数据库目前已经有8万多个APP使用ObjectBox,ObjectBox比...

2019-03-05 16:13:04 9673 1

原创 EventBus的基本用法

EventBus是一个用于简化各个组件比如:Acivity,Fragment,Thread,Service等之间的通信的一个第三方库,我们就不需要使用handler,Intent来写,增加代码的复杂度 EventBus官方介绍 EventBus… 1. simplifies the communication between components ...

2018-06-20 11:30:17 287

原创 View工作原理之实现等分布局

View的工作原理,也就是View的measure,layout,draw三个过程,为了巩固学习,写代码实现“等分布局”,下面就介绍“等分布局”的实现,不过之前,需要重新学习一下View的三个过程。 View大致工作流程View的绘制流程,从RootView的performTraversals开始,经过measure,layout,draw三个过程才将View绘制而出。measur...

2018-05-14 11:09:52 718

原创 Android 获取图库中图片的坑

最近实现一个功能,实现拍照的图片或者图库中的图片向服务器后台上传数据,拍照图片实现还好,可是图库中的图片一直获取不到文件,现在记录一下自己的坑。我的代码实现 //从相册选择 private void choseHeadImageFromGallery() { Intent intentFromGallery = new Intent(); i...

2018-05-01 16:46:38 1701

原创 ThreadPool用法解析

线程池好像每一次参加面试的时候,都会问道,自己之前确实没有使用过什么,今天大致结合看网上博客,发现了一篇写的很好的博客,略作修改,写下 原博客地址强烈推荐这个作者写的博客,思路很清晰!!!什么是线程池线程池当中缓存了一定数量的线程,线程池实现了对于线程的管理和复用(最重要的就是实现对线程的复用,避免频繁创建线程和销毁线程带来的开销),当然管理的可以实现线程执行的统一分配以及调优 ...

2018-05-01 16:46:12 480

原创 Service用法解析

最近,想到Service用法,好像大脑中就简单的记得,一些简单用法,有些模糊,今天补上(可能最近上课上蒙了,有些忘记了),现在看看Android四大组件中的Service.简单说一些Service:它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务(很耗时的任务请使用线程内部)。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态,service在后台...

2018-05-01 16:45:44 629

原创 AsyncTask源码分析

AsyncTask封装了线程池和Handler,它主要是为了方便我们在子线程当中去更新UI(大多数的情况下,是用它来更新进度条),AsyncTask类并不适合做过多任务量的后台任务(过多任务量实际逻辑复杂度高) 它主要有4个方法 (1)onPreExecute() 主线程执行,在任务执行之前 (2)doInBackground(Params…params) 执行任务 (3)onProgr...

2018-05-01 16:44:59 84

原创 View中requestLayout和Invalidate源码分析

我们都知道requestLayout和Invalidate都会导致View的绘制,那他们到底,有什么区别呢?我们可以去View的源码看看究竟(因为没有看过相关源码,这里重新补一下,自己太菜了) requestLayout的源码分析首先我贴出,requestlayout的注释 > * Call this when something has c...

2018-05-01 16:44:37 330

原创 Activity的生命周期

本文绝大部分内容都是来自《Android艺术探索》,我只是记笔记并且在电脑打log验证,方便自己看生命周期介绍(1) onCreate: 表示Activity正在被创建 (2) onRestart: 表示Activity正在重新启动。一般情况下,当当前的Activity从不可见的状态变成可见状态时,onRestart就会调用,比如用户按Home键切换到桌面或则用户打开了一个新的A...

2018-05-01 16:44:17 122

原创 ListView和RecycleView的区别

一. getView()和onCreateViewHolder方法我想对于这个滑动控件来说,最神奇的地方就是他们的数据绑定函数,对于Listview控件来说就是它的适配器getView()函数@Overridepublic View getView(int position,View convertview,ViewGroup parent){ Fruit fruit=getIt...

2018-05-01 16:43:55 1022

原创 Java实现单例模式

在面试的时候应该经常会问道的一种题型,使用某种语言实现单例模式,这里就记录一下常见的几种方法。单例模式:实现一个只能生成一个实例的类。方法一public Singleton{ private Singleton instance=null; private Singleton(){} public static Singleton getInstance{...

2018-03-02 17:56:12 170

原创 利用Github搭建自己专属博客

这是一个在Windows简易的搭建博客的方法,建立使用Jekyll构建自己的博客,所以这一篇文章采用fork别人的模板来构建(“偷懒”),在此之前需要满足一下条件注册一个Github账号本地安装Git,并且能实现Git向自己的仓库push文件 教程第一步:fork别人模板这里我以自己的博客的模板为例(fork),我自己采用的一款名叫NexT主题,在github上面搜索jeky...

2018-02-13 15:46:08 4529 1

原创 View基础知识(1)

View是所有控件的基类,是一种界面层的控件的一种抽象。1.1 View的位置参数 一共8个View主要由四个顶点决定,分别对应View的四个属性:top、left、right、bottomtop是左上角纵坐标,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标(注意这里面的参数是相对于View的父容器来说的)获取这些参数的方法:Left=getLe

2018-01-19 17:31:58 394

原创 Linux下编写udp群聊室

这个正好是我的一个课堂上机小练习,为了实现这个功能,我们需要了解一下几个知识点udp发送和接受数据的过程select语句功能如何开启一个线程*如何传输结构体struct一.udp发送数据和接受数据流程 无论是客户端还是服务器端,刚开始都需要向系统申请套接字socket,然后通过socket来实现发送和接受消息,只不过服务器端需要把该套接字绑定到某个端口通过调用

2017-12-11 11:57:50 349 1

转载 java中==和equal的区别

值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。==比较的是2个对象的地址,而equals比较的是2个对象的内容。显然,当equals为tr

2017-12-07 19:57:47 127

原创 Java 对象的序列化

一.对象序列化的作用我们都知道Java是一门面向对象的语言,自然很多地方,都要有这种思想,网络传输数据,或者保存到磁盘文件中,是否可以以直接保存或则传输一个对象,数据都封装在对象里面(这样可以大大减少我们传输数据的操作),答案是一定的,对象的序列化就提供这样的作用。二. 怎么实现序列化对象序列化:把对象转换成字节流的过程 。 反序列化:从字节流中重构一个对象的过程。 让一个对象成为可序列化的

2017-11-02 22:32:19 181

原创 Activity的四种启动模式

本篇介绍Android的Activity的四种启动模式,分别为:standard , singleTop , singleTask , singleInstance. 任务栈:android用来存放activity组件的栈(后进先出),一个APP可以有多个任务栈 standard: 标准模式,也是系统默认的模式,每次启动一个Activity都会重新建一个新的实例,在这个模式下,

2017-10-17 16:26:40 185

原创 Java在进行网络传输的过程中的奇技淫巧

今天,翻书的时候看到书上的网络传输数据的时候,顿时感觉之前的自己的操作太low了,这篇主要讲,在网络传输的过程中,你发送请求,但是你现在界面又需要根据返回的数据来更新界面,但数据什么时候返回你又不知道,这时候该怎么办?之前我直接在主线程里面一个死循环判断接受信息是否为空让其等待,可能一直网好所有很少导致ANR问题, 书上说的就是采用Java的回调机制,看Java回调机制参考 现在写代码实现,采用

2017-10-07 18:07:34 679 2

原创 源码分析listview的adapter的notifyDataSetChanged方法分析

我们在使用listview控件的时候,总是会因为数据的改变,而需要更新listview控件的内容,这时候总是会调用adapter的notifyDataSetChanged()方法,现在分析一下,调用这个方法具体实现了什么步骤。 首先调用了mDataSetobservable.notifyChanged() (DataSetObservable类)方法 接着 循环调用了 在DataSetO

2017-09-28 18:26:51 519

原创 Arraylist<T>等实现自定义的排序算法

考试的时候,本想到Arraylist可以自定义排序算法,可是忘记了返回值(当时看不了源码),后面只能自己写了个冒泡排序(效率太低了),现在说说如何自定义排序算法import java.util.ArrayList;import java.util.Comparator;public class test { public static void main(String[] args) {

2017-09-18 20:24:13 886

原创 算法介绍:Dijkstra算法

什么是Dijkstra算法 ?Dijkstra算法指的是:计算某一点到其余各个点之间的最短距离,该算法主要试用于边距离为正数的请况。Dijkstra算法介绍Dijkstra算法:把图里面的点分成两个集合,S,V,S这个集合里面是已经确认到你想要求的点(这里假设为A点)的最短路径的长度,算法刚开始S里面只有A点,然后计算A到各个点的距离,取最短路径,把该点(B),加入到S集合中,然后计算A到各个点以

2017-09-17 21:00:28 824

原创 源码分析Java的观察者模式

java中的观察者模式,简而言之就是多个对对象对一个对象的观察,当被观察者改变时,会通知观察者。Java为这种模式,特地的提供Observable类和Observer接口实现这种模式,先看下面的代码实现观察者模式被观察者类class Sub extends Observable{ private String msg; public String getmsg(){

2017-09-13 18:59:50 183

原创 Java实现快速排序算法

排序算法采用的是分而治之的方法,刚开始需要选择一个基准值,以这个基准值,把数组分成两部分,左边小于基准值的数组,右边大于基准值的数组(假设我们要实现从小到大的排列),然后在对左边序列选取基准值再把该序列一分为二,右边序列也一样,直到分到不能分为止,一直递归下去,就自然成为有序序列,快速排序的平均时间复杂度为nlog(n),但是也有缺点就是快速排序算法的稳定性不足,对于相同大小的值,因为两个值的位置不

2017-09-11 20:40:55 157

原创 如何阻止handler的消息处理

*本次的文章介绍,如何阻止handler的消息处理,是来源于自己写的小程序中,在一个界面中需要反复向服务端发送某个请求,而当这个界面被切换到另一个界面的时候,该hander的handlermessage就不能再处理该类信息,如下面所示:final Handler handler = new Handler(){ @Override public void handle

2017-08-26 12:37:57 658

原创 Android 控件Edittext详解

Android 控件Edittext详解主要介绍Edittext的函数 这是从Android官网上面下截下来的主要函数,我一一探求。先讲一下我经常用到的功能 -在xml文件中常见的设置 * android:hint=”什么什么”* 这个指定是Edittext中相当于提示edittext中所要填写的文字如下图中的搜索就是用hint指定的,当然在edittext中图片和

2017-03-22 19:44:32 801

原创 Android中如何实现圆形按钮的颜色变化

实现圆形按钮的变色和圆形按钮的变化,实现下面的效果1.第一步在drawable的文件下面建立一个xml文件 让它继承shape 代码如下 //“oval”是椭圆的意思 //这里表示半径 //圆的颜色 然后你就可以在你的button按钮上面用了如何在代码中实现颜色的改变呢? 题主又建立了跟上面一样的xml文件只是中的颜色改变了一下 下面是代码实现public class Main

2016-12-11 20:53:40 3582

原创 解决android中点击对话框外部,对话框消失的问题

我在写项目时遇到了,需要用到AlertDialog,在这个发现过程,起初什么问题,可是到真正用的时候发现,当你点击弹框外部区域的时候,弹框消失,可是我被没有设置,所以查了好久发现解决方法dialog2 = new AlertDialog.Builder(this) .setTitle("提示").setMessage("请打开网络").setPositiveButton("已打开",null)

2016-11-14 21:06:04 1506

转载 android新建工程报找不到android:preserveIconSpacing的错误

点击打开链接在Eclipse中创建一个工程的时候,有时会报这样的错误ERROR: In MenuView, unable to find attribute android:preserveIconSpacing。如图:这样的错误一般是有环境或者Eclipse工具导致的,换一个工作空间或者重新导入一下就会好的。这里除了这种方法再介绍另一种方法解决此类问题。

2016-11-13 14:51:32 5360

原创 (01)关于我在使用百度地图开发常见到的问题

(首先是到百度地图开发的网站去下载SDK)  相关的一些步骤我是按照http://www.cnblogs.com/dqrcsc/p/4656522.html   1》上面的教程写的 但其中有一步骤他说 “然后是应用包名,随便给即将用到百度地图API的应用取个包名就好了,我取的是cn.csc.bm,两个拼接起来就是安全码了:”这句话的包名很重要,不是随便取的,包名就是你建立的那个项目的m

2016-10-09 15:09:01 2162

原创 编写一个程序,它使用一个char数组和循环来每次读取一个单词,直到输入done为止并用strcmp检测

#include#includeusing namespace std;void main(){int counter = 0;char ch[10]="0";cout cin >> ch;while (strcmp(ch,"done")!=0){cin >> ch;counter++;}cout }更多0分享到:

2016-05-12 17:53:15 4022

大连理工大学数据库系统复习资料(中,英)

大连理工大学软件学院 ,数据库复习资料,包括中文和英文

2017-11-07

数据库 大连理工大学软件学院

单老师的数据库,里面有几题有问题,已经标注好了,一共是三次上机

2017-11-01

Java第二次作业 完整版

第二次作业: 1. 编写点类(Point类),属性成员有x,y,都是double数据类型。需要为Point类编写构造函数。 编写直线类(Line类),需要提供两点确定一条直线的函数功能。 如果两点重合,可以返回异常或者返回null引用来解决这个问题。 直线类的数据成员和函数成员请自行设计。 2. 给定文本文件,文件名称为a.txt,文件内容为一个8行8列的字符矩阵,内容为1和0字符, 请编程计算出该矩阵中水平方向或者垂直方向或者斜线方 向连续1最多的个数。 例如: 11001101 10110101 01010101 11001000 01010101 11001101 00011000 11110000 3. 编写程序求出1万以内的所有素数,并将这些素数输出到一个文本文件中,每行文本只包含一个素数数据。 该文本文件内容要求可以用记事本程序来查看。 4. 编写程序求出1万以内的所有素数,然后再判断这些素数中哪些是由素数拼接而成的。 例如素数23就符合条件,23本身是素数,其由素数2,和素数3拼接(连接)组成。 素数29就不满足条件,2是素数,而9不是素数。素数307不满足条件,不能忽略0. 7907这个素数符合条件,7是素数,907是素数。 需要把符合条件的拼接素数全部输出,并统计个数。 5. 要求从控制台输入英语单词及单词解释两项数据, 把录入的数据追加到文件中。要求提供单词查询功能。 用户输入单词后,从单词库文件中查找,如果存在则输出 该单词的解释。注意,单词不能有重复,如果重复则覆盖替换 以前的解释数据。 6. 通过命令行参数输入一个文件夹的路径名称,然后编写程序找出该文件夹下文件名称重复并且文件大小也一样的文件, 如果没有“重复文件”,则输出“没有重复文件”的提示,如果有,需要输出文件名称,和文件所在的文件夹路径(绝对路径)。 提示,需要遍历该文件夹下所有子文件夹,设计一个文件类,属性包括文件名称,文件路径,文件大小,然后进行“重复” 判断,如果文件重复,则需要记录并输出,有可能有文件名重复,但是文件大小不一样,重复的文件可能不止2个,可能 在不同的子文件夹下有多个文件重复。 7. 霍夫曼编码实现压缩文本文件,见文件huffman.rar. 对文件数据读写等功能已经实现,程序在Q2Resources.zip中。 Q2Resources.zip中的文件禁止修改。请将TextZip.java文件所有未实现的函数按照要求给以实现。

2017-07-10

Java第二次作业 Huffman树

霍夫曼编码实现压缩文本文件,见文件huffman.rar. 对文件数据读写等功能已经实现,程序在Q2Resources.zip中。 Q2Resources.zip中的文件禁止修改。请将TextZip.java文件所有未实现的函数按照要求给以实现。 花了比较 多时间所以索要1积分,积分快不够

2017-07-09

Java第二次作业

编写程序求出1万以内的所有素数,然后再判断这些素数中哪些是由素数拼接而成的。 例如素数23就符合条件,23本身是素数,其由素数2,和素数3拼接(连接)组成。 素数29就不满足条件,2是素数,而9不是素数。素数307不满足条件,不能忽略0. 7907这个素数符合条件,7是素数,907是素数。 需要把符合条件的拼接素数全部输出,并统计个数。 看了网上很多都写错了,自己用一种新办法写的

2017-07-05

Java小假期第一次作业

1. 发现错误并改错。给出一个实现插入排序的程序,文件名为InsertionSort.java,该文件中有代码错误,请单步调试,发现错误, 并改正错误,提示:只有一行程序有错误,所以只能修改代码中的某一行程序。要求演示在eclipse开发环境下 单步调试程序,如果没有eclipse开发环境,也可以使用其它集成开发环境,但是必须演示调试能力。 2. 请编写程序输出13/17小数点后第100位的数字是几?考察循环和除法运算以及模运算(求余数运算)。 请补齐FractionalDigit.java文件中的代码 3. 请编写程序,分别使用循环和递归两种方法计算斐波那契数列第9项是几? 斐波那契数列的第1项为1,第2项为1,后续任意项的值为其前两项的和。 请补齐Fibo.java文件中的代码 4. 实现Array类中的indexOf函数; 阅读Node.java和SingleLinkedList.java两个关于单链表的类, 实现SingleLinkedList类中的indexOf函数; 5. 阅读Node.java和SingleLinkedList.java类,利用它们来实现栈和双向队列功能,请阅读Stack.java 和Deque.java(双向队列),请实现Stack类中的pop函数,请实现Deque.java中的removeLast函数。 6. 利用前面的Stack.java和Deque.java类,实现下面问题的求解: 队列中有从1到7(由小到大排列)的7个整数,问经过一个整数栈后,出栈的所有排列数有多少? 如果整数栈的容量是4(栈最多能容纳4个整数),那么出栈的排列数又是多少?(百度查询 卡特兰数) 请补齐Catalan.java文件中的代码 7. 八皇后问题。在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、 同一列或同一斜线上,问有多少种摆法。该程序代码在EightQueens.java文件中,请将void place(int n)函数 中未完成的代码补齐,并写出运行结果。 禁止修改其他代码。 8. 学生排序。给出4名同学,请按照学生的年龄排序,然后输出学生的学号和姓名。具体代码见Student.java文件, 请实现sort函数。并运行该程序。 9. 二叉排序树检索。BstNode.java和BinarySortTree.java是关于二叉排序树的程序文件,请阅读这两个程序 文件,请实现contains函数,并运行该程序。 10. BASE64编码转换问题。请百度百科查询base64编码,实现将二进制字节数据编码转换为base64的字符串数据,以及 将base64字符串转换回二进制字节数据。禁止使用JDK自带的Base64转换程序以及Apache开源网站上的程序, 必须自己编写代码来实现BASE64编码和解码函数。可以为该类添加其他数据成员和函数成员。

2017-06-28

比较5个数 (1, 3,5,7, 9)的大小,返回最大值。使用C调用汇编语言实现

比较5个数 (1, 3,5,7, 9)的大小,返回最大值使用C调用汇编语言实现。

2017-06-11

在C语言函数中调用汇编语言程序实现字符串的拷贝

在C语言函数中调用汇编语言程序实现字符串的拷贝: 其中:源串:const char *srcstr=“abcdefghij” 目标串:char *dststr

2017-06-09

实现快速排序

实现快速排序

2016-12-29

归并排序算法实现

实现数组的归并排序

2016-12-23

判断一个有向图中是否存在回路,并进行输出(拓扑算法)

判断一个有向图中是否存在回路,并进行输出(拓扑算法)

2016-12-21

Floyd(弗洛伊德)算法实现 vs2015

Floyd(弗洛伊德)算法实现 vs2015

2016-12-16

实现Dijstra算法;

实现Dijstra算法;

2016-12-15

实现构造最小生成树的Prim算法

实现构造最小生成树的Prim算法

2016-12-14

定义堆,封装初始化、插入、删除堆顶元素的操作;

定义堆,封装初始化、插入、删除堆顶元素的操作;

2016-12-01

数据结构上机题

定义二叉搜索树类,封装查找、插入、删除操作;

2016-11-17

数据结构上机

定义二叉树类,封装构造二叉树操作、遍历操作(非递归实现); 如果要实现如下子树0代表NULL 1 2 3 null 5 6 7 应输入 1 2 0 5 0 0 3 6 7 0 0 0 0 简言之就是先给左边的树赋值,赋值完了就赋值右边 ,记住最后叶子左右都要赋值为0(0是null)欢迎建议和提问,我随时在线!!

2016-11-10

何增有数据结构

给定一组字符串的集合(共53个长度相同的字符串),试设计一个算法,找出所有满足其出现频率大于某个给定阈值的子串,其中阈值为输入参数。例如:“taat”这个子串,集合中的53个字符串中有24个字符串包含“taat”这个子串,则其频率计算为24/53. 如果阈值设置为0.5,则该子串由于其频率小于0.5,所以不必输出。反之,如果阈值设置为0.4,则该子串由于其频率24/53大于0.4,故应该被输出。

2016-11-03

数据结构T5

设计一个环形队列,用front和rear分别作为队头和队尾指针,另外用一个tag表示队列是空(0)还是不空(1),这样就可以用front==rear作为队满的条件。要求设计队列的相关基本运算算法。

2016-10-27

设双链表表示的线性表L=(a1,a2,....,an),试写一时间复杂度为O(n)的算法,将L改造为L=(a1,a2,,,,an....,a4,a2)。

设双链表表示的线性表L=(a1,a2,....,an),试写一时间复杂度为O(n)的算法,将L改造为L=(a1,a2,,,,an....,a4,a2)。

2016-10-13

C++实现两个链表组合,不重新开创链表

C++实现两个链表组合,不重新开创链表

2016-09-27

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

TA关注的人

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