自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

诺冰羽的虚拟世界

诺冰羽构建的世界

  • 博客(43)
  • 收藏
  • 关注

原创 Android版计算器(java实现,包含小数、负数、括号)代码和讲解

我写了四个类来实现此功能:①CalException:自动逸异常类②CalService:处理计算和检查数字合法性③ExpressionTool:完成中缀转后缀以及用到的判断方法④Result:自定义返回的数据类型其中,最主要的是ExpressionTool类,它完成了中缀转后缀的整个过程.运行结果截图1.表达式"-1+2+(-1+2)"2.表达式"1.1+23(4.4*5+6)*7"代码如下:①CalException.javapublic class CalException

2022-04-04 11:12:22 2848 1

原创 Android四大组件-2018.11/12.x

Android四大组件有:Activity、Service、BroadcastRecevier、ContentProvider.一.Activity1.Activity生命周期Activity正常生命周期onCreate: 表示Activity开始创建,并进行一些布局资源的初始化,比如setContentView去初始化Activity界面资源并初始化Activity的所需数据。on...

2020-05-14 17:23:37 260

原创 leetcode面试题07:重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。范围:0 <= 节点个数 <= 5000样例输入:前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 ...

2020-05-03 07:14:08 177

原创 学习MVVM遇到的Error记录

1.duplicate attributeAS提示主活动xml存在重复属性解决:发现我在layout和LinearLayout层下都引入了xmlns:android="http://schemas.android.com/apk/res/android"删掉LinearLayout下的这句话即可。在查找解决方法时注意到,这个错误的产生原因还可能是由于:layout和LinearLayo...

2020-05-03 07:13:13 1430

原创 项目问题集(未完)

还有一些问题没有及时记录就没有了。1.CLEARTEXT communication to v.juhe.cn not permitted by network security policy(fy:网络安全政策不允许向v.c he.cn发送明文信息)解决:链接,我用的第三种方法2.retrofit Expected BEGIN_ARRAY but was BEGIN_OBJECT at l...

2020-05-03 07:12:43 165

原创 JVM---对象存活判断、垃圾收集算法、垃圾收集器以及内存分配策略

一.对象是否存活判断1.引用计数法给对象添加引用计数器,一个地方引用它计时器值+1;当引用失效,计数器值-1;计数器为0的对象表示对象不可能引用。缺陷:难以解决对象之间循环引用的情况objA = objB;objB = objA;除此之外,这两个对象再无任何引用,但由于按照引用计数法他们的计数值都不为0,故不能被GC收集。2.可达性分析算法这个算法的基本思路是:通过一些系列"G...

2020-05-03 07:08:40 211

原创 SQLite用法总结

