自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zlt_blog

学习记录

  • 博客(24)
  • 收藏
  • 关注

原创 编写一个简单的linux下的服务

步骤脚本编写服务配置脚本:`/usr/lib/systemd/system/vr.service`启动脚本:`/usr/local/vr/vr-start.sh`终止脚本:`/usr/local/vr/vr-stop.sh`日志轮循脚本:`/etc/logrotate.d/vr`操作服务启动服务关闭服务启动日志轮循脚本编写服务配置脚本:/usr/lib/systemd/system/vr.service[root@VM-0-11-centos ~]# cat /usr/lib/systemd/syst

2021-05-21 09:04:54 650

原创 【笔记】Linux基础

Linux Note1.文件文件类型与权限文件查找规划分区>>格式化文件系统>>挂载文件系统启动挂载2.Shell2.1 变量赋值和取值2.2 环境变量读取过程2.2 命令bash环境变量readaliastype2.3 bash登陆与欢迎信息2.4 bash通配符2.5 Ctrl + z 切换后台3. Vim编辑器v.1 常用按键v.2 多窗口v.3 swap文件v.4 可视化区块 超好用的!v.5 配置文件v.6 执行shell命令4. 进程管理4.1 任务管理 jobs**查看

2021-05-12 22:38:36 874 1

原创 【Java】串联垃圾回收的一些基本概念(简单好记)

串联垃圾回收的一些基本概念首先是如何判断垃圾,可以通过引用记数式垃圾回收追踪式垃圾回收来判断,Java使用的是引用追踪。➡️ 判断谁是垃圾之后,要进行收集,那么垃圾回收算法大概有这么三种标记-复制标记-清除标记-整理这三种算法各有千秋➡️ 那么在Java中为了更好的回收垃圾,提出了三条分代收集的理论新生代朝生夕灭熬过越多次GC的对象就越不容易成为垃圾跨代引用很少➡️ 根据这三条基本的理论,Java将内存至少分为新生代 Young Generation :对象多、垃

2021-03-06 13:41:53 177

原创 【Java】浅析线程池ThreadPoolExecutor基本功能的实现

一、线程池功能大概可以有分为下面两类功能执行任务取消任务二、线程池抽象Java中对线程池的抽象叫ExecutorService,继承自ExecutorJava对执行任务的抽象叫做Executor三、线程池ThreadPoolExecutor设计首先,线程池要能够调度某个线程去执行任务,那么就需要有一个集合来保存已经创建的线程,称为关于线程的集合其次,向线程池提交任务,那么线程池可能不会立即执行,那么需要有一个集合来保存已经提交的任务,称为关于任务的集合然后,线程池要终止某个任务,

2021-03-06 00:19:04 250 2

原创 【Mysql】Mysql数据库层面优化的常用四种方法

Mysql 优化一、CPU根据CPU数量,调整read/write线程数量二、内存优化InnoDB将数据和缓存放在innodb buffer pool里面,所以缓冲池的大小对mysql有着性能影响,缓存命中率应该达到99%。通过修改innodb_buffer_pool_size(静态参数)来扩大缓冲区,减少磁盘读取数量。1. 查看Innodb缓冲区相关状态mysql>show global status like 'innodb%read%'\G然后计算缓冲区命中率=innodb_

2021-03-01 20:33:30 364 2

原创 【Java】 GC 快速回顾

Java GC如何判断对象是否死亡?有2⃣️种方法:引用计数可达性分析标记对象真正死亡的过程?有3⃣️个步骤通过可达性分析,标记并筛选对象(是否有必要执行finalize())将筛选过后的对象加入F-QueueJVM开启finalizer线程处理F-QueueGC Roots大概有哪些?局部变量、静态变量、常量的引用Class类型对象JNI对象(Native方法引用的对象)被synchronized关键字持有的对象方法区怎么回收?方法区要回收的主要是:不用的cla

2021-02-02 11:38:22 158

原创 【Java】二叉树层序遍历队列实现模版

