自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 Error: Failed reading value of registry key:Software\JavaSoft\Java Runtime Environment\CurrentVersio

编辑环境变量把Path里的。

2023-08-29 11:12:28 191

原创 【代码】自定义线程池、CountDownLatch案例、CyclicBarrier案例、CompletableFuture手动事务控制、多线程批量插入事务控制

代码展示:自定义线程池、CountDownLatch案例、CyclicBarrier案例、CompletableFuture手动事务控制、多线程批量插入事务控制

2023-06-07 12:17:57 222

原创 Java基础面试 1/5

Java基础面试 1/5

2023-02-15 02:38:08 267

原创 实验室培训(一)—— 版本管理工具git

1、什么GitGit是分布式的版本管理工具,在实际项目管理中起到非常重要的作用。思考1:什么是版本管理工具?为什么要使用版本管理工具?答:了解版本控制。2、版本控制版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。举一个文件迭代的例子:在这个过程中,我们从第一次修改到最后一次修改中衍生了很多个版本,造成文件冗余的情况,让我们自己管理起来非常地麻烦琐碎,那可能有同学会觉得:为

2021-11-02 15:00:22 794

原创 线程安全之多线程a++计数减少问题(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

你讲讲你理解的“线程安全”是什么?《Java Concurrency In Practice》的作者Brian Goetz对“线程安全”有一个比较恰当的定义:“当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的”。这句话的意思是:不管业务中遇到怎样的多个线程访问某对象或某方法的情况,而在编程这个业务逻辑的时候,都不需要额外做任何额外的处理(也就是可以像单线

2021-11-01 01:32:49 281

原创 27.移除元素

双层循环(时间复杂度:O(n2)) /** * 移除元素 双层for循环 * */ public int removeElementFor(int[] nums, int val) { int length = nums.length; for (int i = 0; i < length; i++) { //循环数组 if (nums[i] == val){ for (int.

2021-10-20 20:38:31 88

原创 367.有效的完全平方数

public boolean isPerfectSquare(int num) { if (num == 1){ return true; } if (num == 0){ return true; } int left = 1; int right = num; int mid = 0; while (left < ...

2021-10-19 23:41:59 70

原创 69.Sqrt(x)

/** * 69. Sqrt(x) * */ public int mySqrt(int x) { if (x == 1){ return 1; } if (x == 0){ return 0; } //对区间的定义均为「左闭右闭区间」,即循环不变量的定义是:在区间 [left..right] 里可能存在目标元素。 int le...

2021-10-19 23:21:26 70

原创 34.在排序数组中查找元素的第一个和最后一个位置

完整思路版本 public int[] searchRange(int[] nums, int target) { if(nums.length == 0){ return new int[]{-1,-1}; } int left = 0 , right = nums.length-1, mid; while (left < right) { //注意死循环 mid = (left

2021-10-19 21:52:53 51

原创 35.搜索插入位置

这题的关键就在于,只是把原704.二分查找中的最后一行return - 1;换成了return left 或 return right + 1就已经解决问题了。其实分情况一一分析,就是这么简单:1、目标值在数组中,return mid2、目标值比数组中任何一个值都要小,那其实就是left自始至终没动过,是right不断地向左移动,直至right == left == 0还是找不到,然后就是right = -1 小于 left,跳出循环,return left(left没移动过,一直为0) 或 ret.

2021-10-17 23:32:43 49

原创 704.二分查找(两种实现方式)

一、区间【 left , right 】,while循环结束的条件是left > rightclass Solution { public int search(int[] nums, int target) { int left = 0; int right = nums.length - 1; while(left <= right){ //注意 int mid = (left + right) / 2;

2021-10-17 22:25:30 88

原创 线程各属性(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

2021-09-08 18:14:49 171

原创 守护线程和普通线程的区别(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

1、整体无区别,守护线程和普通线程都继承父线程,都是…线程2、唯一区别在于JVM的离开守护线程是为我们服务的,不会影响JVM的离开,换言之守护线程是为普通用户线程服务的。普通用户线程运行结束后,JVM会自动离开。问:我们是否需要给线程设置成守护线程?答:不需要,也不应该。...

2021-09-08 17:04:41 453

原创 eureka单机模拟集群

视频教程:eureka集群

2021-08-20 11:30:53 91

原创 eureka 自我保护机制

1、自我保护模式开启的条件是:1 分钟后,若 Renews (last min) < Renews threshold,那么开启自我保护机制。Renews threshold表示:Eureka Server 期望每分钟收到客户端实例续约的阈值。Renews(last min)表示:Eureka Server 最后 1 分钟收到客户端实例续约的总数。Renews threshold = 服务实例总数 *(60/续约间隔)*自我保护续约百分比阈值因子(默认0.85)。Renews(last

2021-08-20 11:01:17 1446 1

原创 开发服务注册中心Eureka Client端

开发eureka client,就是日后基于业务拆分出来的一个个微服务,如用户服务、订单服务等以下操作步骤是顺着之前的博客过来的:1、springcloud环境搭建2、开发服务注册中心Eureka Server端1、创建完成springboot应用springcloud_02eureka_client2、在创建项目中引入依赖eureka client相关依赖3、编写配置application.properties4、在入口类加入注解...

2021-08-19 19:49:06 75

原创 开发服务注册中心Eureka Server端

以下步骤紧跟着上篇博客:springcloud环境搭建1、创建一个springboot项目finish之后就创建好啦因为springcloud_01eureka_server继承了父项目,所以可以把父项目的springcloud和springboot都拿过来。2、引入依赖父项目维护的springboot版本号在上一篇博客的最后一张图可见:springcloud环境搭建3、配置文件4、启动项目(测试、保证springboot项目正常可用)5、springboot项目测试正常可用下

2021-08-18 00:21:22 238

原创 springcloud环境搭建

1、建一个空项目2、新建父工程模块3、父工程模块父项目中是不写任何代码的,直接把src目录删掉,父项目只用于维护版本号4、继承springboot的父项目,维护springcloud版本

2021-08-17 22:32:49 107

原创 java实现一棵二叉树中最宽的那一层(或多层)的最大结点个数

代码示例(注释含思路):需要先熟悉二叉树的宽度遍历(如果不熟悉):java实现二叉树宽度遍历package com.zihao;import java.util.HashMap;import java.util.LinkedList;import java.util.Queue;/** 描述:一棵二叉树中最宽的那一层(或多层)的最大结点个数* */public class levelMostNodes { public Node node; public level

2021-08-17 15:09:29 171

原创 java实现二叉树宽度遍历

代码示例(注释含思路):package com.zihao;import java.util.LinkedList;import java.util.Queue;public class levelTraversal { public Node node; public levelTraversal(Node head){ this.node = head; } static class Node{ int value;

2021-08-17 15:07:27 200

原创 Java实现二叉树的前、序、后打印(非递归、栈)

代码示例(注释含写代码时思路):package com.zihao;import java.util.Stack;public class traverseDonRecurrence { /*3、发现二叉树没定义它的属性*/ public Node node; /*2、结点定义好了,构造或说初始化一棵二叉树呗*/ public traverseDonRecurrence(Node head){ this.node = head; }

2021-08-17 00:49:23 121

原创 Java实现二叉树的前、序、后打印(递归序思想)

代码示例(注释有写代码时思路):package com.zihao;public class traverseRecurrence { /*3、发现二叉树没定义它的属性*/ public Node node; /*1、成树之前得先有节点,所以先定义结点*/ static class Node{ int value; Node left; Node right; /*别忘了构造方法*/

2021-08-17 00:45:27 167

原创 yield方法详解(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

yield释放CPU资源还是处于Runnable状态,不会进入Waiting或Blocked状态,随时有可能会再次被调度,不同于sleep,sleep会先进入到阻塞状态,还有一点是JVM不保证遵循,如:当CPU资源充足情况下,调用yield不一定就会释放CPU时间片。...

2021-08-15 19:39:29 162

原创 wait和sleep方法的异同?(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

wait和sleep方法的异同?相同1、Wait和sleep方法都可以使线程阻塞,对应线程状态是Waiting或Time_Waiting。2、wait和sleep方法都可以响应中断Thread.interrupt()。不同1、wait方法的执行必须在同步方法中进行,而sleep则不需要。2、在同步方法里执行sleep方法时,不会释放monitor锁,但是wait方法会释放monitor锁。3、sleep方法短暂休眠之后会主动退出阻塞,而没有指定时间的 wait方法则需要被其他线程中断后才能退出

2021-08-15 00:53:13 110 1

原创 sleep方法详解(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

作用:我只想让线程在预期的时间执行,其他时间不要占用CPU资源讲讲sleep方法的特点?sleep方法可以让线程进入Timed_Waiting状态,并且不占用CPU资源,但是不释放锁(包括synchronize和lock),直到规定时间后再执行,休眠期间如果被中断,会抛出异常并清除中断状态。1、sleep不释放synchronized的Monitorpackage threadcoreknowledge.threadobjectclasscommonmethods;/** * 展示线程sl

2021-08-15 00:48:21 248

转载 关于为什么线程通信的方法wait()、notify()、notifyAll()被定义在Object类里面?而sleep为什么定义在Thread类里面?

关于为什么线程通信的方法wait()、notify()、notifyAll()被定义在Object类里面?而sleep为什么定义在Thread类里面?

2021-08-14 23:55:37 219

原创 wait作用和用法(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

阻塞阶段有的时候我们想让一个线程或多个线程暂时去休息一下-> wait():使线程进入到阻塞状态,等到我们后续需要它的时候,条件成熟的时候再唤醒它 -> notify()、notifyAll():唤醒被阻塞的线程,等待CPU调度。值得注意的一点是:在执行wait()方法前必须先拿到这个对象的monitor锁 当线程拿到进入阻塞状态后1、直至以下四种情况发生时,才会被唤醒另一个线程调用这个对象的notify()方法且刚好被唤醒的是本线程另一个线程调用这个对象的notify(

2021-08-11 12:50:13 337

原创 线程的一生——6个状态(生命周期)(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

一图讲解状态的含义和变化

2021-08-02 16:27:06 150

原创 错误停止线程之volatile设置boolean标记位(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

如何停止线程?A. 用volatile的boolean作为标记来停止B. 用stop()方法让线程停止C. 用interrupt来请求线程停止解答:应该选C。原理:用interrupt来请求线程停止而不是强制,好处是安全。想停止线程,要请求方、被停止方、子方法被调用方相互配合才行:a) 作为被停止方:每次循环中或者适时检查中断信号,并且在可能抛出InterrupedException的地方处理该中断信号;b) 请求方:发出中断信号;c) 子方法调用方(被线程调用的方法的作者)要注意:优先

2021-08-02 00:06:58 754

原创 线程停止、中断之最佳实践(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

什么情况下,线程需要被停止?线程和任务被创建和启动之后,大部分情况下都是自然运行到结束的,自然停止,但有些情况会需要用到停止线程,如:或许用户主动取消,或许服务被快速关闭,或者运行出错或超时情况下线程都需要被停止,这些情况都需要我们主动来停止线程,想让线程安全可靠停止下来并不容易,Java语言没有一种机制来安全正确地停止线程,但是它提供了interrupt,这是一种合作机制。 如何正确停止线程?原理介绍:使用interrupt来通知,而不是强制。通俗理解:就是用一个线程来通知另一个线程让

2021-07-31 21:14:54 184 1

原创 图片Base64编码转图片文件后上传阿里云OSS并保存访问路径到数据库(详细注释)

基本的实现思路:1、图片Base64编码转图片文件临时存储到服务器2、临时图片文件上传阿里云OSS3、最后拼接图片的访问路径保存到数据库。注释已经很详细了,下面直接贴代码,有不足之处,请多指教。controller层(主业务代码)package com.aikang.face.controller;import com.aikang.face.dao.FaceMessageDao;import com.aikang.face.entity.FaceMessage;import com.a

2021-07-31 00:16:05 2953

原创 开启多线程启动的新世界(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

start()和run()对比package threadcoreknowledge.startthread;public class StartAndRunMethod { public static void main(String[] args) { Runnable runnable = () -> { System.out.println(Thread.currentThread().getName()); };

2021-07-26 22:13:28 156

原创 实现多线程的正确姿势(慕课网 -> 线程八大核心+Java并发底层原理精讲 掌握企业级并发问题解决方案)

实现多线程的方法是1种还是2种还是4种?网上的说法。。。。。。。正确的说法实现多线程的官方正确方法:2种方法一:实现Runnable接口package threadcoreknowledge.createthreads;public class RunnableStyle implements Runnable{ public static void main(String[] args) { Thread thread = new Thread(new Runna

2021-07-26 17:31:31 290 2

原创 Spring Aop打印操作日志并通过线程池同步到数据库

实现情况展示console打印数据库记录实现思路基于Aop切面思想:①自定义注解②定义一个Aspect类,定义切点 @Pointcut目的是在注解的位置切入代码,从切面织入点处通过反射机制获取织入点处的方法,获取切入点所在方法、请求的类名、方法名、参数等③创建实体类,阿巴阿巴。。。把数据写入到数据库。④这里使用线程池,对实际的情况做了优化,当用户在执行某些操作时,如查看列表、删除数据等,需要读写数据库,然而实际记录日志的过程也要把数据写入数据库,需要耗时,而且如果日志数据写入失败还有可能

2021-07-25 17:02:11 603 1

原创 Spring自定义注解及Aop实现事务框架

事务的作用:1、保证数据的一致性原则,遵循acid2、传统的事务mysql,通过行锁机制,当多个线程同时去操作同一行数据的时候,最后只有一个线程能够触发操作事务分类:1、编程事务(手动挡):通过代码实现begin commit rollback等操作① 获取项目事务管理器DataSourceTransactionManger②可以通过事务管理实现提交/回滚操作2、声明事务(自动挡):不用写代码,通过spring提供的注解,开启事务操作只需要在方法上加上一个注解@Transaction

2021-07-24 21:11:08 325 1

原创 Springboot+Mybatis-Plus快速上手(学习B站楠哥说Java)

Mybatis-Plus国产开源框架,基于Mybatis,核心就是提高效率Springboot + Mybatis-plus快速上手1、导入mybatis-plus依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId>

2021-07-24 17:04:54 294 4

原创 物联网平台设备数据同步到RDS & MySQL数据库(保姆级教学)

物联网平台设备数据同步到RDS & MySQL数据库(保姆级教学) 目标实现:阿里云物联网平台某设备实时数据(MQTT协议上云)同步存储到RDS MySQL数据库 实现步骤:注意:以下实现默认MQTT上云已经完成,可实时上传数据1、物联网平台接收到数据通过规则引擎转发至DataHub。2、在DataHub中通过DataConnector将数据同步到RDS MySQL数据库中阿里云教程概述 细节!!!拿来吧你! 1、创建RDS MyS

2021-07-24 01:58:34 7142 7

原创 工业中心106 Day05

工业中心106 Day05 今日目标:这两天一直没更,因为每天目标不是很明确,偷了偷懒,主要两个任务待完成,一个是对接人脸识别测温机,一个是后台管理系统,目前主要问题是后台管理系统在等硬件数据上云(不过快了,估计明天吧,何老弟已经在调试窗口通过AT指令成功上传到阿里云物联网平台,明天就是照着AT指令写完代码了),人脸识别服务器需要升配,有点跑不动了。这两天任务进展倒不怎么样,有时和其他小伙伴聊聊他们的一些问题,吹吹水,偶尔能帮上一点忙。 完成功能:① 人脸识别测温一体机抓拍数

2021-07-18 23:48:06 84 6

原创 工业中心106 Day02

工业中心106 Day02 今日目标:完成功能: ① 人脸批量注册demo② 抓拍订阅及认证订阅代码编写  遇到问题及解决: ① 人脸批量注册demo已经完成测试,但过程稍有些坎坷,首先json格式的参数有23个就不是很友好,其次是文档中json格式的key的首字母需要大写,而我用的是fastjson,fastjson在把java对象转JSON字符串默认会把属性值的首字母改小写,导致我好一会都没发现这个错误,请求一直报错,解决方案是在

2021-07-15 23:35:12 61

原创 工业中心106 Day01

工业中心106 Day01今日目标:①通过局域网接入人脸识别测温机,测试API。②完成后台管理系统记录日志操作功能(demo)完成的功能(未对接后台):1、页面布局2、js测试3、Aop实现对Controller层访问记录并同步到数据库遇到的问题:①人脸识别测温一体机无法接收响应数据。解决方案:经和售后技术人员沟通,需先搭好自己的服务器,后设置订阅的“回调地址”,即可以接收设备端的数据。小结:继续努力!...

2021-07-14 22:18:59 68 5

空空如也

空空如也

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

TA关注的人

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