【安卓】
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,所以其性能也会受到影响。
原文:https://www.cnblogs.com/nicojerry/p/12922800.html