准备工作:自己建立一个类继承SQLiteOpenHelper类,这样就相当于你不费吹灰之力就继承了父类的一些属性和方法。public class DBHelper extends SQLiteOpenHelper{然后在你自己创建的类DBHelper中要重写这两个方法:第一个方法可以在里面写一些创建表的操作(我记得onCreate方法好像必须主动调用,就算第一次初始化DBHelper也...

2018-12-31 19:54:18 315

原创 Leetcode440:字典序的第K小数字

给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。注意:1 ≤ k ≤ n ≤ 109。示例 :输入:n: 13 k: 2输出:10解释:字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。这个题我没有提交成功,但是本地IDE是正确的,原因是我用了static变量,我看了网上说由于l...

2018-12-30 17:24:30 1337

原创 Leetcode:不同的二叉搜索树 II

题目描述:给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。示例:输入: 3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树:1 3 3 2 1\ ...

2018-12-17 17:24:37 192

原创 Leetcode:LRU缓存机制

LRU(least recently used)最后思路:使用了linkedhashMap这个数据结构,它本身可以按访问顺序排序并且将刚刚访问过的数据放在尾部。class LRUCache { private int mCapacity; LinkedHashMap linkedHashMap; public LRUCache(int capacity) { ...

2018-12-11 11:56:41 413

原创 Leetcode:无重复字符的最长子串

下面说一下我的思路:第一种:暴力法,就是写两层for循环,外层负责次数,内层负责向后查找。耗时:316ms排名:3.47%举个例子:“abcabcbb”定义:我们定义ss表示子字符串,s为题目给的字符串,i为外层循环计数,j为内层循环计数,ch为当前需要判断的字符。我们的意愿是这样的:ss始终为s的不重复子串,i表示在s的字符下标进行遍历,并以该位置为字串ss的第一个元素,然后开始内...

2018-12-10 13:24:15 127

原创 快速排序

快排思想:快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。(采用了分治思想)**时间复杂度:假若要求从小到大,并且选取key为中间值最好也就是顺序:O(nlogn)最坏...

2018-12-04 17:25:15 132

原创 View工作原理(三)——自定义View

之前暑假本来写了这方面的学习笔记,但由于给出的事例一直没有来得及写讲解所以一直在草稿箱里。今天,我准备重新写一下这里的总结。自定义View有四个构造函数,第二个构造函数是我们在xml里写我们的View时会调用的,所以如果后面用到context注意要在这里初始化或者调用三参构造,并在三参构造里初始化。首先,要先理解一下自定义View的SpecMode有三种模式,这样会使你的自定义View更正...

2018-11-27 16:09:16 245

原创 对自己的一点吐槽以及ExitText搜索框的bug修复

由于项目确实写得比较粗略,比如登陆模块其实只是简单验证,一些缓存还没来得及去加入,还有一些优化也没做到,日后完善。然后投入复习中没怎么去看项目,今天由于被面试问起项目出现的问题,我说了我的一个项目bug就是一个EditText不知为什么就会自己弹出软键盘,然后会遮挡一部分视图,当时也不知为什么找了好多方法没有解决,最后只好仿照别的app把它写成了一个摆设,然后通过点击它跳转到一个fragment里...

2018-11-20 20:57:50 197

原创 二分查找

前提:有序数组时间复杂度:log2n (每次分一半,所以对N求以2为底的对数就是时间复杂度)注意一点:向右找left = mid+1;向左找right = mid-1;先举个简单例子:int a[]={1,2,3,4,5,6,7,8,9,10} 查找11.然后我们按步骤来,来看看都会有哪些情况:范围:left:左边第一个下标,right:右边最后一个下标中间数下标:(left+ri...

2018-11-18 13:26:54 97

原创 View绘制机制和LayoutInflater动态加载以及三种绘图界面更新区别

View绘制流程及机制流程研究场景:最外层自定义MaxViewGroup继承自LinearLayout+内层自定义ViewGroup继承自LinearLayout+自定义View**注:1.LinearLayout的onMearsure过程为两遍,每次调用View的onMeasure一遍。2.RelativeLayout的onMeasure过程为三遍,每次调用View的onMeasure...

2018-11-17 17:48:31 1631

原创 教务系统模拟登陆原理总结

教务系统模拟登陆原理 先说一下正常从网页访问教务系统页面并登陆的大概流程,首先,我们会访问到登陆页面,然后我们填写,用户名,密码,验证码,然后点击登陆,最后我们等待网页自己响应,若成功则跳转网页,若失败则给出相应提示,然后我们根据提示修改我们的输入信息再次点击登陆等待结果。那什么是模拟登陆,就是我们的程序模拟网页客户端登陆服务器,那我们就需要做与网页客户端类似的处理,这样服务器才会给...

2018-11-13 16:40:23 658

原创 View事件分发

场景:粉色为View,灰色为ViewGroup,淡黄色为ViewgroupMax,给粉色View在MainActivity里绑定了一个onClick事件,View响应会打印Log——“响应点击事件”。正常情况下:当父容器不拦截,View消耗事件时。得出如下图:可以看出,正常一个点击事件的传递是先调用父容器的分发(dispatch…)方法,然后调用拦截(onIntercept…)方法,此...

2018-11-12 09:39:06 190

原创 设计模式——单例模式

单例模式的的使用场景:创建比较耗资源的、全局调用的类。单例特点:1.构造方法私有化。2.有一个静态的方法用来获取对象或者一个静态对象。3.线程安全,确保单例类对象有且只有一个,尤其在多线程环境下。4.确保反序列化时不会重构对象六种单例模式的实现:1.饿汉模式public class Singleton{ private static Singleton instance = ...

2018-10-29 20:50:59 106

原创 Handler源码和机制分析

在这个包 android.os.Handler下的Handler注:所有”英语解释“均来自源码英文的有道翻译结果。打开这个类,发现这个类其实很简单只有850行。其中属性:IMessenger :传送门其中属性变量MAIN_THREAD_HANDLER是从ActivtyThread.java来的,看图:为什么要注意static,是因为如果你不做好的处理的话它会导致...

2018-10-20 11:43:49 150

原创 View的工作原理——基本知识(一)

ViewRoot和DecorViewViewRoot它对应于ViewRootImpl类,它是链接WindowManager和DecorView的纽带,View的三大流程均是通过它完成的。在ActivityThread中,同时会创建ViewRootImpl对象,并将ViewRootImpl对象和Decor对象建立关联。 Veiw的绘制流程是ViewRoot的performTravers...

2018-08-14 20:09:19 722

原创 View的工作原理——三大流程(二)

ViewRoot和DecorViewViewRoot它对应于ViewRootImpl类,它是链接WindowManager和DecorView的纽带,View的三大流程均是通过它完成的。在ActivityThread中,同时会创建ViewRootImpl对象,并将ViewRootImpl对象和Decor对象建立关联:Veiw的绘制流程是ViewRoot的performTravers...

2018-08-14 15:55:21 307

原创 初识Flutter——在AS搭建环境及第一个Flutter APP

Flutter中文网 Windows: 打开gitbash,输入: git clone -b beta https://github.com/flutter/flutter.git export PUB_HOSTED_URL=https://pub.flutter-io.cn //国内用户需要设置 export FLUTTER_STORAGE_BASE_URL=https:...

2018-08-09 20:03:33 5946

原创 TTMS——一个自定义的选票控件

用到内容:自定义View过程onMeasure,onLayout,onDraw。Matrix的简单应用。对滑动方式理解。手势ScaleGestureDetector,GestureDetector使用。一些简单图形的绘图,如文字,椭圆,矩形;画布的保存save和恢复retore。遇到的问题:1.滑动速度过快,导致手轻轻滑动视图就移动出屏幕。 2.OnTouch与手势冲突,...

2018-08-09 12:24:16 417

原创 Matrix和ColorMatrix

一、Matrix——图像处理之图形特效处理Android的图像变换矩阵是一个3 x 3的矩阵,如下: 矩阵初识值: [1 0 0] [0 1 0] [0 0 1]图像处理通常包含以下四种基本变换: Translate——平移变换 Rotate——旋转变换 Scale——缩放变换 Skew——错切变换至于具体怎么运算不需要了解太多,知道矩阵都有什么值,每个位置对应什么...

2018-08-02 11:57:08 385

原创 Android动画深入分析总结

Android的动画分三种:View动画、帧动画和属性动画。其实帧动画也属于View动画的一种,只不过它和平移、旋转等常见的View动画在表现形式上略有不同而已。1.1View动画View动画的作用对象是View,他支持4种动画效果,分别是:平移动画、缩放动画、透明度动画、旋转动画。除了这四种典型的变换效果外,帧动画也属于View动画,但是帧动画的表现形式和上面的四种变换效果不太一样。...

2018-08-01 17:42:50 295

原创 View事件体系总结

1.1.1 View的概念View是android中所有控间的基类,不论是简单的Button,TextView还是复杂的RelativeLayout、ListView。1.1.2 View的位置参数view的四个属性:top,left,right,bottom。 注意:1.这些坐标的都是相对坐标,相对于View的父容器。 2.View在平移过程中,top...

2018-07-31 16:09:53 283

原创 观察者模式

观察者模式介绍常用场景:GUI系统、订阅——发布系统 重要作用:将观察者和被观察者解耦观察者模式定义定义对象间一对多的依赖关系,使得一个对象改变,所有依赖它的对象都会收到通知并被更新。角色介绍被观察者阵营: - Subject(Observable):所有主题的抽象,抽象主题角色把所有的观察者的引用保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题只提供...

2018-07-27 16:22:41 116

原创 Service工作过程(一)——Service启动过程

首先,Sevice的工作过程分两种:Service启动过程和Service绑定过程下面是用法:1.用stratService()启动一个ServiceIntent intentService = new Intent(this, MyService.class);startService(intentService);2.用bindService()绑定一个Service...

2018-07-24 23:06:20 1181

原创 Activity的启动分析

Activity的启动分析一、什么是Activity的启动和名词解释什么是:在后面的解析过程中会遇到很多生类(单词)这里把它们列出来(其中大多数描述也是来自其他博客): ActivityMangerServices 简称AMS,服务端对象,负责系统中所有Activity的生命周期。AMS是作为管理Android系统组件的核心服务,他在SystemServer执行run()方法的时候被...

2018-06-25 17:01:40 155

原创 PopWindow

PopWindow是一种弹窗,像dialog一样是一种悬浮弹窗。使用: 可以自己定义一个类继承系统里的PopWindow,即自定义,也可以使用系统的PopWIndow。看情况使用吧。PopWindow和Activity有些地方有点像,比如他可以用setContentView(View view)来建立自己的内容布局。所以它需要一个xml来定义它自己的布局。定义popwinodw....

2018-06-05 12:28:35 176

转载 popWindow踩坑--android.view.WindowManager$BadTokenException: Unable to add window...

Unable to add window –token null is not valid; is your activity running#popwindow遇到上面的错误,原因:PopupWindow.showAtLocation(findViewById(R.id.main), Gravity.BOTTOM,0,0); popwindow必须依附于某一个view,而在oncreate中...

2018-06-04 22:13:32 1165

原创 git 踩坑 warning: LF will be replaced by CRLF in .idea/misc.xml. The file will have its original line

.git文件多了,我的是我提交的demo比较多,demo文件夹里面我之前胡搞里面也有.git 和.gitgnore文件,删除所有多余的.git只留你当前仓库的.git。你要是不知道哪一个是就全都删了,重新git init 它会重新生成。然后会发现这个问题就解决了。但是你可能还有其他问题,比如README.文件如果不在当前你要提交的目录下回报:failed to push some refs t...

2018-06-04 15:48:18 2486

转载 git踩坑 提交文件成灰黑色不可点

之前clone了git的一份代码,放在自己的git仓库里,今天提交后发现我的github上这份代码的文件夹是灰色的,无法点击。 根据网友分享,做下总结:删除你clone的代码里的 .git .gitignore文件,然后重新add/commit/push如果没成功,就把文件名改下,应该是有缓存,改完名后再add/commit/push参考博客:https://blog.csd...

2018-06-04 11:11:58 8071 3

原创 读书笔记——View分发机制--未完

View分发机制点击事件的分发机制1.点击事件(MotionEvent) 典型的时间类型:(MotionEvent.)ACTION_DOWN——手指刚刚接触屏幕ACTION_MOVE——手指在屏幕上移动ACTION_UP——手指离开屏幕的一瞬间一系列点击事件:点击屏幕后离开(没有移动):DOWN-&amp;gt;UP点击屏幕一会再离开:DOWN-&amp;gt;MOVE-&amp;g...

2018-06-04 11:08:21 106

原创 Rxjava学习笔记--未完

介绍: RxJava是ReactiveX(Reactive Extensions)的Java VM实现:用于通过使用可观察序列来编写异步和基于事件的程序的库。 RxJava是轻量级的 RxJava试图变得非常轻量级。它被实现为一个单独的JAR,它只关注Observable抽象和相关的高阶函数。RxJava是一个多语言实现RxJava支持Java 6或更高版本以及基于JVM的语言,如G...

2018-06-04 11:07:49 119

原创 retrofit框架

模式:观察者模式 为什么使用? 代码简洁,请求速度快,解析数据封装好了导包 //retrofit 包 implementation 'com.squareup.retrofit2:retrofit:2.0.2' //gson 包 解析用到.addConverterFactory(GsonConverterFactory.create()) implementation 'co...

2018-05-21 16:55:10 145

原创 贝塞尔曲线——水波纹实现

//二阶贝赛尔 public void quadTo(float x1, float y1, float x2, float y2) public void rQuadTo(float dx1, float dy1, float dx2, float dy2) //三阶贝赛尔 public void cubicTo(float x1, float y1, float x2, float y2,float x3, float y3) public void rCubicTo(float x

2018-05-17 23:37:58 1789

原创 Fragment和viewPager搭配使用(有标题)(二) 讲解

Fragment和viewPager搭配使用(有标题)(二) 讲解首先,我们想一想我们用ViewPager的目的是:实现多个Fragment左右滑动切换的效果。所以我们需要先建立多个xxFragment类继承Fragment,当然有多少个xxFragment就需要多少个它对应的xml这个自己根据自己的需要建立即可。并在onCreateView()方法中加载该xml和初始化控件...

2018-04-17 07:33:50 4211

原创 关于教务系统项目所遇到的一些知识点总结

关于教务系统项目所遇到的一些知识点总结关于详细的爬取学校系统的过程我将再写一篇博客如下:(暂无)1.Activity跳转Activity方法一 Intent intent = new Intent(当前Activity.this, 目标Activity.class); putExtra(&amp;quot;标志&amp;quot;,数据);//当需要在跳转时传递数据用这个语句 startActivit...

2018-04-16 11:04:58 575

空空如也

空空如也

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

TA关注的人

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