自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (8)
  • 收藏
  • 关注

原创 通勤车油耗(算法题)

字节跳动在北京有 N 个工区,形成一个环状,Bytebus 是往返在各个工区的通勤车,按工区的顺序行驶,其中第 i 个工区有汽油 gas[i] 升。你有一辆油箱容量无限的 Bytebus,从第 i 个工区开往第 i+1 个工区需要消耗汽油 cost[i] 升。你从其中的一个工区出发,开始时油箱为空,可以使用当前工区的汽油 gas[i]升。如果你可以绕环路行驶一周,则返回出发时工区的编号,否则返回 -1。 输入:gas = [1,2,3,4,5] cost = [3,4,5,1,2] 输出:3 遇

2021-09-29 17:52:21 462

转载 Redis分布式锁相关

深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!_Java知音-CSDN博客

2021-09-24 17:54:49 124

原创 Spring容器启动主流程(SpringBoot)

肝了两个晚上,主流程梳理完毕,其他诸如循环依赖、ConfigurationClassPostProcessor、SpringMVC的流程图后边会继续肝附ProcessOn链接:Spring流程图 | ProcessOn免费在线作图,在线流程图,在线思维导图 |

2021-09-22 14:37:06 193

原创 并发编程-AQS抽象队列同步器详解

在并发编程的大军中,有两个阵营,一个就是synchronized内置关键字实现同步的阵营,另外一个就是这次要说的采用AQS框架实现同步的阵营,可以去juc并发包里去看看这些类的实现方式。那么什么是AQS呢?我理解的AQS其实就是维持了一个先进先出的FIFO队列,然后各种并发实现类继承AQS抽象类来实现同步操作,那么下面我们通过几个图来看一下AQS的机制 //同步标识位 private volatile int state; //获取标识位 protected fin

2021-09-17 13:43:33 202

原创 MySQL之MVCC多版本并发控制

