![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
鹜 骜
我不去想,是否能够成功 ,既然选择了远方 ,便只顾风雨兼程。
展开
-
Cannot find compatible factory for specified execution.target (=local)
注释掉pom文件里面的 provided,因为provided表明该包只在编译和测试的时候用的。原创 2021-05-20 20:46:42 · 236 阅读 · 0 评论 -
[Java]synchronized的实现方式 & synchronized与lock的区别
synchronized的实现方式在java语言中存在两种内建的synchronized语法:1、synchronized语句;2、synchronized方法。对于synchronized语句当Java源代码被javac编译成bytecode的时候,会在同步块的入口位置和退出位置分别插入monitorenter和monitorexit字节码指令。synchronized方法则会被翻译成普通的方法调用和返回指令如:invokevirtual、areturn指令,在VM字节码层面并没有任何特别的指令来实原创 2020-05-12 00:01:48 · 291 阅读 · 0 评论 -
[Java] Semaphore
Semaphore两个作用:1多个共享资源的互斥使用2并发线程数量的控制常用于限制可以访问某些资源的线程数量,例如通过 Semaphore 限流。方法:acquire()release()Semaphore中包含初始化时固定个数的许可,在进行操作的时候,需要先acquire获取到许可,才可以继续执行任务处理完成之后需要release释放。案例:public class Sem...原创 2020-05-05 16:43:11 · 163 阅读 · 0 评论 -
[Java]countDownLatch & CyclicBarrier
countDownLatch使一个线程等待其他线程各自执行完毕后再执行。concurrent包里面的CountDownLatch其实可以把它看作一个计数器计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕用途:public class CDText { public static void main(String[] ...原创 2020-05-05 15:19:04 · 159 阅读 · 0 评论 -
[Java] 关于集合类的线程安全问题
前言:集合类学过也用过,知道ArrayList,HashSet,HashMap线程是不安全的,但是我们在平常使用过程中,并没有发现哪里有问题。下面就说说为什么这些常用集合类是线程不安全的。在前面java学习中,很多情况下只是用到了main线程,没用加入并发,而在并发环境下ListList<String> list = new ArrayList<>(); ...原创 2020-05-04 16:30:50 · 395 阅读 · 0 评论 -
[Java] volatile 详详解!
前言:要真正搞懂volatile的特性需要与JMM对比来看JMM(线程安全的保证)JMM:JAVA内存模型(java memory model) 是一种抽象概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(实例字段,静态字段和构成数组对象的元素)的访问方式。JMM关于同步的规定线程解锁前,必须把共享变量的值刷新回主内存;线程加锁前,必须读取主内存的最...原创 2020-05-03 17:20:47 · 4969 阅读 · 1 评论 -
[Java] 锁
一谈线程就谈锁面试官:锁有了解过?悲观锁乐观锁:具体点呢?GG开始补吧乐观锁每次去拿数据的时候都认为别人(其他线程)不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。乐观锁适用于多读的应用类型,这样可以提高吞吐量实现方式:CAS乐观锁缺点:悲观锁每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻...原创 2020-04-30 13:41:10 · 247 阅读 · 0 评论 -
CurrentHashMap
由于HashMap是线程不同步的,虽然处理数据的效率高,但是在多线程的情况下存在着安全问题,因此设计了CurrentHashMap来解决多线程安全问题。HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出...原创 2020-04-17 13:09:07 · 618 阅读 · 0 评论 -
快速排序代码
public static void quickSort(int[] arr,int low,int high){ int i,j,temp,t; if(low>high){ return; } i=low; j=high; //temp就是基准位 tem...原创 2019-12-10 23:14:27 · 2856 阅读 · 0 评论 -
HashMap的结构以及核心源码分析
文章目录一、HashMap简介1、特点2、结构二、HashMap源码分析1、核心成员变量2、HashMap常量3、构造函数4、设计到的数据结构5、HashMap的常用方法(put、get) (1)put方法三、HashMap为什么要改进使用红黑树一、HashMap简介HashMap是开发中使用频率最高的用于映射(键值对)处理的数据结构,而在JDK1.8中HashMap采用位桶数组+链表+红黑树...原创 2019-12-04 18:55:21 · 246 阅读 · 0 评论 -
mybatis核心构建
MyBatis的主要的核心部件有以下几个:SqlSession 作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能Executor MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护StatementHandler 封装了JDBC Statement操作,负责对J...原创 2019-12-03 16:28:21 · 149 阅读 · 0 评论 -
Mybatis中resultMap和resultType区别
MyBatis 将配置文件中的每一个mapper 节点抽象为一个 Mapper 接口,而这个接口中声明的方法和跟 节点中的<select|update|delete|insert> 节点项对应,即<select|update|delete|insert> 节点的id值为Mapper 接口中的方法名称。resultType当使用resultType做SQL语句返回结果类型...原创 2019-12-03 15:56:44 · 253 阅读 · 0 评论 -
servlet生命周期
首先加载servlet的class,实例化servlet,然后初始化servlet调用init()的方法,接着调用服务的service的方法处理doGet和doPost方法,最后是我的还有容器关闭时候调用destroy 销毁方法。1.被创建:执行init方法,只执行一次Servlet什么时候被创建?默认情况下,第一次被访问时,Servlet被创建,然后执行init方法;可以配置执行Serv...原创 2019-12-03 00:09:48 · 100 阅读 · 0 评论 -
理解mybatis的一二级缓存
一级缓存是基于sqlSession默认开启,在操作数据库时需要构造SqlSession对象,在对象中有一个HashMap用于存储缓存数据。不同的SqlSession之间的缓存数据区域是互相不影响的。一级缓存的作用域是SqlSession范围的,当在同一个sqlSession中执行两次相同的sql语句时,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次查询时会从缓存中获取数据,不再...原创 2019-12-02 23:50:30 · 224 阅读 · 0 评论 -
JKD1.8ArrayList源码分析
ArrayList简介ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功...转载 2019-12-02 23:34:25 · 97 阅读 · 0 评论 -
java,javac,javadoc,jar命令区别
java用来运行一个.class文件javac用来把.java文件编译为.class文件javadoc命令是用来生成自己API文档的。它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。jar是随 JDK 安装的,在 JDK 安装目录下的 bin。...原创 2019-11-23 17:19:40 · 600 阅读 · 0 评论 -
spring七大核心模块
核心容器(Spring core)核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。BeanFactory使用依赖注入的方式提供给组件依赖。Spring面...原创 2019-11-16 21:37:03 · 1370 阅读 · 0 评论 -
linux操作系统下使用docker部署Javaweb项目
步骤:一:开启sql远程访问权限1启动mysql2进入docker mysqlCONTAINER ID在每个人linux中不一样docker exec -it CONTAINER ID /bin/bash3.进入到mysqlmysql -uroot -proot4.授权password是自己的mysql密码grant all privileges on *.* to ...原创 2019-11-16 12:36:01 · 1558 阅读 · 2 评论 -
40分钟手搓从数据库到前端页面(附完整代码)
搬砖工具IDEA,MySQL文章目录建表引入jar包src实体类接口servicescontrollerresourcesuserinfo.xmlmybats-config.xmlspring.xmlwebindex.jspsave.jspuser.jsp部署tomcat建表引入jar包<?xml version="1.0" encoding="UTF-8"?><p...原创 2019-11-13 12:05:17 · 2043 阅读 · 1 评论 -
Mybatis
Mybatis框架简介ORM框架实体类和SQL语句之间建立映射关系特点基于SQL语法,简单易学能了解底层封装过程SQL语句封装在配置文件中,便于统一管理与维护,降低程序的耦合度方便程序代码调试搭建框架下载mybatis-3.2.2.jar包并导入工程编写核心配置文件编写MyBatis核心配置文件(configuration.xml)编写sql映射文件创建实体类-POJO...原创 2019-10-24 16:32:51 · 113 阅读 · 0 评论 -
C/S结构与B/S结构区别
C/S结构即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种 结构下,用户界...原创 2019-10-24 09:40:37 · 310 阅读 · 0 评论 -
java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented
解决方法:数据库表中有奇怪的值,将之删除在链接数据库配置信息中将url修改"jdbc:mysql://localhost:3306/databaseName?zeroDateTimeBehavior=convertToNull"原创 2019-11-17 21:46:08 · 99 阅读 · 0 评论 -
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @Context
问题描述:在springBoottest测试类中出现解决方案:包名不一致,修改包名即可解决原创 2019-11-15 10:48:23 · 118 阅读 · 0 评论 -
JAVA学习总结 流程控制
三种流程控制语句顺序结构1、从上到下依次执行public class OrderDemo { public static void main(String[] args) { System.out.println(1); System.out.println(2); System.out.println(3); }}顺序...原创 2019-08-21 18:58:42 · 147 阅读 · 0 评论 -
JAVA学习总结 java基本语法和运算符
关键字与保留字定义:被java语言赋予了特殊含义,用作专门的用途的字符串(单词)特点:关键字中所有的字母都为小写保留字:现有java版本尚未使用,但以后可能会作为关键字使用goto,const,自己命名标识符时要避免使用。标识符规则:1)java对各种变量,方法和类等要素命名时使用的字符称为标识符HelloWorld2)规则:3)数字不可开头4)由26个英文字母大小写,0到9,_...原创 2019-08-13 18:58:09 · 127 阅读 · 0 评论 -
JAVA学习总结 语言概述
JAVA基础学习程序完成目标和解决问题而用计算机语言编写的命令序列的集合javaJRE运行环境javaSE基础javaEE企业级javaM嵌入式JavaJDK开发工具包 提供类库 jdk包括jre配置环境变量配置为开发环境Path指定操作系统的可执行指令的路径Classpath按指定目录顺序查找这个类.Class文件 字节码文件程序运行步骤编写 编译(.class文件)...原创 2019-08-12 18:45:05 · 113 阅读 · 0 评论 -
嵌套循环习题
使用java二重循环打印各种图案总结:外层循环控制行数,是固定的,内层循环控制每行的输出情况,注意写内层循环的满足条件时,要找到每层输出的图形数和外层循环的关系,肯定存在一定的关系,要么是总和一定,要么是存在某种数学关系。举几个例子如下:使用java打印直角三角形、倒直角三角形、等腰三角形、平行四边形、矩形、实心菱形、四种九九乘法表:import java.util.Scanner;impo...原创 2019-08-21 19:08:53 · 315 阅读 · 0 评论 -
JAVA学习总结 数组
数组数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。数组既可以存储基本数据类型,也可以存储引用数据类型。语法格式:格式1: 数据类型[] 数组名=new 数据类型[数据长度];格式2: 数据类型 数组名[]=new 数据类型[数据长度]; /*举例: int[] a; 定义了一个int类型的数组a; int a[]; 定义了一个int类型的a数组; 推...原创 2019-08-21 19:51:34 · 101 阅读 · 0 评论 -
JAVA学习总结 构造器
英文:construct or:构造 者构造器也叫构造方法(但不是通常所说的方法),他是类的第三个成员。任何一个类都有构造器构造器的作用:1.用来创建对象: 类名 实例化对象=new 构造器();2.初始化对象的属性构造器的说明:1.如果没有显示的定义类的构造器的话,则系统默认提供一个空参的构造器2.定义构造器的格式:权限修饰符 类名(形参列表){}3.一个类中定义的多个构造器...原创 2019-09-04 19:14:11 · 113 阅读 · 0 评论 -
JAVA学习总结 面向对象三大特征
面向对象三大特征:封装,继承,多态文章目录封装继承方法重写super关键字this关键字多态static关键字封装将属性或方法声明为私有private 就针对属性或方法体现了封装性封装性的设计思想:把该暴露的暴露出来,把该隐藏的隐藏起来封装性的体现:将类的属性私有化(private)同时提供公共方法来获取(get方法)和设置(set方法)不对外暴露私有的属性方法;通过写set方法内部结构...原创 2019-09-04 20:02:40 · 107 阅读 · 0 评论 -
JAVA学习总结 异常
概述输入数据的格式,读取文件是否存在,网络中断等情况。异常:在java语言中,将程序执行中发生的不正常情况称为异常。常见异常Error:java虚拟机无法解决的严重问题。Exception:编程错误或外在因素导致一般性问题编译时异常(checked)运行时异常(unchecked)捕获错误要在在编译期间,但有些错误只要在运行时才发生异常处理机制要在可能出现错误的地方加上检测的代...原创 2019-09-04 20:04:34 · 77 阅读 · 0 评论 -
I/O关于相对路径和绝对路径引发的FileNotFoundException(系统找不到指定的文件。)
关于相对路径和绝对路径引发的FileNotFoundException(系统找不到指定的文件。)文章目录只看总结今天在学习I/O流时,FileReader读入数据基本操作时。碰到了创建File文件后,实例化File类对象后,并提供数据流时遇到报错java.io.FileNotFoundException:(系统找不到指定的文件。)反复对比视频和自己写的代码但并没有发现问题,最后发现,视频创...原创 2019-09-11 14:23:18 · 1779 阅读 · 0 评论 -
JAVA学习总结 面向对象介绍
面向对象(java)和面向过程(c)区别面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。面向对就是高度实物抽象化、面向过程是自顶向下的编程对象是用来描述客观事物的一个实体类:具有相同属性和方法的一组对象的集合。...原创 2019-08-25 17:01:29 · 130 阅读 · 0 评论