Stream 说明: java 8 中新增 java.util.stream.Stream 里的类 不同于 IO 流 针对操作集合(Collection)对象里的数据 Stream 是并行化的 Stream对象可以调用多个intermediate(转换) 操作, 但只能有一个 terminal 操作; 多个转换操作会在遇到 terminal 操作之后依次执行,即取集合内的一个元素取出后就依次执行, 相当于只需要for循环一次; 流的操作 把一个数据结构包装成 Stream 后,就要开始对里面的元素进行各类操作了。常见的操作可以归类如下。 Intermediate(转换): map (mapToInt, flatMap 等)、 filter、 distinct、 sorted、 ...
定时器 QTimer
Header: #include <QTimer> qmake: QT += core 12 Header: #include <QTimer>qmake: QT += core 构造方法 QTimer(QObject *parent = Q_NULLPTR) 当 parent 被销毁时, QTimer 对象也会被自动销毁; 函数方法 void QTimer::start(int msec) 开启一个任务, 每多少毫秒回调一次 void QTimer::timeout() 到指定事件发出 timeout 信号 void QTimer::stop() 停止定时器 setInterval(int msec) ...
使用本地aar包
软件环境 android studio: 2.2 MacOS 一般方式导入 aar 包放入 libs 文件夹下; // build.gradle repositories { flatDir { dirs 'libs' //this way we can find the .aar file in libs folder } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile(name: 'aar_name', ext: 'aar') } 1234567891011 // build.gradlerepositories { flatDir { &n ...
Annotations(注解)支持库
compile 'com.android.support:support-annotations:24.2.0' 1 compile 'com.android.support:support-annotations:24.2.0' Nullness注解 使用@NonNull注解修饰的字段,方法参数,返回值, 都不可已为null。 @Nullable 表示可以为空 @Nullable public String notNull(@NonNull Fragment fragment){ return null; } 123 &nb ...
编程所思
不知什么时候, 感觉自己摸到了瓶颈, 这个瓶颈并不是说自己的技术现在已经到了极佳的水平, 而是由于受限于身边的环境, 或者其他的原因(思想之类的), 感觉最近自己的技术提升速度不明显, 比以前慢多了; 记得刚开始在学校写代码的时候, 觉得把功能实现了, 就是一件很牛逼的事了; 到现在也写了三年多, 写到现在, 不断的和比自己优秀的人对比, 慢慢的发现, 把功能实现了, 是无法说明技术优秀的, 毕竟一段垃圾代码和一段优秀代码都可以把功能实现; 而且实现功能的代码在自己一开始不会的时候, 一般都是通过搜索引擎去搜索其它人的知识来实现 ...
不同的drawable文件夹对图片内存占用的影响
同一张图片放在不同的drawable文件夹里, 使用时占用的内存是不一样的; 不同文件夹对应dpi 在android中, 以160dpi 的屏幕为基准, 在此屏幕上 1dip = 1px; 密度 描述 ldpi 低密度屏幕;约为 120dpi。 mdpi 中等密度(传统 HVGA)屏幕;约为 160dpi。 hdpi 高密度屏幕;约为 240dpi。 xhdpi 超高密度屏幕;约为 320dpi。此项为 API 级别 8 中新增配置 xxhdpi 超超高密度屏幕;约为 480dpi。此项为 API 级别 16 中新增配置 xxxhdpi 超超超高密度屏幕使用(仅限启动器图标,请参阅“支持多种屏幕”中的注释);约为 640dpi ...
QT 信号槽
宏: SIGNAL, SLOT 关键字: signals, slots, emit SLOT 方法是阻塞的 类的定义中需要包含宏Q_OBJECT 要想一个方法放入 SLOT(XXX) , xxx 一定要在声明时指定 signals 修饰; 使用: QObject::connect(sender, SIGNAL(signal), receiver, SLOT(slot)); 绑定的 signal 和 slot 方法参数要类型一致;或自动把signal比slot多出的参数省略; disconnect 断开 自定义信号/槽 注意点 自定义类继承 QObject 声明宏 Q_OBJECT 函数指针不能作为信号或槽的参数。 信号与槽不能有缺省参数。 signals 的注意点 表示信号 signals 修饰的方法不能 ...
Data Binding Library
数据绑定, 更简单的方式给View赋值和刷新; 软件环境: android版本: 兼容Android 2.1以上(API level 7+); Gradle版本: 1.5.0-alpha1 以上; Android Studio版本: 1.3以上; 配置 app model里的 build.gradle 添加; android { .... dataBinding { enabled = true } } 123456 android { .... dataBinding { enabled = true ...
位域
结构: 类型 变量名:位长度; 如: int i:3; 使用变量名直接控制一些bit; 结构体占用空间最小为变量类型的固有长度 //两个int占用一个int空间 struct intS{ int i1:3; int i2:5; } ; intS p1; cout << sizeof(p1)<< endl;//4 1234567 //两个int占用一个int空间 struct intS{ int i1:3;   ...
linux指令
文件管理 查看文件 ls 查看当前目录下的所有文件; ls -l 可以查看更详细的内容; promote:linux cold$ ls -l total 8 -rw-r--r-- 1 cold staff 27 11 3 22:00 t1.txt drwxr-xr-x 2 cold staff 68 11 3 22:46 未命名文件夹 第一列:文件类型。 第二列:表示文件个数。如果是文件,那么就是1;如果是目录,那么就是该目录中文件的数目。 第三列:文件的所有者,即文件的创建者。 第四列:文件所有者所在的用户组。在Linux中,每个用户都隶属于一个用户组。 第五列:文件大小 ...