自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 资源 (6)
  • 收藏
  • 关注

原创 远程发送剪切板,屏幕截图

共享剪切板,远程屏幕截图

2023-10-10 21:26:26 203

原创 共享剪切板小工具

共享剪切板小工具,不同设备之间贡献剪切板

2023-09-22 16:48:11 333

原创 python的request库使用

python的request库使用get方法:发送请求获取相应数据response.content.decode() 对获取数据进行解码import requests# 发送请求获取相应数据response = requests.get("http://www.baidu.com")print(response) # 输出请求结果,<Response [200]># 获取返回数据print(response.encoding) # 返回默认编码格式 ISO-8859-1

2022-08-15 14:40:44 324

原创 MySQL基本操作

1、SQL分类DDL(数据定义语言):create 、drop、alter、rename、truncate(清空表)DML(数据操作语言) :insert、delete、update、selectDCL(数据控制语言):commit、rollback、savepoint、grant(分配权限)、revoke(回收权限)......

2022-08-15 14:38:06 128

原创 linux安装vsftpd和配置

linux FTP 安装

2022-07-26 09:35:20 1488 1

原创 MySQL学习笔记

语法注意点当表名与字符串重名时候可以 `` 来说明 SELECT * FROM `order`命名别名时候使用空格或者 AS 间隔,内容有空格时候“” 包裹SELECT id st_id, name AS st_id, first_name "first name" FROM studentMySQL比较运算符= 、<=>、<>(不等于)普通=,可比较字符串、数字等。出现字符串与数字比较时候将字符串转换为数字(不能成功转换为数字的转换成0)比

2022-05-20 17:11:34 234 1

原创 虎牙自动发送弹幕

介绍虎牙直播自动发送弹幕,使用selenium操作网页自动发送弹幕,因为虎牙限制,10秒发送一条。温馨提示:需要电脑上安装Chrome浏览器运行截图使用方法:代码启动(python3环境):在web.py启动服务双击template下的index.html在浏览器中启动点击初始化检查电脑环境,如果环境没有问题 登录虎牙按钮变为可用点击登录虎牙,弹出虎牙官网扫码登录页面,使用手机虎牙app扫码登录(30秒内,页面会自动关闭)点击检查登录状态,发送弹幕前需要检查登录状态,否则不能发

2022-04-10 22:04:53 10755 4

原创 2022蓝桥杯Java研究生组赛题

也可在https://download.csdn.net/download/weixin_43960044/85099211地址下载。侵权删试题 A: 排列字母本题总分:5 分【问题描述】小蓝要把一个字符串中的字母按其在字母表中的顺序排列。例如,LANQIAO 排列后为 AAILNOQ。又如,GOODGOODSTUDYDAYDAYUP 排列后为AADDDDDGGOOOOPSTUUYYY。请问对于以下字符串,排列之后字符串是什么?WHERETHEREISAWILLTHEREISAWAY【

2022-04-09 14:53:13 4613 2

原创 Redis基本使用,集成springboot

