- 博客(60)
- 资源 (2)
- 收藏
- 关注
原创 Monknow 书签导出工具:从本地存储提取数据并转为标准 HTML 书签
Monknow新标签页插件数据导出工具,支持从Edge/Chrome/Firefox本地存储一键导出书签为HTML格式。该工具包含Python脚本和JS脚本两种方案,自动解析Monknow存储数据并保留分组结构,生成的HTML文件可导入主流浏览器。工具完全本地运行,不修改原始数据,解决了Monknow缺乏官方导出功能的问题。使用方法简单,执行python export-monknow.py即可完成导出,适合需要备份或迁移Monknow书签的用户。项目已开源在GitHub,欢迎使用和改进。
2026-05-22 02:25:00
477
原创 Monknow新标签页数据导出
MonKnow浏览器扩展数据导出指南 本文介绍了如何通过JavaScript脚本导出MonKnow浏览器扩展中收藏的网页数据。
2025-12-20 01:02:04
262
原创 Android Init Language自学笔记
Android Init Language由五个元素组成:Acttions、Commands、Services、Options和Imports。Actions和Services隐式声明了一个新的section。所以的Commands和Options都属于最近声明的section。Services具有唯一的名称,如果重名会报错。
2024-07-08 14:58:56
467
原创 AOSP13 lunch函数的注释级解析
lunch操作是在编译Android之前必须执行的一个操作,它实际上是调用了/build/envsetup.sh脚本中的lunch()函数。下面就对该lunch()函数进行一些说明。
2023-04-09 21:39:55
998
原创 Android Framework谷歌应用翻译问题
需求是要翻译Android System Intelligence这个字符串,发现有两个name,一个叫app_name,一个叫asi_settings_activity_title,不想区别,就一起翻译了吧。下载apktool,改名为apktool.jar,复制出AndroidSystemIntelligence_Features_arm64.apk,将两个文件放置同一目录中,建议不要带中文路径。打开values下的string.xml文件,找到需要翻译的字符串。
2023-03-15 10:34:59
1345
原创 基于VMware虚拟机的Hadoop完全分布式集群搭建
1.Linux安装配置 1.1创建模板虚拟机 网络类型选择【NAT模式】 可选用最小化安装 1.2网络配置 虚拟机网络配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 操作如下几行即可: BOOTPROTO=dhcp改为BOOTPROTO=static ONBOOT=no改为ONBOOT=yes 添加4行 IPADDR=192.168.150.200与物理机VMnet8虚拟网卡在同一网段 NETMASK=255.255.255.0
2022-04-11 09:56:36
2721
原创 Hadoop单机伪分布式安装
1.Linux安装配置 1.1创建虚拟机 网络选择【桥接模式】 可选用最小化安装 1.2虚拟机网络配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 操作如下几行即可: BOOTPROTO=dhcp改为BOOTPROTO=static ONBOOT=no改为ONBOOT=yes 添加4行 IPADDR=192.168.1.200与物理机在同一网段 NETMASK=255.255.255.0与物理机子网掩码相同 GATEWAY=192
2022-04-07 22:41:15
2872
1
原创 Linux系统代理
Linux系统代理 1、编辑文件/etc/profile,增加如下两行 export http_proxy=http://ip:port export https_proxy=http://ip:port 2、执行source /etc/profile,然后登出再登入生效
2021-10-06 19:17:57
237
原创 ERROR: Cannot find the strip binary required for object file stripping
Manjaro安装搜狗输入法时,运行·yay -S fcitx-sogoupinyin·时出现错误ERROR: Cannot find the strip binary required for object file stripping 解决办法:sudo pacman -Sy base-devel
2021-10-06 16:40:08
711
原创 多线程 Thread Runnable Callable Future
并发:指令在多个CPU上同时执行。 并行:指令在单个CPU上交替执行。 多线程的实现方案 继承Thread类 1.定义Thread类的继承类MyThread 2.在MyThread类中重写run()方法 3.创建MyThread类的对象 4.启动线程 myThread.start() 实现Runnable接口 1.定义Runnable接口的实现类MyRunnable类 2.在MyRunnable类中重写run()方法 3.创建MyRunnable类的对象 4. 创建Thread类的对象,把MyRu
2021-10-02 10:38:43
166
原创 字符流
字符流 字节流在操作中文时(每次只能操作一部分字节),可能出现乱码,这时就需要使用字符流。 GBK : 一个字符两个字节 Unicode,UTF-8:一个中文三个字节 字符串中的编码解码问题 编码 byte[] getBytes():使用平台默认字符集将String编码为一系列字节,将结果存储到新的字节数组中。 byte[] getBytes(String charsetName):是用指定字符集将String编码为一些列字节,将结果存储到新的字节数组中。 解码 String(byte[] bytes):
2021-09-30 10:09:52
159
原创 IO流
IO流 IO流的分类 按流向分: 输入流 输出流 按数据类型分: 字节流:操作所有类型的文件 字符流:只能操作纯文本文件 字节流 1.创建字节输出对象 FileOutputStream fos = new FileOutputStream(String pathname); 如果文件不存在,则创建 如果文件存在,则把文件情况 2.写数据 fos.write(int a); 写入的是a对应的字符 3.释放资源 fos.close(); 字节流写数据的3种方式 void write(int b):一次写一个
2021-09-28 10:29:04
149
原创 File类
File类 File表示要读写的文件在哪里,也可以对文件进行创建,删除等操作。它是文件和目录路径名的抽象表示 文件和目录可以通过File封装成对象 File封装的对象仅仅是一个路径名。它可以是存在的,也可以是不存在的。 构造方法 File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例 File(String parent, String child):从父路径名字符串和子路径字符串创建新的File实例 File(File parent, String
2021-09-27 08:47:58
151
原创 Stream流
Stream流 Stream流的三类方法 获取Stream流:创建Stream 中间方法:Stream的一次操作 终结方法:一个Stream流只能有一个终结方法 Stream流的获取方法 单列集合 可以使用Collection接口中的默认方法stream()生成流 default Stream<E> stream() 双列集合 间接生成流 可以先通过keySet或者entrySet获取一个Set集合,再获取Stream流 集合对象.keySet().stream(); 集合对象.entry
2021-09-26 12:12:20
196
原创 LinkedList
LinkedList LinkedList常用方法 public void addFirst(E e):在该列表开头插入指定的元素 public void addLast(E e):将指定的元素追加到此列表的末尾 public E getFirst():返回此列表中的第一个元素 public E getLast():返回此列表中的最好一个元素 public E removeFirst():删除并返回第一个元素 public E removeLast():删除并返回最好一个元素 LinkedList底层 Li
2021-09-21 10:13:45
140
原创 增强for循环
增强for循环 增强for: since JDK5,内部原理是一个Iterator迭代器 实现Iterator接口的类才可以使用迭代器和增强for
2021-09-20 17:46:55
99
原创 Collection类
Collection类 Collection集合常用方法: boolean add(E e) boolean remove(Object o) boolean removeif(Object o) void clear() boolean contains(Object o) boolean isEmpty() int size() Collection集合的遍历 Iterator:迭代器,集合的专用遍历方式 Iterator<E> iterator() 返回集合中的迭代器对象,该迭代器对象默认
2021-09-20 17:44:22
124
原创 集合的体系结构
集合的体系结构 数组: 数组的长度是不可变的 可以存储基本数据类型,也可以存储引用数据类型 集合: 集合的长度是可变的 只能存引用数据类型 集合类体系结构 集合: 单列集合(Collection): 可重复(List): ArrayList LinkedList 不可重复(Set) HashSet TreeSet 双列集合(Map) HashMap TreeMap ...
2021-09-20 17:27:29
168
原创 异常
异常:就是程序出现了不正常的情况,这种不正常情况会导致JVM的非正常停止。 (语法错误不是异常) 异常分类 Throwable Error:严重问题,无法通过代码处理 Exception:异常类,程序本身可以处理的问题 RuntimeException及其子类:(非受检异常)编译成class文件时必须处理的异常 其他异常:(受检异常)编译时不需要处理,在运行字节码文件时可能出现的异常 虚拟机默认处理异常的方式 当代码出现了异常,那么就在这里创建一个异常对象,如果程序没有自己处理异常的代码,就讲交给本方法
2021-09-19 09:55:54
162
原创 SimpleDateFormat类
SimpleDateFormat类 SimpleDateFormat可以对Date对象进行格式化和解析。 构造方法 public SimpleDateFormat():构造一个,使用默认格式 public SimpleDateFormat(String pattern):构造一个,只有指定的格式。 成员方法 public final String format(Date date):将日期格式化成日期/时间字符串 public Date parse(String source):从给定字符串的开始解析文本以
2021-09-16 18:30:27
118
原创 Date类
Date类 构造方法 public Date():创建一个Date对象,表示默认时间(计算机当前时间) public Date(long date):创建一个Date对象,表示指定时间。(从时间原点起算, 要考虑时差)
2021-09-16 17:22:54
112
原创 Arrays类
Arrays类 成员方法 public static String toString(int[] a):返回指定数组内容的字符串表示形式。 public static void sort(int[] a):安装数字顺序排列指定的数组。 public static int binarySearch(int[] a, int key):利用二分查找返回指定元素的索引。 ...
2021-09-16 14:37:41
112
原创 Integer类
Integer类 包装了一个int基本数据类型的类 常用方法 public Integer(int value):根据int值创建Integer对象 public Integer(String s):根据String值创建Integer对象 public static Integer valueOf(int i):返回表示指定的int值的Integer实例 public static Integer valueOf(String s):返回一个保存指定String值的Integer对象 自动装箱和自动拆箱
2021-09-16 14:25:06
295
原创 BigDecimal类
BigDecimal类 作用:可以用来精确计算。 构造方法 BigDecimal(double val):将 double转换为 BigDecimal BigDecimal(String val):将 字符串表示 BigDecimal转换为 BigDecimal 常用方法 public BigDecimal add (BigDecimal augend) public BigDecimal subtract (BigDecimal subtrahend) public BigDecimal multiply
2021-09-16 12:30:19
124
原创 Objects类常用方法
Objects类常用方法 public static String toString(Object o):返回参数中对象的字符串表示形式。 public static String toString(Object o, String nullDefault):返回参数中对象的字符串表示形式,如果为null,则返回nullDefault字符串。 public static Boolean isNull(Object obj):判断对象是否为空。 public static Boolean nonNull(Ob
2021-09-16 11:21:02
160
原创 Object类
Object类 特点: Object类是所以类的直接或简直父类 直接打印一个对象就是打印这个对象的toString()方法的返回值(对象的地址值) 要打印内容,需要重写toString()方法 Object类常用方法: public String toString():返回对象的字符串表示形式。 public boolean equals(Object obj) :比较对象是否相等.(重写该方法实现比较内容) 注意:String类重写了Object类中的equals()方法,StringBuilder类
2021-09-16 11:01:47
103
原创 System类常用方法
System类常用方法 public static void exit(int status):终止当前运行的Java虚拟机,非零表示异常终止 public static long currentTimeMillis():返回当前时间(以毫秒为单位) arraycopy(Object src, int srcPos, Object dest, int destPos, int length):从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束 ...
2021-09-16 10:46:48
126
原创 Math类常用方法
Math类常用方法 public static int abs(int a):返回参数的绝对值 public static double ceil(double a):向上取整 public static double floor(double a):向下取整 public static int round(float a):四舍五入 public static int max(int a, int b):返回最大值 public static int min(int a, int b):返回最小值 pub
2021-09-16 10:41:00
166
原创 Lambda表达式
Lambda表达式 Lambda表达式的标准格式 格式:( 形式参数 ) -> { 代码块 } 形式参数:如果有多个参数,参数之间用逗号隔开;没有参数,留空即可 ->:固定写法 代码块:方法体内容 Lambda表达式的使用前提 有一个接口 接口中有且仅有一个抽象方法 Lambda表达式的省略模式 参数类型可以省略,但是有多个参数的情况下,不能只省略一个 如果参数有且仅有一个,可以省略小括号 如果代码块的语句只有一条,可以省略大括号和分号,甚至是return关键字。 ...
2021-09-16 09:08:09
114
原创 内部类
内部类 在一个类中定义一个类。 内部类的访问特点: 内部类可以直接方位外部类成员,包括私有 外部类要访问内部类的成员,必须创建对象 外部类名.内部类名 对象名 = new 外部类对象().new 内部类对象(); 成员内部类 私有成员内部类:不能在外部创建内部类对象 静态成员内部类:创建对象格式发生变化, 外部类名.内部类名 对象名 = new 外部类对象.内部类对象(); 局部内部类 局部内部类是在方法中定义的类。外界无法直接使用,需要在方法内部创建对象并使用。 该类可以直接访问外部类成员,也
2021-09-15 23:19:48
118
原创 多态
多态 同一个对象,在不同时刻表现出不同形态。 多态的前提 要有继承或实现关系 要有方法重写 要有父类引用指向子类对象 多态中成员访问特点 构造函数:同继承一样,子类会通过super访问父类构造方法。 成员变量:编译看左边(父类),执行看左边(父类)。 成员方法:编译看左边(父类),执行看右边(子类)。 为什么成员变量和成员方法访问不一样?因为成员方法有重写,而成员变量没有 多态中的转型 向上转型:子转父,父类引用指向子类对象 向下转型:父转子,父类引用转为子类对象 instanceof关键字 使
2021-09-15 09:48:40
128
原创 接口
接口 当一个类中所有方法都是抽象方法时,就可以将其定义为接口。 接口是一种引用数据类型。 接口存在的两个重要意义 规则的定义 程序的扩展 接口的定义和特点 接口使用interface关键字来定义 public interface inter {...} 接口不能实例化 接口和类之间是实现关系,通过implements关键字表示,可以但实现,也可以多实现 public class InterImpl inter {...} 接口的实现类,要么重写接口中全部的抽象方法,要么自己也是抽象类。
2021-09-14 11:11:32
150
原创 代码块
代码块 局部代码块 位置:方法中定义。 作用:限定变量的生命周期,可以及早释放,提高内存利用率。 public static void main(String[] args) { { int a = 100; System.out.println(a); } //System.out.println(a); 报错 } 构造代码块 位置:类中方法外定义。 特点:每次构造方法执行时,都会执行构造代码块中的代码,并且在构造方法执行前执行。 作用:可以将多
2021-09-13 22:59:02
113
原创 final关键字
final关键字 final关键字可以修饰方法、变量、类 final修饰的特点: 修饰方法:表明该方法时最终方法,不能被重写 修饰变量:表明该变量是自定义常量,不能再次被赋值。 修饰类:表明该类是最终类,不能被继承 final修饰的注意事项: final修饰基本数据类型变量:其值不能被更改;修饰引用数据类型变量:地址值不能被更改,但是可以修改对象的属性值。 final修饰成员变量存在初始化时机问题:final修饰的成员变量要么在创建的时候直接给值;要么在构造方法结束之前完成赋值。 ...
2021-09-13 22:39:06
110
原创 抽象类
抽象类 抽象方法: 将共性的的方法抽取到父类后,发现该方法的实现逻辑无法在父类中给出具体明确,该方法就可以定义为抽象方法。 抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类。 抽象类注意事项 抽象类不能创建对象 抽象类不一定有抽象方法,但有抽象方法的类必须是抽象类 抽象类中存在构造方法 抽象类的子类:要么重写父类所有的抽象方法,要么把自己也变成一个抽象类 ...
2021-09-13 21:55:25
109
原创 开闭原则
开闭原则 在面向对象编程领域中,开闭原则 (The Open/Closed Principle, OCP) 规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用品质的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。 开闭原则的命名被应用在两种方式上。这两种方式都使用了继承来解决明显的
2021-09-13 21:00:31
158
原创 继承中构造方法的访问特点
继承中构造方法的访问特点 子类在初始化之前,一定要先访问父类的构造方法,完成父类数据的初始化 系统在每一个构造方法(无论空参还是有参)中,如果不显式地写出,则默认隐藏一句代码super(); 如果父类空参构造方法不存在,则子类的构造方法应该手动写上super(…)的代参构造,或者子类的空参构造里面调用this(…)的子类代参构造。 this()和super()都必须放在构造方法第一行,所以二者不能共存。 ...
2021-09-13 20:33:35
129
原创 方法重写的注意事项
方法重写的注意事项 父类中的私有方法不能重写 父类静态方法,子类必须通过静态方法重写(实际上,这不是方法重写) ;父类非静态方法,子类也必须通过非静态方法重写 子类重写父类方法时,访问权限必须大于等于父类 ...
2021-09-13 15:05:36
174
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