<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[litefish的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/litefish</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; litefish]]></copyright><item><title><![CDATA[ref绑定函数]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/147429008</link><guid>https://blog.youkuaiyun.com/litefish/article/details/147429008</guid><author>litefish</author><pubDate>Tue, 22 Apr 2025 19:38:07 +0800</pubDate><description><![CDATA[在 React 中，当使用函数作为 ref 时，其核心行为、应用场景和注意事项如下：一、核心行为（生命周期管理）二、常见应用场景三、优缺点对比四、最佳实践建议性能优化条件操作。]]></description><category></category></item><item><title><![CDATA[Git忽略规则.gitignore不生效]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/131385250</link><guid>https://blog.youkuaiyun.com/litefish/article/details/131385250</guid><author>litefish</author><pubDate>Sun, 25 Jun 2023 20:13:21 +0800</pubDate><description><![CDATA[原因是 .gitignore 只能忽略那些原来没有被track的文件，如果某些文件已经被纳入了版本管理中，则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除（改变成未track状态），然后再提交。`git rm -r --cached .在项目开发过程中个，一般都会添加 .gitignore 文件，规则很简单，但有时会发现，规则不生效。]]></description><category></category></item><item><title><![CDATA[泛型的点点滴滴]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/122584788</link><guid>https://blog.youkuaiyun.com/litefish/article/details/122584788</guid><author>litefish</author><pubDate>Wed, 19 Jan 2022 16:49:55 +0800</pubDate><description><![CDATA[泛型继承
public class MainPage&lt;T extends Apple&gt; extends Page&lt;T&gt; 


]]></description><category></category></item><item><title><![CDATA[java泛型通配符]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/122543170</link><guid>https://blog.youkuaiyun.com/litefish/article/details/122543170</guid><author>litefish</author><pubDate>Mon, 17 Jan 2022 17:17:52 +0800</pubDate><description><![CDATA[泛型 generics
协变 co-variant
逆变 Contra-variance
通配符类型 wildcard type
数组是协变的
我们可以把一个dog的数组，赋值给Pet数组，因为Pet是Dog的基类。
Dog[] dogs = { new Dog() };
Pet[] pets = dogs;

在pets这里，他已经不知道数组里的内容是Dog了，他可能会执行如下操作。
pets[0] = new Cat();

这个时候编译是没问题的，但是运行会报错，抛出ArrayStoreExcepti]]></description><category></category></item><item><title><![CDATA[android全屏对话框，覆盖状态栏 尝试了多种方法 效果都不好]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/118158471</link><guid>https://blog.youkuaiyun.com/litefish/article/details/118158471</guid><author>litefish</author><pubDate>Wed, 23 Jun 2021 17:45:05 +0800</pubDate><description><![CDATA[public class FullScrreenDialog extends Dialog {

    public FullScrreenDialog(Context context, List&lt;FuncGridItem&gt; shareList) {
        //super(context,R.style.Dialog_FullScreen);
        super(context);
    }

    @Override
    protected void onCreat]]></description><category></category></item><item><title><![CDATA[git操作]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/117250299</link><guid>https://blog.youkuaiyun.com/litefish/article/details/117250299</guid><author>litefish</author><pubDate>Tue, 25 May 2021 10:25:39 +0800</pubDate><description><![CDATA[git diff
在指定目录进行diff，后面的.也可以改成./aaa
git diff 1.0.0 2.1.9.88 .

]]></description><category></category></item><item><title><![CDATA[device file explorer不显示 原因是root手机给了]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/115703959</link><guid>https://blog.youkuaiyun.com/litefish/article/details/115703959</guid><author>litefish</author><pubDate>Wed, 14 Apr 2021 17:13:59 +0800</pubDate><description><![CDATA[解决方案
打开 超级授权
点击adb，把访问权限改为拒绝，插拔一下手机
https://stackoverflow.com/questions/46461475/android-studio-3-all-versions-device-file-explorer-nothing-to-show

]]></description><category></category></item><item><title><![CDATA[linux常用命令find/grep]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/106788604</link><guid>https://blog.youkuaiyun.com/litefish/article/details/106788604</guid><author>litefish</author><pubDate>Tue, 16 Jun 2020 15:37:37 +0800</pubDate><description><![CDATA[find
从当前目录下根据文件名递归搜索文件
find . -name main.dart

ref
https://blog.youkuaiyun.com/ydfok/article/details/1486451

]]></description><category></category></item><item><title><![CDATA[集合类常见用法]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/106306091</link><guid>https://blog.youkuaiyun.com/litefish/article/details/106306091</guid><author>litefish</author><pubDate>Sat, 23 May 2020 21:02:59 +0800</pubDate><description><![CDATA[hashmap遍历
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
    Object key = iter.next();
    Object val = map.get(key);
}

Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) ]]></description><category></category></item><item><title><![CDATA[Could not resolve io.flutter:arm64]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/106043520</link><guid>https://blog.youkuaiyun.com/litefish/article/details/106043520</guid><author>litefish</author><pubDate>Sun, 10 May 2020 22:18:31 +0800</pubDate><description><![CDATA[换了个电脑，新建flutter工程，提示
Could not resolve io.flutter:arm64_v8a_debug 错误，
意思是这个库下载不下来。
修改了下maven仓库地址，可以下载下来了（非常慢，可能花了20min）
allprojects {
    repositories {

        maven { url "http://download.flutter.io" }
        maven { url "https://storage.googleapis.com]]></description><category></category></item><item><title><![CDATA[git忽略已经被提交的文件]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/106026662</link><guid>https://blog.youkuaiyun.com/litefish/article/details/106026662</guid><author>litefish</author><pubDate>Sat, 09 May 2020 19:57:44 +0800</pubDate><description><![CDATA[现在项目的根目录放了 .gitignore 文件，并且git远程仓库的项目根目录已经有了 logs文件夹。
目录像这样logs/*.log
正确的做法应该是：
git rm --cached logs/xx.log
，然后更新 .gitignore 忽略掉目标文件，最后
git commit -m “We really don’t want Git to track this anymore!”

...]]></description><category></category></item><item><title><![CDATA[Android Studio编译时出现GC overhead limit exceeded]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/104840252</link><guid>https://blog.youkuaiyun.com/litefish/article/details/104840252</guid><author>litefish</author><pubDate>Fri, 13 Mar 2020 14:18:41 +0800</pubDate><description><![CDATA[修改下gradle.property,内存配置大一点即可
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError


]]></description><category></category></item><item><title><![CDATA[android常用adb命令]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/104729327</link><guid>https://blog.youkuaiyun.com/litefish/article/details/104729327</guid><author>litefish</author><pubDate>Sun, 08 Mar 2020 11:26:35 +0800</pubDate><description><![CDATA[查看activity
1、查看栈顶activity的名字
adb shell dumpsys activity | grep "mFocusedActivity"

结果如下
mFocusedActivity: ActivityRecord{bcab688 u0 com.youkuchild.android/.videohome.ChildAudioHomeActivity t57193}

这个...]]></description><category></category></item><item><title><![CDATA[mac下的各种sed、grep、ag命令查看日志好用]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/104519318</link><guid>https://blog.youkuaiyun.com/litefish/article/details/104519318</guid><author>litefish</author><pubDate>Wed, 26 Feb 2020 16:20:56 +0800</pubDate><description><![CDATA[删除文件的前100行，注意mac上要加个空字符串
sed -i "" '1,100d' 404.log


]]></description><category></category></item><item><title><![CDATA[多线程安全]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/103566689</link><guid>https://blog.youkuaiyun.com/litefish/article/details/103566689</guid><author>litefish</author><pubDate>Mon, 16 Dec 2019 17:32:44 +0800</pubDate><description><![CDATA[这里写自定义目录标题容器
容器
list使用CopyOnWriteArrayList，不使用vector或者arraylist。
arraylist不支持同步。
vector存在ConcurrentModificationException的问题

]]></description><category></category></item><item><title><![CDATA[js学习笔记2-解构赋值]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/102577171</link><guid>https://blog.youkuaiyun.com/litefish/article/details/102577171</guid><author>litefish</author><pubDate>Tue, 15 Oct 2019 23:42:02 +0800</pubDate><description><![CDATA[学习廖雪峰 https://www.liaoxuefeng.com/wiki/1022910821149312/1023021187855808
从ES6开始，JavaScript引入了解构赋值，可以同时对一组变量进行赋值。
什么是解构赋值？我们先看看传统的做法，如何把一个数组的元素分别赋值给几个变量
var array = ['hello', 'JavaScript', 'ES6'];
var ...]]></description><category></category></item><item><title><![CDATA[js学习笔记]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/102576247</link><guid>https://blog.youkuaiyun.com/litefish/article/details/102576247</guid><author>litefish</author><pubDate>Tue, 15 Oct 2019 22:30:55 +0800</pubDate><description><![CDATA[js开发环境
chrome的开发工具（Developer Tools）里的控制台（console）是运行JS的理想环境
如何打开：
1、直接进入：
option + command + J (mac)
ctrl + shift + J (windows/linux)
2、开发者工具进入：
快捷键F12 或者
option + command + I (mac)
ctrl + shift + I (...]]></description><category></category></item><item><title><![CDATA[android历史版本]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/101368614</link><guid>https://blog.youkuaiyun.com/litefish/article/details/101368614</guid><author>litefish</author><pubDate>Wed, 25 Sep 2019 15:37:26 +0800</pubDate><description><![CDATA[API等级1：Android 1.0
API等级2：Android 1.1 Petit Four
API等级3：Android 1.5 Cupcake
API等级4：Android 1.6 Donut
API等级5：Android 2.0 Éclair
API等级6：Android 2.0.1 Éclair
API等级7：Android 2.1 Éclair
API等级8：Android 2.2 ...]]></description><category></category></item><item><title><![CDATA[android 常用logcat命令]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/100610780</link><guid>https://blog.youkuaiyun.com/litefish/article/details/100610780</guid><author>litefish</author><pubDate>Sat, 07 Sep 2019 23:20:48 +0800</pubDate><description><![CDATA[adb logcat 一般用法是
    [adb] logcat [&lt;option&gt;] ... [&lt;filter-spec&gt;] ...





选项
说明




-c
清空缓冲区


-e , --regex=
只输出日志消息与  匹配的行，其中  是一个正则表达式


-f 
将日志消息输出写入 。默认值为 stdout


-s
根据tag过滤，相当于过滤器规范 ...]]></description><category></category></item><item><title><![CDATA[ROOM新手入门]]></title><link>https://blog.youkuaiyun.com/litefish/article/details/100588348</link><guid>https://blog.youkuaiyun.com/litefish/article/details/100588348</guid><author>litefish</author><pubDate>Fri, 06 Sep 2019 23:50:58 +0800</pubDate><description><![CDATA[room框架是google出品打orm框架，闻名已久，今日入门学习
1、先写数据实体类，这个实体对应数据库中的一张表
@Entity
public class User {
    @PrimaryKey
    private int uid;

    @ColumnInfo(name = "first_name")
    private String firstName;

    @Co...]]></description><category></category></item></channel></rss>