![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 80
黑白极客
最怕你一生碌碌无为,还安慰自己平凡可贵!
展开
-
Java使用Selenium实现自动化测试以及全功能爬虫
工作中需要抓取一下某音频网站的音频,我就用了两个小时学习弄了一下,竟然弄出来,这里分享记录一下。springboot项目 + Selenium。原创 2024-03-15 18:59:07 · 1943 阅读 · 0 评论 -
synchoronized 为什么不能锁 int 或者 long 类型
不能用String常量因为字符串常量是在内存中同一个地方。如果两个线程锁一个,可能导致死锁。一个线程多次可能导致重入。也不能用Integer,Long等基础类型。因为当锁定int或者long时, jvm就会调用Interger.valueOf()生成一个新的对象,所以锁不会失效看源码可知,java会把-128到127所对应的包装类都给缓存起来,分别存入了IntegerCache和LongCache而当锁的值大于127之后,就会新建一个对象,在堆上产生,这时,锁就会失效。原创 2024-02-06 14:49:07 · 662 阅读 · 0 评论 -
java 批量获取&修改mp3文件标题、艺术家等内容
java 批量获取&修改mp3文件标题、艺术家等内容最近下了一本有声小说,文件名称是每一集的集数,但标题全是网址,放到手机音乐播放器名称显示的是标题,完全看不出是哪一集,200多集如果一集一集改怕是手得废掉,想用代码解决便baidu了一下,倒是有不少可以获取mp3文件信息的代码,修改的就查到一个,结果那人折腾了半天还是让你用 windows的属性->详细信息 去修改,瞬间无语不知道这老兄写这篇文章干啥,最终google了一下,终于让我找到了方法,给各位分享一下。原创 2024-02-06 14:47:33 · 742 阅读 · 0 评论 -
java成神秘籍第一卷
适合还没有入行学习,有些朋友会跑来问我这行的一些问题,下面算是详细系统的整理了一下啦。全当是记录了。原创 2023-11-27 14:43:51 · 1212 阅读 · 0 评论 -
静态方法里调用注入的mapper显示为null
需求,项目中有一些阈值,比如心率达到100,就报警。数据过来之后要实时拿这些阈值去判断是否需要报警。实现:在项目启动的时候获取一下阈值表里的数据,做成单例。同时如果阈值表里的数据更新,要提供一个刷新的接口刷新一下数据。问题:我在类里声明了类的静态变量,构造方法里调用了mybatis的Mapper层接口获取数据。项目启动的时候报null。原创 2023-02-21 20:45:00 · 3194 阅读 · 1 评论 -
windows快速切换jdk版本号
因为老项目和新项目的需要,在电脑上需要切换jdk1.8和jdk17(其它版本jdk同样可以切换)。网上有修改配置文件的方式,但是感觉比较繁琐,后来找到了通过bat文件和环境变量来快速切换jdk环境的方法。这里记录分享出出来,只需要通过命令行即可完成切换。原创 2023-02-03 23:45:00 · 4817 阅读 · 2 评论 -
Servlet客户端 HTTP请求
以下方法通过HttpServletRequest对象可用String getQueryString()返回包含在路径后的请求 URL 中的查询字符串。String getRemoteAddr() 返回发送请求的客户端的互联网协议(IP)地址。String getRemoteUser()如果用户已经通过用户验证,则返回请求的登录用户,如果该用户未通过身份验证,则返回unll。booolean...原创 2020-11-02 20:11:07 · 1497 阅读 · 1 评论 -
java: 不兼容的类型: 推论变量T具有不兼容的限制范围 等式约束条件: T 下限: java.lang.Object
开发中遇到一个比较生僻的关于泛型T的问题。想要利用泛型封装一下统一返回实体时报错记录学习一下。原创 2023-01-17 14:45:22 · 4358 阅读 · 0 评论 -
java中Semaphore和Exchanger的实例代码和讲解
用于线程之间交换数据,调用Exchanger方法之后,就会等待其它线程调用Exchanger方法来交换数据。等待这段时间是阻塞的。exchang()方法的参数就是要交换的数据,返回值就是交换回来的数据。new semaphore(,)第一个参数permits是允许同时执行的数量,第二个参数是boolean类型,true为公平竞争,类似与公平锁。运行结果如下,因为我们设置了semaphore的permits允许数量为2,所以可以看出两个两个时间相近 进入了方法。原创 2022-11-16 22:30:00 · 1539 阅读 · 0 评论 -
Java中读写锁ReadWriteLock的使用案例和性能对比
使用ReentrantReadWriteLock运行的结果为。读写锁与ReentLock锁的效率对比。ReentrantLock运行结果。我们用如下代码进行一个简单的对比。原创 2022-11-16 16:55:13 · 1902 阅读 · 0 评论 -
Java中ReentrantLock锁的尝试锁,可中断锁,公平锁讲解与实例代码
通过代码实例,展示ReentrantLock的使用和常用属性,展示运行结果,方便理解。原创 2022-11-12 22:30:00 · 1556 阅读 · 0 评论 -
java多线程下LongAdder、CountDownLatch、CyclicBarrier、Phaser 的用法
一文读懂java多线程下常用常考的阻塞方法LongAdder、CountDownLatch、CyclicBarrier、Phaser包含演示代码。原创 2022-11-11 22:15:00 · 1643 阅读 · 0 评论 -
volatile保证线程可见性和禁止指令重排序
保证线程可见性禁止指令重排序单例模式代码演示双重锁锁细化 锁粗化volatile的使用锁定的对象改变CASatomicABA原创 2022-11-04 22:00:00 · 1760 阅读 · 0 评论 -
synchronized原理、流程、异常处理
讲述synchronized原理,和工作流程,为什么是重量级锁就慢,为什么是不公平锁,在那些情况下不要使用锁,遇到异常是否会导致锁意外释放原创 2022-11-02 17:29:05 · 2422 阅读 · 0 评论 -
并发,静态代理以及lambda表达式的推演知识详解
并发,静态代理以及lambda表达式的推演知识详解原创 2022-10-29 21:35:02 · 1636 阅读 · 0 评论 -
java读取txt文件,正则匹配,提取特定开头和结尾的字符串
通过正则匹配txt文本文件中特定开头和结尾的字符串原创 2022-10-26 13:59:58 · 7896 阅读 · 0 评论 -
对接支付宝单笔转账接口
以单笔转账到支付宝为例子,详细演示如何调用支付宝第三方接口实现自己的功能。最后附上已经实现的小例子,可以帮助大家快速理解。如有不当之处,恳请小伙伴批评指正原创 2022-06-17 10:55:48 · 5104 阅读 · 7 评论 -
linux环境搭建,基本命令以及文件属性学习
linux教程入门概述环境搭建开机关机基本目录介绍基本命令目录管理文件属性查看和修改学习基本属性这个课程基于CentOS 7版本学习JAVA全栈开发的linux,不是运维级别的Linux一切皆文件:文件就读 写 ,(权限)学习方式:认识linux基本的命令(重点:Git讲了一些基本的命令(文件操作,目录管理,文件属性,vim编译器,账号管理,磁盘管理…))软件的安装和部署(java,tomcat,docker)Linux(基础,必须要把我讲解的东西全部掌握)入门概述我们为什么要学习原创 2021-03-15 16:46:14 · 1518 阅读 · 1 评论 -
购买服务器及宝塔部署环境指南
服务器购买宝塔部署环境指南为什么程序员都需要一个自己的服务器作为一个程序员,必须要发布自己的网站和项目联系linux自己的远程长裤,远程数据库,远程tomcat…搭建在服务器上练习,Linux进行任意的环境部署操作!Window下开发,你不熟悉Linux…服务器如何购买尽量趁打折,购买,便宜一般新用户注册的时候有优惠.大家可以这个时候购买.学生或24岁以下的可以购买学生机,100多元一年香港服务器可以避免备案,但是尽量不要自己挂vpn,会被封我刚刚买了一个.学习一下lin原创 2021-03-11 17:21:17 · 2837 阅读 · 1 评论 -
多线程同步,通信知识详解
多线程同步,通信知识详解线程同步及同步块同步块lock锁程通信问题生产者和消费者模式(这个模式并不是23种设计模式中的)管程法信号灯法线程池线程同步及同步块结合上篇发布的文章,线程同步就算是讲完了。因为篇幅过长,所以这块被迫分成了两块同步方法由于private关键字来保证数据对象只能被方法所访问。所以我们只需要针对方法提出一套机制synchronized关键字,包括synchronize方法和synchronized块public synchronized void method(int a原创 2021-03-08 16:04:28 · 1506 阅读 · 1 评论 -
多线程问题,求解答
package com.wang.syn1;/** * @author: 王海新 * @Date: 2021/2/28 16:40 * @Description: 修改为安全的买票, * 添加synchronized 锁 在buy方法上。就等于在buy的对象上设置了锁。 * 因为buy里面有延时,所以会让先进来的线程一直调用buy。如果票少,其它的线程就没有机会 *可以将延时放到run方法中,这样其它在buy执行完 */public class SafeBuyTicket {原创 2021-03-04 14:50:22 · 1410 阅读 · 2 评论 -
线程状态,优先级,守护线程基础详解
线程状态,优先级,守护线程基础详解线程状态停止线程线程休眠线程礼让线程强制执行线程状态检测线程的优先级守护线程线程同步线程状态创建状态(new 之后就是创建状态就绪状态(调用start方法之后调用状态(cpu调度之后阻塞状态(当调用sleep,wait,或同步锁时,线程进入阻塞状态,就是代码不往下执行。阻塞状态接触后,重新进入就绪状态,等待cpu的调度。)死亡状态(线程中断或者结束,一旦进入死亡状态,就不能再次启动)停止线程package com.wang.threadDemo2;/原创 2021-03-03 09:37:33 · 1540 阅读 · 1 评论 -
多线程的状态和实现方式,常用方法,中断方法
java多线程线程简介线程实现初识并发问题实现Callable接口静态代理Lambda表达式线程简介多线程:比如我们可以在电脑上一边听音乐,一边浏览网页等等。核心概念程序是静态的,一个程序跑起来之后就会变成一个进程,一个进程里可以有多个线程。main方法是主线程线程就是独立的执行路径在程序运行时,即使自己没有创建线程,后台也会有多个线程,如:主线程,gc线程(垃圾回收机制)main方法为主线程,为系统的入口,用于执行整个程序。在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度。原创 2021-02-26 15:34:34 · 1743 阅读 · 2 评论 -
一个小时Java GUI制作贪吃蛇,源码附上成品
贪吃蛇界面绘制静态小蛇小蛇动起来键盘控制小蛇移动小蛇吃食物长大积分系统回顾与总结成品 链接: https://pan.baidu.com/s/1kZ8VPbwGYVvpJOA35IYCWA 提取码: bmq6帧 ,如果时间片足够小,就是动画,一秒30帧 60帧。连起来就是动画,拆开就是静态图片!键盘监听定时器 Timer界面绘制静态小蛇package com.wang.snake;import javax.swing.*;import java.awt.*;import java.原创 2021-02-21 20:11:06 · 2089 阅读 · 2 评论 -
GUI编程事件监听及Swing详解
GUI编程输入框事件监听画笔鼠标监听窗口监听键盘监听Swing窗口,面板弹窗标签面板按钮列表文本框输入框事件监听输入框 TextField 监听package com.wang.Lesson02;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;/** * @Auther: 王海新 * @Date: 2021/2/9 12:31 * @Descrip原创 2021-02-15 16:14:02 · 1971 阅读 · 1 评论 -
GUI编程AWT,面板,布局管理器笔记
GUI编程GUI编程1.简介2.AWT面板Panel布局管理器事件监听GUI编程告诉大家该怎么学?这是什么它怎么玩该如何去在我们平时运用组件窗口弹窗面板文本框列表框按钮图片监听事件鼠标键盘事件破解工具1.简介Gui的核心技术:Swing AWT因为界面不美观需要jre环境 —逐渐被淘汰为什么我们要学习可以写出自己心中想要的一些小工具工作的时候,也可能需要维护到swing界面,概率极小了解MVC架构,了解监听!2.AWT原创 2021-02-09 12:20:25 · 1532 阅读 · 1 评论 -
java异常基础知识以及面试题详解
java异常1. 什么是异常简单分类2. 异常体系结构ERRORExeception3. Java异常处理机制(重点)4. 处理异常5. 自定义异常6. 总结javaSE总结流程控制面向对象1. 什么是异常实际工作中,遇到的情况不可能是非常完美的。比如:你写了个模块,用户输入不一定符合你的要求,你的程序要访问的文件不存在,或者格式不对。你要读取数据库的数据,数据可能是空的等。我们的程序跑着,内存或者硬盘可能满了。等等软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题。我们叫异常。英文是:Exc原创 2021-02-05 16:56:52 · 1514 阅读 · 1 评论 -
java面向对象(oop)基础知识既面试题详解
面向对象(oop)1.初识面向对象2. 方法回顾和加深类和对象的关系3. 对象的创建分析创建与初始化对象构造器详解创建对象 内存分析小结:4. 面向对象三大特性封装继承多态抽象类接口6. 内部类1.初识面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么…面向过程适合处理一些较为简单的问题面向对象思维物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多原创 2021-02-04 15:58:47 · 2241 阅读 · 2 评论 -
java数组基础及面试题详解
数组数组的概述数组的声明创建内存分析三种初始化数组的四个基本特点数组边界数组的使用多维数组Arrays类冒泡排序稀疏数组数组的概述 数组的定义数组是想同类型数据的有序集合数组描述的是相同类型的若干数据,按照一定的先后次序排列而成。其中,每个数据称作一个数组的元素,每个数组元素可以通过一个下标来访问他们(数组的下标是从0开始的)数组的声明创建首先必须声明数组变量,才能在程序中使用。下面是声明数组变量的语法。dataType[] arrayRefVar;//首选方法dataType原创 2021-01-30 19:46:04 · 2475 阅读 · 2 评论 -
java 方法基础及面试题
java 方法何为方法方法的定义与调用方法的重载命令行传参可变参数递归(重点,面试常考点)何为方法System.out.println(); 那么它是什么呢它就是System类中的一个out对象中的一个println()方法。Java方法是语句的集合,它们在一起执行一个功能方法是解决一类问题的有序步骤组合方法包含与类或对象中方法在程序中被创建,在其它地方被引用设计方法的原则:方法本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保证方法的原子性,就是一个方原创 2021-01-28 16:35:21 · 1503 阅读 · 1 评论 -
java流程控制基础及面试题详解
流程控制1、用户交互Scanner2、顺序结构3、选择结构4、循环结构5、break&continue6、练习1、用户交互Scanner之前我们学的基本语法中,我们并没有实现程序和人的交互。但是java给我们提供了这样一个工具类,-我们可以获取用户的输入。java.util.Scanner 是java5的新特性,我们可以通过Scanner类来获取用户的输入。基本语法:Scanner = s = new Scanner(System.in);通过Scanner类的next()与ne原创 2021-01-27 20:22:17 · 1636 阅读 · 1 评论 -
java基础数据类型,类型转换,变量常量,运算符,包机制,JavaDoc
java基础及常见面试题java运行机制使用IDEA开发java基础知识1,注释2,数据类型 (重要)3,类型转换4,变量常量变量的作用域5,运算符6,包机制,JavaDocjava运行机制编译型:c c++…解释型:java …java偏向于解释型语言,但是也有编译型语言的特性。程序的运行机制: 首先是 编写的java文件 =》 java编译器 =》 字节码文件(.class) =》 类装载器 =》字节码校验 =》解释器 =》操作系统平台使用IDEA开发可以说 目前IDEA是最好的开发原创 2021-01-21 21:30:25 · 1590 阅读 · 0 评论 -
java的特性和优势
java的特性和优势java的特性和优势思考为什么java能够成功?Java的三大版本java的特性和优势简单性:简单易上手,它是对c++的优化,去掉了繁琐的指针操作,和内存分配。面向对象:面向对象编程,贴合人的思维。使得程序员更专注与业务逻辑,接口的编写。java里流传着一句话叫做:万物皆对象可移植性:可移植性是java崛起的最重要原因之一。可以轻松做到一处编写,到处执行。高性能:java随着这几年的发展,其性能也在不断的提高已经接近了c++的高性能分布式:java适合大型的,网络分布式系统原创 2021-01-16 15:41:07 · 3329 阅读 · 1 评论 -
java帝国的诞生
java帝国的诞生一场旷日持久的战争聊到java,不得不说c语言的帝国1972年c语言的诞生贴近硬件,运行极快,效率极高。 (因为它也有汇编语言的特点)操作系统,编译器,数据库,网络系统等但是c语言为程序员按上了两个沉重的枷锁 指针和内存管理虽然指针无比的强大,能够直接去操作list,但是c语言并没有给程序员一个工具,去做一些越界的检查。导致新手程序员经常容易犯错至于内存管理,c语言完全的放任的。自己申请的空间,自己去释放。这对程序是要命的,因为这些错误在编写的时候是看原创 2021-01-14 22:23:42 · 3730 阅读 · 1 评论