自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【redis相关】redis集群结合Spring配置的一些问题

项目中要将单机版redis服务器改为redis集群,配置的过程和配置过程中遇到的一些问题作如下记录。首先修改redis的配置文件redis.confdaemonize yesport xxxx (每个节点一个端口)cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000因为要让r...

2019-04-10 20:40:12 431

原创 【踩坑记录】解决 Could not resolve placeholder 'xxx' in string value "${xxx}"

一般来说报Could not resolve placeholder 'xxx' in string value "${xxx}" 错误的原因都是由于项目中有多个地方的xml文件中用到了<context:property-placeholder location="classpath:xxx.properties"/>或者是<bean id="propertyCon...

2019-04-10 16:15:35 102050 4

原创 【Linux笔记】linux下配置sshd服务实现scp传输

在配置redis集群的时候,想要把在一台虚拟机上配置好的redis服务器复制到其他虚拟机上,用到了scp,出现了一些问题特别记录一下。首先在新的虚拟机上我们要先安装sshd服务sudo apt-get install openssh-server安装成功如下:然后输入ps -e|grep ssh 查看sshd服务已经安装成功,这个时候输入ssh localhost 在...

2019-04-10 16:06:24 525

原创 【redis相关】Linux下配置Redis环境

1、安装和部署redis这里用的是Ubuntu的linux虚拟机安装配置redis4.0.14首先在官网下载redis压缩包 官网地址下载后进入linux系统,将压缩包放到要安装的目录下,我这里放在了/usr/local/redis中解压redis压缩包解压完成后,首先确认你的linux有没有安装gcc编译器,如果没有,先安装gcc。如果使用的是Centos就直接使用y...

2019-03-28 16:19:42 318

原创 【踩坑记录】使用ehcache缓存@Cacheable注解不生效的问题

