自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 彻底手撕LRU设计(使用JDK容器与不使用JDK容器)

Java 彻底手撕LRU设计(使用JDK容器与不使用JDK容器)原博链接JDK 1.8本文讲述了两种利用JDK容器实现LRU的方法,以及最后不使用JDK容器,自己定义HashMap和链表来纯手工打造时间复杂度为O(1)的LRU算法。§ 使用JDK容器1、使用LinkedHashMap这种方式比较简单,注释都在代码里public class LRUCache<K,V&g...

2020-04-25 10:50:23 653 1

原创 Spring Boot自动配置流程简明总结

Spring Boot自动化配置原博客地址§ Spring Boot的显著优势使用starter简化依赖配置Spring的自动配置§ starter简化依赖的配置Spring提供了一系列starter来简化Maven配置。当我们在我们的pom文件中增加对某个starter的依赖时,该starter的依赖也会自动的传递性被依赖进来。§ 自动配置Spring Boot...

2020-03-30 15:50:31 455 1

原创 Java线程池中的异常处理

Java线程池中的异常处理原文博客§ 前置知识线程池中的任务有两种,一种有返回值,一种无返回值。通常对应着两种提交任务的方法:submit方法:虽然参数是Runnable,但由于返回值为Future,所以通常传入的参数为FutureTask类的对象。(FutureTask间接实现了Runnable接口和Future接口)public Future<?> submit...

2020-03-26 23:09:32 397

原创 Tensorflow导入成功使用却失效(AttributeError: module 'tensorflow' has no attribute 'xxx_')

Tensorflow导入成功使用却失效(AttributeError: module ‘tensorflow’ has no attribute ‘xxx_’)【错误信息】AttributeError: module 'tensorflow' has no attribute 'xxx_'【解决1】重装pip uninstall tensorflowpip install tenso...

2020-03-26 10:08:56 733

原创 Tensorflow Keras 中input_shape引发的维度顺序冲突问题(NCHW与NHWC)

