首页 > 其他 > 详细

【笔记记录】2020-06-04

时间:2020-06-04 10:59:15      阅读:57      评论:0      收藏:0      [点我收藏+]

【安卓】

1.NotificationChannel

NotificationManager manager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

if(Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O){
    // 如果这里用 IMPORTANCE_NOENE 就需要在系统的设置里面开启渠道,通知才能正常弹出
    NotificationChannel notificationChannel = new NotificationChannel("channelid1", "channelname", NotificationManager.IMPORTANCE_HIGH);
    manager.createNotificationChannel(notificationChannel);
}

NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this,"channelid1");
builder.setSmallIcon(R.drawable.ico)
    .setContentTitle("通知标题")
    .setContentText("通知内容")
    .setAutoCancel(true);
manager.notify(0x12, builder.build());

2.GSON:TypeToken<T>

public static <T> T parseJson(String json, TypeToken<T> typeToken){
    Gson gson = new Gson();
    JsonReader reader = new JsonReader(new StringReader(json));
    return gson.fromJson(reader, typeToken.getType());
}

// 方式一:直接new一个
parseJson(jsonStr, new TypeToken<Place>() {}));

// 方式二:静态方法生成
parseJson(jsonStr, TypeToken.get(Place.class))

3.影响应用流畅性的有哪几种场景值:

1. UI绘制
2. 应用启动
3. 页面跳转
4. 事件响应


UI绘制:过度绘制、onDraw()

4.Stetho:Facebook开源的一个Android调试工具,可用Chrome来检测应用的网络、数据库、WebKit 等方面的功能。

5.线程池的相关知识:Android中的线程池都是直接或间接通过配置ThreadPoolExecutor来实现不同特性的线程池,Android中最常见的具有不同特性的线程池分别为 FixThreadPool、CachedThreadPool、SingleThreadPool、ScheduleThreadExecutor。

6.reified:在内联函数中的泛型中使用,表示具体化泛型参数名作为一个具体的类名来使用,相当于可以将T当成一个类型来使用,例如T.class.java。

// 扩展函数
inline fun <reified T : Activity> Activity.startActivity() {
    // T当作具体类型使用,在java中是做不到的
    startActivity(Intent(this, T::class.java))
}
// 调用函数
startActivity<DetailActivity>()

// -----------------------------------------------------------
inline fun <reified T> String.jsonToObj(): T? {
return try {
val g = Gson()
val type = object : TypeToken<T>() {}.type
g.fromJson<T>(this, type)
} catch (e: Exception) {
null
}
}

// -----------------------------------------------------------
inline fun <reified T> String.jsonToObjList(): ArrayList<T>? {
return try {
val g = Gson()
val type = object : TypeToken<ArrayList<T>>() {}.type
return g.fromJson<ArrayList<T>>(this, type)
} catch (e: Exception) {
null
}
}

7.GC Root

【范围】
1. 虚拟机栈中引用的对象,主要是指栈帧中的本地变量
2. 本地方法栈中 Native 方法引用的对象
3. 方法区中类静态属性引用的对象
4. 方法区中常量引用的对象

【解析】
1. 栈帧:
    1. 栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。
    2. 每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机里面从入栈到出栈的过程。
    3. 局部变量表是一组变量值存储空间,用于存放方法参数和方法内部定义的局部变量,并且在Java编译为Class文件时,就已经确定了该方法所需要分配的局部变量表的最大容量。

 

【数学】

1.平面向量:向量的模、单位向量

根据单位向量的定义得出:x² + y² = 1

我们对单位向量乘以一个数a,那么向量成为:(ax, ay)

那么根据勾股定理,向量的长度
    =  √( (ax)² + (ay)² )
    = √( a²x² + a²y² )
    = √( a²(x² + y²) )
    = a √(x² + y²) 
    = a √1
    = a

所以得出对向量乘以一个数a,就是其长度增长a倍,假设某一个向量的长度为z,其实就是对他的单位向量乘以z,那么求他的单位向量则让向量本身除以它的长度即可。

 

【前端】

1.BFC:

1. 浮动元素,float 除 none 以外的值; 
2. 绝对定位元素,position(absolute,fixed); 
3. display 为以下其中之一的值 inline-blocks,table-cells,table-captions; 
4. overflow 除了 visible 以外的值(hidden,auto,scroll)

2.[CSS] 线性渐变图像:linear-gradient(direction, color-stop1, color-stop2, ...); 

3.[Npm] npm run:执行package.json字的scripts字段对应的命令。

 

【后端】

1.PHP类型声明:可以给函数声明返回值类型,和函数参数声明类型。

2.Redis持久化:RDB、AOF两种持久化方式。

appendonly、appendfsync这两个配置项是什么意思?
    1. appendonly是开用于开启AOF持久化的配置项,默认值为no。
    2. appendfsync:
        1. appendfsync no:Redis不会主动调用fsync去将AOF日志内容同步到磁盘,所以这一切就完全依赖于操作系统的调试了。对大多数Linux操作系统,是每30秒进行一次fsync,将缓冲区中的数据写到磁盘上。
        2. appendfsync everysec:Redis会默认每隔一秒进行一次fsync调用,将缓冲区中的数据写到磁盘。但是当这一 次的fsync调用时长超过1秒时,Redis会采取延迟fsync的策略,再等一秒钟,也就是在两秒后再进行fsync,这一次的fsync就不管会执行多长时间都会进行。
        3. appednfsync always:每一次写操作都会调用一次fsync,这时数据是最安全的,当然,由于每次都会执行fsync,所以其性能也会受到影响。

 

【笔记记录】2020-06-04

原文:https://www.cnblogs.com/nicojerry/p/12922800.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!