首页
学习
活动
专区
工具
TVP
发布

yang0range

专栏作者
81
文章
93350
阅读量
14
订阅数
关于设计模式
1.两个完全不一样的功能就不应该放在一个类中,一个类应该是一组相关性很高的函数,数据的封装。
Demo_Yang
2018-10-15
2990
React Native在Android当中实践(四)——代码集成
首先在项目根目录中创建一个空的index.js文件。(注意在0.49版本之前是index.android.js文件) index.js是React Native应用在Android上的入口文件。而且它是不可或缺的!
Demo_Yang
2018-10-15
8270
React Native在Android当中实践(五)——常见问题
这个问题是由于ReactNative兼容64位Android手机导致的。 解决办法: 1.在项目的根目录的 gradle.properties 里面添加一行代码 android.useDeprecatedNdk=true. 2.在 build.gradle 文件里添加以下代码
Demo_Yang
2018-10-15
2.2K0
MVVM框架的搭建(二)——项目搭建
介绍完背景以及初衷之后,我们开始搭建MVVM的框架,这一部分我们进行简单的搭建,了解MVVM架构的基本结构。
Demo_Yang
2018-10-15
1.3K0
Java的面试基础题(二)
1)特点:存储对象;长度可变;存储对象的类型可不同 2)Collection (1)List:有序的;元素可重复,有索引 (add(index, element)、add(index, Collection)、remove(index)、set(index,element)、get(index)、subList(from, to)、listIterator()) ①ArrayList:底层是数组结构,查询快,增删慢,不同步。 ②LinkedList:底层是链表结构,增删快,查询慢,不同步 addFist();addLast() getFirst();getLast() removeFirst();removeLast() 获取并删除元素,无元素将抛异常:NoSuchElementException 替代的方法(JDK1.6): offerFirst();offerLast(); peekFirst();peekLast();无元素返回null pollFirst();pollLast();删除并返回此元素,无元素返回null ③Vector:底层是数组结构,线程同步,被ArrayList取代了 注:了对于判断是否存在,以及删除等操作,以依赖的方法是元素的hashCode和equals方法 ArrayList判断是否存在和删除操作依赖的是equals方法
Demo_Yang
2018-10-15
8590
MVC的介绍与实践
Controller控制器则由Activity承担,一般情况下会在Activity中获取数据以及界面元素,并将两者进行保定,但是其逻辑不能过于复杂。
Demo_Yang
2018-10-15
4790
内存溢出和内存泄露
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。 memory leak会最终会导致out of memory! 内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。 内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不能吃了。这就是溢出!比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出. 以发生的方式来分类,内存泄漏可以分为4类: 1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。 2. 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。 3. 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存,所以内存泄漏只会发生一次。 4. 隐式内存泄漏。程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。 从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到
Demo_Yang
2018-10-15
3.9K0
深入探究Glide的缓存机制
Glide的缓存设计可以说是非常先进的,考虑的场景也很周全。在缓存这一功能上,Glide又将它分成了两个模块一个是内存缓存,一个是硬盘缓存。 这两个缓存模块的作用各有不同,内存缓存的主要作用是防止应用重复将突破读取到内存当中,而硬盘缓存的主要作用是防止应用重复从网络或其他地方重复下载和读取数据。 内存缓存和硬盘缓存的互相结合才构成了Glide极佳的图片缓存效果,那么接下来我们就分别来分析一下这两种缓存的使用方法以及它们的实现原理。
Demo_Yang
2018-10-15
2.1K0
Android性能优化概述
对于Android的性能优化,想必大家并不陌生,但是没有真正的总结一下,在此我根据自己平时开发,在结合一些读书笔记,对Android的性能优化,进行一些总结。 Android设备作为一种移动设备,不管是内存还是CPU的性能都受到了一定的限制,无法做到像PC设备那样的超大内存和高性能的CPU。 因此,这也意味着,Android不能无限制的使用内存和CPU资源,过多的使用内存会导致程序内存溢出,即OOM。而过多的使用CPU资源,一般是指大量的耗时任务,会导致手机变得卡顿甚至无法响应的情况,即ANR。性能优化的主要是包括布局优化、绘制优化、内存泄露优化、响应速度优化、Bitmap优化、线程优化。 性能优化中一个很重要的问题就是内存泄露,内存泄露并不会导致程序功能异常,但是它会导致Android程序的内存占用过大,这将提高内存溢出的发生几率。在设计程序的时候,还有一个问题也是不可忽略的,那就是代码的可维护性和可扩展性。如果一个程序的可维护性和可扩展性很差,那就意味着后续的代码维护代价是相当高的。
Demo_Yang
2018-10-15
4920
Activity的启动模式
privatestaticStack mActivityStack;Activity的启动模式,不仅仅是我们面试的时候经常被问到的面试题目,也是我们日常开发当中经常用到的知识,特总结记录如下。
Demo_Yang
2018-10-15
5380
CSS的选择器
CSS基础选择器 标签选择器 就是用标签名来当做选择器。 1) 所有标签都能够当做选择器,比如body、h1、dl、ul、span等等 2) 不管这个标签藏的多深,都能够被选择上。 3) 选择的是所有的,而不是某一个。所以是共性,而不是特性。 id选择器 #表示选择id 1 #lj1{ 2 font-size: 60px; 3 font-weight: bold; 4 color:black; 5 } 1)任何的标签都可以有
Demo_Yang
2018-10-15
8920
MVVM框架的搭建(三)——网络请求
MVVM框架的搭建(一)——背景 MVVM框架的搭建(二)——项目搭建 MVVM框架的搭建(三)——网络请求
Demo_Yang
2018-10-15
7800
Android面试
要想知道如何使用多进程,先要知道Android里的多进程概念。一般情况下,一个应用程序就是一个进程,这个进程名称就是应用程序包名。我们知道进程是系统分配资源和调度的基本单位,所以每个进程都有自己独立的资源和内存空间,别的进程是不能任意访问其他进程的内存和资源的。那如何让自己的应用拥有多个进程?很简单,我们的四大组件在AndroidManifest文件中注册的时候,有个属性是android:process 这里可以指定组件的所处的进程。默认就是应用的主进程。指定为别的进程之后,系统在启动这个组件的时候,就先创建(如果还没创建的话)这个进程,然后再创建该组件。你可以重载Application类的onCreate方法,打印出它的进程名称,就可以清楚的看见了。再设置android:process属性时候,有个地方需要注意:如果是android:process=":deamon",以:开头的名字,则表示这是一个应用程序的私有进程,否则它是一个全局进程。私有进程的进程名称是会在冒号前自动加上包名,而全局进程则不会。一般我们都是有私有进程,很少使用全局进程。他们的具体区别不知道有没有谁能补充一下。 使用多进程显而易见的好处就是分担主进程的内存压力。我们的应用越做越大,内存越来越多,将一些独立的组件放到不同的进程,它就不占用主进程的内存空间了。当然还有其他好处,有心人会发现Android后台进程里有很多应用是多个进程的,因为它们要常驻后台,特别是即时通讯或者社交应用,不过现在多进程已经被用烂了。典型用法是在启动一个不可见的轻量级私有进程,在后台收发消息,或者做一些耗时的事情,或者开机启动这个进程,然后做监听等。还有就是防止主进程被杀守护进程,守护进程和主进程之间相互监视,有一方被杀就重新启动它。应该还有还有其他好处,这里就不多说了。 坏处的话,多占用了系统的空间,大家都这么用的话系统内存很容易占满而导致卡顿。消耗用户的电量。应用程序架构会变复杂,应为要处理多进程之间的通信。这里又是另外一个问题了。
Demo_Yang
2018-10-15
9050
CSS常见属性
现在的互联网前端三层: HTML 超文本标记语言 从语义的角度描述页面结构。 CSS 层叠式样式表 从审美的角度负责页面样式。 JS JavaScript 从交互的角度描述页面行为。
Demo_Yang
2018-10-15
6290
CSS的盒子模型
一个盒子中主要的属性就5个:width、height、padding、border、margin。 width是“宽度”的意思,CSS中width指的是内容的宽度,而不是盒子的宽度。 height是“高度”的意思,CSS中height指的是内容的高度,而不是盒子的高度 padding是“内边距”的意思 border是“边框” margin是“外边距”
Demo_Yang
2018-10-15
1.2K0
html基础知识
超文本传输协议,Hypertext Transfer Protocol。 这是一个文件的传输协议,我们上网的时候,所有的文件都是通过HTTP这个协议,从服务器上传输到客户的电脑里面的。
Demo_Yang
2018-10-15
5310
html常用标签
title也是有助于SEO搜索引擎优化的 HTML不是依靠缩进来表示嵌套的,就是看标签的包裹关系。 HTML中所有的文字之间,如果有空格、换行、tab都将被折叠为一个空格显示。
Demo_Yang
2018-10-15
5.1K0
关于单例设计模式
2.使用场景:确保某个类有且只有一个对象的常见,避免产生多个对象消耗过多的资源或者某种类型的对象只应该有且只有一个。
Demo_Yang
2018-10-15
6110
Android 当子线程执行完,提交到主线程工具类
/** * 在主线程中 执行代码 * * @param runnable */ public static void runOnUiThread(Runnable runnable) { // 如果在主线程中运行 直接运行 如果没有在 提交一个handler if (isRunUIThread()) { runnable.run(); } else { execu
Demo_Yang
2018-10-15
1.2K0
Activity 堆栈相关处理方法
private static Stack<Activity> mActivityStack; /** * 添加Activity到堆栈 */ public void addActivity(Activity activity) { if (mActivityStack == null) { mActivityStack = new Stack<Activity>(); } mActivitySta
Demo_Yang
2018-10-15
6450
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档