自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

转载 Java中字符编码问题和中文占几个字节的问题(ASCII Unicode UTF-8 )

转自:https://blog.csdn.net/qq_29232943/article/details/62235608ASCII码在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256...

2019-06-11 11:57:35 1271

转载 bin/sh^M: bad interpreter: No such file or directory解决

转自:https://www.cnblogs.com/felixzh/p/6108345.html问题:bin/sh^M: bad interpreter: No such file or directory原因:.sh脚本在windows系统下用记事本文件编写的。不同系统的编码格式引起的。解决方法:修改.sh文件格式 (1)使用vi工具 vi test.sh...

2019-06-10 16:34:05 4175 1

转载 Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用

转自:https://www.cnblogs.com/fashflying/p/6908028.html从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行...

2019-06-06 16:55:40 703

转载 30分钟了解Springboot整合Shiro

转自:https://www.cnblogs.com/learnhow/p/9747134.html前言:06年7月的某日,不才创作了一篇题为《30分钟学会如何使用Shiro》的文章。不在意之间居然斩获了22万的阅读量,许多人因此加了我的联系方式咨询源码工程,只可惜当时并没有专门保留。2年后的今天在机缘巧合之下,我又重拾此话题。希望能带给小伙伴们在Springboot下如何使用Shiro,当然...

2019-06-06 15:47:15 145

转载 30分钟学会如何使用Shiro

转自:http://www.cnblogs.com/learnhow/p/5694876.html本篇内容大多总结自张开涛的《跟我学Shiro》原文地址:http://jinnianshilongnian.iteye.com/blog/2018936我并没有全部看完,只是选择了一部分对我来说急需在项目中使用的知识加以学习。并且对于大多数第一次接触Shiro的同学来说,掌握这些也应该足够了。...

2019-06-06 15:43:36 185

转载 spring data jpa、 hibernate、 jpa 三者之间的关系

JPA规范与ORM框架之间的关系是怎样的呢?JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现,JBoss应用服务器底层就以Hibernate作为JPA的实现。既然JPA作为一种规范——也就说JPA规范中提供的只是一些接口,显然接口不能直接拿来使用。虽然应用程序可以面向接...

2019-06-03 15:01:00 169

转载 银行支付系统大小额(一代支付)、超级网银(二代支付)

转自:http://news.zol.com.cn/622/6224663.html|中国的支付清算有两套体系 当你去ATM取钱时,用的是央行的CNAPS(中国现代化支付清算系统) 当你用支付宝买买买时,用的是第三方支付的清算系统 这里先介绍第一部分:CNAPS|当你在ATM取钱时,银行都做了什么?我们先拿一个ATM取钱的例子来说明跨行业务的过程。假如你拿着...

2019-06-03 12:51:17 34435 10

转载 Linux下使用sftp命令

sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作。举例,如远程主机的 IP 是 202.206.64.33或者是域名www.hebust.edu.cn,用户名是 fyt ,在命令行模式下:sftp fyt@202.206.64.33或者 fyt@www.hebust....

2019-06-03 12:48:30 663

转载 Linux下查看文件信息命令df -h和du -sh

df -h查看系统中文件的使用情况Size 分割区总容量Used 已使用的大小Avail 剩下的大小Use% 使用的百分比Mounted on 路径地址FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。du -sh *查看当...

2019-06-03 10:35:38 615

转载 Future和FutureTask区别

上次介绍了Callable实现多线程的方法。现在介绍和Callable搭配的类。上一篇只是简单的用Callable做了一个demo。一、Future1.关于callable和runable的区别(上次已经介绍) Callable可以在任务结束的时候提供一个返回值Future对象,Runnable无法提供这个功能 Callable的call方法分可以抛出异常,而Runnabl...

2019-06-03 10:21:55 130

原创 Linux下几种查看日志的方式

先了解head和tail,head 用来显示文档的开头至标准输出中,tail是看档案的结尾,more的功能:将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用“回车键”向下翻行,用“空格键”向下翻页。退出查看页面,请按“q”键。另外,more还可以配合管道符“|”(pipe)使用,例如:ls -al | moremore的语法:more 文件名命令...

