- 博客(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
原创 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
原创 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关注的人