自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring的StringUtils的isEmpty实现

开发的时候遇到一个问题,有个先用StringUtils.isEmpty判断是否为空,然后不为空则进行subString,结果报indexOutOfBoundsException,数组下标越界。原因是使用Stringutils.isEmpty判断StringBuilder是否为空时,无法判断StringBuilder是否为空串"",我查看源码分析了一下,下面是Spring的StringUtils...

2020-01-17 09:12:04 4035 2

原创 Restful接口命名实践探索

文章目录1、 使用pathVariable进行层级限定2、复数还是单数3、分页怎么表示RequestMethod表示什么动作的我们就不说了,那种太简单,网上一堆,我们说说动作以外的问题1、 使用pathVariable进行层级限定当限定为某个单个资源时,id使用pathVariable来传递,而不是requestParam的方式,也就是通过url来传递id参数,而不是通过get或者post的...

2019-04-21 20:15:56 679

原创 加密算法、公钥、私钥、数字签名与CA

文章目录一、对称加密算法二、非对称加密算法1、RSA算法1.1、双向加解密的各自用途1.2、可逆与不可逆1.3、RSA秘钥长度三、数字签名四、CA1、为什么需要CA2、如何从CA获取A的证书3、安装证书四、消失的U盾五、参考文章:一、对称加密算法  秘钥、可逆、逆算法  一开始加解密过程,都是对称加密算法,对称的意思是加密和解密是相反(对称)的过程。  我们假设A希望从B处通过加密得到一串...

2019-04-09 20:41:13 3590 2

原创 Spring Security前置知识3--Cookie与Web Storage

文章目录一、概述二、Cookie产生背景三、Cookie值在哪里设置四、Cookie有哪些属性五、Cookie存储在哪里六、Cookie如何传到后台七、后台如何处理Cookie八、Cookie存储空间与数量的限制九、Web本地存储(Web Storage)1、Web Storage的产生2、Web Storage简单介绍3、Web Storage的问题4、LocalStorage用于存储Jwt T...

2019-03-28 22:20:01 3217 1

原创 Spring Security前置知识2--域与跨域

文章目录一、结论二、什么是域 Domain三、什么是域名1、如何划分域2、域名与hostname四、跨域1、什么是源,什么是跨源(域)1)一次跨域过程的跟踪2、同源策略 (SOP Same Origin Policy)1)什么是同源策略2)为什么需要同源策略3)如何控制同源策略a) CORS五、如何解决跨域1、CORS2、JSONP1)为什么叫做JSONP2)CORS与JSONP对比3、PostM...

2019-03-28 19:32:19 609 1

原创 Spring Security前置知识1--Session与Http请求的状态化

文章目录一、Http协议的无状态性与Http请求的有状态化需求二、会话1、如何维持会话2、什么时候创建会话3、是否有sessionId就一定意味着用户已经登录4、如何判断用户已经登录5、session如何计算过期6、谁来将sessionId发往客户端7、谁来将sessionId发往后端8、我们需要在哪些地方控制session9、Session共享问题9.1、不同应用间的Session共享问题9.2...

2019-03-17 21:31:27 488 1

原创 Java使用栈实现四则运算

