
java实战
文章平均质量分 76
凌晨里的无聊人
这个作者很懒,什么都没留下…
展开
-
分布式锁第二篇---Redisson的用法
Redisson的实现原理转载 2022-08-22 10:00:00 · 1094 阅读 · 1 评论 -
关于秒杀的细节,了解多少
关于秒杀的细节转载 2022-08-20 23:00:13 · 569 阅读 · 0 评论 -
Spring Boot 实现接口幂等性的 4 种方案
springboot实现幂等性转载 2022-08-15 10:00:00 · 195 阅读 · 1 评论 -
springboot+RabbitMQ实现消息延迟推送(附带rabbitMQ安装教程)
springboot实先rabbitmq消息延迟发送,附带阿里云安装rabbitmq的教程原创 2022-07-17 19:24:16 · 1782 阅读 · 2 评论 -
超时放弃订单怎么实现(几种方案)
关于订单过期自动取消的几种方案转载 2022-07-11 17:14:18 · 1748 阅读 · 2 评论 -
多线程杀手锏---countDownLatch&&CyclicBarrier
多线程countdownLatch的理解与应用原创 2022-06-07 21:43:59 · 435 阅读 · 0 评论 -
在线批量身份证识别系统
一套前后端 Springboot+Thymeleaf 的批量身份证识别系统原创 2022-06-02 17:17:39 · 1162 阅读 · 0 评论 -
毕业设计---用算法实现OCR文字识别(基于java实现的文字识别技术)
文末附源码:识别效果如下图:由于是自己实现算法所以识别率不算太高,但是这个相比较一般的模型,识别这么多还是可以的,如果需要做的只是识别率比较高,不关注谁去实现的算法,可以采用第三方的API 百度智能云就很不错,使用方式和前面的百度AI实现人脸识别方式一样,可以参考前面发表的文章。本文参考如下:参考原文链接:https://blog.csdn.net/white__cat/article/details/38461449对于这个里面其实有些类是用不到的,我经过本地运行以后,现在只要你把项目导入,原创 2022-05-21 17:37:19 · 935 阅读 · 0 评论 -
将Javaweb类型基于servlet+mysql jdbc连接的方式改造为Hibernate工程
继上一次我们提到,建立一个基于Javaweb的前后端交互工程,上文上文是基于mysql的jdbc连接,本文我们将对该工程进行改造,改造成为基于Hibernate的数据库连接,然后实现增删改查实现前后端交互。学习本文之前需要先学习上一篇文章,怎么在idea下创建Hibernate工程建立Hibernate工程然后就是本篇文章,改造以后的工程目录是这样的。然后源码放在后台,读者可自行下载,https://mp.csdn.net/mp_download/manage/download/UpDeta原创 2021-12-03 17:01:37 · 308 阅读 · 0 评论 -
关于在IDEA中使用Hibernate框架,以及出现的错误总结
在IDEA中初次创建是没有Hibernate框架的,所以需要引入Hibernate插件,在setting–>plugins中搜索此插件安装即可;安装好插件以后具体的配置信息可以看这篇文章:https://www.cnblogs.com/solverpeng/p/5915823.html关于一些基本的Hibernate配置:<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PU原创 2021-12-01 11:50:51 · 2586 阅读 · 0 评论 -
基于Javaweb JSP+servlet实现的前后端增删改查
效果图:数据库中信息如下:目录结构:源码放在资源里,读者可以自行下载;https://download.csdn.net/download/delete_bug/49661207数据库忘记上传了,读者可以自行创建:只有四个字段项目调试视频放在B站里;https://www.bilibili.com/video/BV1EQ4y1i7Kf/...原创 2021-11-26 12:30:05 · 887 阅读 · 0 评论 -
javaweb项目前后端传递数据时出现乱码--处理方式
1 HTML页面提交的时候 编码方式设置为utf-8,提交方式为post提交,一般的话get提交会造成乱码。2提交的到了浏览器打开开发者模式,可以看到提交的数据已经正常,但是传到后台还是乱码怎么办,这时候先确定传到后台的数据是乱码,还是后台显示乱码,可以通过输出传入的数据到控制台,经过上面这两个方式的设置,乱码就可以处理了,如果说你的后台Tomcat的编码时乱码的话你可以到Tomcat的配置文件里去修改一些编码方式,在Tomcat的conf下 server.xml文件,大约65行的位置,改为编码原创 2021-11-19 07:57:24 · 2047 阅读 · 0 评论 -
java人脸识别怎么写-------源码附上
1 首先在Face++注册一个自己的账号https://console.faceplusplus.com.cn/dashboard人脸人脸(Face)在人脸识别技术中特指图像中发现的人脸,当对一张图片进行人脸检测时,会将检测到的人脸记录下来,包括人脸在图片中的位置,用一个系统标识face_token来表示。注意:对同一张图片进行多次人脸检测,对同一个人脸会得到不同的face_token。人脸集合人脸集合(FaceSet)是用来存储检测到人脸的存储对象。一个FaceSet内face_token是不重原创 2021-11-08 09:34:20 · 1926 阅读 · 0 评论 -
解决项目中出现问题 Cannot resolve com.xpand:starter-canal:0.0.1-SNAPSHOT
解决方案,https://www.cnblogs.com/dalianpai/p/14010753.html亲测有效,编译通过第一步:前往https://github.com/chenqian56131/spring-boot-starter-canal第二步:下载完成进入项目根目录starter-canal 中 ,在文件管理器地址栏输入cmd,进入到cmd窗口,输入命令行如下:第三步:等待打包完成 target目录下生成 starter-canal-0.0.1-SNAPSHOT.jar第四步原创 2021-10-16 23:49:36 · 5109 阅读 · 3 评论 -
java小练习,BOOK Library类,生成斗地主,随机生成十组字符字母验证码,输出每个字符出现的次数,字符根据自然排序进行排序,输出为 a:1 e:2 g:1实现斗地主洗牌发牌案例。
1.定义图书类Book,具有属性账号id,书名name、作者author 和价格price,在创建图书对象时要求通过构造器进行创建,一次性将四个属性全部赋值,要求账户属性是int型,名称是String型,作者是String型,价格是double,请合理进行封装。在Book类,添加toString方法,要求返回 图书信息字符串,使用\t隔开各信息要求定义一个图书馆Library类,在图书馆类中添加一个HashSet集合用于保存多本图书3)在图书馆类中要求能够新增图书4)在图书馆类中要求可原创 2021-10-11 22:55:51 · 268 阅读 · 0 评论 -
java ----数据结构和算法
算法:之前博主里转载了一篇非常详细的java十大排序的算法,里面包含了动图,代码和复杂度分析。https://blog.csdn.net/delete_bug/article/details/106156040冒泡选择插入希尔归并快速堆排序计数排序桶排序基数排序接下来是介绍几种高级算法1 剪枝算法在搜索算法中优化中,剪枝,就是通过某种判断,避免一些不必要的遍历过程,形象的说,就是剪去了搜索树中的某些“枝条”,故称剪枝。应用剪枝优化的核心问题是设计剪枝判断方法,即确定哪些枝条应当原创 2021-08-07 17:39:46 · 187 阅读 · 0 评论 -
六万+字带你了解数据库---mysql--JDBC-Redis--MongoDB
路漫漫其修远兮,读者朋友们加油MYSQL1 常见的数据库数据库分两大类,一类是 关系型数据库。另一类叫做 非关系型数据库。关系型数据库: MySQL,Oracle,PostgreSQL,SQLserver。。。。非关系型数据库:Redis内存数据库,MongoDB文档数据库。。。2 常用的数据类型decimal(5, 2) 表示数值总共5位, 小数占2位tinyint 1字节(8位) 0-255。-128,127int 4字节。 -21亿,21亿。0-42亿float.MySQL.原创 2021-08-05 21:12:51 · 1251 阅读 · 0 评论 -
java之-网络--注解---反射---xml
1 网络编程1 什么是计算机之间的通信协议是计算机与计算机之间交流的标准 .是对数据的 传输速率, 传入接口, 步骤控制 出错控制 等等 制定的一套标准 !常用的通信协议:http协议 : 超文本传输协议 . 80端口号https协议: 安全的超文本传输协议 443端口号ftp协议: 文件传输协议 21端口号TCP协议: 传输控制协议UDP协议: 数据报协议2 网络编程的分类1.B/S 程序 : 浏览器与服务器程序2 C/S 程序 : 客户端与服务器程序3 TCP协议 -原创 2021-08-02 21:28:30 · 1480 阅读 · 9 评论 -
java ----IO/NIO/AIO
1 使用FileAPI里有很多关于File的使用方法:案例:向磁盘创建文件创建多级文件夹:需要加s把D盘的文件移动到C盘并且改为a.zip2 文件遍历案例找某盘下,大小为xxmb,后缀为xxx的文件,import java.io.File;public class Demo4 { public static void main(String[] args) { File e = new File("e://"); File[]原创 2021-08-01 17:28:58 · 207 阅读 · 0 评论 -
JVM你想了解的那些事儿
学习JVM前 先思考一下一个对象被实例化的过程https://www.hellojava.com/a/92881.html带着疑问来开始学习JVM什么是JVMJVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。JVM作用Java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令执行。每一条Java指令,Java虚拟机规范中都原创 2021-07-31 19:03:35 · 363 阅读 · 3 评论 -
java多线程之-------阻塞队列-----线程池
ArrayBlockingQueue:是一个基于数组结构的有界阻塞队列,此队列按FIFO(先进先出)原则对元素进行排序。LinkedBLockingueue:一个基于链表结构的阻塞队列,此队列按FIFO(先进先出)排序元素,吞吐量通常要高于ArrayBLockingQueue。synchronousQueue:一个不存储元素的阻塞队列。每个插入操作必须等到另一个线程调用移除操作,否则插入操作一直处于阻塞状态,吞吐量通常要高。在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被原创 2021-07-29 18:33:23 · 829 阅读 · 0 评论 -
java--锁机制
1 公平锁和非公平锁公平锁是指多个线程按照中请锁的顺序来获取锁,类似排队打饭,先来后到。非公平锁是指多个线程获取锁的顺序并不是按照中请锁的顺序,有可能后中请的线程比先申请的线程优先获取锁在高并发的情况下,有可能会造成优先级反转或者饥饿现象公平锁/非公平锁并发包中ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或非公平锁,默认是非公平锁关于两者区别:公平锁:Threads acquire a fair lock in the order in which they原创 2021-07-28 16:14:55 · 174 阅读 · 0 评论 -
详谈CAS---以及ABA问题
什么是CAS?比较并交换(Compared-And-Swap),它是一条CPU并发原语。它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。CAS并发原语体现在JAVA语言中就是sun.misc.Unsafe类中的各个方法。调用UnSafe类中的CAS方法,JVM会帮我们实现出CAS汇编指令。这是一种完全依赖于硬件的功能,通过它实现了原子操作。再次强调,由于CAS是一种系统原语,原语属于操作系统用语范畴,是由若干条指令组成的,用于完成某个功能的一个过程,并且原语的执行必原创 2021-07-27 21:20:24 · 222 阅读 · 0 评论 -
什么是JMM以及volatile的特性(对于volatile的理解)
JMM是java内存模型JMM有三大特性:可见性,原子性,有序性volatile 三大特性:它是java虚拟机提供的轻量级的同步机制,有三个特点:1 保证可见性 2:不保证原子性 3:禁止指令重排t1在自己的工作内存中改了age的数值后又传回给主物理内存,但是其他两个线程并不知情此时涉及到JMM中的一个特性,可见性,就是一个线程修改主物理内存后其他线程得到通知,重新更新那个变量代码证明:程序没有停,因为main线程没有收到number修改的信息修改后,加入了volatile关键字原创 2021-07-27 16:04:57 · 196 阅读 · 3 评论 -
java路线------集合
1、类集设置的目的对象数组有那些问题?普通的对象数组的最大问题在于数组中的元素个数是固定的,不能动态的扩充大小,所以最早的时候可以通过链表实现一个动态对象数组。但是这样做毕竟太复杂了,所以在 Java 中为了方便用户操作各个数据结构,所以引入了类集的概念,有时候就可以把类集称为 java 对数据结构的实现。类集是java对数据结构成熟的实现。在整个类集中的,这个概念是从 JDK 1.2(Java 2)之后才正式引入的,最早也提供了很多的操作类,但是并没有完整的提出类集的完整概念。类集中最大的几个操原创 2021-07-26 22:40:33 · 166 阅读 · 0 评论 -
java路线-----多线程
线程与进程进程是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间线程是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行. 一个进程最少有一个线程线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分成若干个线程线程调度分时调度所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。抢占式调度优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度。C原创 2021-07-25 18:48:20 · 342 阅读 · 0 评论 -
java核心类库(常用的)
泛型的使用概述泛型,即“参数化类型”。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型在类中的使用 例子泛型在接口中 的使用泛型在方法中的使用private static T 方法名(T a, T b) {}泛型限制类型在使用泛型时, 可以指定泛型的限定区域 ,例如: 必须是某某类的子类或 某某接口的实现类,格式:<T extends 类或接口1 &原创 2021-07-23 11:12:31 · 209 阅读 · 1 评论 -
面向对象通讲----从基础到进阶
什么是面向对象举个栗子 :你现在看着这张图片就是面向对象面向对象(Object Oriented)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象是相对于面向过程来讲的,指的是把 相关的数据和方法组织为一个整体 来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。面向过程到面向对象思想层面的转变:面向过程关注的是执行的过程,面向对象关注的是具备功能的对象。面向过程到面向对象,是原创 2021-07-09 09:37:54 · 237 阅读 · 3 评论 -
SpringBoot整合SpringMVC--JDBC--mybatis
1前一篇案例已经能实现mvc自动配置,这里我们主要解决以下3个问题整合MVC修改端口查看SpringBoot的全局属性可知,端口通过以下方式配置:修改application。.properties访问静态资源ResourceProperties的类,里面就定义了静态资源的默认查找路径:默认的静态资源路径为:classpath:/META-INF/resources/classpath:/resources/classpath:/static/classpath:/public只要静态原创 2021-03-17 22:09:08 · 233 阅读 · 1 评论 -
Spring-Boot学习
1SpringBoot的概念什么是SpringBootspringboot是spring快速开发脚手架,通过约定大于配置的方式,快速构建和启动spring项目。约定大于配置的意思是根据构建的项目去猜测大概需要什么配置去自动配置为什么要学习SpringBootspring的缺点:复杂的配置,项目各种配置是开发时的损耗, 写配置挤占了写应用程序逻辑的时间。混乱的依赖管理。项目的依赖管理非常的繁琐。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这是一个原创 2021-03-17 10:46:01 · 203 阅读 · 0 评论 -
ssm练习项目-记账系统
记账管理其中,查询条件中类型为下拉列表,可选值有“不限,支出,收入,转账,借出,借入,还入,还出”。日期输入框需要输入“yyyy-MM-dd”格式的日期字符串,点击“搜索”按钮提交表单,提交时如果输入项不符合输入要求,则显示相应提示信息。列表中根据记账类别在金额前添加相应的“+,-”符号,如果类别为“支出,借出,还出”时在金额前添加“-”。如果类别为“收入,借入,还入”时在金额前添加“+”。如果根据输入项进行查询后没有找到账单数据,则给出提示信息,如图所示:点击“记账”按钮后,进入记账页面,如图类型原创 2021-03-16 19:12:36 · 425 阅读 · 0 评论 -
mybatis 学习
1 什么是mybatisMyBatis 本是apache的⼀个开源项⽬iBatis, 2010年这个项⽬由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11⽉迁移到Github。iBATIS⼀词来源于"internet"和"abatis"的组合,是⼀个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)MyBatis 是⼀款优秀的持久层框架,它⽀持原创 2021-03-14 15:44:01 · 236 阅读 · 4 评论 -
SpringMVC框架搭建
本篇项目框架所涉及的源码全部放在我的资源中,可自行下载第一步:先搭建一个基于maven的web项目2在main下添加两个目录如果不是默认的话,右键Java会有一个source 目录3添加依赖包<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>原创 2021-03-12 15:47:51 · 136 阅读 · 0 评论 -
Maven最全教程,看了必懂,看了都说好!
本篇文章来自微信公众号 编程技术圈一、为什么使用Maven这样的构建工具【why】① 一个项目就是一个工程如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作。借助于maven就可以将一个项目拆分成多个工程② 项目中使用jar包,需要“复制”、“粘贴”项目的lib中同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。借助于maven,可以将jar包保存在“仓库”中,不管在哪个项目只要使用引用即可就行。③ jar包需要的时候原创 2021-03-10 23:03:55 · 270 阅读 · 0 评论 -
天猫二面:内存耗尽后Redis会发生什么
本篇文章来自微信作者 三太子敖丙作为一台服务器来说,内存并不是无限的,所以总会存在内存耗尽的情况,那么当 Redis 服务器的内存耗尽后,如果继续执行请求命令,Redis 会如何处理呢?设置有效期使用Redis 服务时,很多情况下某些键值对只会在特定的时间内有效,为了防止这种类型的数据一直占有内存,我们可以给键值对设置有效期。Redis 中可以通过 4 个独立的命令来给一个键设置过期时间:expire key ttl:将 key 值的过期时间设置为 ttl 秒。pexpire key ttl:将原创 2021-03-10 22:53:00 · 275 阅读 · 0 评论 -
jedis连接池访问Redis
做这个之前还是得先导入配置文件在pom中<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.2</version></dependency>这个主意端口号是int类型,不要输入引号,然后就是在启动的时候如果虚拟机长时间搁置需要重新启动一下 Redis 的conf和serveri原创 2021-02-21 21:05:14 · 131 阅读 · 0 评论 -
idea创建一个maven项目使用Redis,过程中出现的问题解决方案
1.首先创建maven项目创建的过程中需要在pom.xml文件中引入 <dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.2</version> &l原创 2021-02-21 20:22:57 · 804 阅读 · 0 评论 -
基于前后端实现第一阶段的一个MVC框架
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/.原创 2021-02-03 16:11:03 · 108 阅读 · 0 评论 -
Javaweb实现文件上传
效果如图所示,项目步骤以及源码如下1 首先先写一个前端页面index.jsp 源码如下:<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>$Title$</title> </head> <body> <form action="/upload" m原创 2021-01-24 18:27:13 · 477 阅读 · 0 评论 -
基于JavaWeb实现MVC查询学生信息
本篇博客是基于Javaweb利用MVC设计模式在前端页面上查询数据库信息MVC设计模式M:(Model) 模型 : 应用程序的核心功能,管理这个模块中用的数据和值(bean,dao);JavaBeans :是Java中一种特殊的类(换言之:JavaBean就是一个Java类).一个Java类 ,满足以下要求,则可称为一个JavaBeana. public修饰的类,提供public 无参构造方法b. 所有属性 都是privateC. 提供getter和setter方法从使用层面来看,Ja原创 2021-01-23 20:00:49 · 2834 阅读 · 3 评论