Tensorflow Keras 中input_shape引发的维度顺序冲突问题(NCHW与NHWC)原文链接:Tensorflow Keras 中input_shape引发的维度顺序冲突问题(NCHW与NHWC)以tf.keras.Sequential构建卷积层为例:tf.keras.layers.Conv2D(10, 3, input_shape=(2, 9, 9),padding='s...

2020-03-11 14:16:28 3766

原创 Spring Boot自定义注解与验证

注解原理与自定义注解1、引入依赖:<!-- https://mvnrepository.com/artifact/javax.validation/validation-api --><dependency> <groupId>javax.validation</groupId> <artifactId>valida...

2020-03-09 14:00:38 373

转载 Mysql联合索引最左匹配原则

转载自:https://segmentfault.com/a/1190000015416513Mysql联合索引最左匹配原则前言之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,自以为就了解了其原理,最近面试时和面试官交流,发现遗漏了些东西,这里自己整理一下这方面的内容。最左前缀匹配原则在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最...

2020-02-29 23:35:32 314

原创 Java浅拷贝和深拷贝

Java浅拷贝和深拷贝参考:https://www.jianshu.com/p/94dbef2de298注意:无论浅拷贝还是深拷贝,都会拷贝出一个新对象(即内存地址与原对象不同),而对象拷贝(直接将对象引用赋值给另一个引用那种)是不会生成新对象的,只是引用的指来指去§ 浅拷贝§ 特点浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类...

2020-02-28 22:56:57 192

原创 LeetCode 870. 优势洗牌 JAVA 题解

LeetCode 870. 优势洗牌 JAVA 题解题目链接:https://leetcode-cn.com/problems/advantage-shuffle/思想: 田忌赛马每次拿A的“当前轮次“的最小值和B的”当前轮次“最小值比较,若大于,则OK,满足。(1)若小于,则将A的值去和B的”最大值“配对。(2)技巧:将B的“值”和“索引”封装为Node对象,便于排序后找到原索引...

2020-02-27 21:08:46 370

原创 LeetCode 407. 接雨水 II JAVA题解

LeetCode 407. 接雨水 II JAVA题解题目链接:https://leetcode-cn.com/problems/trapping-rain-water-ii/根据油管上的一个视频写的java代码,视频链接:https://www.youtube.com/watch?v=cJayBq38VYw先将最外围四周看作第一层围栏,矩阵的元素看作节点,将其添加到优先队列中;依次出...

2020-02-27 21:01:01 395

原创 Spring Boot 整合 SpringData JPA与分页

Spring Boot 整合 SpringData JPA与分页在Spring Boot中使用JPA,需要引入如下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId...

2020-02-24 15:16:41 448

原创 Spring Boot + Redis缓存实现

SpringBoot + Redis缓存实现1、缓存对象必须实现序列化如:package com.jachin.sell.VO;/** * @description: http请求返回的最外层对象 * @Author: JachinDo * @Date: 2019/07/17 22:32 */@Datapublic class ResultVO<T> implem...

2020-02-24 15:12:56 159

原创 为什么需要序列化与serialVersionUID

为什么需要序列化与serialVersionUID1、序列化§ 用途:把对象序列化成字节码,保存到指定介质上(如磁盘等)用于网络传输被序列化的实例所属类需要实现Serializable接口:2、serialVersionUIDserialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是**通过判断类的serialVersionUID来验证版本一...

2020-02-24 15:00:50 222

原创 微信登录,网页授权流程

微信网页授权流程1、流程以下流程为微信官方提供的请求流程,现实中可使用第三方sdk:https://github.com/Wechat-Group/WxJava/wiki/MP_OAuth2网页授权首先微信客户端请求应用某地址应用服务器拼接授权地址,并重定向用户请求到该授权地址。授权地址包含:appid:公众号ID``redirect_url`: 服务器希望用户最终登...

2020-02-24 14:58:09 762

原创 Github图片无法显示解决(Mac版)

标题Github图片无法显示解决(Mac版)【问题如下】:【解决】及时更新github.com等一些域名对应的ip地址ip地址查询网址,在该网址查询对应域名对应的ip,如:mac下:执行命令sudo vi /etc/hosts修改对应文件# GitHub192.30.253.113 github.com192.30.253.119 gist.github.com19...

2020-02-23 21:35:42 3808 3

原创 Spring Boot 应用部署

Spring Boot 应用部署1、与虚拟机的交互ssh root@192.168.199.205进入虚拟机scp target/wechat-sell.jar root@192.168.199.205:/opt/javaapps将打包后的jar传到虚拟机指定目录2、运行问题端口占用:​ 使用==netstat -alnp | grep 8080== 或...

2020-02-22 12:01:41 158

原创 Docker安装配置及使用

Docker安装配置及使用参考博客https://yeasy.gitbooks.io/docker_practice/install/ubuntu.html1、卸载旧版本$ sudo apt-get remove docker \ docker-engine \ docker.io2、使用apt安装由于 apt 源使用 H...

2020-02-22 11:27:51 189

原创 Java Short类型比较的坑

Java Short类型比较的坑前提约定:精度小于int的数值==运算的时候(定义时不会)==都会被自动转换为int后进行计算short x = 3;Short s1 = 2;if (s1.equals(x - 1)) { System.out.println("!!!!!");}// 输出:null其实,上述定义x,s1时,后面的3和2都是int型的,只是编译器在...

2020-02-22 11:21:44 5896

原创 CopyOnWriteArrayList/Set 源码解析

CopyOnWriteArrayList/Set 源码解析原文地址:http://jachindo.top:8090/archives/copyonwritearraylistset%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90参考:https://mp.weixin.qq.com/s/Evw9Ikm83l_6M5x1i-K3Mw0、前言新老线程安全类,总结起来就...

2020-02-22 11:19:12 278

原创 ConcurrentHashMap源码解析

ConcurrentHashMap源码解析原文地址:http://jachindo.top:8090/archives/concurrenthashmap%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90jdk1.7:元素封装为HashEntry,同jdk1.7的HashMap分段锁+链表jdk1.8主要有两方面的优化:底层由链表 -->...

2020-02-22 11:15:15 215

原创 Java并发队列BlockingQueue总结与源码浅析

Java并发队列BlockingQueue总结与源码浅析§ 分类与简介§ LinkedBlockingQueue§ 构成底层为链表put锁和take锁notEmpty条件和notFull条件,使线程在对应条件等待private final Condition notEmpty = takeLock.newCondition();private final Ree...

2020-02-22 10:55:47 364

原创 AQS原理与源码剖析(结合ReentrantLock源码)

AQS原理与源码剖析(结合ReentrantLock源码)介绍:AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架1.ReentrantLock即为使用AQS框架实现的下图为ReentrantLock类中的静态内部类Sync、即其两个子类(对应公平和非公平)的类图。可见,均继承自AQS。2. AQS数据结构(CLH双端队列-等待队列)维护一个由双向链表实现...

2019-12-17 15:18:39 499

原创 JAVA线程池工作原理(ThreadPoolExecutor 源码简析)

线程池工作原理(ThreadPoolExecutor 源码简析)先来一张开门见山的流程图1. ThreadPoolExecutor源码简析1)一个记录线程池信息的变量ctlprivate final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));private static final int COUNT_BITS ...

