Java
文章平均质量分 85
高冷小伙
这个作者很懒,什么都没留下…
展开
-
分布式锁详解
什么是锁?同步在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。同步的实现而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的线程结束同步代码块取消标记后再去尝试设置标记。这个标记可以理解为锁。锁的实现方式不同地方实现锁的方式也不原创 2022-02-26 15:33:11 · 335 阅读 · 0 评论 -
Java的四种引用类型
文章目录一文读懂java中的Reference和引用类型简介强引用Strong Reference软引用Soft Reference弱引用weak Reference虚引用PhantomReferenceReference和ReferenceQueue四大状态三个Queue/ListWeakHashMap总结(原作者)在看JVM的时候,发现Java引用类型反复出现;遂找了一篇总结博客来学习。一文读懂java中的Reference和引用类型一文读懂java中的Reference和引用类型简介ja转载 2022-01-09 10:00:13 · 19555 阅读 · 1 评论 -
MySQL索引背后的数据结构及算法思想
原文地址:http://blog.codinglabs.org/articles/theory-of-mysql-index.html虽然是2011年的文章,但写的超级好!!!强烈建议【认真阅读】!!!强烈建议【认真阅读】!!!强烈建议【认真阅读】!!!(重要的事说三遍)摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,.转载 2021-12-08 10:52:23 · 126 阅读 · 0 评论 -
Java实现人脸识别(各项目结构都有案例说明)
功能简述感觉人脸识别功能有点意思,就尝试写了一个小demo,然后将其整合到自己的项目中;下面是基于Java实现的人脸识别demo。功能流程调用摄像头获取图像判断是否为新用户然后就会跳转:下面会具体分析SDK这个人脸识别的功能是调用的第三方SDK,自己不会写~~。注册之后,可以免费使用100个应用;且适用于多平台,我这里是windows64位;下载后的SDK目录如下:里面有说明文档、jar包以及依赖文件和一个demo。JavaWeb版这里是官网给的JavaWeb版案例,我原创 2021-12-06 20:27:01 · 6247 阅读 · 6 评论 -
单例模式中的双重锁详解
双重检查public class SingletonExample { private volatile static SingletonExample singletonExample; public SingletonExample getInstance(){ if (singletonExample==null){ synchronized (SingletonExample.class){ if (singl原创 2021-11-28 12:15:28 · 5823 阅读 · 2 评论 -
Java集合详解
Java基础-集合1.Java集合框架 在介绍这张图之前,先来了解下Java集合的设计思路。1.1集合接口与实现分离 以队列这种常见的数据结构来说明Java是如何分离接口(implementation)与实现的。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dtClSZd4-1637386897478)(C:\Users\xiaog\AppData\Roaming\Typora\typora-user-images\image-2021112013192原创 2021-11-20 13:42:57 · 464 阅读 · 0 评论 -
Cookie与Session详解与区别
原文链接:https://www.cnblogs.com/l199616j/p/11195667.html在原文章的基础上略作改动;跳转会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1 Cooki转载 2021-11-13 19:11:25 · 127 阅读 · 0 评论 -
SpringBoot-自定义Starter启动器
1、新建springboot模块-(gao-springboot-starter-autoconfigure)结构如下: 新建HelloService自定义服务:package com.gao;/** * @description: * @author: XiaoGao * @time: 2021/10/10 14:14 */public class HelloService { HelloProperties helloProperties;原创 2021-11-13 16:01:08 · 623 阅读 · 0 评论 -
SpringBoot-自动配置原理详解
一、什么是自动装配SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot 在启动时会扫描外部引用 jar 包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到 Spring 容器(此处涉及到 JVM 类加载机制与 Spring 的容器知识),并执行类中定义的各种操作。对于外部 jar 来说,只需要按照 SpringBoot 定义的标准,就能将自己的功能装置进 SpringBoot。记住这个spring.factories文件,我们在下面自定义s转载 2021-11-13 16:00:35 · 273 阅读 · 0 评论 -
Redis基础知识入门
Redis基础知识入门一、Redis概述 Remote Dictionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)原创 2021-11-12 14:47:29 · 949 阅读 · 0 评论 -
JavaScript入门
JavaScript入门一、简介1.1 什么是JSJavaScript是一种轻量级的编程语言,可直接插入HTML页面;JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。1.2 JS的功能直接写入 HTML 输出流对事件的反应改变 HTML 内容/图像/样式验证输入1.3 JS的用法HTML 中的脚本必须位于 之间的 JavaScript 代码。JS代码可放在或标签中,两者都可;也可以外部导入:<script src="myScript.js">&原创 2021-11-12 14:03:56 · 85 阅读 · 0 评论 -
关于三方协议的说明
关于三方协议的说明原文链接https://mp.weixin.qq.com/s/u8uXdd15YEg5IRJ0WPFF5w秋招接近尾声,已经有许多同学陆续收到了offer。首先要恭喜这些同学,不管你是否喜欢这份工作,至少毕业之后的去向有了保障。 同时,学姐也提醒你:在处处是陷阱的社会里,三方就是你离开校园时遇到的第一个坑。转载 2021-11-04 11:13:47 · 444 阅读 · 0 评论 -
腾讯校招智力题-赛马问题-毒药与老鼠
秋招-智力题一、赛马问题1.1 问题描述64匹马,8个跑道,问最少比赛多少场,可以选出跑得最快的4匹马?Assumptions:每场比赛每个跑道只允许一匹马,且不存在并列情形1.2 解题思路答案:11场比赛一定能选出;10场在特殊情况可以。Step1:首先不可避免地要赛八场,每场8匹马;然后对每组第一再赛一场,按照每组的速度编号:A1 > A2 > A3 > ------- >A8B1 > B2 > B3 > ------- >B8~原创 2021-10-25 10:45:30 · 909 阅读 · 0 评论 -
SpringBoot整合Thymeleaf
SpringBoot整合Thymeleaf1.基本概念Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎。Spring官方支持的服务的渲染模板中,并不包含jsp。而是Thymeleaf和Freemarker等,而Thymeleaf与SpringMVC的视图技术,及SpringBoot的自动化配置集成非常完美,几乎没有任何成本,你只用关注Thymeleaf的语法即可。1.1 Thymeleaf的特点动静结合:Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美原创 2021-10-23 21:45:16 · 288 阅读 · 0 评论 -
项目提交到GitHub(全流程)
项目提交到GitHub(全流程)持续输出学习心得干货,欢迎关注收藏1.准备工作1.1创建Github账号账号肯定是必须要有滴~~ 官网跳转1.2安装Git工具下载链接 选择需要的版本进行下载即可,安装时直接默认“下一步”即可。不会的话可以参考这篇博客1.3本地创建SSH Key1.创建SSH Key。在用户主目录(C:\Users\Administrator)下,看看有没有.ssh文件,如果有,再看文件下有没有id_rsa和id_rsa.pub这两个文件原创 2021-10-13 20:23:41 · 992 阅读 · 0 评论 -
Equals()与hashcode()方法
Equals()与hashcode()方法一、equals()方法1.1equals方法与“==”方法的区别==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同==是指对内存地址进行比较 , equals()是对字符串的内容进行比较==指引用是否相同, equals()指的是值是否相同用下面这张图来简单描述下上述关系; 1.2equals()方法介绍对于我们自定义的类:User.javapu原创 2021-10-09 10:38:09 · 150 阅读 · 0 评论 -
Maven项目架构入门
Maven学习1.前言1.1约定大于配置目录目的${basedir}存放pom.xml和所有的子目录${basedir}/src/main/java项目的java源代码${basedir}/src/main/resources项目的资源,比如说property文件,springmvc.xml${basedir}/src/test/java项目的测试类,比如说Junit代码${basedir}/src/test/resources测试用的资源$原创 2021-09-19 20:59:54 · 183 阅读 · 0 评论 -
Equals()与hashcode()方法
Equals()与hashcode()方法一、 equals()方法1.1equals方法与“==”方法的区别==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变 量或实例所指向的内存空间的值是不是相同==是指对内存地址进行比较 , equals()是对字符串的内容进行比较==指引用是否相同, equals()指的是值是否相同用下面这张图来简单描述下上述关系:1.2equals()方法介绍对于我们自定义的类:User.javapublic class User原创 2021-09-16 13:09:17 · 267 阅读 · 1 评论 -
关于JVM类加载机制,看这一篇就够了(一)类加载机制
1.类加载机制1.1概述 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略让Java语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能开销,但是却为Java应用提供了极高的扩展性和灵活性。1.2类加载的时机 一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个原创 2021-08-30 17:06:02 · 200 阅读 · 0 评论 -
关于JVM类加载机制,看这一篇就够了(二)类加载器与Java模块化
3.类加载器 Java虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。3.1类加载器的性质类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远超类加载阶段。对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性原创 2021-08-30 15:49:25 · 164 阅读 · 1 评论 -
深入理解Java虚拟机-类文件结构
类文件结构1. 概述1.1语言无关性 各种不同平台的Java虚拟机,以及所有平台都统一支持的程序存储格式——字节码(Byte Code)是构成平台无关性的基石。但今天虚拟机还有另外一种中立特性——语言无关性正在越来越被开发者所重视。 实现语言无关性的基础仍然是虚拟机和字节码存储格式。Java虚拟机不与包括Java语言在内的任何程序语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集、符号表以及若干其他辅助信息。基于安全方面的考虑,《Ja原创 2021-08-24 14:27:56 · 135 阅读 · 1 评论 -
Spring MVC框架介绍&基本使用总结
1. 基本概念1.1 什么是SpringMVC所谓MVC,就是模型(Model),视图(View),控制器(Controller)。是一种软件设计规范。通过业务逻辑、数据、显示的方式来组织代码。模型(Model)视图(View)控制器(Controller)1.2 MVC的执行流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-89cKevik-1628728815225)(C:\Users\CoolGuy\AppData\Roaming\Typora\原创 2021-08-12 08:42:26 · 1501 阅读 · 1 评论 -
Mybatis持久层框架&MBG&Example类详解
Mybatis1. 概念1.1 什么是Mybatis是一个持久层框架;所谓持久层,也就是数据访问层。又称为DAL层,有时候也称为是持久层,其功能主要是负责数据库的访问。我的理解就是Mybaits就是优化Dao层的一个框架。1.2 优点2. Mybatis小程序2.1编写步骤0.导入jar包1.编写mybatis核心配置文件 1.1配置jdbc 1.2配置mapper???? <mappers> <mapper resource="原创 2021-08-10 09:25:04 · 629 阅读 · 0 评论 -
项目在本地部署运行中Bug整理
部署流程一些常见bug1.servlet包加载不出来这个错误遇到不止一次,几乎每次都会碰到;解决方法从tomcat的lib目录下导入servlet-api.jar包即可,注意要rebuild项目。2.‘Access denied for user ‘root’@‘localhost’ (using password: YES)’解决方法mysql> use mysql;mysql> update user set password=PASSWORD("root") wher原创 2021-06-21 00:39:15 · 150 阅读 · 1 评论 -
【Java】接口与内部类
引言接口接口(interface)这种技术主要用来描述类具有什么功能,并不给出每个功能的具体实现;与类的区别1.接口不是类,是对类的一组需求描述;2.可以把接口看成没有实域的抽象类;3.一个类可以实现多个接口,但只能扩展一个抽象类;接口的基本特性接口的基本格式:package Interface;public interface Eat { public static final int num = 0; public void Drink();}/**1.方法原创 2021-06-10 23:03:39 · 144 阅读 · 1 评论 -
【JAVASE】继承和接口(2)
引言今天是javase重新学习的第三天,昨天端午,心态有些懈怠知识点继承继承作为面向对象编程的三大特性之一,它的主要思想:共性抽取可以用super方法来访问父类【待练习完之后更新】接口接口的定义我们可以把接口理解为一种公共的规范标准。它是抽象方法的集合。接口与类的区别接口不能够实例化接口不是被类继承,而是被类实现 (implements)java8中的接口可以包含默认方法和静态方法接口支持多继承实现接口的类一般命名为*impl.java (软性要求)接口中的常量publ原创 2020-06-27 22:15:59 · 96 阅读 · 0 评论 -
【JavaWeb】Linux操作系统
写在前面第一个Java项目做的太拉跨,也因此耽误了不少时间;但也不是一无所获,毕竟这么长时间也踩了不少坑,算是一个好处。现在的打算就是学习完Linux,再回去练习练习redis等不了解的小案例,然后重整旗鼓;Linux操作系统...原创 2021-02-28 19:12:34 · 203 阅读 · 0 评论 -
【JavaSE】JDBC详解优化(21)
引言????因为之前学过Mysql的内容(虽然只记得基本操作了),所以就直接开始学JDBC吧;????距离开学还有34天,我还是没有准备好;知识点总结原创 2020-07-28 00:10:04 · 142 阅读 · 0 评论 -
【JavaSE】(20)
引言☞距开学还有35天,我还是没准备好;☞本来昨天从网上找了一个项目,在控制台操作的网上商城;自以为能很快做好,结果心态做崩了,淦;☞这个项目速度就先放慢点吧,争取在学完Mysql之前把它做完;☞【不亲自尝试一件事,就永远不能对它有个清楚的判断】...原创 2020-07-26 09:34:11 · 92 阅读 · 0 评论 -
【JavaSE】反射&注解&Junit(19)
引言函数式编程那一块没有去仔细了解,只是能看出来是什么意思,网上了解了一下,好像是代码优化的知识;打算以后碰到了再具体了解。我SE方面学的速度相对快一些,因为之前学过一遍,但是当时没有系统学习;所以这次重新学一遍的时候知识理解的就相对容易些;而且我没有打暑假工,所以时间相对的也充沛一些。距离开学还有38天,我还是没有准备好。读万卷书,不如行万里路;标题...原创 2020-07-24 10:49:36 · 105 阅读 · 0 评论 -
【JavaSE】文件上传案例详解优化(18)
引言????距离开学还有38天,我还是没有底气????我对体制内的人的刻板印象好像是表面朴素,暗地敛财手段层出不穷;案例概述我们假定C盘为我们的客户端硬盘位置,D盘为服务器端的硬盘;把C盘中的文件传输到D盘。初步实现文件上传客户端实现步骤1.创建一个Socket对象;2.使用本地字节输入流(FileInputStream),从本地读取文件;3.创建网络字节输出流(getOutputStream()),把文件传输到服务器;4.使用网络字节输入流(getInputStream),从服务器中原创 2020-07-23 08:43:05 · 188 阅读 · 0 评论 -
【JavaSE】网络编程(17)
引言????诸事静心即可, 毕竟不可能万事如意;????我早上起不来不是因为起不来,是因为喜欢回笼觉,淦;????距离开学还有39天,我还是没有底气去应对;????买基金涨了10%,果断卖了,不能贪心;知识点总结网络编程概念网络编程就是通过程序使得互联网中的两台设备之间进行数据传输。网络结构模式C/SClient/Server,指客户端对服务器;像我们平时用的QQ,Wechat,Alipay就是我们通过下载客户端来访问服务器,进行数据传输。B/SBrowser/Server,指浏览器原创 2020-07-22 22:48:48 · 244 阅读 · 2 评论 -
【JavaSE】IO流-各种流整理详解(16)
引言????知识点总结缓冲流BufferedStream,缓冲流;也被称作高效流,因为使用起来效率很高;高效的原因与之前的流不同,它底层有个专门用来存放数据的缓冲区;就好比快递小哥送快递,之前是用电瓶车送,一次只能送一件;现在换了三轮车,可以一次性拉很多快递;这就是用空间换时间。字节缓冲流使用步骤1.创建普通的文件输入输出流(FileInputStream);2.把文件输入输出流当参数传递到缓冲流中;3.调用write/read核心方法输入输出数据4.关闭流(输出数据时要flush(原创 2020-07-21 22:19:29 · 260 阅读 · 1 评论 -
【JavaSE】过滤器&IO流(15)
引言沉默的人往往有很大的梦;明知不可为,偏要为之;知识点总结过滤器IO流原创 2020-07-20 11:03:37 · 176 阅读 · 3 评论 -
【JavaSE】File类(14)
引言原创 2020-07-19 11:37:39 · 139 阅读 · 0 评论 -
【JavaSE】Lambda表达式(13)
引言Old,Young知识点总结Lambda表达式函数式编程思想与面向对象编程思想不同的是,函数式编程思想的中心思想是“做什么,而不是怎么做”;而面向对象编程无论做什么都要先创建一个对象;基于函数式编程的这一特性,Lambda表达式就因此诞生了。Lambda表达式的格式先以创建一个打印一句话的线程为例,来说明Lambda表达式。public class MyThread1{ public static void main(String[] args) { //用匿原创 2020-07-18 12:14:34 · 139 阅读 · 1 评论 -
【JavaSE】多线程Part2(12)
引言健身平台期来的有点早~知识点总结原创 2020-07-17 23:31:06 · 109 阅读 · 0 评论 -
【JavaSE】多线程Part1(11)
引言人类本质是懒惰的,要克服这种本性,‘奖励’再合适不过;知识点总结多线程基本概念1.并发与并行并发是指一个cpu同时执行多个任务,执行方式是【反复横跳.jpg】,只是切换速度很快;比如罗志祥的多人运动,罗志祥一个人做多件事;(????)并行是指多个cpu执行多个任务,比如考试的时候多人在同一时间段做多份卷子;2.进程与线程进程是指一个程序执行一次的全部过程,是动态的;从产生到存在,最后消亡。线程线程是进程中的一个执行单元;是一个进程中的众多执行路径之一。多线程的内存原理多线程原创 2020-07-16 23:11:00 · 131 阅读 · 1 评论 -
【JAVASE】异常(10)
引言1点了,在经历了激烈的思想斗争(边看剧边斗争)之后,还是决定锻炼锻炼身体,熬一次夜,把今天的肝完。知识点总结异常异常的定义异常,就是有异于常态,和正常情况不一样;在java中,组织当前方法或作用域的情况,称之为异常。异常的分类...原创 2020-07-15 19:42:03 · 91 阅读 · 1 评论 -
【JAVASE】泛型(9)
引言加油,奥里给!知识点总结泛型定义(Genericity)泛型是一种未知的数据类型,在我们不知道需要使用什么类型的时候可以考虑用泛型;使用泛型的优点避免了类型转换时候的麻烦;把运行期的异常转化到了编译期;缺点性能不太好;泛型用法泛型类结构修饰符 class 类名<泛型>{ ... }=====================================public class T1<E> { private E name原创 2020-07-12 17:57:18 · 200 阅读 · 1 评论