2019-05-27 14:11:03 1455

转载 Linux下SCP命令

scp是securecopy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读readonlysystem时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然rsync比scp会快一点...

2019-05-24 17:37:58 732

原创 Java类引用对象的get,set方法正确写法

publicDategetCreateDate(){returncreateDate==null?null:(Date)createDate.clone();}publicvoidsetCreateDate(DatecreateDate){this.createDate=createDate==null?null:(Date)...

2019-05-20 16:45:39 615

转载 Java内部类java提高篇(八)----详解内部类

转自:https://www.cnblogs.com/chenssy/p/3388487.html可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。...

2019-05-19 15:21:33 125

转载 Spring注解@Resource和@Autowired区别对比

转自:https://www.cnblogs.com/think-in-java/p/5474740.html@Resource和@Autowired都是做bean的注入时使用,@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但Spring支持该注解的注入。1、共同点两者都可以写在字段和setter方法上。如果写在字段上...

2019-05-17 09:53:15 105

原创 Java中的元注解和常用注解

Java内置注解:@Deprecated 意思是这个方法或类不再建议使用,可标注在构造方法、变量、局部变量、方法、参数、类型、包上; @Override 意思是重写父类的方法,标注在方法上; @SuppressWarnings 意思是抑制编译器产生警告信息,可标注在类、字段、方法、参数、构造方法,以及局部变量上 抑制单类型的警告:@SuppressWarnings("unchecked"...

2019-05-16 11:16:27 331

原创 Linux chmod chown chgrp命令

文件权限定义及查看在服务器执行 ls -al 命令,查看文件相关的信息:[root@iz2zedcscvry6t0psspzswz ~]# ls -aldr-xr-xr-x. 18 root root 4096 Sep 9 12:39 ..-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout以下示例,展示了每一列对应的含义...

2019-05-14 18:45:10 170

转载 相同Bean分别被Spring MVC子容器与Spring父容器初始化,导致@Value注入失败

转自:https://my.oschina.net/xianggao/blog/522267#OSC_h1_4#1 问题描述# 在车保养项目开发过程中,技术架构:Spring MVC +MyBatis;Service层接口中属性,如果使用注解@Value注入,不能够拿到Properties文件中拿到对应的key值;但在Spring配置文件applicationContext-xxx.xml...

2019-05-07 10:56:04 292

原创 Spring SpEL表达式及@Value注解的使用

SpEL 字面量:整数:#{8}小数:#{8.8}科学计数法:#{1e4}String:可以使用单引号或者双引号作为字符串的定界符号。Boolean:#{true}SpEL引用bean , 属性和方法:引用其他对象:#{car}引用其他对象的属性:#{car.brand}调用其它方法 , 还可以链式操作:#{car.toString()}调用静态方法静态属性:#{T(java...

2019-05-07 09:51:17 4695

转载 hibernate缓存机制详细分析

转自:https://www.cnblogs.com/xiaoluo501395377/p/3377604.html在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别)、二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题。随笔虽长,但我相信看完的朋友绝对能对hibernate的 N+1问题以及缓存有更深的...

2019-05-06 14:40:52 136

转载 shell脚本中出现^M

在Windows中编辑的shell脚本,传到linux系统中,在末尾发现出现了很多^M字符1.问题分析在windows下使用notepad++写的脚本上传到Linux下,在使用vim编辑的时候我们发现在行末出现了^M。2.^M的来历^M字符的来历和作用:在DOS/Windows里,文本文件的换行符为\r\n,而在nix系统里则为\n,所以DOS/Windows里编辑过的文本文件到了...

2019-04-19 08:53:54 462

原创 一些shell脚本的注释

#!/bin/bashARG0="$0" #获取当前文件所在的绝对路径echo "ARGO=$ARGO"while [ -h "$ARG0" ]; do #判断$ARG0是否存在且是一个软链接 ls=`ls -ld "$ARG0"` #列出目录的内容且不会列出软链 link=`expr "$ls" : '.*-> \(.*\)$'` #取到软连接的真实文件或真实目录 i...

2019-04-11 15:19:34 385

原创 Shell入门

1.export命令Linux export命令用于设置或显示环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。同时,重要的一点是,export的效力仅及于该次登陆操作。注销或者重新开一个窗口,export命令给出的环境变量都不存在了。该命令的语法如下:export [-fnp][变量名称]=[变量设置值]其中:-f  代表[变量名称]中为函数名称。 -...

2019-04-11 15:11:29 168

原创 Mac OS X配置环境变量

# 系统级别/etc/profile/etc/paths # 用户级别~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc前两个是系统级别的环境变量,针对所有用户,在系统启动时候就会加载。后面四个带有~/用户级别的环境变量。/.bash_profile,/.bash_login,/.profile依次加载,如果/.bash_pr...

2019-04-11 09:04:40 534 1

原创 如何正确地写出单例模式

单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。懒汉式,线程不安全当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我们的。 ...

2019-04-02 00:00:59 111

转载 异步任务轮询设计

需求 处理时间较长的请求,需要转换成异步执行,而前端通过轮询来获得任务的进度,以便告知用户需要等待的时长。实践发现,不同任务的轮询逻辑往往是相同的,不同点仅在于任务类型和任务参数(个数、顺序)。因此,可以设计一种通用的异步任务轮询接口,来复用轮询逻辑。异步任务流程 异步任务的流程见下图。前端第一次请求执行任务,此任务为异步,后端会返回一个结果,使得前端去执行轮询。 ...

2019-04-01 23:46:03 2639

转载 为什么Netty使用NIO而不是AIO?

NIO模型同步非阻塞NIO有同步阻塞和同步非阻塞两种模式,一般讲的是同步非阻塞,服务器实现模式为一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。AIO模型异步非阻塞服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理,注:AIO又称为NIO2.0,在JDK7才...

2019-03-26 10:24:09 392

原创 Java锁

synchronized 内置锁:互斥锁;JVM管理锁的生命周期;非公平锁;块结构加锁;ReentrantLock 重入锁:互斥锁;可中断锁获取操作;可设置为公平锁、非公平锁;非块结构的加锁;更加灵活;ReentrantReadWriteLock 读写锁:允许多个读线程并发地访问被保护的对象,能提高程序的可伸缩性。...

2019-03-26 08:57:22 108

转载 一次完整的HTTP网络请求过程详解

0.前言从我们在浏览器的地址栏输入http://blog.csdn.net/seu_calvin后回车,到我们看到该博客的主页,这中间经历了什么呢?简单地回答这个问题,大概是经历了域名解析、TCP的三次握手、建立TCP连接后发起HTTP请求、服务器响应HTTP请求、浏览器解析html代码,同时请求html代码中的资源(如js、css、图片等)、最后浏览器对页面进行渲染并呈现给用户。下面分别...

2019-03-20 11:26:13 296

原创 Tcp连接创建及断开过程

TCP三次握手创建连接•A 机器发出一个数据包并将 SYN 置 l ,表示希望建立连接。这个包中的序列 号假设是 x。•B 机器收到 A 机器发过来的数据包后,通过 SYN 得知这是一个建立连接的 请求,于是发送一个响应包并将 SYN 和 ACK 标记都置 l。假设这个包中的 序列号是 y,而确认序列号必须是 x+l ,表示收到了 A 发过来的 SYN。在 TCP 中, SYN 被当...

2019-03-20 10:06:58 265

原创 ArrayList和HashMap存储及扩容机制

ArrayList的底层是一个动态数组,ArrayList首先会对传进来的初始化参数initalCapacity进行判断:如果参数等于0,则将数组初始化为一个空数组;如果不等于0,将数组初始化为一个容量为参数值的数组。如果未传参数,则初始化为一个容量为默认值10的长度的数组。当数组的大小大于初始容量的时候(比如初始为10,当添加第11个元素的时候),就会进行扩容,新的容量为旧的容量...

2019-03-19 23:35:20 1699

转载 RocketMQ一些概念的定义

Topic消息主题,一级消息类型,通过 Topic 对消息进行分类。详情请见Topic 与 Tag 最佳实践。Message消息,消息队列中信息传递的载体。Message ID消息的全局唯一标识,由消息队列 RocketMQ 系统自动生成,唯一标识某条消息。Message Key消息的业务标识,由消息生产者(Producer)设置,唯一标识某个业务逻辑。Tag消...

2019-03-19 13:26:28 1240

原创 RocketMQ部署及刷盘机制

RocketMQ部署结构RocketMQ关键特性(1). 所有数据单独存储到一个 Commit Log,完全顺序写,随机读。(2). 对最终用户展现的队列实际只存储消息在CommitLog的位置信息,并且串行方式刷盘。这样做的好处如下:(1). 队列轻量化,单个队列数据量非常少。(2). 对磁盘的访问串行化,避免磁盘竟争,不会因为队列增加导致IOWAIT增高。每个方...

2019-03-19 10:34:29 1571

原创 Redis总结

本文围绕以下几点进行阐述1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并发竞争问题正文1、为什么使用redis分析:博主觉得在项目中使用redis...

2019-03-18 12:31:48 109

原创 Redis的几种部署方式及持久化策略

Redis部署1.单机模式优点:架构简单,部署方便; 高性价比:缓存使用时无需备用节点(单实例可用性可以用supervisor或crontab保证),当然为了满足业务的高可用性,也可以牺牲一个备用节点,但同时刻只有一个实例对外提供服务; 高性能。缺点:不保证数据的可靠性; 在缓存使用,进程重启后,数据丢失,即使有备用的节点解决高可用性,但是仍然不能解决缓存预热问题,因此不适...

2019-03-18 12:20:05 10248 5

原创 CAS和ABA问题的处理

compareAndSet这个方法主要调用unsafe.compareAndSwapInt这个方法,这个方法有四个参数,其中:第一个参数为需要改变的对象,第二个为偏移量(即之前求出来的valueOffset的值),第三个参数为expect(期待的值),第四个为update(更新后的值)。整个方法的作用即为若调用该方法时,value(当前值)与expect这个值相等,那么则将va...

2019-03-18 12:02:26 213

原创 布隆重过滤器

直观的说,bloom算法类似一个hash set,用来判断某个元素(key)是否在某个集合中。和一般的hash set不同的是,这个算法无需存储key的值,对于每个key,只需要k个比特位,每个存储一个标志,用来判断key是否在集合中。算法:1. 首先需要k个hash函数,每个函数可以把key散列成为1个整数2. 初始化时,需要一个长度为n比特的数组,每个比特位初始化为03. 某个ke...

2019-03-18 10:24:53 97

原创 Java中的wait/notify/notifyAll

wait、notify、notifyAll都是java.lang.Object类中的方法:public final native void wait() throws InterruptedException;public final native void wait(long millis, int nanos) throws InterruptedException;public f...

2019-03-14 12:14:28 196

原创 Spring动态代理

JDK动态代理和CGLIB字节码生成的区别?(1)JDK动态代理只能对实现了接口的类生成代理,而不能针对具体的类;(2)CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法因为是继承,所以该类或方法最好不要声明成final;在Spring中:1.如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP;2.如果目标没有实现接口则默认使用CGLIBB实现...

2019-03-13 09:53:49 113

原创 返射基本原理

反射的基本原理是根据字节码重新生成一个新的对象。

2019-03-13 07:51:04 181

程序员的思维修炼:开发认知潜能的九堂课 英文版

程序员的思维修炼:开发认知潜能的九堂课(领悟程序员哲学,高效程序员必读之作)计算机_软件与程序设计_综合_高级程序语言设计作者:(美)Andy Hunt

2011-01-19

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

TA关注的人

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