自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 jwt + redis 登录

jwt + redis 登录在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token认证机制。Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一

2021-09-02 16:13:13 2435

原创 Elasticsearch安装教程

ElasticSearch Linux 安装下载安装确认是否安装好JDK,若没有JDK环境没有搭建完成,请先搭建JDK。进入到存放安装包的目录下,执行wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz在当前目录下解压tar -zxvf elasticsearch-6.6.0.tar.gz进入解压后的文件夹cd elasticsearch-6.6.0修改limits.

2021-01-28 10:45:40 306 2

原创 对象创建过程与内存分配

对象创建过程与内存分配对象创建主要流程类加载检查例如:虚拟机接到一个new User() 指令的时候,会先去检查User()这个符号引用是否在常量池中,并且检查User类是否已经被加载,如果没有,就必须先加载类。分配内存通过类加载检查之后,就会为new 出来的对象分配内存。划分内存的方法:​ ①指针碰撞​ ②空闲列表并发问题解决办法:​ ①CAS​ ②本地线程分配缓冲(Thread Local Allocation Buffer )初始化内存分配完成后,将分配到的

2020-11-09 16:54:28 324

原创 自定义类加载器及双亲委派机制验证

自定义类加载器项目结构准备一个User类和MyClassLoader类,项目结构如下MyClassLoader代码package com.cwf.resource.jvm;import java.io.FileInputStream;public class MyClassLoader extends ClassLoader { // 自定义加载路径 private String classPath; //构造方法,初始化加载路径 public MyClas

2020-10-12 23:41:24 137

原创 JVM类加载机制及源码分析

JVM类加载机制当我们运行某个类的main函数时,首先需要通过类加载器将主类加载到JVM中去。类加载过程加载在硬盘上找到对应的.class文件,并且通过IO 读入验证校验字节码文件的正确性准备给类的静态变量分配内存,并赋予默认值解析将符号引用替换为直接引用,该阶段会把一些静态方法(静态方法,例如main()方法,替换为指向数据所存内存的指针或句柄等(直接引用),这是所谓的静态链接过程(类加载期间完成),动态链接是在程序运行期间完成的将符号引用替换成直接引用)符号引用&直接引用

2020-10-10 23:39:13 470

原创 插入排序算法及其验证

插入排序算法插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。例如:我们需要对{9,0,2,3,8,4,7,5,6,1}进行排序经过第1次循环,temp=0,比较了1次,结果为[0, 9, 2, 3, 8, 4, 7, 5, 6, 1]经过第2次循环,temp=2,比较了1次,结果为[0, 2, 9, 3, 8, 4, 7,

2020-09-29 17:53:50 344

原创 选择排序算法及优化

选择排序算法选择排序算法的思路是:第一次将集合中最小的数挑选出来放在第一个位置,第二次将集合中最小的数挑选出来放在第二个位置,依此类推。例如:我们需要对{2,9,5,7,8,0,1,3,4,6}进行排序经过第1次循环最小位置是:5 结果是:[0, 9, 5, 7, 8, 2, 1, 3, 4, 6];经过第2次循环最小位置是:6 结果是:[0, 1, 5, 7, 8, 2, 9, 3, 4, 6];经过第3次循环最小位置是:5 结果是:[0, 1, 2, 7, 8, 5, 9, 3, 4,

2020-09-16 22:43:59 472

原创 IDEA 搭建springBoot项目

IDEA 搭建springBoot项目概念Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。优点容易上手,提升开发效率,为 Spring 开发提供一个更快、更广泛的入门体验。开箱即用,远离繁琐的配置。提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等。没有代码生成,也不需要XML配置。避免大

2020-09-09 18:07:29 272

原创 AOP系统日志

AOP系统日志本文介绍SSM项目中以自定义注解结合AOP形式实现系统日志功能的方式导入包在pom.xml文件中导入包,可以根据自己项目spring的版本选择合适的版本<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.3.7.RELEASE</spring.v

2020-08-13 18:20:38 633

原创 Java 生成二维码(及base64转换)

Java 生成二维码(及base64转换)本文主要是讲解java生成二维码且以base64的形式返回, 生成二维码的功能主要是依赖Google的zxing包 。导入zxing依赖以maven为例,在pom文件中导入依赖<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</ver

2020-07-23 16:58:48 6931 3

原创 List源码分析

List源码分析ListList 是继承Colection的接口 我们主要学习他的实现类 ArrayList 和 LinkedListArrayListArrayList是基于数组实现的 与数组不同的是 它可以存放不同的数据类型的数据而且长度不定// 我们分析一下他的底程实现 // 添加过程public boolean add(E e) {// add方法就是我往里面添加元素 ...

2019-05-03 15:43:51 240

原创 面向对象的特征

面向对象的特征封装封装: 将类的属性以及内部实现细节隐藏起来提高了 代码的安全性 控制访问权限 降低了耦合性具体实现过程: 将属性私有化 再对外提供访问的方法 提供一个无参构造方法class People { // 私有化属性 private String name; private int age; // 无参构造方法 public People() { }...

2019-05-02 00:47:13 114

原创 面向对象__类与对象

面向对象概念面向对象是相对于面向过程而言的, 具体的来说, 比如: 我们想要吃一顿午饭,我们亲自买菜,洗菜.切菜,炒菜,煮饭,这样做成一桌菜就叫面向过程,也就是说整个过程 你都亲自完成,而 面向对象呢?点外卖 点一桌子菜和米饭 不管他咋做出来的面向过程编程 就是 我们想要实现一个功能 直接去调用别人写好的功能代码 传入我们想要处理的数据 直接就得到我们想要的结果 这就是面向对象类和对象...

2019-05-02 00:01:18 105

原创 java二分法_详解

二分法-详解二分法原理二分法的前提是 有序比如 我们有一个数组{1,2,3,4,5,6,7,8.9} 我们要找 8;有什么思路呢?for 循环 然后一个个比较?虽然说这样也行 但是当我们这个数组特别大的时候代码执行的时间就会特别长 所以就有了二分的思想我们先拿8和我数组中间的数比较 也就是和5比较 8比5大 也就是说在整个数组中5之前都不可能有8(这也就是为什么二分法实现前提的一定是有序...

2019-04-22 22:55:43 4837 1

原创 冒泡排序_详解

冒泡排序 详解原理首先 我们有一个无序的数组 例如:int[] num = {5,6,8,4,1,7};我们把第一次要把最大的数排到整个数组的最后面 得到如下数组num = {5,6,4,1,7,8};具体实现原理就是 如果前面一个数比后面的大就交换两个数的位置5 和 6 比较 5小 位置不变 5,6,8,4,1,7再 6 和 8 比较...

2019-04-16 19:45:08 289

原创 java 数据类型及其转换

数据类型概念数据类型是一个值的集合作用更好的利用计算机的内存空间; 计算机的内存空间是有限的,如果所有数据占据的内存空间都是一样的,那么小的数据和大的数据就占据相同的内存空间,就造成了内存空间的浪费基本数据类型数字型整数类型byte 8位short 16位int 32位long 64位// 声明long类型数据时 要在数据后面加Llong a = ...

2019-04-09 09:38:52 125

原创 零基础学JAVA---1.JDK安装

JDK 安装##认识JDK1.JDKJDK 是整个JAVA的核心, 包含JRE,JAVA工具(编译器 调试器等),JAVA基础类库2.JREJRE 是JAVA的运行环境,包括了JVM和核心类库,文件支持3.JVMJAVA 虚拟机,运行编译后的.class文件JDK安装(1.8版本)下载适合自己电脑的版本(本文以1.8 64位版本为例)1.双击.exe文件运行安装程序2.点击...

2019-04-01 12:49:46 127

智慧农业前后端项目源码.zip

智慧农业前后端项目源码

2021-11-23

空空如也

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

TA关注的人

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