- 博客(89)
- 资源 (3)
- 收藏
- 关注
原创 OOM内存溢出产生原因和避免方法
OOM(Out Of Memory 内存溢出) 是指应用程序申请内存时,系统无法提供足够的内存空间来满足需求,导致程序崩溃的现象。在Android中通常表现为java.lang.OutOfMemoryError。(一)什么是OOM?(二)OOM产生原因。(三)如何避免OOM。
2025-08-10 21:30:31
128
原创 斐波那契数非递归实现
F(n)=F(n−1)+F(n−2) (当 n≥2 时)思路:用数组存储所有中间结果,适合需要多次查询的场景。思路:用变量缓存前两个数,逐步计算后续值。方法 2:动态规划(带缓存)时间复杂度: O(n)空间复杂度: O(1)时间复杂度: O(n)空间复杂度: O(n)
2025-08-10 13:36:33
103
原创 Activity四种启动模式
如果Activity位于任务栈的栈顶,那么此Activity不会被重新创建,onNewIntent方法会被回调。如果Activity不在栈顶,会创建Activity。
2025-08-09 10:24:50
83
原创 java中override和overload的区别
override(重写)和overload(重载) 是面向对象编程中两个重要的概念,它们的主要区别:关键区别:
2025-08-07 19:24:24
206
原创 Mac电脑基本功能快捷键
若要添加指纹,请前往“系统设置”,点按“触控ID与密码”,然后点按“添加指纹”。若要创建新文件夹,请点按菜单栏中的“文件”,然后选取“新建文件夹”。前往“系统设置”,然后点按边栏中的“墙纸”。点按“添加照片”,然后从文件或“照片”App选取一张照片。若要开始,请在两台设备上登录Apple账户,然后在Mac上打开“iPhone镜像”。若要自定义App设置,请点按App名称,然后选取“设置”。若要开始使用,请打开“系统设置”并点按“屏幕使用时间”。若要打开“控制中心”,请点按菜单栏中的 。
2025-08-04 07:32:30
351
原创 Flutter基础知识
显示定义int a = 0;隐式定义使用var关键字定义的变量,不指定类型,通过系统自动判断,赋值后确定类型,不能再次改变。var aa = 0;使用const关键字定义的编译时常量,它必须是一个字面常量。使用final关键字**定义的是运行时常量,也就是它的值可以是一个变量。普通函数在这里插入代码片return a+b;可选参数匿名函数return a+b;箭头函数匿名函数和箭头函数组合起来使用,具体用法如下:Dart使用class关键字定义类,这一点和java类似。
2025-08-02 18:00:21
353
原创 面向对象设计原则和设计模式分类
模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。客户端不应该依赖它不需要的接口,另一种定义是:类间的依赖关系应该建立在最小的接口上。一个对象应该对其他对象有最少的了解。设计模式依据其目的可分为。
2025-07-28 16:24:39
464
原创 无障碍开发原理与实践
一、无障碍开发原理与实践android无障碍开发是帮忙视障人士也能便捷地使用APP。Android本身提供了标准的无障碍服务,本文主要是搜索模块在开发无障碍服务的一些实践总结。大部分手机系统已支持无障碍,首先用户需要开启无障碍,选择Android设备 “设置->无障碍”,打开TalkBack开关。浏览方式,开启TalkBack后,可以通过触摸功能浏览屏幕,也可以线性方式滑动浏览屏幕上的各项内容。比如RecyclerView控件自带手指线性导航模式要按照一次查看一项内容的方式浏览屏.
2025-06-25 15:22:19
702
原创 CoordinatorLayout学习笔记
记录协同布局学习之路这篇文章讲的特别好,看了那么多文章后,觉得这篇文章看完有一种豁然开朗的感觉。https://blog.csdn.net/briblue/article/details/73076458嵌套滑动:CoordinateLayoutView嵌套滑动文章地址:https://blog.csdn.net/weixin_37077539/article/details/54429646onStartNestedScroll方法:该方法的返回值决定是否执行嵌套滑动onNestedPr
2021-01-07 10:48:33
220
原创 java反射笔记
java反射通过反射的方式调用,分为3个步骤class Student {public String name;public int age;public void setAge(int age){this.age = age;}public void setName(String name){}}通过反射获得类Class cls = Class.forName(“com.demo.bean.Student”);得到调用类方法Method m = cls.getDeclared
2020-10-26 17:57:30
201
原创 Flutter学习笔记(持续更新)
Flutter学习笔记首先打开Flutter官网https://flutter.dev/,开始学习,按照官网的指引搭建Flutter开发环境。(此处略过)Flutter基础在创建UI时在网上查了一些资料,整理下来,方便以后开发中使用。包含不同style的文本组成: RichText( text: TextSpan( text:'', children: ...
2019-03-14 11:41:20
270
原创 工作中遇到的问题(持续更新)
1 在三星手机上出现这个问题,其他手机没发现问题。java.lang.IllegalStateException: Call CookieSyncManager::createInstance() or create a webview before using this class清除Cookie或者获取Cookie前,首先同步。报错代码:public String getCookies......
2018-09-20 10:35:07
405
原创 Git学习笔记
git学习笔记之前使用Git,都是使用SourceTree。因为SourceTree升级到一个版本,提交代码更新代码都非常慢。 后来尝试使用命令行,记录一下学习内容。Git命令总结 初始化一个Git仓库[git init命令] git新建一个空的仓库,当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库。 将文件添加到仓库[git add命...
2018-05-04 20:35:31
593
原创 如何外部修改AndroidManifest.xml中android:scheme的值
公司有个小需求,需要动态配置AndroidManifest.xml中android:scheme的值。 这就转化成通过一个外部java工程修改xml节点值的问题。其中AndroidManifest.xml需要约定一个规则:activity android:name=".MainActivity"> intent-filter>
2018-01-07 12:27:32
7697
1
转载 工作记录-mysql数据库表增加字段(从000001开始递增)
mysql数据库的student表结构如下:idnameage1zhangsan162alice203lanlan304haha25如果新增一个字段no,规则是:六位数,从000001开始依次递增。idnameageno1
2017-11-14 14:44:06
3956
原创 android基础知识
Q1:android:layout_weight的真实含义解答:首先声明只有在Linearlayout中,该属性才有效。之所以android:layout_weight会引起争议,是因为在设置该属性的同时,设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果。 android:layout_weight的真实含义是:一旦View
2017-08-11 22:01:34
596
原创 SpringBoot学习-如何使用mybatis-generator-maven-plugin自动生成代码
前提:已经创建了Spring Boot工程。接下来讲解一下如何自动自动生成MySql数据库表的java代码。1首先打开项目的pom.xml,添加依赖。如下图所示:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc
2017-07-10 11:06:24
8836
1
原创 学习maven笔记
最近,做后台微服务开发,使用的是intelliJ IDEA,在对项目打包使用的是maven插件,先clean、compile,最后package,在target目录下生成一个jar包,把这个jar包发布到服务器,启动就好了。昨天在慕课网上看到maven的教程,带着好奇的心学习了一番,老师讲得很好,maven的美式发音也很标准。我发现我之前发音发错了,读[ma:vən],哈哈哈。英[ˈmeɪ
2017-05-31 15:35:12
427
转载 Java内存分配全面浅析
转自http://blog.csdn.net/yangyuankp/article/details/7651251 本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。 进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,
2017-05-01 19:42:29
320
原创 Spring Boot学习-如何创建工程
最近开始学java后台微服务开发,做一些笔记,比较零散。 1 如何创建工程? http://projects.spring.io/spring-boot/ 然后打开 https://start.spring.io/ 可以生成一个项目框架,通过IntelliJ IDEA 导入maven项目,有文档说明。 默认端口号8080,通过application.properties修改端口号 比如:
2017-04-30 20:01:39
942
1
原创 SharedPreferences.Editor 的apply()与commit()方法的区别?
apply()方法apply()方法没有返回值;apply()方法先提交到内存是一个原子操作,然后异步提交到Disk。如果有两个editors同时修改preferences,最后一个调用apply()方法的会成功。apply()方法因为异步提交到Disk,所以效率更高。commit()方法commit()方法有返回值;commit()方法是直接提交到Disk,是一个原子操作,如
2017-03-02 14:09:43
1352
转载 解开Android应用程序组件Activity的"singleTask"之谜
转自http://blog.csdn.net/luoshengyang/article/details/6714543在Android应用程序中,可以配置Activity以四种方式来启动,其中最令人迷惑的就是"singleTask"这种方式了,官方文档称以这种方式启动的Activity总是属于一个任务的根Activity。果真如此吗?本文将为你解开Activity的"singleTask"
2016-12-28 11:34:25
416
原创 Otto学习
今天学习了Otto框架,官网地址https://github.com/square/otto 如何在android studio开发环境下使用Otto呢?1 添加模块依赖 步骤:打开官网地址,复制compile 'com.squareup:otto:1.3.8' 这一句 到模块的build.gradle的dependencies节点下。2 在android studio开发
2016-12-16 14:52:32
469
原创 开发一个Toolbar小demo的步骤
Toolbar官网地址 https://developer.android.com/reference/android/widget/Toolbar.html本文记录了在androidstudio中如何添加Toolbar的步骤。1 将com.android.support:design库添加到模块依赖2 在res/values/styles.xml中修改AppTheme样式,如下:
2016-12-12 17:41:31
1398
转载 java反射获得泛型参数getGenericSuperclass()
public class Person { } import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class Student extends Person { public static void main(String[] args) { S
2016-11-16 11:10:28
1196
转载 快速排序算法
原文地址:http://www.sczyh30.com/posts/Algorithm/algorithm-quicksort/快速排序的基本实现快速排序算法是一种基于交换的高效的排序算法,它采用了分治法的思想:从数列中取出一个数作为基准数(枢轴,pivot)。将数组进行划分(partition),将比基准数大的元素都移至枢轴右边,将小于等于基准数的
2016-11-14 21:54:23
218
转载 自定义TextView解决文字排列不齐和自定义超链接
android提供的TextView控件可以自动换行,对于纯英文来说很好用,如果既有中文字符又有英文字符和特殊字符,全角字符和半角字符混在一块,就会出现经常一行没显示完就跳转到下一行显示了,文字排版参差不齐,超级难看,通过自定义TextView来实现我们需要的显示方式。自定义MyTextView类代码如下:package com.example.user.helloworld.view;
2016-11-14 14:44:02
983
原创 RxJava、EventBus学习笔记
看完深入浅出RxJava系列,作为入门教程,可以自己动手编码试试。想更多了解RxJava例子、源码或RxJava与Retrofit结合使用的实例,可以打开hi大头鬼hi的github,有更多的推荐文章。可能是东半球最全的RxJava使用场景小结,作者在github上也推荐了不少好文、例子和源码。
2016-11-11 15:06:55
431
原创 ScrollView嵌套GridView,GridView中position=0时会重复加载很多次
最近做项目出现一个问题,GridView嵌套在ScrollView中,当。 http://blog.csdn.net/ccchp/article/details/38397511
2016-11-04 15:55:12
1504
原创 学习Retrofit
Retrofit官网http://square.github.io/retrofit/ 这一周学习了Retrofit的使用,学习资料来自网络。 推荐具备实操性的一篇文章:http://wuxiaolong.me/2016/01/15/retrofit/ 我按照这篇文章写了一个小demo,遇到了两点错误,记录以下: 1 AndroidSchedulers.mainThread(),Androi
2016-11-03 22:09:50
465
转载 CountDownTimer实现倒计时
利用android提供的CountDownTimer实现倒计时功能,抽象类CountDownTimer位于package android.os 包中,可以定义类继承CountDownTimer实现onTick(long)和onFinish()抽象方法,也可以定义匿名内部类,实现这两个方法。使用方式如下:private TextView tv_number;//CountDownTimer
2016-10-18 14:27:22
669
原创 流式布局实现选择标签页小实例
参考Android-教你自作一个简单而又实用的流式Tag标签布局一文实现了流式布局的效果,支持单选,多选。这篇文章写的很好。在这篇文章中作者对每个类的主要方法和设计思路进行了说明。实例代码地址我通过对实例代码稍微修改实现我自己需要的选择标签页面,包含热门标签和其他标签,只能选择一个标签。实现的效果图: 图1
2016-10-18 10:31:40
1709
转载 java基础知识-内部类
java类中方法间定义的类称为java的内部类,可以访问其外部类的私有变量和方法。分类 1. 成员内部类 2. 局部内部类 3. 匿名内部类 4. 静态内部类(定义在类中,任何方法外,用static修饰) 静态内部类 生成一个静态内部类不需要外部类成员。这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:Outer.Inner in=new Outer.Inner()
2016-10-06 09:27:09
261
原创 Error:(9) Error retrieving parent for item: No resource found that matches the given name 'Theme.App
今天使用androidstudio运行程序时出现了如下错误,经过查找找到了原因,错误日志描述如下: 最后定位错误在values.xml中找不到资源Theme.AppCompat.Light.DarkActionBar,获取不到colorPrimary,colorPrimaryDark,colorAccent。这些资源是在appcompat库中的,需要在项目的build.gradle中添加app
2016-10-03 14:27:29
585
使用SwipeRefreshLayout和RecyclerView实现下拉刷新列表数据的效果
2016-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人