首先MVCC是属于InnoDB用来保证事务的一种读取数据的机制,InnoDB读取数据的方式有两种,一种是快照读,一种是当前读,而MVCC就是快照读用来保证事务的机制。 在MySQL读取数据时可以按照是否使用一致性非锁定读来分为快照读和当前读:1、快照读:MySQL使用MVCC (Multiversion Concurrency Control)机制来保证被读取到数据的一致性,读取数据时不需要对数据进行加锁,且快照读不会被其他事物阻塞。2、当前读:也称锁定读(locking...

2021-09-06 16:54:36 94

原创 Sentinel网关流控页面显示不出来-排查

今天准备集成Sentinel+Gateway,做网关流控,引入了以下这么maven依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <de

2021-06-29 23:31:20 2812 3

原创 Java集合源码(一)ArrayList源码

首先,初始化一个ArrayList对象有四种情况1、List a = new ArrayList();2、List a = new ArrayList

2021-06-18 17:27:54 168

原创 Spring源码-ConfigurationClassPostProcessor的调用时序

最近看Spring源码的时候,发现了一个有意思的事情,记录一下ConfigurationClassPostProcessor作为注解流程中最核心的类,那么它的调用时序是怎样的呢?以 AnnotationConfigApplicationContext作为起点:/** * Create a new AnnotationConfigApplicationContext, deriving bean definitions * from the given component classes

2021-01-11 23:36:04 319 4

转载 docker搭建Zookeeper集群

一、前言在单台服务器上,部署三个docker容器,搭建zookeeper集群二、过程1.准备工作这里我使用的是docker来搭建zookeeper集群,所以必须提前准备好以下内容:安装docker拉取zookeeper镜像(这里我用的是3.4.10版本)docker pull zookeeper:3.4.102.开始搭建单个节点不能叫做集群,而两个节点也不好做集群,这里我创建了三个zookeeper节点来搭建集群(友情提示:最好是用奇数个节点做集群)(1)利用镜像启动三个zookeep

2021-01-04 18:05:18 676

原创 记录Spring-Cloud-Stream集成RocketMQ踩坑实录

一、引入jar包(跟随spring-cloud-alibaba-dependencies走)<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-stream-rocketmq</artifactId></dependency>二、确定版本截至到spring-cloud-alibaba

2020-12-31 11:07:20 1227 1

原创 JVM基础知识(七)- 静态分派和动态分派

Java 是一门面向对象的程序语言,因为Java 具备面向对象的3 个基本特征:继承、封装和多态。这三个特征并不是各自独立的,从一定角度上看,封装和继承几乎都是为多态而准备的,多态的体现主要表现在方法的调用上,而方法在调用时会根据你送入的参数有不同的表现形式,这个就是分派:1.编译期根据对象的静态类型进行静态分派。2.运行期根据对象的实际类型进行动态分派。那么我们都知道,方法的调用主要体现在对方法的重载和重写上,那么其实这里,静态分派对应的就是方法的重载,动态分派对应的是方法的调用。静.

2020-08-05 16:49:38 389

原创 JVM基础知识(六)-类加载机制和类加载器

类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构,那么负责将类加载到JVM内存空间的就是类加载器。类的生命周期 类的生命周期分为加载,验证,准备,解析,初始化,使用和销毁七个阶段,其中验证、准备、解析3 个部分统称为连接(Linking)。 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,...

2020-08-04 16:37:09 185

原创 JVM基础知识(五)- 三色标记

一、概念 JVM 中的垃圾回收是基于 标记-复制、标记-清除和标记-整理三种模式的,那么其中最重要的其实是如何标记,像Serial、Parallel这类的回收器,无论是单线程标记和多线程标记,其本质采用的是暂停用户线程进行全面标记的算法,这种算法的好处就是标记的很干净,而且实现简单,缺点就是标记时间相对很长,导致STW的时间很长。 那么后来就有了并发标记,适用于CMS和G1,并发标记的意思就是可以在不暂停用户线程的情况下对其进行标记,那么实现这种并发标记的算法就是三色标记法,...

2020-07-30 16:36:46 3540 9

原创 JVM基础知识(四)- 分代回收机制和垃圾回收算法

这次我们来讲讲垃圾回收,前边或多或少的都提及过垃圾回收的知识点,我们经常说的GC(Garbage Collection)就是垃圾回收,我们都知道JAVA都是由C++演化而来,那么JAVA和C++很重要的一点不同就是自动分配内存和自动回收内存,这两块已经不需要JAVA开发者来操心。但是GC对性能是有影响的,有时候会暂停所有的线程,触发STW(Stop the world),所以GC是把双刃剑。那么一般情况下,垃圾回收的重点是在堆区,栈区是随线程的消亡而消亡的,不需要垃圾回收器去管理,方法区虽说可以进行垃圾回收

2020-07-29 14:45:43 360 1

原创 JVM基础知识(三)- JVM对象创建及引用过程

  OK,前边有说过JVM的模块都有哪些,方法区、虚拟机栈、本地方法栈、程序计数器、还有我们下面要说的堆,那么到此时,这些模块还都是相互独立的,我们需要把这些模块都串联起来,这样才能更系统的了解JVM,这就是今天要说的对象的创建过程。 首先我们先看个图,然后根据图来阐述这个对象的创建过程: 类加载 首先就是类加载,类加载就是把class 加载到JVM 的运行时数据区的过程-->静态常量池转化成运行时常量池(类加载这个以后专门讲类加载器的时候再讲)。检...

2020-07-27 15:53:02 380

原创 JVM基础知识(二)

JAVA 方法的运行与虚拟机栈 一个java程序的执行意味着操作系统首先会为这个java程序分配一个线程,jvm同时会在内存空间中分配一个虚拟机栈来存储这个线程运行时所需的相关的数据,虚拟机栈的数据结构就是一个栈,因为它的先进后出的数据结构能够很好的阐述java方法运行的顺序。一个java程序的启动,其中肯定是包含了一个或者多个java方法,那么jvm就会在虚拟机栈中为每一个方法都分配一个栈帧,所谓栈帧就是存储了当前方法所需的数据内容的,也就是局部变量,类中的类变量是存储在方法区的。程序在执...

2020-07-23 16:14:34 162

原创 JVM基础知识(一)

什么是JVM JVM是JAVA语言的一个重要组成部分,它完成了JAVA体系中最底层的与内存,操作系统交互的工作,也是学习JAVA首先学习,也是最应该学习的部分,正是因为JVM的存在,才使得JAVA被称为平台无关性的跨平台语言,JVM全称Java Virtual Machine(Java虚拟机),所有的java程序都是基于jvm运行的,它可以将字节码文件编译成机器码执行。它将java程序和操作系统进行了隔离,jvm其实是一种规范,就像是java体系中的接口,有不同的方案可以基于这个接口...

2020-07-21 15:56:28 206

原创 并发编程-ThreadLocal解析

首先,在解析ThreadLocal之前,我们首先要知道这东西是个什么玩意儿,ThreadLocal类顾名思义可以理解为线程本地变量。也就是说如果定义了一个ThreadLocal,每个线程往这个ThreadLocal中读写是线程隔离,互相之间不会影响的。它提供了一种将可变数据通过每个线程有自己的独立副本从而实现线程封闭的机制。 下面,我来手写一个ThreadLocal的实现来理解一下它的原理:public class ThreadLocal<T>{ pr...

2020-06-30 16:53:46 149

原创 基于ECC和RSA算法生成PKCS10请求和解析

最近公司有个项目用,需要基于PKCS10证书请求生成证书,然后最近也是找了资料学习了一下,在此记录一下:1.首先是生成PKCS10证书请求:RSA:public static String genCSR() throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, Sign...

2019-06-17 10:56:14 5313 3

转载 使用spring cache和ehcache

一.spring cache Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有相同的返回结果。使用Spring Cache需...

2019-03-05 17:40:17 536

转载 关于Tomcat获取不到post请求的处理方法

之前项目用的是tomcat7.0.2x版本,还好好的。后来被调到别的项目去一段时间后,tomcat换成7.0.86了,结果就发现post的请求参数后台没法获取,但get请求却好好的。关于post请求参数无法被后台获取到的原因主要有两个:1.网上比较多是这个答案,常见的是使用ajax请求时设置了contentType: "application/json;charset=UTF-8",...

2018-11-02 13:23:06 2272

原创 关于低版本IE浏览器不支持placeholder的解决办法

因为要解决浏览器兼容问题,所以不得不用js方法解决: js代码:function clearSearchDefault() { var content = document.getElementById("appName").value; if(content == '请输入系统名称进行搜索...') { document.getElementB...

2018-09-12 10:10:22 337

原创 关于Could not transfer artifact (https://repo.maven.apache.org/maven2): Received fatal alert: protocol

最近突然发现,maven的中央仓库下载pom文件失败,报错是Could not transfer artifact (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_version -&gt; [Help 1],浏览器是能够访问的。其实就是中央仓库必须要TLS1.2版本才能访问,貌似是今年六月份刚改的,...

2018-07-30 15:16:55 30942 17

原创 关于消除浏览器强制保存密码的功能

最近由于公司保密要求的需要,在浏览器中输入密码时不能记住账号密码,查阅了一些资料和一些方法,发现都不能做到或者特别麻烦,现在记录下我写的js,主要也是领导大佬给了启发:1.input增加autocomplete="off"属性,这个在ie中是可以使用,但由于不是W3C标准,所以在谷歌和火狐中不好使2.现在才是正文:&lt;input class="iptUser" type="text" au...

2018-06-28 11:18:47 3215

原创 Redis创建启停服务以及设置开机自启动

在完成redis配置以及可以正常启停之后,我们需要将redis做成服务1.在redis根目录中找到utils文件夹,找到里边的redis_init_script文件,这个文件就是redis给咱们做的服务demo,我们可以略作修改其中的配置:#!/bin/sh## Simple Redis init.d script conceived to work on Linux systems

2018-01-24 14:56:34 1324

原创 JS实现登录后记住用户名

实现效果: 用户输入用户名密码,执行js方法后不管是刷新还是关闭浏览器重新打开,用户名信息都在,也可以保存任何你想保存的信息。 实现方法: js/jq实现;用到了window.localStorage保存用户登录信息。// 在点击登录时记录用户名信息function remeberUser(){ var storage = window.localStorage; sto

2017-12-27 11:25:56 3240

原创 利用长轮询实现模仿网页扫码登录逻辑生成验证随机数

扫码登录核心逻辑过程:1.页面首先向服务器请求一个URL地址+唯一随机数 2.服务器在数据库记录这条随机数 3.页面通过URL+随机数数据生成二维码,并持续询问服务器该随机数状态(PS:这是最关键的步骤) 4.手机通过扫描二维码访问服务器,服务器获得随机数参数,在数据库中将这条参数的状态进行更改 5.页面获得知服务器中该随机数状态变更后,进行登录长轮询:客户端向服务器发送Ajax请求,服务器

2017-11-17 17:19:12 2217

原创 关于Java多线程生产者消费者实例

实例题目:1.在一个KFC内,服务员负责生产食物,消费者负责消费食物;2.当生产到一定数量可以休息一下,直到消费完食物,再马上生产,一直循环 程序涉及到的内容:1.这设计到java模式思想:生产者消费者模式2.要保证操作对象的统一性,即消费者和服务者都是跟同一个KFC发生关系的,KFC只能new一次3.this.notifyAll();和 this.wait();一个是所有唤醒的意思,一个是让自己

2017-11-13 17:37:39 933

转载 Java多线程学习(吐血超详细总结)

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka        写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包的的线程池(Java并发编程与技术内幕:线程池深入理解),或者看这个专栏:Java

2017-11-09 16:50:24 190

转载 java反射机制的作用与优点

java的反射机制就是增加程序的灵活性,避免将程序写死到代码里,例如: 实例化一个 person()对象, 不使用反射, new person(); 如果想变成 实例化 其他类, 那么必须修改源代码,并重新编译。 使用反射: class.forName("person").newInstance(); 而且这个类描述可以写到配置文件中,如 **.xml, 这样如果想实例化其他类,只要

2017-09-06 17:15:09 8980

转载 WebService到底是什么?

一、序言  大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用?   当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是

2017-08-29 14:58:17 225

转载 Filter与Servlet的区别与联系

在我们写代码时,在web.xml中总能发现类似下面的代码:[html] view plain copyspan style="font-family:KaiTi_GB2312;font-size:18px;">span style="font-family:KaiTi_GB2312;font-size:18px;">xml version="

2017-08-24 17:38:03 264

转载 servlet-mapping与filter-mapping 的处理顺序

可以把它理解成在servlet处理过程中,普通servlet和过滤器谁先执行 答案是过滤器先执行:不管url-pattern的值一样或者不一样 这里有个通俗的例子: 到百度贴吧回答问题,这就是一个普通servlet要完成的工作(提交一个问题) 可是贴吧规定:用户未登陆不能回答问题,这就是过滤器的工作 想象以下,当我点击提交回答的时候,肯定是先要进行用户登陆的

2017-08-24 17:36:53 4200

原创 关于Ajax跨域提交时session丢失的问题

今天在工作中遇到了一个问题,就是当使用ajax和jsonp进行跨域时,每一服务器都会在cookie里set一个新的sessionId,会将原有的sessionId覆盖,也就是说客户端对于服务器来说始终处于未登录状态,我使用谷歌浏览器是没有问题的,但是IE有问题,在ie出问题的原因是浏览器中的cookie值在ajax跨域提交时没有带过去,就会造成服务器获取不到cookie中的sessionId,效果就

2017-08-24 17:25:46 2946

原创 java基础—— Collections.sort的两种用法,简单明了 。

转:http://blog.csdn.net/janronehoo/article/details/8746447/** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */   package com.jabberchina.test;    import java.util.

2017-08-16 17:15:39 291

原创 Java发布一个简单 webservice应用 并发送SOAP请求

首先搭建一个webservice的服务器,搭建成功后,运行项目,并访问 http://localhost:8080/service/SdicDataPort?wsdl“,得到如下wsdl文件,说明webservice发布成功: <?xml version="1.0" encoding="UTF-8" ?> - <!-- Published by JAX-WS RI at http://ja

2017-08-14 18:01:22 5911

原创 创建WebService服务器以及客户端调用

使用MyEclipse创建WebService简单服务端和客户端1.创建WebService服务端1.1新建一个 Web Service ProjectFile—New— Web Service Project 导入jar包:1.2创建一个普通的方法package test; public class FirstService { public String getModifyRec

2017-08-09 18:07:38 592

转载 JVM调优总结(一)-- 一些概念

数据类型    Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress

2017-07-31 15:28:21 142

原创 CAS客户端和服务端部署

cas

2017-06-22 09:17:23 1288

转载 jsp九大内置对象、四种作用域、跳转方式

转自:http://blog.csdn.net/guopengzhang/article/details/5469182jsp有四种属性范围: page -> 页面级别,显然只有在一个页面内可用。 request -> 请求级别 服务器跳转,一次请求之后消失。 session -> 会话级别 客户端跳转(服务器跳转),与浏览器有关,ie是在重新打开ie时才会不同。 appl

2017-05-25 17:10:39 325

SpringMVC四种映射方式实例代码

此包含了SpringMVC四种映射方式的代码实例,还有拦截器的实现

2018-07-16

Oauth客户端服务端搭建demo

里边是我做的基于oauth协议制作的demo,包括客户端和服务端的交互,核心代码,导入后可直接使用

2018-06-08

oauth核心jar包

oauth核心jar包,包括客户端和服务端。oauth2.resourceserver,oauth2.common,.oauth2.client,oauth2.authzserver

2018-06-08

saml协议所需jar包

里边是saml所需要的jar包,包括sp和idp端均可使用,核心jar包为open-saml

2018-06-08

模仿微信二维码扫描登录逻辑制作的随机数实例

通过常规ajax获取服务器生成的随机数,将随机数传入长轮询ajax获取服务器查询该随机数状态,超时则要重新生成随机数,模仿微信二维码扫描登录的逻辑

2017-11-17

WebService所需jar包

WebService所需jar包

2017-08-10

spring总结笔记

2017-04-26

航班查询和预定

(1)录入,录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) (2)查询,查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); (3)订票,可以订票,如果该航班有票,则输出座位号,如已经无票,则登记排队等候;已订票客户资料有姓名,证件号,订票数量及航班情况,订单要有编号,客户信息存储在链表中,并按姓名有序排列;未订上票客户信息放在队列中。 (4)退票:根据客户提供的情况(日期、航天班),办理退票手续,退票后查询该航班是否有人排队等候,按先登记先服务原则给等候者补票。 编写算法,并编程实现基本要求。

2013-07-08

空空如也

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

TA关注的人

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