二叉树层序遍历size表示当前这一层的节点个数一次while就会遍历一层 public ... travel(TreeNode root) { ... Deque<TreeNode> queue = new ArrayDeque(); queue.offer(root); while (!queue.isEmpty()) { int size = queue.size();

2021-01-16 10:43:51 213

原创 【Java】静态代理和动态代理简单实现和原理分析

静态代理1.定义抽象接口首先将业务功能抽象出来,比如购买机票,所有的航空公司都提供一个购买的渠道,那么将这个购买行为抽象作为一个接口AirLinepublic interface AirLine { void buy();}2.实现接口现在比如有个具体的航空公司,比如川航,用户可以在川航真正的买到一张票。也就是说川航实现了这个购买机票的接口public class CHAirLine implements AirLine{ @Override public void

2021-01-12 23:09:24 192 2

原创 【Java】二分法查找数字/查找左右边界代码分析

二分法lo、hi、mid变来变去很烦,然后返回值减不减1很烦,总结一下

2021-01-03 19:55:28 408

原创 【Java】 .class文件结构总结

总结 .class文件结构

2021-01-01 22:01:08 136 2

原创 【Java】浅析Synchronized指令

总结《深入理解Java虚拟机》第6章 6.4节的一些知识

2020-12-31 16:32:43 161 1

原创 【Java】六种单例模式实现和原理解析

使用Java实现各种单例模式,并分析其原理和优缺点

2020-12-30 12:13:22 268 1

原创 RecyclerView Selection & MyAdapter 构建随意选择数据的RecyclerView

MyAdapter自定义可复用ViewAdapter,在前一篇博客里,不多说了。下面是MyAdapter的代码,T就是list里面装的数据的type//T: The list data typeabstract class MyViewAdapter<T>(diffCallback: DiffUtil.ItemCallback<T>) : ListAdapte...

2020-11-26 20:14:45 257

原创 【Java】使用回溯法解决元素的排列组合问题

组合leetcode 77. 组合 public List<List<Integer>> combine(int n, int k) { List<List<Integer>> ans = new LinkedList<>(); int[] num = new int[n]; for (int i = 0; i < num.length; i++) { num[i]

2020-11-23 16:02:42 488

原创 Java/Kotlin: Gson() 泛型转换,解决泛型参数的类型擦除

解决Gson()解析泛型参数,类型擦除的问题,减少了大量模板代码

2020-03-15 23:39:11 3467

原创 Android: SharedPreference React Programming,监听SharedPreference

监听SharedPreference,配合LiveData,实现响应式编程

2020-03-15 22:41:48 182

原创 Room: 使用Converter过后的Query语句 SET注意

Converterclass Converters { @TypeConverter fun fromPreferUsrNames(json: String?): List<String>?{ return Gson().fromJson<List<String>>(json, getTypeToken<List<...

2020-03-04 22:30:03 635

原创 ListAapter & DataBinding 重用Adapter,减少模板代码

构建 ViewHolder在使用Databinding的ViewHolder中,ViewHolder起到将Data绑定到View的作用,通过bind()完成,比如fun bind(name: String){ binding.name = name binding.executePendingBindings() }but,通过DataBinding...

2020-02-18 23:55:08 187

原创 LiveData:Transformations.map & Transformations.switchMap 用法

一. Transformations.mapFunction:从一个LiveData<X>转换到另外一个LiveData<Y>val oldLiveData = MutableLiveData<String>("hhh")val newLiveData = Transformations.map(oldLiveData){ "NewLiveData ...

2020-02-12 18:54:23 3665

原创 Android Jetpack:WorkManager - WorkInfo的获取注意

一. 使用WorkRequstBuilder通过Builder构建Request val oneTimeWorkRequest= OneTimeWorkRequestBuilder<MyWorker>() .build() 或者val periodicWorkRequestBuilder= PeriodicWorkRequestBu...

2020-02-07 17:02:07 1024

原创 Android Jetpack:ViewModel, LiveData & Databinding 的简单使用

一. 故事背景:假设有这么一个UI,任务是点击按钮然后让N的值加1二. 具体操作① Databinding先来看XML文件,你得先会将这个布局转成 databinding layout,只看有注释的地方就行了。<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.a...

2020-02-05 18:35:02 323

原创 Android Jetpack:Room Relation - Many To Many

① Relationclass和class之间的关系转为为table和table之间的关系② 定义data class故事背景:小明有很多朋友Friend,并且小明有很多旅游计划Plan(假设是不同时段的)。他邀请Friend到Plan中一起旅行,而Friend可以加入多个Plan,那么Friend和Plan现在就构成了多对多的关系。@Entity(tableName = "friends...

2020-02-04 19:44:11 878

原创 Android Jetpack:Room的简单搭建

① Data class@Entity(tableName = "friends") 建立一张表,表名叫friends设置主键@PrimaryKey @ColumnInfo(name = "id"),将注释后面的属性设置成一个Column,并且指定这个属性是主键@ColumnInfo该注释后面的属性将成为表中的一个Column属性如果类中有属性不想存入数据库,也就是这个friends表的...

2020-02-01 22:57:53 388

原创 【Java】二叉树前序、中序、后序遍历的迭代实现以及遍历模版

DataStructure_note Binary tree traversals implementation without recursionPreorderInorderPostorderPreorder//use stackvoid Preorder(BTNode * root){ BTNode *root = root; Stack<BTNode*> stac...

2019-12-10 20:44:41 126

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除