- 博客(33)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 IDEA JAVA使用BilibiliClient抓取哔哩哔哩用户动态等数据信息
一直在想办法获取哔哩哔哩的相关对象,对媒体运营数据进行自动管理,于是写了一个BiliClient的JAR包,自己使用,也分享出来,希望可以帮助大家,目前该项目已经上传GITHUB和Maven中央仓库,可以直接使用依赖引入。引入Maven依赖包在IDEA中新建Maven项目,并在POM文件中加入如下依赖 <dependency> <groupId>cn.hll520.linling.client</groupId> .
2021-02-13 20:11:03
1324
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 从零开始开发一个自动抓取教务系统课表等信息并动态显示的安卓课程表APP,原理分析及功能实现完美教程
前言之前写过一篇JAVA使用HttpClient模拟登录正方教务系统,爬取学籍信息和课程表成绩等,超详细登录分析和代码注解的教程,在移植到移动平台时候,发现了如下问题:抓取课表偶尔会不完全,出现全部乱码的情况HttpClient相关包与SDK冲突,导致移植安卓出现问题教务系统偶尔会弹出验证码,导致登陆失败没有现成的课程表界面在经过详细分析和调试后完美解决上述问题后,写下本片文章,供...
2020-04-18 16:43:06
4789
12
原创 Kubebuilder中的kubebuilder-gen标记(注解)
之前使用kubebuilder做k8soperator开发时候有很多注解其实并不太知道其具体内容,云原生社区的中文文档中也没有很好的翻译这部分内容,网络上的博客也没有很多相关的内容,这里给大家分享一下自己翻译的开发时常用到的标记,希望可以帮助到有。1. CRD生成作用于结构体上方,用于配置全局显示和启用1.1 配置CRD范围和别名//+kubebuilder:resource:scope=Cluster,shortName={'',''},categories={'',''}常用参数:sc
2021-10-30 22:05:23
2011
3
原创 [Golearn]Golang学习笔记
本笔记中的全部代码均上传Github仓库>>>>>>点击跳转笔记文件模块初始化指针1. 值传递2. 地址传递关键字特性1. var和:=2. const 和 iota3. func4. defer5. type和struct6. interface7. make和new8. go9.select数据结构1. slice2. mapchannel面向对象1. 结构体struct封装和方法继承接口反射与序列化结构Pair反射TAG序列化Go并发Go mod文件模块初始.
2021-08-06 14:17:36
463
原创 从零开始的JAVA学习笔记(八):注解
注解注解Annotation1. 名词解释2. 内置注解2.1 默认注解2.2 元注解2.3 JDK8注解3. 声明注解3.1 自定义注解3.2 ElementType作用域3.3 RetentionPolicy生命周期4. 注解的使用注解AnnotationAnnotation注解是JDK5之后引入的代码修饰器,类、方法、变量、参数和包等都可以被其标注,Annotation可以通过reflect(反射)获取标注内容同时可以被写入到字节码中1. 名词解释单词词性/中文含义Ann
2021-04-19 09:35:11
233
原创 从零开始的JAVA学习笔记(七):枚举
枚举类Enum若类的对象只要有限确定个,可以将类的所有对象全部声明为常量,即为枚举类JDK5之前通常使用私有化构造器,声明静态常量方式来构建枚举类JDK5之后,使用**enum来声明类枚举类**1. 创建枚举类使用enum来声明枚举类在类中最开始声明需要枚举的对象,无需声明权限以及显示new,使用,分隔对象enum默认继承父类为java.lang.Enumenum WeekEnum { // 最开始声明枚举类对象 用 , 分割 无需声明权限和 构造 MONDAY(1
2021-03-29 12:16:30
164
原创 从零开始的JAVA学习笔记(六):大数与比较器
从零开始的JAVA学习笔记(六):大数与比较器一、比较器接口1. Comparable自然排序2. Comparator自定义排序二、数学和大数相关1. Math数学类2. 大数类型三、System系统相关类一、比较器接口Java对象默认只能对对象地址进行比较(==或!=),若要对对象进行排序则需要对象实现Comparable或Comparator1. Comparable自然排序Comparable接口中的方法compareTo(O)方法用于比较两个对象的大小,A.compareTo(B)中若:
2021-03-29 12:15:05
170
原创 从零开始的JAVA学习笔记(五):字符和日期(String、StringBuffer、StringBuilder和Date、新时间AP/LocalDate
字符和日期一、字符串相关1. String(不可变性)1.1 String实例化1.1.1 字面量赋值1.1.2 构造器实例化1.2 不可变性1.3 常用方法1.3.1 基本方法1.3.2 比较匹配1.3.3 截取替换生成1.4 与数组的转换1.4.1 char[]1.4.2 byte2. StringBuffer/Builder(可变)2.1 常用方法二、日期时间相关1. Date1.1 util.Date1.2 sql.Date1.3 SimpleDateFormat(格式化)1.3.1 格式字符串1.
2021-03-22 11:57:16
278
原创 从零开始的JAVA学习笔记(四):多线程与线程池
多线程与线程池一、线程1. JAVA线程1.1 默认线程1.2 多线程内存1.3 JAVA线程状态1.4 线程生命周期2. 并行并发二、创建多线程1. Thread子类2. 实现Runnable接口3. 实现Callable接口(JDK5)3.1 Callable3.2 Future3.3 创建步骤4. 线程池4.1 ExecutorService4.2 Executors4.3 创建步骤三、线程方法1. Thread常用方法2. 线程优先级3. sleep与wait区别四、线程安全T1. synchron
2021-03-12 09:22:44
166
原创 从零开始的JAVA学习笔记(三):Exception异常处理
异常处理异常处理1. 异常处理1.1 捕获方式1.2 抛出方式2. 异常抛出2.1 自定义异常异常处理广义的异常分为Error和ExceptionError是JVM无法处理,主要是StackOverflowError栈溢出和OutOfMemoryError堆溢出Exception是狭义上的异常,是JVM可以处理的,可以使用try-cahche捕获,进行处理,分为运行时异常和编译时异常编译时异常,在javac编译时检出运行时异常,在java运行时才可能发生JAVA异常抓抛模型:
2021-03-12 09:18:18
150
原创 从零开始的JAVA学习笔记(二):面向对象
面向对象一、基本特征1. 类的结构2.三大特征3.主要关键字4.权限修饰符5.内存分析二、类和对象1. 类的成员1.1 属性(field)1.1.1 成员变量和局部变量1.1.2 属性赋值先后顺序1.2 方法(method)1.2.N1 可变形参(JDK5)1.2.1 方法重载(overload)1.2.3 行参和实参1.3 构造器(construct)1.4 代码块(codeBlock)1.5 内部类(innerClass)2. 类的实例化3. 类和对象的使用4. 匿名对象三、功能特性1. 封装性2. 继
2021-03-03 22:39:01
150
2
原创 从零开始的JAVA学习笔记(一):JAVA基本数据类型、运算和基本程序结构
从零开始的JAVA学习笔记(一):JAVA基本数据类型、运算和基本程序结构一.基本数据1.八大基本数据类型1.1 整形1.2 浮点型1.3 字符类型1.4 boolean类型2. 类型转换2.1 自动类型转换2.2 强制类型转换3. String字符串(不可变引用)4. 常用进制5. 二进制原码、补码、反码二、基础运算1. 算术运算符++a和a++2. 赋值运算符3. 比较运算符4. 逻辑运算符5. 三元运算符6. 位运算符6.1 &按位与6.2 |按位或6.3 ^异或6.4 ~取反6.5 <
2021-02-25 21:31:29
237
原创 JAVA极简回形数组 时间复杂度n
使用上下左右四个指针来输出回文数,时间复杂度为线性,可输出任意长度,任意开头和任意步长回形数组 public static void main(String[] args) { int n=10; // 需要几行就是几 int number=1; // 从几开始就是几 int[][] answer=new int[n][n]; int left=0; int right=n-1;
2021-02-21 10:37:46
153
原创 MyBatis-Plus 代码自动生成器 MybatisPlusCodeGeneration
前言因为官网给出的Generator 命名规范和用法非常让人头疼,这里对官网自动生成器的代码进行简单封装和命名规范,并添加了部分注释,可以直接运行,其主要功能:只需要数据库URL和库名,时区自动自动拼接所有可配置项作为常量,直接配置即可,可留空可以自定义字段填充、乐观锁、逻辑删除支持去掉表前缀自定义个部分包名依赖引入引入mybatis-plus-generator代码生成器以及freemarker模板 <!-- code 生成器 --> <depen
2021-01-31 22:39:24
695
原创 在VirtualBox中最小化部署CentOS,设置固定IP并可以访问外网开启SSH连接
使用CentOS7-minmal进行Linux部署使用CentOS7-minmal.iso进行在virtualBox上最小化安装1、部署CentOS7在VirtualBox中新建虚拟机,输入名称为CentOS会自动选择类型(read),分配内存和大小创建完毕后在设置中配置处理器数量并启用两张网卡网卡一:仅主机网络(host-only)用于通过主机网络连接互联网网卡二:网络地址转换器(NAT)用于外部通信在存储控制器中挂载下载的启动镜像,用于第一次启动安装系统启动后选择第一个,insta
2020-11-01 17:23:05
363
原创 Swing中EDT和SwingUtilities以及SwingWorker的简单深入
Swing中的EDT事件派发线程当Swing程序被运行时会触发三个线程的启动:main线程,即程序的入口主线程Toolkit,仅用于捕捉系统的各种状态和事件,包括鼠标移动、点击、键盘等,不会执行其他任何操作EventDispatchThread线程,即EDT线程,负责接收 Toolkit捕获的事件添加监视器,以及绘制界面EDT线程底层是EventQueue,其本质上是一个队列,将接收的各种事件和绘图,放置在一个队列中按先后顺序依次执行,因此如果某一个线程操作耗时过长会导致其他线程长时间等待,并
2020-09-11 10:33:31
831
1
原创 java实现简易的排序二叉树并输出数组
/** * @author lpc * @create 2020-09-02-10:18 */public class Tree<T extends Comparable<T>>{ private Node root;//根节点 private int size; public Tree(){} /* 通过数组构造 */ public Tree(T[] arrays){ for(T t:arrays){
2020-09-02 11:05:47
430
原创 在JAVA中使用链表Node实现List同样功能类MyList
/** * @author lpc * @create 2020-09-01-20:14 */public class MyList<T> { private static int size;//长度 private Node root=new Node(null);//根节点 /** * 集合是否为空 * @return Boolean */ public boolean isEmpty(){ retu
2020-09-01 22:16:29
575
原创 [超详细]使用IDEA新建Mevan构建SSM项目并使用MyBatis分页插件
目录一、先构建好SpringMVC项目并可以打开欢迎页面1.1、从Maven原型创建Web项目1.2、修改创建项目结构1.3、添加Maven依赖1.4、配置SpringMVC1.5、配置web.xml1.6 配置Tomcat服务器构建项目二、添加Spring和Mybatis完成SSM项目的构建2.1添加Mybatis配置文件2.2 添加JDBC配置文件2.3添加Spring配置文件2.4 在Web配置文件中加入Spring 的反转控制2.5 新建立对象、mapper(dao)、Service2.5.1 `P
2020-08-13 19:10:39
358
原创 简单理解SpringMVC的三层结构顺序MCV以及ModelAndView的使用
MVC三层结构 (M->C->V)requset–>中心总控制器(DispatcherServlet)中心控制器接收到用户请求后:将请求转发到HandlerMapping (方法映射/方法索引)I. M 即HandlerMapping(方法映射)找到处理请求对应方法controller的路径根据请求的地址遍历注解 找到controller路径,返回给总控制器总控制器根据路径,将请求参数转发给对应的HandlerAdapter(内容提供者)中对应的controller(
2020-07-28 19:02:30
1001
原创 JAVA新的时间相关方法——LocalDate、LocalTime、LocalDateTime的应用
注意!Local*在JDK8以上有效LocalDate、LocalTime、LocalDateTime作为JDK8新添加的方法,在处理本地日期、本地时间以及本地日期时间等问题上更加友好,是一个真正的类似于现实世界的日历对象,相较于Date、Calendar于公历相对,没有偏移量:星期一就是星期一,1月就是1,2020年就是2020并且具有不可变性,在进行设置或者参照对象,原对象依然不变。以下*代指Date、Time、DateTime一、构造方法获取当前时间或者设置一个时间:Local.
2020-07-10 19:18:17
442
原创 抓取2020年最新版正方教务系统——在Android执行JS脚本实现AES加密
在之前的文章从零开始开发一个自动抓取教务系统课表等信息并动态显示的安卓课程表APP,原理分析及功能实现完美教程中,详细介绍了使用HttpClient抓取教务系统的方法,但是本次正方教务系统又㕛叒叕升级了,改用了AES加密,那本次就来分析并解决这个问题。一、问题复现在今天改进WTUCloud项目时,偶然发现一直无法登录教务系统,并提示200错误,尝试无数次后,依然没有办法,最终去官网查看,发现首...
2020-05-02 22:24:15
1062
原创 Jetpack学习笔记(五):使用Navigation在Fragment间传递参数
在之前的笔记中,一直没有讲到Fragment间传递参数的问题,大部分时候直接使用ViewModel或者构造函数函数就行传参,当然网络上也有部分使用调用Activit中的方法来进行参数共享的歪道,但显而易见这些方法既不安全也增加了程序的强耦合,因此本编笔记使用了安卓官方提供的方法。1、初始化导航控制器NavController controller=Navigation.findNavCon...
2020-05-02 13:04:20
2787
原创 Jetpack学习笔记(五):BottomNavigation和属性动画
结合之前几篇笔记的内容,这里从空白开始实现系统自带的BottomNavigation模板和一些简单的属性动画实现BottomNavigation新建若干个Fragment在RES中新建menu在Menu中添加Menu-item,并且为每个item添加文本和图标注意这里每个itme的ID要和Fragment的ID相同,否则无法导航在RES新建navigation,并将Fra...
2020-04-21 22:01:10
480
原创 Jetpack学习笔记(四):Navigation切换页面、动画效果以及简单的手势操作
前言之前几篇笔记完成了Room创建数据库,到数据库升级,以及RecyclerView的动态显示,这一次来使用Naviation进行页面切换,可视化的方式定义页面,并且添加部分动画效果和手势;笔记目录前言Navigation切换页面1、Fragment创建Fragment配置Fragment2、Navigation3、自定义动画4、在Activy中布局5、调用Navigation进行切换设置手势...
2020-04-21 19:00:52
2665
原创 Jetpack学习笔记(三):RecyclerView配合LiveData动态显示数据库内容
前言之前使用ListView和数据观察者来显示数据,但是这样会占用过多的资源,现在引入了RecyclerView这一组件,配合ViewModel动态的显示数据,结构上和之前非常相似,4个步骤:创建RecyclerView和显示单元创建适配器Adapter在Activity中使用为LiveData创建观察者创建创建RecyclerView和显示单元1、在Activity中添加Rec...
2020-04-21 13:02:28
6938
2
原创 Jetpack学习笔记(二):数据库升级——增加、删除字段并迁移数据
前言之前做过一个安卓的课程表APP,当时使用time和week来存放课程节数和课程周数,其结构是int-int类型的一个字符串,因此都每次都需要将字符串分割并转换为int类型来处理,于是在版本更新中我优化了数据结构,将原本的String week和String time分别分解成了int wMin;int wMax以及int tMin; int tMax;但由于当时没用学习数据库的升级,我直接删...
2020-04-20 22:59:41
537
原创 Jetpack学习笔记(一):使用Room和AsyncTask来处理数据库
1、使用Room创建数据库Jetpack下使用Room创建数据库,相较于之前使用DBhelper创建,更像是平常创建一个对象一样简单,使用标记让大部分代码可以有IDE自动完成2、创建数据库存储对象相当于DBhelper中创建一个表,将之前的数据库语句具象成一个对象,就如同创建普通对象一样,只需要在对象前加一个标记 @Entity (实体),该对象会自动被识别,对象中的每个属性相当于数据库中...
2020-04-20 19:33:48
1798
原创 在安卓9.0以上版本使用HttpClient
No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/……More than one file was found with OS independent path 'META-INF/DEPENDENCI...
2020-04-15 20:06:40
2887
原创 JAVA使用HttpClient模拟登录正方教务系统,爬取学籍信息和课程表成绩等,超详细登录分析和代码注解
2020年最新模拟登录正方教务系统爬取课程表和信息,超详细分析登录过程,并附代码注解
2020-04-10 19:12:56
3319
6
原创 JAVA HttpClient学习笔记(二):POST表单参数发送,配置请求信息
利用HttpPost创建httpPost对象;HttpPost httpPost=new HttpPost();为了防止网络断开等情况,配置请求信息,设置最长时间上限 //配置请求信息 RequestConfig config=RequestConfig.custom().setConnectTimeout(1000) //创建链接的最长时间 ms ...
2020-04-09 17:07:39
2322
原创 JAVA HttpClient学习笔记(一):GET方法模拟网页登录抓取网页数据
目前正在学习安卓,并开发了一个类似于超级课程表和今日校园的APP,但是一直卡壳在抓取课程表这一步,遍历了很多资料任然无法解决,下定决心系统信息HttpClient,先写一个helloWord,一直持续记录学习!一、使用org.apache.HttpClient模拟登录网页,并抓取数据,需要用到HttpClient包import org.apache.http.HttpEntity;...
2020-04-09 14:05:28
1159
原创 基于java的简单Excel表格处理
基于java的简单Excel信息写入菜单实现方法需要jxl库否是是否选择取消是否错误主程序菜单创建读取添加查询删除修改初始化写入确认删除选列确认修改退出exit菜单import java.util.Scanner;public class Menu { public Menu()throws Exception { while(true) { System.out.print...
2019-11-14 19:08:19
392
适配Jakarta的FileUpload
2020-07-14
适用于tomecat10的Fileupload
2020-07-14
模拟登录正方教务系统源码和相关依赖包
2020-04-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人