2019-12-14 23:20:18 236

原创 解决Matplotlib中Times New Roman字体无法改变字体

解决Matplotlib中Times New Roman字体无法改变字体问题:在画图中使用times new roman字体时,默认为粗体,并且无法通过weight属性调节粗细。方法:找到目录/Users/jc/anaconda3/lib/python3.6/site-packages/matplotlib下的font_manager.py文件,将其中的weight_dict中的roma...

2019-12-13 16:42:42 4842 2

原创 Java中几种常量池的区分

Java中几种常量池的区分1、(全局)字符串常量池(String Pool)在类加载过程中,经过验证、准备阶段后:在堆中生成字符串对象实例将该字符串的对象实例引用值存到String Pool中在HotSpot VM里实现的String pool功能的是一个StringTable类,它是一个哈希表,里面存的是驻留字符串(也就是我们常说的用双引号括起来的)的引用(而不是驻留字符串实例...

2019-12-09 12:53:31 289

原创 HashMap源码解析

HashMap源码解析jdk版本:1.8前置约定:哈希表table。table[index]为解决hash冲突的数据结构(链表,红黑树)的头节点引用。根据链表长短选择是否要转换为红黑树。1、存储对象封装为节点Node<K,V>/** * Basic hash bin node, used for most entries. (See below for *...

2019-12-05 21:24:20 201

原创 Java类加载器与双亲委派模型

Java类加载器与双亲委派模型1、类加载器类加载阶段中通过类的全限定名获取定义此类的二进制字节流的动作代码。然后在堆上创建一个java.lang.Class对象。对于任何一个类,都需要由加载它的类加载器和这个类来确立其在JVM中的唯一性。也就是说,两个类来源于同一个Class文件,并且被同一个类加载器加载,这两个类才相等。分类,常用三种:启动类加载器(Bootstrap ClassL...

2019-12-03 21:09:20 160

原创 JVM类生命周期与类的加载过程

JVM类生命周期与类的加载过程类的生命周期:.class文件被加载到虚拟机内存后才可生效。类加载过程严格按照上述顺序“开始”,但不是按照上述顺序“进行”或“完成”,可能会交错。1、关于类初始化时机当且仅当对一个类进行主动引用的时候才会触发初始化阶段。共有5种主动引用场景,详见文末参考文章。其余被动引用不触发类的初始化,如:1) 通过子类引用父类的静态字段,不会导致子类的初始化。2...

2019-11-30 21:00:21 203

原创 Java对象的创建方式

Java对象的创建方式常用的创建对象的方式大致有5种:new关键字反射(2种)clone方法反序列化1、new关键字Student student = new Student();Student类想怎么写就怎么写,不多赘述。2、利用反射的两种创建方式1)只能调用无参构造函数newInstance()方法只能调用类的无参构造函数,因此要求类必须有无参构造函数。Stu...

2019-11-28 22:07:58 180

原创 Java对象的创建过程

Java对象的创建过程与初始化过程此文聚焦“对象”而不是“类”1、Java对象创建过程图片来源:https://www.cnblogs.com/chenyangyao/p/5296807.html2、Java对象的初始化(类的实例化)类的初始化不在本文范畴此部分对应上图的调用对象的<init>方法。 注意:在此之前,在虚拟机为对象分配内存后,已经进行过一次初始化了然后...

2019-11-28 22:07:14 251 1

原创 springcloud config配置中心与github webhook实现动态更新配置

1、搭建config-server新建config工程并将其注册到eureka上启动类注解@SpringBootApplication@EnableDiscoveryClient@EnableConfigServerymlspring: application: name: config cloud: config: server...

2019-10-22 18:23:10 1199 1

原创 Spring AOP 代理总结:静态代理和动态代理

Spring AOP 代理总结:静态代理和动态代理参考:https://blog.csdn.net/xiaojin21cen/article/details/794877691、静态代理 - AspectJ属于编译时增强:因为是在将 .java 文件编译成 .class 文件的过程中将Aspect相关代码织入java字节码中的。例如:代码来源:https://blog.csdn.net/x...

2019-09-25 14:41:54 385

原创 Springboot与Mysql时差时区问题

Springboot与Mysql时差时区问题情况一:手动插入时间戳如在java代码中将 new Date() 插入到mysql的对应timestamp类型的字段中。这种情况属于服务器与数据库时差问题。【解决】在springboot配置文件application.yml中配置数据源url处添加参数如下:重点就是 serverTimezone=GMT%2B8情况二:mysql自动添加时间...

2019-07-16 14:27:05 3152

原创 JPA瞬时属性应用及避免外键关联导致的无限循环

JPA瞬时属性应用及避免外键关联导致的无限循环一、瞬时属性@Transient在pojo类的某个属性上加上该注解,意为在与数据库交互时,与该属性无关。要将该属性封装入对象中必须自己通过其他方法提供属性值并手动封装(因为无法从数据库获取并封装的嘛)二、JPA外键关联导致无限循环使用jpa进行外键关联通常的做法如下:即产品和分类建立多对一的外键关联。但是,当Category类中有Prod...

2019-07-08 20:58:15 821

原创 基于springdata JPA的dao层接口实现

基于springdata JPA的dao层接口实现以及分页1、【举例】只需要继承 JpaRepository<实体类,主键类型> package com.tmall.tmallspringboot.dao;import com.tmall.tmallspringboot.pojo.Category;import org.springframework.data.jpa.re...

2019-07-07 16:35:48 2828

原创 springboot访问静态资源如webapp下的js、css等

springboot访问静态资源如webapp下的js、css等springboot对静态资源的默认扫描路径是:classpath:/staticclasspath:/publicclasspath:/resourcesclasspath:/META-INF/resources首先,springboot默认建立是没有webapp文件夹的,需要自己创建:主要是配置两个路径,weba...

2019-07-05 23:12:49 4977 1

原创 idea部署maven项目到远程tomcat

idea部署maven项目到远程tomcat1、配置服务器端1.1 安装配置java环境# 安装javasudo add-apt-repository ppa:openjdk-r/ppasudo apt-get updatesudo apt-get install openjdk-8-jdk# 给出java路径sudo update-alternatives --config j...

2019-06-22 15:56:37 1891

原创 form表单提交到Servlet中文乱码问题

form表单提交到Servlet中文乱码问题1、form表单提交到某个servlet后,由servlet显示其中文信息,结果是乱码,解决方法如下:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ...

2019-04-17 14:51:26 1986 1

原创 JAVA BeanUtils使用

BeanUtils通过内省(Introspector)实现,通过读取对象属性值来创建对象。且读取类型均可统一为String类型,因为属性为基本类型时,BeanUtils会自动帮忙转换类型,如下代码示例:public class Demo3 { public static void main(String[] args) throws InvocationTargetExce...

2019-03-25 13:39:06 269

原创 HTML之FrameSet框架

FrameSet框架标签frameset:一个frameset可以把一个页面切割成多份(只能按照行或列切割)。frame:不可切割,frame位于frameset中。代码示例:<!-- head.html --><!-- 头部(标题,logo)--><head> <meta http-equiv="Content-Type" content=...

2019-03-22 19:20:58 232

空空如也

空空如也

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

TA关注的人

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