自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java伪共享

最近看《Java并发编程之美》,知识网经过重新梳理,清晰了很多,比如这里的伪共享问题就涉及到了操作系统的局部性原理。1、内存模型简单来说,Java内存模型是Java虚拟机规范中试图定义的一种屏蔽各个硬件平台和操作系统的内存访问差异的模型。从多线程的角度,可以把内存模型简化为:主内存和线程本地内存,线程可以把变量从主内存读取到本地内存中,然后在本地内存中读写,然后将改变结果写入到内存中。通常来说,现在都是多核CPU多线程,CPU的物理核数对应同时可以并行的线程数量(超线程技术使得实际并行线程数通常是物

2021-04-27 16:40:09 604

原创 Synchronized锁要点

Synchronized锁是JVM提供的一种悲观锁,即线程每次访问数据的时候都认为其它线程会修改数据,所以先获取锁,再访问数据;1、作用Synchronized锁很好的保证了多线程并发的安全性,Java多线程并发的三大特性都能通过Synchronized锁保证:1.1 原子性确保线程互斥的访问同步代码;1.2 可见性保证共享变量的修改能够及时可见,其实是通过Java内存模型中的 “对一个变量unlock操作之前,必须要同步到主内存中;如果对一个变量进行lock操作,则将会清空其它线程工作内存中此

2021-04-07 11:29:49 263 1

原创 Java泛型

泛型是java中的一种形式参数,可以理解为Java的一个语法,即“参数化类型”。1、为什么有泛型早期Java是使用Object来代表任意类型的,但是向下转型有强转的问题,这样程序就不太安全;且对于集合,把对象扔进集合中,集合是不知道元素的类型是什么的,仅仅知道是Object。因此在get()的时候,返回的是Object。外边获取该对象,还需要强制转换。使用泛型的好处1)增加代码可重用性;2)创建集合时就指定集合元素的类型,该集合只能保存其指定类型的元素,避免使用强制类型转换。2、泛型使用1)泛

2021-04-06 14:56:05 133

原创 static关键字

static的主要作用在于创建独立于具体对象的域变量或者方法。1、静态变量又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它。静态变量在内存中只存在一份。区分实例变量,每创建一个实例就会产生一个实例变量。 类变量随着类的加载而存在于方法区中。实例变量随着对象的建立而存在于堆内存中。类变量生命周期最长,随着类的消失而消失。实例变量生命周期随着对象的消失而消失。2、静态方法可通过“类.静态方法”调用;静态方法中只能调用静态方法或静态属性,如果想调用非静态方法或

2021-04-06 10:43:49 73

原创 抽象类和接口的区别

这个在面试过程中经常被问到,学习了很多帖子,总结如下1、abstract关键字1)修饰类此类不能实例化一定有构造器,便于子类调用我们开发时,都会提供抽象类的子类2)修饰方法只有方法声明,无方法体包含抽象方法的类一定是抽象类,抽象类中可以没有抽象方法若父类有抽象方法,则子类要么重写所有抽象方法,要么也是抽象类//有抽象方法的类必须声明为abstractpublic abstract class Test1{ //抽象方法不能有“{}” public abstract void

2021-04-06 10:06:05 69

原创 Java虚拟机之垃圾收集器与并发可达性分析

如果说垃圾收集算法是内存回收的方法论,那垃圾收集算法就是内存回收的实践者。以下是HotSpot虚拟机中的7个垃圾收集器,连线表示垃圾收集器可以配合使用。垃圾收集器语境下的一些概念。两个概念以下概念都是在垃圾收集语境下的串行和并行:描述的是垃圾收集器线程之间的关系。串行表示同一时间只有一条线程在进行垃圾回收;而并行表示的是同一时间有多条这样的线程在协同工作。通常默认用户线程是处于等待状态,即垃圾收集和用户线程不同时进行。并发:并发描述的是垃圾收集器线程与用户线程之间的关系,说明同一时间垃圾收集器和

2021-01-16 11:50:01 165

原创 Java虚拟机之垃圾回收算法

垃圾收集主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后就会消失,因此不需要对这三个区域进行垃圾回收。判断对象是否存活主要有引用计数法和可达性分析法,Java使用的是可达性分析法。1、引用计数法给对象添加一个引用计数器,每次被引用,计算器加一,引用失效,计算减一。当引用数为0时,表示对象不存活。但无法解决循环引用问题,当两个对象出现循环引用的情况下,此时计数器永远不为0。2、可达性分析以GC Roots对象为起点,向下搜索

2021-01-16 11:04:46 138

转载 彻底理解token,session,cookie

博客园链接

2020-12-08 17:06:40 89

转载 @Bean和@Component区别

前言  最近研究Springboot 源码的时候发现这两个注解比较常出现,但是放眼看去这两个注解好像功能都差不多,所以专门研究了一下: 注解作用@Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean。@Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。  两者对比相同点:两者的结果都是为spring容器...