遇到的问题为:给某个查询方法添加了@Cacheable注解,Junit测试通过,查询方法执行多次时只有第一次执行方法体,之后调用方法查询缓存,不进入方法体;但是在Controller内调用的时候多次调用发现每次都进入方法体,不走缓存。查网上的解决办法大多为以下两种:1、由于@Cacheable基于SpringAOP的动态代理机制,程序执行时会在代理的方法前做缓存处理,但是如果一个类(比如一...

2019-03-28 15:25:24 5454

原创 【转载】UML类图关系以及画法

本文转自http://www.uml.org.cn/oobject/201104212.asp在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合...

2019-03-14 20:50:32 1574

原创 【踩坑记录】web项目遇到的问题笔记

1、提交表单时提示错误400,控制台未报错情况1:由于表单内容数据类型问题,无法将输入的String类型转为int类型并提交。情况2:由于要求输入int类型的参数,而输入的数超过int范围,溢出。情况3:提交的表单数据有属性名和POJO类中的属性名不匹配。2、项目拆分时,将dao层相关的接口和xml拆分到新module,在调用dao层方法时提示错误500,找不到指定方法。...

2019-03-14 17:22:01 318

原创 【踩坑记录】使用IDEA部署tomcat遇到的问题

之前用eclipse写web项目,最近转到IDEA开发,在创建IDEA上第一个Maven的web项目时就遇到了不小的麻烦,在这里记录一下。1、关于tomcat无法启动的问题在创建好一个web项目想要把它运行起来的时候,报了如下错误,我使用的是tomcat7网上找遍解决办法未果,于是更换了tomcat9在官网下载了tomcat9的压缩包,解压后将其添加到IDEA中:打开Run/Deb...

2019-03-12 21:19:19 2560

原创 【张六儿大话设计模式】——装饰器模式

大话设计模式断了好久,正好最近在研究无埋点技术接触到了ASM操作字节码,也就随之接触到了装饰器模式,于是仔细的学习了一下。 张六儿是一个网瘾少年,最喜欢玩的游戏就是Dota2了,众所周知Dota2是一个免费游戏(???),但是游戏中还是可以通过花钱购买英雄饰品让你的英雄变得十分炫酷(G胖的微笑)。张六儿喜欢影魔这个英雄,但是他觉得原始版的影魔模型实在是太太太太XX的丑了,于是他就花了20...

2019-03-11 20:51:46 157

原创 【转】Activity的四种launchMode

本文转自 https://blog.csdn.net/liuhe688/article/details/6754323?utm_source=copylaunchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task...

2019-03-11 20:48:09 171

原创 【转载】TCP的三次握手与四次挥手理解及面试题

本文转自https://blog.csdn.net/qq_38950316/article/details/81087809序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个...

2019-03-11 19:47:11 113

原创 【读书笔记】看书看面经时的知识点笔记

负载均衡大体上分为三种,链路负载均衡、集群负载均衡(分为硬件和软件负载均衡)、操作系统负载均衡。链路负载均衡将用户访问的域名通过DNS服务器解析成不同的IP,从而将用户的请求发送到不同的目标服务器去处理;硬件负载均衡使用硬件设备完成转发请求;软件负载均衡直接使用PC搭建,但每次访问要经过多次代理服务器,增加网络延时;操作系统负载均衡利用操作系统级别的软中断或者硬件中断来达到负载均衡的需求,...

2019-03-11 16:42:35 114

原创 【无埋点技术】——使用ASM实现AOP编程【转】

https://www.ibm.com/developerworks/cn/java/j-lo-asm30/见链接

2018-10-23 21:03:58 352

原创 【源码分析】——Java集合之ArrayList

准备写一个系列分析Java集合的源码,总体来说ArrayList源码除了个别方法其他都比较简单,本篇分析ArrayList的源码先练练手~一、概述和继承关系    ArrayList是基于动态数组实现的,也就是说ArrayList中的对象被存储在一个连续的数组中。ArrayList中的元素可以被任意访问,长度可以动态变化。ArrayList和Vector的用法类似,区别是:ArrayLis...

2018-09-04 16:27:38 270

原创 Mac下安装HomeBrew和Wget

    因为最近在学习搜索引擎相关,看到各个主流搜索引擎对比时要拿来依次使用,所以要安装ElasticSearch。我就去网上搜索了一篇ElasticSearch的入门教程。教程中推荐了两种ElasticSearch安装包的下载方法,一种是官网下载另一种是在终端通过wget命令下载。怀着技术人员一定要有的那份尊严,我选择了用后者方法,但是当我在终端输入wget+ElasticSearch安装包的u...

2018-08-29 11:35:37 10187

原创 【LeetCode】题目解答整理(持续更新...)

    这篇是平时闲暇时间在LeetCode上做题的整理记录,记录的都是我第一次成功提交时的解法,可能时间复杂度不是最佳,但是达到了LeetCode上的时间空间复杂度要求,要查看时间/空间复杂度最佳的解法,可以参照这里2. 两数相加给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字...

2018-08-28 15:10:32 307

原创 本地git仓库连接到GitHub远程仓库遇到[email protected]: Permission denied问题

学习git的时候免不了会遇到很多坑,这里记录其中的一个。当我高高兴兴的创建了一个本地仓库,并且想把它push到github远程仓库上时,我按照网上的教程先输入了: git remote add origin [email protected]:yourname/xxx.git其中yourname指的是github账户的名字,xxx为仓库名。连接到远程仓库之后,输入git remote -v可...

2018-08-23 16:20:13 6017

原创 【Android笔记】——Style样式复用shape、selector以及strings.xml的用法【转】

本文参考以下文章,感谢原作者:https://blog.csdn.net/u010228448/article/details/56831202https://www.cnblogs.com/dreamGong/p/6182235.htmlhttp://mobile.51cto.com/aprogram-380358.htmhttps://blog.csdn.net/brokge/...

2018-08-14 14:37:30 1583

原创 【Java学习笔记】——IO基础知识

    最近准备学习NIO与Netty相关的知识,但是尴尬地发现自己已经把IO的基本知识忘得差不多了,于是拿出以前的Java基础的书重新学习了一遍,记此博客作为笔记。一、访问文件和目录    File类可以使用文件路径字符串来创建File实例,该路径既可以是绝对路径,也可以是相对路径。在默认情况下系统会按照用户的工作路径来作为相对路径,这个路径由系统属性“user.dir”指定,通常也就是...

2018-08-14 01:42:56 239

原创 【Java多线程】——线程池的使用详解(含源码分析)

    在开发中,我们常常会通过使用线程来完成一些需要并发执行的子任务,但是如果这些并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么怎样才能使得一个线程在执行完任务之后不被销毁,继续执行下一个任务,从而实现线程的复用呢?在Java中我们可以通过线程池来达到这样的效果。一、为什么要使用线程池...

2018-08-09 16:33:17 256

原创 Mac下配置Apache服务器

    Apache HTTP Server是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。    在开发过程中,有时我们可能需要在后台接口没有及时给出的情况下自己模拟一些数据来进行相关的测试,这个时候我...

2018-08-06 19:59:19 1528

原创 【张六儿大话设计模式】——观察者模式

    当对象间存在一对多关系时,则使用观察者模式。比如当一个对象被修改时,会自动通知它的所有依赖对象,这些依赖对象随之做出相应的反应。观察者模式属于行为型模式。    张六儿喜欢很喜欢玩绝地求生,有时他会带着三个新手朋友一起玩。三个队友由于枪法很差,所以只能躲在张六儿身后躺鸡。队友们时刻关注着右上角的击杀信息,一旦张六儿杀死了敌人,右上角就会弹出一条击杀信息。这时,他的队友们看到张六儿击杀了...

2018-08-06 00:47:00 211

原创 【Android笔记】——DataBinding的基本使用

    DataBinding是android官方提供的一个用于将layout和程序进行绑定的工具,使用DataBinding可以轻松地操作layout中的某个控件,如动态改变控件显示的文本,为控件绑定监听事件。不需要每次再通过findViewById方法去获取View,这样一来可以大大减少程序的代码总量,提高代码的可读性。    本文介绍DataBinding的基本使用1.绑定一个基本控...

2018-07-26 15:28:23 704

转载 【Android笔记】——图片加载工具Picasso的使用【转】

感谢原文作者SmallChericPicasso介绍Picasso是Square公司开源的一个Android图形缓存库A powerful image downloading and caching library for Android 一个Android下强大的图片下载缓存库Picasso实现了图片的异步加载,并解决了Android中加载图片时常见的一些问题,它有以下特点...

2018-07-17 14:59:40 508

原创 【张六儿大话设计模式】——建造者模式

建造者模式    张六儿本是一个钢铁直男,但是由于女朋友小西的耳濡目染和悉心调教,他渐渐的也对女生的化妆品有了很多的了解。日子久了,他也能够替小西挑选化妆品了,小西只要跟张六儿说,她要一个化妆品套装包括:眼影、眉笔和口红,并且说明基本需求,张六儿就能根据需求去商店里给小西购买一套化妆品 。小西不用关心张六儿买化妆品的时候是怎样挑选、比较、试色、搭配的,只需要等着张六儿把一个化妆品套装礼盒送到她面前...

2018-06-12 19:43:44 371

原创 【张六儿大话设计模式】——单例模式和原型模式

一、单例模式1.单例模式概念 我们可以把单例模式理解为男/女朋友,一个人只能有一个男/女朋友(你放荡不羁当我没说~)。小西是张六儿的女朋友,当张六儿想要出去看电影吃饭需要女朋友陪的时候,小西就会来陪着张六儿;当张六儿生病了需要女朋友照顾的时候,小西就会来照顾他;当张六儿想要和女朋友结伴去旅行的时候,小西就会和他一起去旅行;当张六儿想要。。。的时候,嘿嘿~也就是说,当张六儿需要和女朋友...

2018-06-11 15:11:20 905

原创 【张六儿大话设计模式】——简单工厂模式、工厂方法模式、抽象工厂模式

    工厂模式是设计模式中的一种十分重要的创建型模式,工厂模式又分为简单工厂模式、抽象工厂模式以及工厂方法模式。下面来讨论这几种工厂模式。一、简单工厂模式    张六儿是一个很会做饭的人,他的女朋友小西十分喜欢吃猪蹄。猪蹄有很多种做法,比如:焖猪蹄、烤猪蹄、卤猪蹄......(不说了,有点饿)但是在小西第一次跟张六儿说她想吃某种做法的猪蹄时,首先要说明白自己喜欢吃什么样的口味,比如焖猪蹄多放点糖...

2018-06-07 20:54:25 194

转载 【设计模式】——23种设计模式形象比喻以及设计模式七大原则

转自https://blog.csdn.net/qq_23490875/article/details/44814321一、创建型模式1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory。工厂模式:客户类和工厂类分开。消费者任何时候需要...

2018-06-06 14:24:47 300

原创 【Java多线程】——多线程知识补充

一、线程的状态前面的文章中已经研究过线程从创建到销毁这之间的各种状态以及各种状态之间切换的条件,但是都比较零碎。这里将这部分知识用一张系统的关系图来表示。从图中可以看出,调用相关的一些方法后线程会在几个状态之间切换,这些状态之间有些可以双向切换,比如waiting和runnable状态之间可以循环的互相切换(通过等待/通知机制),而有些状态之间只能单向切换。下面对各种状态进行一个简单的总结。NEW...

2018-05-30 15:41:05 467 2

原创 【Java多线程】——单例模式与多线程

    在常用的23种设计模式中,单例模式是很常用的一种。但是当单例模式与上多线程的时候,如果没有注意特殊情况,可能会产生一些意想不到的异常,有可能会导致灾难性的后果。下面我们就来研究一下单例模式再多线程环境下的应用。首先先简单的介绍一下单例模式。一、“饿汉模式”和“懒汉模式”    1、饿汉模式    首先,单例模式简单的说就是一个类在整个程序的运行过程中只创建唯一的一个实例化对象。所有有关这个...

2018-05-27 16:26:56 314

原创 【Java多线程】——定时器Timer的使用

    在JDK中Timer类主要用于负责计划任务,也就是说在某个时间点开始执行一个计划好的任务。    Timer类中的方法列表如下:    serialNumber()    Timer():默认构造方法;    Timer(boolean):参数表示thread是否为守护线程    Timer(String):参数为线程名    Timer(String, boolean)    sched...

2018-05-24 15:26:55 1327

原创 【Java多线程】——Lock的应用

    在java多线程编程中,很多时候我们会使用synchronized关键字来实现线程之间的同步执行,并通过wait/notify机制实现线程之间的通信。JDK1.5中增加了ReentrantLock类也可以实现synchronized关键字相同的效果,并且使用Condition类可以实现类似于wait/notify一样的线程之间的通信。一、使用ReentrantLock实现同步效果    在...

2018-05-21 16:23:14 473

原创 【Java多线程】——ThreadLocal类的用法

    变量值的共享可以通过使用public static的形式,使得一个类的所有实例对象共享类中的同一个变量。但是如果想要实现每个线程都有自己的一个共享变量该如何解决呢?这个时候就要用到ThreadLocal类了。ThreadLocal类就是用来解决每个线程都能绑定自己的值,可以把ThreadLocal类看成一个全局的存放数据的盒子,盒子中可以存放每个线程自己的数据。一、使用ThreadLoca...

2018-05-18 16:15:37 364

原创 【Java多线程】——join()方法

在一些情况下,主线程创建了子线程并启动,主线程和子线程异步执行。但是主线程可能会需要子线程的一些结果来执行接下来的任务,这时就需要等待自线程先执行完再继续执行主线程。我们可能会想到使用同步(synchronized)的方法,使主线程和子线程共同竞争一个对象锁,这样就可以达到依次同步执行的目的了。这个方法虽然可行,但是看上去可能麻烦了一些,这里就引入了一个概念叫做join()方法。一、join(...

2018-05-17 21:31:36 221 3

原创 【Java多线程】——通过管道进行线程间通信

    在Java中提供了各种各样的输入输出流stream,我们可以用他们对数据进行方便的操作。其中,管道(pipeStream)是一种特殊的流,它可以用于在不同的线程之间传送数据。一个线程将数据输出到管道中,另一个线程从管道中读取需要的数据,实现不同线程之间的通信而无需通过临时文件。管道通信可以达到解耦的目的,产生数据的线程不需要直接调用处理数据的方法并等待返回结果,只需要将数据放入管道,接着继...

2018-05-16 14:19:16 1042

原创 【Java多线程】——线程间通信(二)

    上一篇主要介绍了线程间通信的基本方式——等待/通知机制,并且详细分析了wait()和notify()方法、线程对象的几种状态以及线程在这几种状态之间切换的条件。本篇主要介绍使用等待/通知机制实现生产者/消费者模式的几种形式,以及其他的一些实际运用。一、生产者/消费者模式     在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能...

2018-05-14 16:22:32 103

原创 【Java多线程】——线程间通信(一)

    进行多线程编程时,每个线程都是操作系统中的独立个体,但线程在执行任务的时候并不是只关注于完成自己的那一部分任务,很多时候需要与其他线程协作或者通过和其他线程的通信完成相应的任务。这个时候我们便要引入线程间通信的这个概念了。而在多线程编程中最常用到的线程间通信方法就是等待/通知机制了。在介绍等待/通知机制之前,我们先来看一个最简单的线程间通信的方式。一、不使用等待/通知    我们可...

2018-05-12 19:07:29 210

转载 【转载】volatile关键字详解

本文转自http://www.importnew.com/18126.htmlvolatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与...

2018-05-11 00:39:44 119

原创 【Java多线程】——volatile关键字

    首先我们来看一个死循环的问题:public class RunThread extends Thread{ private boolean isRunning = true; public boolean isRunning() { return isRunning; } public void setRunning(boolean isRunning) { ...

2018-05-11 00:05:22 146

转载 【Java学习笔记】静态代码块的作用分析

本文转自https://blog.csdn.net/carrybest/article/details/54906984 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情 况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用...

2018-05-10 15:41:49 222

空空如也

空空如也

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

TA关注的人

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