![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 64
爱思考的实践者
我的到来,让世界变得更好。My coming makes this world a better place to live in.
展开
-
leetcode206---反转链表---java实现
给你单链表的头节点 ,请你反转链表,并返回反转后的链表。原创 2022-06-11 10:54:33 · 372 阅读 · 1 评论 -
求解多机作业调度问题
有m台相同的机器,需要处理n个独立的作业,作业i所需的处理时间为t[i]。 每个作业都可以在任何一台机器上加工处理,但未完工之前不允许中断处理。任何作业不能拆分成更小的作业。 如何对作业进行调度,使得所给的n个作业在尽可能短的时间内由m台机器加工处理完成。原创 2022-05-31 20:32:03 · 1940 阅读 · 0 评论 -
MySQL和MySQL驱动mysql-connector-java升级到8.0.X版本
目录一、MySQL升级到8.0.X版本1.1 升级的原因及MySQL8.0版本新特性1.2 下载MySQL1.3 备份数据1.4 卸载原版本MySQL1.5 安装下载的新版本。1.6 MySQL升级后的兼容性问题二、升级MySQL驱动mysql-connector-java到8.0.X版本2.1 为什么要升级驱动版本2.2 升级版本2.3 修改配置2.4 mysql-connector-java升级到8.0之后的一些兼容问题三、MySQL8.0和5.7性能转载 2022-02-07 14:09:01 · 4480 阅读 · 1 评论 -
用jackson的@JsonProperty注解属性名多出一个字段问题解决方案
一、问题今天在用jackson的@JsonProperty注解属性名时,发现输出结果里面多了一个字段。二、原因Jackson2在初始化序列器时,首先,对pojo类型对象会收集其属性信息,属性包括成员变量及方法;然后,将属性名称和处理过后的方法名称作为key,保存到一个LinkedHashMap中。在对pojo类型对象收集的过程中,Jackson2会调用com.fasterxml.jackson.databind.util.BeanUtil中的legacyManglePropertyName方法来原创 2021-12-01 20:14:24 · 2127 阅读 · 0 评论 -
zookeeper是如何保证创建的节点是唯一的?
目录一、问题背景二、zookeeper源码级保证原子性三、java源码级CAS四、汇编级别CAS五、操作系统(处理器)级别的CAS一、问题背景zookeeper是一个分布式协调服务,可以保证数据的一致性。由于所有的写请求都会被Follower节点转发到Leader节点执行,创建节点的请求也是一样的,所以只会由Leader节点创建新的节点,然后把数据同步到其他Follower节点。那么,它是如何保证创建的节点是唯一的呢?二、zookeeper源码级保证原子性zook转载 2021-11-11 20:54:12 · 599 阅读 · 0 评论 -
Guava Cache用法介绍
背景缓存的主要作用是:暂时在内存中保存业务系统的数据处理结果,等待下次访问使用。在日常开发中,有很多这种场合:有一些数据量不是很大,不会经常改动,并且访问非常频繁;但是,由于受限于硬盘IO的性能,或者远程网络等原因,获取可能非常耗时,导致我们的程序非常慢。这在某些业务上是不能忍的!缓存正是解决这类问题的神器!缓存在很多系统和架构中都用广泛的应用,例如:CPU缓存 操作系统缓存 HTTP缓存 数据库缓存 静态文件缓存 本地缓存 分布式缓存在计算机和网络领域,缓存无处不在。只要存在硬件转载 2021-10-29 16:37:07 · 4487 阅读 · 0 评论 -
8皇后回溯算法递归方案探究及JAVA实现
8皇后问题简介八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上,不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种计算机语言可以解决此问题。第一种方案算法思考,初步思路:(1) 构建二维int或者short型数组,在内存.原创 2021-10-12 15:06:48 · 149 阅读 · 0 评论 -
Shiro框架学习
一、学习目标① 认识shiro的整体架构、各组件的概念。② shiro认证、授权的过程。③ shiro自定义的realm、Filter。④ shiro session管理。⑤ shiro的缓存管理。⑥ shiro继承spring。二、shiro安全框架简介① Shiro 是 Apache 提供的一个强大、灵活、易用的Java安全框架。② shiro提供了身份认证、授权、会话管理、加密、缓存管理等功能,使用shiro可以非常方便地进行项目的权限管理模块开发,从最小的移动转载 2021-10-08 19:11:24 · 296 阅读 · 0 评论 -
java使用MD5和SHA256算法加密消息
java使用MD5和SHA256算法加密消息,还是比较简单的,具体代码如下:package com.mvp.test;import org.junit.Test;import org.springframework.util.Assert;import java.io.BufferedInputStream;import java.io.ByteArrayInputStream;import java.nio.charset.StandardCharsets;import java.s原创 2021-01-04 18:29:19 · 573 阅读 · 0 评论 -
Mac版Idea2020.1完全卸载
问题描述:Mac版Idea2020.1,使用jar包破解,今天突然发现密钥过期了,需要重新破解。在使用验证码激活时,却怎么都卸载不干净。解决方法如下:1.删除 ~/Library/Preferences/jetbrains.jetprofile.asset.plist2.删除 ~/Library/Caches/JetBrains3. 删除~/Library/Application\ Support/JetBrains4.删除 ~/Library/Logs/JetBrains...原创 2021-01-04 18:19:59 · 2230 阅读 · 0 评论 -
Error creating bean with name ‘eurekaAutoServiceRegistration‘: Singleton bean creation not allowed解决
一、问题描述使用Eureka服务注册发现机制的一个服务,在启动的时候,提示如下异常:2019-06-24 18:41:47.106 INFO 3025 --- [ Thread-6] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@2cd2c8fe: startup date [Mon原创 2021-01-04 18:00:08 · 5219 阅读 · 0 评论 -
Java字符串写入文件的方式
Java将字符串写入文件,一般使用FileWriter或FileOutputStream类,下面分别给出示例:一、使用FileWriter类 @Test public void fileWriterTest() { String str="hello world!\nhello world!\nhello world!"; FileWriter writer; try { writer = new FileWrit原创 2020-12-18 11:32:03 · 4698 阅读 · 0 评论 -
java8 Future异步调用实战
一、同步与异步调用概念同步API:调用方在调用某个方法后,等待被调用方返回结果;调用方在取得被调用方的返回值后,再继续运行。调用方顺序执行,同步等待被调用方的返回值,这就是阻塞式调用。异步API:调用方在调用某个方法后,直接返回,不需要等待被调用方返回结果;被调用方开启一个线程处理任务,调用方可以同时去处理其他工作。调用方和被调用方是异步的,这就是非阻塞式调用。在Java种,Future用来完成异步工作任务,极大地提高了程序的运行效率。二、Future实现异步调用2.1 future实现异步原创 2020-12-09 20:02:09 · 2166 阅读 · 1 评论 -
Maven 构建错误 Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:3.1.0
使用maven构建时,提示错误Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:3.1.0。解决方案为:在构建文件pom.xml的 <properties>节中添加阿里的环境仓库。如下所示: <repositories> <repository> <id>alimaven</id> &..原创 2020-12-07 15:59:09 · 2792 阅读 · 2 评论 -
负载均衡--加权随机算法(Weight Random)
加权随机法根据服务器的配置和系统的负载,分配不同的权重,按照权重随机请求后端服务器。一、算法描述假设有 N 台服务器 S = {S0, S1, S2, …, Sn},权重为 W = {W0, W1, W2, …, Wn},权重之和为 weightSum, 服务器列表为 serverList,算法可以描述为:1、初始化 serverList,将 W0 个 S0 加入至serverList,将 W1 个 S1 加入至serverList,依据此规则,将所有的服务器加入至 serverList 中;2原创 2020-11-12 17:26:35 · 1216 阅读 · 2 评论 -
负载均衡--随机算法(Random)
随机算法是指:从服务器列表中,随机选取一台服务器进行访问。由概率论可以得知,随着客户端调用服务端的次数增多,其实际效果趋近于平均分配请求到服务端的每一台服务器,也就是达到轮询的效果。一、算法描述假设有 N 台服务器 S = {S0, S1, S2, …, Sn},算法可以描述为:1、通过随机函数生成 0 到 N 之间的任意整理,将该数字作为索引,从 S 中获取对应的服务器;假定我们现在有如下四台服务器:服务器地址 权重 192.168.1.1 1 192.168.1.2原创 2020-11-12 15:16:34 · 1467 阅读 · 2 评论 -
负载均衡--加权轮询算法(Weight Round)
加权轮询算法:不同的后端服务器,在机器的配置和当前系统的负载方面,可能并不相同。因此,它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请求;给配置低、负载高的机器分配较低的权重,降低系统负载。加权轮询算法能很好地处理这一问题,并将请求顺序地按照权重分配到后端服务器。一、算法描述假设有 N 台服务器 S = {S0, S1, S2, …, Sn},默认权重为 W = {W0, W1, W2, …, Wn},服务器列表为 serverList,算法可以描述为:1、初始化 s原创 2020-11-12 10:55:06 · 2601 阅读 · 4 评论 -
ReentrantLock原理
一、ReentrantLock简介ReentrantLock主要利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似。CAS:Compare and Swap,比较并交换。CAS有3个操作数:内存值V、预期值A、要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B;否则,什么都不做。该操作是一个原子操作,被广泛的应用在Java的底层实现中。在Java中,CAS主要是由sun.misc.Unsafe这个类通过JNI调用CPU底层指令实现。AQS:Abstract Q转载 2020-11-05 19:51:32 · 1126 阅读 · 0 评论 -
APOLLO配置中心Java客户端使用指南
APOLLO配置中心Java客户端使用指南一、准备工作1.1 环境要求Java: 1.7+ Guava: 15.0+ Apollo客户端默认会引用Guava 19,如果你的项目引用了其它版本,请确保其版本号大于等于15.0。 注:对于Apollo客户端,如果确有需要,可以做少量代码修改来降级到Java 1.6,详细信息可以参考Issue 483。1.2 必选设置Apollo客户端依赖于AppId、Environment等环境信息来工作,所以请确保阅读下面的说明,并且做正确的配置。转载 2020-05-18 20:53:08 · 2644 阅读 · 0 评论 -
解决mybatis-plus查询字段中含有关键词时异常问题
在使用mybatis-plus查询mysql某张表的数据时,一直告警提示sql syntax error。于是,把异常提示里的sql语句复制到navicat执行,也提示sql syntax error。仔细看了下,发有几个字段在navigate里面标示为蓝色(这几个字段为sensitive、status、name),这几个字段在mysql里面是关键词。在查询语句中去除这几个字段,发现查询就好使了。既然定位到了问题,接下来就要解决问题。解决方案为:在mybatis/mybatisPlus中,在查询特殊原创 2020-05-11 12:01:11 · 5964 阅读 · 3 评论 -
swagger2注解学习@Api
一、swagger简介Swagger是目前最好用的Restful API文档生成的开源项目。通过swagger-spring项目,其实现了与SpingMVC框架的无缝集成功能,方便生成spring restful风格的接口文档。同时,swagger-ui还具有测试spring restful风格的接口的功能。swagger官方网站为:http://swagger.io/swagger中...原创 2020-03-09 22:55:11 · 411 阅读 · 0 评论 -
@Mapper注解学习
@Mapper 是 Mybatis 的注解,和Spring没有关系。@Mapper注解的的作用1:为了把mapper这个DAO交給Spring管理,参考 http://412887952-qq-com.iteye.com/blog/23926722:为了不再写mapper映射文件,参考https://blog.csdn.net/weixin_39666581/article/details...转载 2020-03-11 16:02:10 · 3521 阅读 · 1 评论 -
IDEA出现Module ** must not contain source root **. The root already belongs to module **错误的解决方法
本人在IDEA中导入一个名称为CUT的项目后,打开 File——>Project Structure...,点击左侧的Modules,发现除了名称为CU的module,还有一个“main”和一个“test”。通过查看详细信息,发现“main”和“test”都属于“CUT”这个项目。 在这样的情况下,执行add JARS or directories或者add Libra...原创 2020-03-06 18:55:18 · 3274 阅读 · 1 评论 -
mac使用brew命令安装java8sdk提示Cask 'java8' is unavailable的解决方案
之前在mac上安装java8sdk的时候,使用的命令为:brew cask install homebrew/cask-versions/java8今天使用同样的命令在mac上安装java8sdk,去提示发生如下错误:Error: Cask 'java8' is unavailable: '/usr/local/Homebrew/Library/Taps/homebrew/home...原创 2020-02-27 14:52:23 · 5166 阅读 · 0 评论