编写配置文件,设置存入数据格式和设置序列化、注入连接工厂在使用时直接使用@AutoWired 注入类存入使用set() 方法,取出使用get() 方法配置文件@Configurationpublic class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { .

2022-04-08 14:17:32 1158 2

原创 SpringBoot注解开发

步骤:编写注解类设置拦截器实现HandlerInterceptor接口,可重写preHandle、afterCompletion方法,在拦截前(后)处理事务。在WebMvc配置类中添加拦截器注解类:import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotati

2022-04-07 13:51:32 496

原创 RabbitMQ配合springboot基本使用

RabbitMQ几种模式一、普通模式(一个发送一个接收)配置类@Configurationpublic class RabbitMQConfigFanout { public static final String TEST_QUEUE = "test_queue"; /** * Bean注解放到方法上,1、自动执行当前方法,将方法返回值放到ioc容器中 * 2、方法中有参数会在ioc容器中寻找同类型的参数注入到方法中 * <p>

2022-04-07 13:42:09 2109

原创 Markdown 学习笔记

Markdown 学习笔记标题<!-- 单行方式 --># head1## head2<!-- 多行方式 -->我是一级标题 ===========我是二级标题-----------段落格式段落换行需要两个以上空格加空格这里需要一个换行 文本斜体文本(* 或 _)粗体文本(** 或 __)斜粗体文本 (*** 或 ___)<!-- 例子 -->**粗体** *斜体****斜粗体***分割线(三个以上的型

2022-01-21 21:42:11 180

原创 mysql 基本操作命令

1、登录操作mysql -uroot -p-u :指定用户名-p:指定密码-h:指定IP地址-P:指定端口号例子:mysql -uroot -h 127.0.0.1 -P3306 -p2、查看版本在命令行下:mysql -Vmysql --version在MySQL内部(已经登录mysql)select version();3、查看字符集show variables like 'character_%'; # 查看字符串集show variables like 'co

2022-01-18 15:31:47 1907

原创 线程状态及线程组

一、线程的几种状态NEW:新创建的线程,还未运行RUNABLE:正在运行BLOCKED:受阻塞并等待某个监视器锁WAITING:无限的等待,知道其他线程执行了某个操作(wait()方法)TIME_WAITING:等待指定时间后执行线程TERMINATED:线程已经退出,结束运行二、线程组可以把线程归属到某一个线程组中。ThreadGroup group = new ThreadGroup(“groupA”); Thread t = new Thread(group,“A”);线程组

2021-11-10 16:06:04 275

原创 多线程下的单例模式

多线程下的单例模式一、多线程下如何实现单例模式使用DCL双检查锁机制(注意要使用volatile强制从公共内存中存取,不然多线程并发时可能会在线程的工作空间中读出)使用使用静态内置类方式利用静态代码块在使用类时执行的特性来实现多线程下的单例模式代码:package com.chapter06;/* * 单例模式演示, * 使用DCl双检查锁机制 * 一定要使用volatile 强制从公用内中读取数据 * */class MyObject01 { // 加上volatil

2021-11-09 22:18:58 487

原创 定时器Timer使用

一、定时器Timer基本使用Timer timer = new Timer(); timer.schedule(TimerTask, Date);,任务需要用TimerTask封装,重写TimerTask中的run方法Timer timer = new Timer(boolean);,传值true表示Timer线程为守护线程,主线程结束跟随结束。默认值为false,主线程结束任务执行完毕仍未结束线程。当前时间在Date之后则立即执行,在Date之前则等到指定时间后执行同一Timer调用的不同定时任

2021-11-06 11:26:24 5527

原创 ReentrantReadWriteLock读写锁

ReentrantReadWriteLock读写锁通过lock.readLock().lock 调用读锁,lock.writeLock().lock调用写锁读锁之间共享锁写锁之间互斥读写锁之间互斥例子:import java.util.concurrent.locks.ReentrantReadWriteLock;class MyService06 { private ReentrantReadWriteLock lock = new ReentrantReadWriteLoc

2021-11-05 22:20:29 87

原创 ReentrantLock中一些方法介绍使用

Lock中一些方法介绍使用一、.getHoldCount(); .getQueueLength();.getWaitQueueLength(condition);lock.getHoldCount(); 返回当前保持此锁的线程个数,即调用lock() 方法的次数lock.getQueueLength(); 返回正在等待获取此锁的线程个数,例如:有5个线程使用此锁,其中一个线程调用了await() 其他线程都在等待,则该方法返回4.lock.getWaitQueueLength(condition)

2021-11-05 22:04:21 377

原创 java中的二进制运算

java中的二进制运算总结java中的二进制运算一、与(&)两个都为1得1,与且类似1&1=1;1&0=0;0&1=0;0&0=0注意特殊用法:与0相与 可清零与1相与 可保留原值。例如从0101 0100中取后四位,0101 0100 & 0000 1111 = 0000 0100二、或(|)有一个1则得1,即是或条件1|1=1;1|0=1;0|1=1;0|0=0注意特殊用法:与0或,可保留原值将对应位置 置1,例如将

2021-11-04 16:38:24 2670

原创 Lock基本使用,Condition线程分组等待唤醒,生产者消费者问题

Lock基本使用Lock lock = new ReentrantLock(); 创建一个lock对象,在lock.lock() 与 lock.unLock() 之间的部分互斥执行,类似于synchronize。例一Condition conditionA = lock.newCondition(); 创建一个Condition对象,可以使用await() 方法和signal()方法,可使用一个condition对象创建多个Condition对象,达到线程组的等待和唤醒操作。在调用lock.await

2021-11-03 16:31:00 331

原创 ThreadLocal使用-隔离线程之间的值,不同线程可存取不同的值

ThreadLocal使用实现线程之间变量隔离,不同线程存取不同的值。使用方法 例1默认情况下初始值为null 可以通过继承类重写initialValue方法进行修改初始值例1:import java.util.Date;class ThreadLocalExt extends ThreadLocal { @Override protected Object initialValue() { return "设置初始化值"; }}class T

2021-11-01 22:40:23 273

原创 Thread.join() 方法的使用

Thread.join() 方法的使用join作用:等待线程执行完毕,例子如下:例子1join时候被interrupt打断,会报异常InterruptException,例如B线程调用A线程同时使用了A.join()方法,A未执行完毕B被interrupt,则会抛出interrupt异常join(long):只等待long时间,与sleep类似 指定时间线程未执行完主线程会继续向下执行。 如果在long时间内A线程执行完且只花费 t 时间(t<long),则线程执行完毕,long时间还没到 主

2021-11-01 22:11:54 397

原创 线程之间通信:管道 (Piped)

线程之间通信:管道 (Piped)管道中输入、输出字节流 使用PipedOutputStream(向管道中输出)、PipedInputStream(管道中数据输入)管道中输入、输出字符流,使用PipedReader(从管道中读取)、PipedWriter(向管道中写入)管道字节流输入输出:package com.chapter03;import java.io.*;class WriteData { public void write(PipedOutputStream out)

2021-11-01 16:50:08 833

原创 多线程消费者和生产者问题

多线程消费者和生产者问题一生产者一消费者问题:多线程时候会发生假死,所有线程都要在wait状态,因为生产者的 notify 有可能唤醒的是 生产者的wait,同理消费者的 notify 有可能唤醒的是消费者的 wait此时 生产者没有被唤醒的程序 消费者也没有被唤醒的程序代码:package com.chapter03;// 多线程时候会发生假死,所有线程都要在wait状态,// 因为生产者的 notify 有可能唤醒的是 生产者的wait,同理消费者的 notify 有可能唤醒的是消

2021-11-01 15:51:16 71

原创 wait 执行后自动释放锁,notify执行不释放锁

wait 执行后自动释放锁当wait在锁里面时,执行到wait之后 锁会被释放当notify在锁里面时,执行到notify 时wait被唤醒,但是线程不释放锁测试代码如下:package com.chapter03;class Service02 { public void testMethod(Object lock) { try { synchronized (lock) { System.out.print

2021-10-30 17:46:04 1540

原创 volatile关键字(强制从公共内存中读取变量)

volatile关键字对比如下代码,如果不加volatile关键字则可能会导致即使执行了修改操作线程不能停止。因为main方法修改的是公共内存中的变量,线程内读取的是线程工作内存中的变量class Service9 extends Thread { // 不加volatile则线程不会停止, // volatile 强制从公共内存中读取变量,如果不加volatile则优先从线程工作内存中读取变量, // 可能导致公共内存和线程工作内变量不一致 volatile priva

2021-10-25 21:58:58 441

原创 synchronize 对 String 加锁,注意常量池的作用

synchronize 对 String 加锁String 直接赋值 是存储在JVM的常量池中(常量池在方法区中,JDK1.6及之前,方法区在JVM中,之后方法区在内存中),当字符串相同时直接在常量池中取,加锁字符串相同可能会导致加锁对象为同一个。一般都使用新建对象给synchronize 用于上锁(new Object() )对静态方法上锁即是对拥有该方法的 class 上锁...

2021-10-23 13:25:04 737

原创 LeetCode41缺失的第一个正数,空间复杂度为1的算法,将数组本身当做哈希空间

空间复杂度为1的算法,将数组本身当做哈希空间将出现过的正数位置标记出来两种方法:1、用正负标记。2、将合法数字交换到对应的位置,不对应的即为第一个缺失的数字。class Solution41 { // 1、将为负数的位置变为正数,可以用n+1 // 2、nums[i]<=n 情况下 将num[i]-1位置数字变为负数,标记位该位置数字已经出现过了 // 3、遍历数组 第一个非负数字位置+1 即是未出现过的最小正数 public int firstMissingP

2021-10-22 21:45:13 163

原创 java线程安全

java线程安全方法内的变量线程安全(方法内部变量具有私有性)实例变量(类下的直接定义的变量)非线程安全(可通过对操作方法加锁解决)class MyEntity6 { private int num = 10; // 加锁解决线程不安全问题 synchronized public void add(int addNum) { this.num += addNum; try { Thread.sleep(2000);

2021-10-20 11:31:09 66

原创 线程优先级和守护线程

yield方法,线程放弃CPU资源放弃当前CPU资源,但是不一定什么时候获得,有可能刚放弃又获得了用法:Thread.yield();线程优先级设置线程优先级 Thread.setPriority(int newPriority),获取线程优先级 Thread.getPriority()线程优先级取值1-10,MIN_PRIORITY=1;MAX_PRIORITY=10;NORM_PRIORITY=5线程优先级具有继承特性,A调B 则B与A具有同样的优先级线程优先级特性规则性:优先

2021-10-17 20:17:52 51

原创 java Thread 暂停(suspend)和继续(resume)方法

java Thread 暂停(suspend)和继续(resume)方法目前这两个方法已经弃用可以实现暂停和继续缺点:suspend和resume方法都是独占资源,使用不当容易造成资源浪费打印时候 println方法是有锁的,使用suspend可能会停留在锁内一直占用锁,不能打印接下来的内容。可查看println方法 public void println(String x) { synchronized (this) { print(x);

2021-10-17 18:23:03 1732

原创 java线程中断方式,stop(弃用,会产生不可预料的错误)、interrupt(标记,并非真正是中断)

java线程中断方式java线程停止的几种情况:1、Thread 运行完自然结束2、Thread.stop() 不推荐使用,会产生不可预料的错误3、Thread.interrupt() 实际上是打个标记,并不是真正的停止线程。Thread.interrupt() 之后 Thread.isInterrupted() 变为false这样可以进行相应的操作达到线程停止的目的可以通过抛出异常的方式执行跳过run方法里面程序,仅仅通过if判断 if后面的语句还会执行总结: 通过调用interrupt方法

2021-10-17 17:51:47 561

原创 java多线程 多线程之间共享数据(不安全),run方法上加锁可解决

学习目标:java多线程学习学习内容:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:学习产出:实现多线程编程方式有两种:继承Thread类、实现Runable接口区别:java是单继承的,继承Thread类后就不能再次被继承了,可以通过实现Runable之后再继承来达到多继承的目的。联系:Thread 实现 Runable 接口线程之间共享数据(新建使用同一个类,有可能造成线程不安全

2021-10-17 16:03:46 700

原创 java递归 对应LeetCode39 40题目

java递归 对应LeetCode39 40题目排序 当数组之和大于target时候 跳出递归中的判断条件(跳出递归的条件)是否取当前数字(注意可以重复即取了之后 index不变,不取当前数字可以直接递归调用 index+1)看代码:class Solution { List<List<Integer>> res = new LinkedList<>(); public List<List<Integer>> co

2021-10-17 14:24:22 47

原创 java中this 和 super 的用法区别

thisthis是指向自身的一个对象,代表对象本身。三种用法:普通的直接引用,指向当前对象本身形参与成员变量重名,用this来指向成员变量class Person { private int age = 10; public Person(){ System.out.println("初始化年龄:"+age);} public int GetAge(int age){ this.age = age; return this.ag

2021-10-16 10:54:10 145

原创 只出现一次的数字

方法一:记录所有数字出现次数 使用Map方法二:移位,二进制 可被3整除的位置只出现一次数字在该为0 反之为1class Solution137 { public int singleNumber(int[] nums) { Map<Integer, Integer> map = new HashMap<>(); for (int num : nums) { int i = map.getOrDefault(num.

2021-10-11 10:12:58 47

原创 全排列算法

全排列算法(递归方式): public void fullArrangement(List<String> list, int index, int[] nums) { for (int i = index; i < nums.length; i++) { swapArray(nums, index, i); fullArrangement(list, index + 1, nums); swapA

2021-10-11 10:09:06 51

原创 selenium学习笔记--java

selenium学习笔记–java配置加载驱动。打开网址 driver.get(url) 、driver.navigate().to(url);ChromeOptions options = new ChromeOptions();WebDriver driver = new ChromeDriver(options);driver.get("https://music.163.com/");driver.navigate().to(driver.getCurrentUrl());dr

2021-09-19 11:51:08 183

原创 积水问题几种解决方案

积水问题几种解决方案暴力法,按列计算,计算某列左侧最大高度和右侧最大高度,判断该列是否可以积水。按行计算,注意循环条件是最大高度,计算某行若有大于等于行高的则开始计算 将区域积水量加入总数,并且将区域积水量置零。动态规划:根据按列计算得知每次都要计算左侧、右侧最大高度,可将其存入数组中,不需要每次遍历寻找最大值。优化动态规划:双指针法,分别记录左侧右侧最大值和指针指向,如果左侧最大值较小则判断height[left] 处积水量,否则判断右侧height[right]积水量递减栈:保持栈内递减,栈内

2021-09-15 11:05:13 1059

原创 Linux监测后台程序运行,程序挂掉自动重启

Linux监测后台程序运行,程序挂掉自动重启如果程序存在则不重启,发现程序不存在则立即重启,监测后台程序health-0.0.1-SNAPSHOT是否存在run=$(ps -ef |grep "health-0.0.1-SNAPSHOT" |grep -v "grep")if [ "$run" ] ; then输出日志echo `date +%Y-%m-%d_%d-%H-%M-%S` " ======== The service is alive!"重启程序,控制台日志输出以时间命名no

2021-08-30 11:16:19 1805

第十三届蓝桥杯大赛软件赛决赛_JG java 研究生组

第十三届蓝桥杯大赛软件赛决赛_JG java 研究生组

2022-06-20

2020年Java研究生组第十三届蓝桥杯大赛软件赛省赛_JG

2020年Java研究生组第十三届蓝桥杯大赛软件赛省赛_JG 试题 A: 排列字母 试题 B: 灭鼠先锋 试题 **C:** 质因数个数 试题 **D:** 数位排序 试题 **E:** 蜂巢 试题 **F:** 爬树的甲壳虫 试题 **G:** 重新排序 试题 **H:** 技能升级 试题 **I:** 最优清零方案 试题 **J:** 推导部分和

2022-04-09

python大作业五子棋.zip

python大作业分享,网上找的资源,大家可以参考一下,更多python大作业资源下载联系我

2020-06-18

pythonweb大作业

pythonweb大作业,实现增删改查。分享pythonweb大作业,云认证平台登录,使用的是mongodb数据库。可查看运行教程 链接:https://blog.csdn.net/weixin_43960044/article/details/101012182

2019-09-19

内网穿透工具.zip

许多初学计算机的同学做了一个自己web都想发布出来让大家体验一下自己的web,但是买服务器对于一个没有任何收入的学生来说不经常用又太奢侈,我也寻找了很多工具,终于被我找到一个工具在此给大家分向一下。使用教程: https://blog.csdn.net/weixin_43960044/article/details/100997691

2019-09-19

jsp+servlet+mysql留言web程序大作业分享

jsp+servlet+mysql留言web程序大作业分享,参考博文:https://blog.csdn.net/weixin_43960044/article/details/88794808

2019-03-25

空空如也

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

TA关注的人

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