使用Java的栈实现四则运算package com.example.demo;import java.util.HashMap;import java.util.Map;import java.util.Stack;public class StackCalc { // 计算符号的权重 private static Map<String, Integer>...

2018-12-12 22:32:21 2764 3

原创 Eureka--4、使用Peer实现Eureka Server高可用

单独的Eureka Server仍然可以保持很高的弹性因为客户端本地也会存有一份服务的map,所以即使所有的注册中心全部挂掉,也不影响client的相互访问。并且会在注册中心可用的情况下第一时间进行通信,同步数据。即使只有一个Eureka Server,也可以让系统又比较高的弹性。但是对于大型项目,天生就要求有多个Zone的存在。每个Zone中又会有至少一个Eureka Server。...

2018-08-16 00:36:16 2692

原创 Eureka--3、高可用注册中心的第一步,通过defaultZone深入理解zone和serviceUrl

defaultZone与serviceUrl的获取我们平时都是用defaultZone,这个defaultZone到底是什么,为什么一定要用defaultZone,换个别的行不行。网上很多文章都是入门的,不会讲到这一点。 default-zone != defaultZone我是用idea来写application.yml,里面对于属性的提示值不是采用骆驼命名法,而是使用短横线"-...

2018-08-16 00:06:01 88039 11

原创 Eureka--2、第一个Eureka程序,Eureka Client的自启动原理和简要过程

在之前的Spring Cloud Config的基础上,搭建简单的Eureka Server没有代码,很多试验做不起来,我们先创建个Eureka Server再说。本篇主要讲如何创建Eureka Server和Eureka Client,还有个重点是通过源码分析Eureka Client是如何自动启动的。 创建Eureka Server1、通过idea创建Eureka Serv...

2018-08-14 21:49:19 12826

原创 Eureka--1、初识Eureka

Eureka用于Spring Cloud中的服务注册与发现 什么叫服务注册与发现使用一个专门的服务注册中心,将所有的应用全部注册到注册中心,形成一个map,所有应用需要和外系统进行交换的时候,用服务的“唯一标识ID”去注册中心获取服务的信息进行调用。 为什么要有注册中心,注册中心的作用1、统一管理不需要每个项目都维护一套map了,由中心来做维护和同步,服务使用者直接使用...

2018-08-14 20:14:11 650

原创 spring cloud config--基于JDBC数据库配置

Spring Cloud ConfigSpring Cloud Config为分布式系统中的外部配置提供服务端和客户端支持,所谓的服务端是用一台,或者一组(为实现高可用)机器实现从某个固定的地方,默认是git,也可以是其它版本控制工具如SVN,文件服务器,或者JDBC等源头获取配置信息。然后给多个客户端使用,做到统一配置。一、先动手,创建Spring Cloud Config Server...

2018-08-05 20:24:32 10185 1

原创 使用命令行编译、运行Java程序

我们一般都是通过IDE(如Eclipse、Intellij Idea,MyEclipse、STS可以归到Eclipse里)来开发,调试java项目。在不借助IDE的情况下,如何编译、运行Java程序。使用javac 命令,可以通过只敲击javac 看到各种命令参数。必学参数 -d -cp,这俩下面会讲到如果javac命令不能用,看一下环境变量是否没配对。我们从简单到复杂来看ja...

2018-07-08 19:12:21 40802 10

原创 计算机编码--4.从ANSI到Unicode再到UTF-8

这标题有点又把ANSI当成一种编码的感觉了。应该这样说,从ANSI的不同国家和地区的不同编码标准,到Unicode的统一所有编码。产生背景:在ANSI的标准里,英文操作系统ASCII,简体中文GBK,日文JIS等等,感觉有点像哪里出事就搞哪里,这其实也是软件开发的低等阶段--只增加不重构,复制粘贴改名字。由于ANSI的实现太多,不同 ANSI 编码之间互不兼容,当信息在国际间交流时,...

2018-07-07 17:04:13 346

原创 计算机编码--2.ASCII与ANSI、ASCII扩展与IOS-8859-1

本来想把所有编码写在一起的,无奈每一种编码的知识其实都蛮多的,并且越往后面你的越多,分开写。编码与解码的定义:狭义的:我们要和计算机打交道,必须把人类社会的语言符号和机器中的语言(01)对应起来。将人类设备的语言转变为计算机语言的过程叫做编码,反过来叫做解码。广义的:在不同的表达格式上进行的转换,向“自身表达格式”转换的过程称为解码,向"对端表达格式"转换的过程称为编码。...

2018-07-07 15:54:16 1469

原创 计算机编码--3.GB2312与GBK

计算机信息技术继续传播,到了亚洲,遇到了汉字这个大坎。GBK的产生:汉字的输入首先,汉字和英语有很大的不同,英语可以直接通过键盘敲出来,键盘上敲个a就是a,敲b就是b,就算不是正确的单词,至少是一串字。汉语必须正确拼音才可以,并且一个音有多个音调,一个音调有多个汉字,一个汉字还有简体繁体区分,后来还有火星文,表情符号了解一下?需要借助一种叫做输入法的软件,来对键盘输入进行转换-选择-...

2018-07-01 23:27:08 2152

原创 Integer.MIN_VALUE和Integer.MAX_VALUE

先去看原码、反码和补码那一篇。java源代码:Integer.MAX_VALUE经常会在集合中用到,对这个概念一直没有深究过,查看一下源码。一个常数,持有了int类型数最小值,-2^31次方,-2147483648。负21亿多。/*** A constant holding the minimum value an {@code int} can* have, -2<...

2018-06-16 12:00:23 22503

原创 原码、反码和补码

在想看Java中的Integer.MAX_VALUE和Integer.MIN_VALUE的值的时候,看到这个这方面的知识,学习了一下,做个记录。原码二进制的原生表示方法,为了表示正负,使用第一位来表示正负,1表示为负数,0表示为正数特点:1、占用了一位数,假设计算机只有8位,那么只剩下7位用来表示数字所以8位二进制源码的取值范围为-127~127,总共255个数,有两个0,+0...

2018-06-16 11:06:29 453

原创 PriorityQueue--优先队列源码解读(jdk1.8)

特点:1、无边界的优先队列,间接实现自Queue会有一个内部的capacitty,这个capacity初始值为11,这个值会自动增长2、传入元素必须实现Comparable接口,或者通过带有Comparator的比较器的构造函数来定义,两者必须任选其一。如果既有Comparator传进去,元素又实现了Comparable接口,优先Comparator。3、线程不安全,多线程程序,应该使用Prior...

2018-06-14 20:15:15 974 1

原创 基数排序--递归的计数排序

介绍:RadixSort另外一种非比较排序算法,基于计数排序(或者说桶排序)进行排序,也可以达到O(n)的复杂度。思路:计数排序==&gt;桶排序达到O(n)的情况,要求桶中只有一个元素,或者只有相同的元素。这种如果数据的值跨度过大,或者过于离散,所需要的很多,因为中间的空的数字也会占桶的,导致空间浪费很多。基数排序很好了解决了这个问题,原始的思路不好推演,我们使用网上其它文章的扑克牌例子:假设想...

2018-06-12 22:43:10 609

原创 桶排序与计数排序--非比较排序算法1

算法介绍:BucketSort这个算法,提出的时候虽然很简单,但是满有意思的。非比较性的排序算法,也不知道大佬们怎么想到的,利用了数组下标的天然有序性,将元素作为新数组的下标放入新数组,然后循环输出新数组即可实现排序。简单而特殊的桶排序:假设一组数{3, 8 ,5, 8 ,4 ,2 ,7},我们可以准备一个新数组,将这个数组的值,作为另一个数组的下标。循环原数组,将值一个个的丢到对应的下标中,丢一...

2018-06-10 17:43:36 519

原创 排序算法总结一,简单排序算法

其中,简单的排序算法有:简单选择排序,冒泡排序,直接插入排序 从简单到复杂逐个简述,详细的论述及实现请看各自的文章 几种简单排序,算法的思路都很直接,复杂度都是n^2,我们假设是升序排序来描述 直接插入排序: 从第二个数开始,将每个数,插入前面已排好数的合适的位置。通过轮询找到合适的位置,该位置以及之后的数全部往后移动一位,将当前位置的数放到目标位置去,叫做插入排序。 由于前面的数组有序...

2018-06-08 22:44:21 198

原创 快速排序--QuickSort,看完自己就能写出来的快排思路推演

QuickSort 首先发明者并没有给自己发明的算法叫做QuickSort,起这个名字也太托大了,是后来大家用的时候发现这个很快,才叫做QuickSort 工业上用的最多的排序方式 思路是,假设一个数组,我们可以用一种办法分成小数块和大数块,然后递归继续分成小数块和大数块,最后每一块都只有1个(或者0个)的时候,排序就完成了为什么快速排序是冒泡排序的改进版? 这是个结论,或者说是事实,...

2018-06-05 22:38:48 5259 4

原创 冒泡排序--简单排序

Bubble Sort 很简单的思路,两两比较,将较大值移动到后面,然后继续比下去,这样一轮之后最大值就到最后了。然后取前面的数,继续比较。1、和简单选择排序同样的两层循环,外层循环控制次数,次数为length - 1,因为最后一个数不需要比较。 2、内层循环依次进行两两比较,并将较大值移往后面,这样一轮循环之后最大值到了最后一位 3、优化一:往前渐进,已经放到最后的就不用再比较了,每次...

2018-06-02 19:11:29 259

原创 堆排序--高级选择排序

堆排序是选择排序的一种,是简单选择排序的升级版,是效率最高的排序方法 先从二叉树开始补习。堆: heap 百度百科: 堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 堆一定要一定程度的有序大根堆/最大堆: 所有节点都比其左右子节...

2018-05-31 22:07:12 277

原创 插入排序--简单插入排序+二分插入排序

假设我们手里的数字是一堆乱序扑克牌,我们想把它整理成从小到大的排序,会怎么办呢,我们会从左往右挨个将牌抽出来插到它合适的位置,这样一轮之后,就变成从小到大的顺序了。程序上怎么实现,从第二位开始,逐个将后一个数和它之前所有的数据进行比较,寻找这个数最合适的插入位置,将其插入空隙,循环一边之后,可实现排序。具体怎么写,假设要实现从小到大排序,写两层循环,外层循环从1开始直到最后,内层循环从当前

2018-05-31 21:47:13 1872

原创 归并排序--一种高级排序算法

归并排序(mergeSort) 归并排序是一种高级排序算法,速度仅次于快速排序,为稳定排序算法,没有对应的简单算法。1、想法应该是从发现两个有序数组合成一个有序数组是O(n)开始的,如何将两个有序数据合成一个有序数组?依次从两个数组中取数进行比较,将较小的放入新数组。 准备两个索引i=0和j=0,逐个比较arrA[i]和arrB[j],将较小值给新数组,并将较小值所在数据的索引++,一旦某...

2018-05-31 21:15:24 199

原创 选择排序--最简单的排序

最容易想到的排序,给你一串数字,如何按照从小到大排序。我们可以从数字中找出最小的数,把它从旧的数据中剔除,放在新数组的第一位,然后从余下的数字中再找出最小的,放到第二位,这样一直找,直到原数组还剩下一位的时候,把这一位直接放到新数组的最后一位。我们也可以不新建数组,没有必要浪费这一倍的空间,在找到最小的数之后,把该位置和第一位互换,然后找到次小的和第二位互换,直到还剩下一位。推演代码的时候,先推演...

2018-05-30 22:11:52 252

原创 jdbc、连接池、Jndi

java database connectivityjava数据库连接是java的Api,使用它,可以与数据库产品进行沟通,提供了连接数据库并进行数据库操作的功能。并且可以面向不同的数据库进行编程,提供相同的接口,掩盖实际操作的差异。实际会由不同的数据库厂商自己实现各自的接口,一般会叫它们【数据库驱动包】,比如:mysql的mysql-connector-java.jaroracle的ojdbc....

2018-04-02 22:40:04 779

原创 java.lang.UnsupportedClassVersionError: com/softxy/smp/common/pool/InitializerListener : Unsupported

MyEclipse导入现有项目,报错java.lang.UnsupportedClassVersionError: com/softxy/smp/common/pool/InitializerListener : Unsupported major.minor version 51.0经查项目原来的编译版本设置为jdk1.7,myeclipse的jdk为1.6版本右键,修改Java C

2017-06-23 15:49:08 339

原创 JSTL中获取URL参数

使用JSTL时,URL会被隐含的对象param包裹起来,使用param.变量名,直接获取值hello:${param.name} 依据此逻辑,在使用jquery时,也可以用同样的方法得到,如: $(function(){ alert(${param.name}); });

2017-06-19 19:24:40 3461

原创 Jquery打印元素返回 r.fn.init{}

今天在对页面元素绑定事件的时候,怎么都绑定不上。然后用console.info输出文件,发现返回r.fn.init{}。纠结了一会,发现原来绑定事件是要写在$(document).ready(function () {  里面的,或者把JS代码放到页面最下面好久没写代码了,手生的不行,擦

2017-05-26 08:51:39 4472 1

原创 java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet Struts1项目

今天帮人改一下毕业设计,老早的项目,用的struts1,从网上找齐了Struts1需要的jar包添加到build Path。执行的时候报错java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet 试着import了一下,是有这个类的。最后找到原因是tomcat的lib文件夹下并没有刚才添加的jar包用的

2017-05-25 18:32:39 2754 1

转载 已拒绝x11转移申请

最近在捣鼓搭建国外VPN 使用XManager连远程服务器的时候,图形界面报出了“”XManager连远程服务器的时候”这个错误,百度搜索知乎上一篇文章说使用XShell就不会有这个错误。正好我装了Xmanager和XShell,于是用XShell试了一下,果然是可以的如果你就想用XManager连接,网上也有其它的解决方案,说缺少什么什么的。

2017-03-09 19:20:48 2480

原创 JVM简单理解

面试的时候,总有一些人问对虚拟机的理解,网上也有很多深入讨论虚拟机的文章,这里只想讲讲自己的简单认识1、为什么要有JVM应该说为什么会有JVM,为了实现Java所谓的平台无关性,如果没有JVM,java就不是我们认识的java(抄一段百度百科的话)Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需

2016-09-22 10:47:56 352

原创 错误:找不到或无法加载主类 xxxx

我的项目是maven+spring项目在web项目下新建Test类,来测试socket服务器,右键“Run As Java Application”,结果报错,错误:找不到或无法加载主类 xxx.xxx.xxx.Test在网上搜了很多原因,什么classpath没配置(jdk1.5之后不需要配置classpath的),path路径写错了,引入的jar包有问题删掉重新引用,refresh项目

2016-09-16 13:22:54 2142

原创 C#中的uint

在C, C++中不存在UINT这个关键字,UINT类型是unsigned int派生出来的。int是带符号的,表示范围是:-21474 83647 到 21474 83648。uint是不带符号整形,表示范围是0到42949 67295(2^32-1),即第一个数字不表示符号。当前的计算机系统主流的是32位,然后64位,所以int现在都是32位的,其中符号占了一位,表示正负2的31次方之间的数

2016-09-15 10:21:59 9671

原创 计算机编码--1.前置知识--位、字节、字、字长与初代编码(ASCII)的由来

1、位(bit)位应该叫做二进制位,也直译叫做比特,是计算机存储的最小单位,值为0或者1计算机就使用0和1来表示不同的“状态”,然后增加位就可以表示不同的状态,1位可以表示2的一次方,2位可以表示二次方,以此类推2、字节(byte)“状态”最终要转化为我们人类能够识别的“字符”。我们生活中所看到的所有基本字符,以及计算机本身所用到的逻辑标识、状态标识,比如abcd、大小多少上下左右

2016-09-15 09:50:50 933

转载 C#的Struct结构体

C家族中有一种类型叫做结构体 ,据说是牺牲存储空间,将对象直接存在栈中,效率很高,具体参见转载的博客。java身为高级语言,完全舍弃了结构体,全部改用类来实现,都能实现,要求不高的话,为了省事就用类。下面是转载的一篇博文。C#中结构类型和类类型在语法上非常相似,他们都是一种数据结构,都可以包括数据成员和方法成员。  结构和类的区别:  1、结构是值类型,它在

2016-09-13 22:26:44 1540

原创 Maven的ArtifactTransferException

有时候pom.xml中会报错ArtifactTransferException什么什么的,这是因为jar包没有下载好,在项目上右击,update repository,如果还不行去把这个jar包的整个文件夹删除掉

2016-09-08 20:30:30 268

空空如也

空空如也

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

TA关注的人

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