Java
文章平均质量分 53
livovil
一、这个技术解决什么问题?为什么别的同类技术做不到?
二、为什么是这样解决的?有没有更好的方式
展开
-
JAVA常用数据结构概览
文档引用:https://juejin.cn/post/6844904198769737741。原创 2023-10-24 18:03:48 · 133 阅读 · 0 评论 -
数据库连接错误 GlobalConfigUtils setMetaData Fail
记录一下mysql的一次错误排查1. 情景再现项目为springboot+mybatis项目错误发生在启动项目时,之前该项目可以正常启动,没有更改数据库相关的配置异常信息为:Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail !2. 查找原因首先这个报错是跟数据库配置有关,问题发生在连接mysql数原创 2021-03-08 20:38:57 · 19840 阅读 · 1 评论 -
HashMap探秘(2) ----构造和扩容
HashMap的构造函数们先认识几个默认常量:/*** The load factor used when none specified in constructor.* 默认的负载因子0.75*/static final float DEFAULT_LOAD_FACTOR = 0.75f;/*** The default initial capacity - MUST be a power of two.* 默认初始容量 16*/static final int DEFAULT原创 2020-08-19 20:56:11 · 335 阅读 · 0 评论 -
哪些“对象”该死?----JVM内存管理与垃圾回收
JVM的内存管理JVM的最让人喜欢的一点,一定包括他的自动内存管理机制。Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。堆是对象活动的主要区域,也是垃圾收集器管理的主要区域。从垃圾回收的角度,由于现在收集器基本都采用分代垃圾收集算法,所以 Java 堆还可以细分为:新生代和老年代:再细致一点有:Eden 空间、From Survivor、To Survivor 空间等。进一步划分的目的是更好地回收内存,或者更快地分配内存。从垃圾回收角度看堆...原创 2020-07-22 20:44:44 · 137 阅读 · 0 评论 -
Java类加载和对象创建过程
类信息被放在了方法区中(jdk1.8之后的元空间)类加载过程什么是类加载java编译器会将java源码编译成.class文件,将.class文件加载到JVM中,变成JVM认识的内容的过程就是类加载的过程。这个过程由类加载器完成。(用户也可以自定义类加载器)什么时候启动类加载器类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它。如果在预先加载的过程中遇到了.class文件缺失或存在错误,类加载器必须在程序首次主动使用该类时才报告错.原创 2020-07-14 18:26:38 · 956 阅读 · 0 评论 -
Bean冲突解决方法
项目采用的是SpringBoot+SpringMVC+mybatis此处用来记录了项目中遇到的一些零零散散的问题1. Bean冲突问题Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name ‘shareServi...原创 2020-06-30 19:31:05 · 4691 阅读 · 0 评论 -
servlet与jsp跳转方法及问题
记录了一些自己在做项目的过程中遇到的问题和解决过程简介项目第一步注册与登录。项目采用的是SpringBoot+mybatis.登录注册页面是用jsp+servlet来写的。以下没有完整记录代码, 就是记录了一些关键步骤和知识点以及遇到的问题和解决方法。from表单提交到servletjsp页面中的信息需要通过表单提交给servlet来处理。下面看一下提交方法。创建一个servlet...原创 2020-04-10 13:42:29 · 6235 阅读 · 0 评论 -
策略者模式的实现实例----Java学习
策略者模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。使用场景: 1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 2、一个系统需要动态地在几种算法中选择一种。 3、如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件...原创 2020-04-01 13:31:09 · 545 阅读 · 0 评论 -
Java反射机制---Java学习笔记
Java中的很多框架设计都用到了Java的反射原理Spring 框架的 IOC(动态加载管理 Bean)创建对象以及 AOP(动态代理)功能都和反射有联系;JDBC 连接数据库时使用 Class.forName()通过反射加载数据库的驱动程序;在自己设计程序中的一些设计模式时,反射也很有用武之地参考内容Java基础之—反射(非常重要)Reflection:Java反射机制的应用场景...原创 2020-04-01 11:41:04 · 150 阅读 · 0 评论 -
Java多线程同步数据的方法
1. AtomicAtomic…系列的对象属于java.util.concurrent.atomic包在多线程程序中,能保证对该对象的操作的原子性,常用在需要做递增、递减操作的变量,如计数器。2.volatile能保证所修饰的变量的在并发状态下的可见性,但无法保证原子性。ps:可见性是指,多个线程之间,总能看到变量的最新值。原子性是,针对变量的读–改--写操作只有当所修饰的变量满...转载 2020-03-31 17:13:58 · 265 阅读 · 0 评论 -
悲观锁与乐观锁
本文转载自:乐观锁与悲观锁.md何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它...转载 2020-03-26 16:10:06 · 116 阅读 · 0 评论 -
Java基础学习笔记--String,equal()和==,static----Java学习笔记
基础知识1. String,StringBUffer和StringBuilder的区别可变性String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的,每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象StringBuff...原创 2020-03-18 15:00:40 · 176 阅读 · 0 评论 -
探秘JVM内存机制
引言在实际项目中,知道Java底层的内存机制对于编写出高性能的程序有很高的的助力。只有知道知道他是怎么工作的,才能优化出更好的算法是的程序更好的运行。同时,处理一些GC异常时,也要对内存机制有一定的了解。jdk1.8 & jdk1.6 前的内存划分【图源水印】【图源水印】堆堆由所有线程共用,用来存放存放对象实例。堆中有一个方法区,又叫永久区,用于存储已被虚拟机加载的类信息、...原创 2020-03-17 16:11:23 · 118 阅读 · 0 评论 -
线程池用法--Guava
1.前言高并发场景下不可避免需要使用多线程来处理任务,为了高性能的使用多线程,就需要用线程池来帮我们管理多个线程。简单介绍一下线程池的参数和用法,以及项目中的实例和优化建议。2.线程池参数解释引用:ThreadPoolExecutor线程池核心参数详解ThreadPoolExecutor与线程相关的几个成员变量是:keepAliveTime、allowCoreThreadTimeOut、p...原创 2020-02-17 18:13:38 · 6973 阅读 · 1 评论 -
Java8新特性---Java学习笔记
介绍Lambda 表达式 − Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引...原创 2019-09-27 19:07:24 · 233 阅读 · 1 评论 -
正则表达式---Java学习笔记
参考文档:Java正则表达式正则表达式常用正则表达式基本语法解释+号前的字符至少出现一次(1-n)*号前的字符可以出现任意多次(0-n)?号前的字符最多出现一次(0/1)^匹配开头,$匹配结尾\b 匹配一个单词边界,即字与空格间的位置。\B 非单词边界匹配。\d数字字符匹配。等效于 [0-9]。\D非数字字符匹配。等效于 [^0-9]。\s匹配空格符{n}确定匹配n次...原创 2019-08-23 15:46:40 · 121 阅读 · 0 评论 -
Optional与空指针---Java学习笔记
链接为Java 8 Optional 类的介绍https://www.runoob.com/java/java8-optional-class.htmlOptional 类主要解决的问题是(NullPointerException)用法类似List这样的普通对象容器,你可以把各种 类型的数据放在这个容器里,但是与普通容器不同的是,Optional容器里面不仅可以放对象,也可以为空。但是Opt...原创 2019-07-24 16:40:53 · 226 阅读 · 1 评论