2020-12-04 10:48:56 217

原创 @AutoWired自动装配详解以及为什么使用这个注解

一直知道@autowired是自动装配,如果一个类的属性在容器中存在,就自动装配。但是一直是表面知其然,不知道为啥要装配。感谢这篇文章的说明原文Spring是一个容器,里面保存了你所需要的对象和对象之间的依赖关系。当我们需要对象A时,不用从头开始new,只需要告诉Spring把A给我,Spring就会把对象A给你,即IOC。属性自动装配后,可以直接拿来用,而不用自己重新new...

2020-12-04 10:43:52 918

原创 突然报错package name does not correspond

我一看,哦,原来是package包名对不上,再一看,没有标记文件夹,对照包名com.fanjh.java将src标记为sources root即可。

2020-12-01 16:25:52 5943

转载 mysql索引原理及查询优化

原文章地址

2020-11-30 22:10:54 61

原创 SpringBoot整合mybatis详细过程

准备工作新建一个spring项目,记得勾选web、jdbc、mysql连接。pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.

2020-11-30 17:12:40 126

原创 SpringBoot整合web项目详细过程

最近开始跟着学SpringBoot,记录一下SpringBoot实现简单网站的CRUD,以便日后回顾。准备工作首先导入现有模板静态资源(可以网上找免费的):一般静态资源放在根目录下的static文件夹下。html文件放在template文件夹下,这里包括:登录页面index.html, 首页dashboard.html, 错误页面404.html, 员工管理页面list.html。项目目录截图编写java类(使用lombok插件)Empoyeepackage com.fanjh.po

2020-11-27 16:55:11 1775

转载 get请求和post请求的详细区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。   最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。   你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。   当你在面试中被问到这个问题,你的内心充满了自信和喜悦。...

2020-11-14 15:44:39 147

转载 Arcface C++ SDK 2.0二次开发(附代码注释)

环境: Win7+Visual Studio 2017 已配置 Opencv 3.4.4 在 VS2017 x64平台 Release下通过编译 一:下载C++ Demo 并配置 在虹软官网(https://www.arcsoft.com.cn/)下载Arcface C++De...

2020-11-12 21:42:56 646

原创 localhost:8080报错404

今天打开一个之前的springmvc项目,运行tomcat后找不到首页,报404。排错后发现此处少了web facet,添加上去即可。

2020-11-12 10:56:17 659

原创 ssm框架整合详细过程

最近又被push打工,框架整合拖拖拉拉看了好久,完成了书籍的增删改查,记录一下整个框架整合流程,也当作是复习巩固了。1.0 环境要求IDEAMySQL 5.7.19Tomcat 9Maven 3.61.1 数据库创建书籍数据库表,包括书籍编号,书籍名称,书籍数量以及书籍描述。CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` IN

2020-11-12 10:46:52 584 4

转载 指纹识别算法c++实现

指纹算法需求 指纹特征值生成、比对API库需求: 可输出指纹图像。图像格式为bmp,小于等于500DPI,不大于50K。可输出指纹模板。生成模板需要至少采集几次指纹需说明,建议不超过三次。模板大小不超过1K。模板生成时间不大于1秒。可输出指纹特征值(可以是非字符串格式)。特征值大小不超过512B。可输出指纹特征值字符串。字符串为可见字符,长度不超1024。指纹比对时,支持输入指纹特征值字符串比对。指纹比对时,支...

2020-11-11 09:13:56 3189 1

转载 类添加注解@RequestMapping报错404

类添加注解@RequestMapping报错404找了好久,方法上加@RequestMapping可以,如果类上加则报404。原链接为类添加了@RequestMapping注解后,运行报错404,路径不对,找了半天才发现原来是我的视图解析器的前缀没有写正确在WEB-INF前面少加了一个/,加上之后运行ok...

2020-11-10 09:07:06 672

原创 Spring整合Mybatis简单工程

最近又学完spring,很多东西有点混淆了,再次阶段性记录一下,以便日后回顾,查阅。导入依赖父工程中放一些公用的依赖,<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt

2020-10-26 16:14:16 109

原创 Mybatis简单工程

最近学完mybytis,记录一个简单的工程,从配置环境开始,以便日后查阅导入依赖这里是在父工程中(即创建的第一个maven项目,删除src目录,即自动变为父工程,后面的module会自动继承父工程)mysql驱动5.1.47mybatis3.5.2junit4.1.2log4j日志lombok:偷懒用,引用注解后可省去getter,setter等方法build中包含的是为了确保读到java文件夹下的xml和properties文件,resources下的文件可以被自动识别并读取<

2020-10-20 17:37:06 116 1

空空如也

空空如也

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

TA关注的人

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