自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 问答 (1)
  • 收藏
  • 关注

转载 Spring中自定义Aop失效问题

需要在Springmvc.xml中添加<!-- 配置自动为匹配 aspectJ 注解的 Java 类生成代理对象 --> <aop:aspectj-autoproxy proxy-target-class="true" expose-proxy="true" />不能将此标签放入application-*.xml中。原因是 java动态代理和 cglib 代理来创建AOP代...

2018-06-02 00:45:06 559

转载 在SpringMVC中获取request对象的几种方式

 a. 在web.xml中配置一个监听<listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> ...

2018-06-02 00:40:57 197

转载 HashMap 死循环

地址死循环

2018-04-22 23:01:55 128

原创 linux 安装nginx

1.将nginx上传到linux2.创建文件夹-创建 mkdir /usr/local/nginx-创建 mkdir /var/temp/nginx3.解压nginx,并编译安装nginx需要pcre包 需要安装pcre的devel包,pcre-devel。使用yum安装即可:(以下命令还带有ssl、zlib等依赖的安装) yum -y install z

2018-03-06 16:04:57 251

原创 spring-boot 整合 dubbo

1.去除代码重复    将消费端和生产端需要的接口创建在一个Maven工程,类型为jar,命名为api        创建TestService接口public interface TestService { List<String> getTestData();}2.创建生产端项目--生产端只负责实现接口即可        创建Provide_main类    public c...

2018-03-04 23:54:01 127

原创 linux 搭建 dubbo 管控台

1.下载需要的软件    -tomcat    -dubbo2.5.3版本2.安装    -解压tomcat到/usr/local/dubbo/tomcat中,然后将tomcat/webapp/ROOT删除掉,重新创建ROOT文件夹    -解压dubbo,将dubbo/dubbo-dubbo-2.5.3/dubbo-admin/src/main/webapp中文件复制到新创建的ROOT     ...

2018-02-25 23:47:02 181

原创 linux搭建 solr集群版-第二部分-搭建solr集群

1.本次搭建的solr集群为四个实例,需要四个solr和四个tomcat先将tomcat copy4份solrcolud 中修改端口号:8080-80832.安装solr实例将单机版solr中的solr工程 复制到这四个tomcat/webapps中并启动启动和关闭tomcat比较麻烦,写批处理文件vim solr-tomcat-all-start.shtomcat1/bin/startup.sh...

2018-02-11 22:11:55 259

原创 linux搭建 solr集群版-第一部分-搭建zookeeper集群

1.安装zookeeper需要jdk2.解压并复制三份到指定文件夹中[root@localhost tool]# cp -rf zookeeper-3.4.6 /usr/local/solrcloud/zookeeper1[root@localhost tool]# cp -rf zookeeper-3.4.6 /usr/local/solrcloud/zookeeper2[root@localh...

2018-02-11 14:05:45 180

原创 linux搭建 solr单机版

单机版sorl搭建1.将需要的软件上传至linux中:jdk,solr包,tomcat,IK Analyzer 2012FF_hf1中文分词2.创建/usr/local/solr/tomcat 文件夹,将解压tomcat copy到此文件夹中3.将solr源码包中的dist/solr.war 文件copy到tomcat/webapps中4.解压war,启动tomcat自动解压启动启动完成后,关闭t...

2018-02-09 14:46:31 223

转载 Centos 安装jdk

需要先安装yum install glibc.i686安装jdk连接点击打开链接

2018-02-05 16:59:59 109

原创 安装Redis单机版or集群

redis操作命令 点击打开链接 -常用数据类型:String、Hash、List(耗费性能)、Set、SortedSet(非常耗费性能)单机版1、在linux中安装gcc 命令符:  yum install -y gcc-c++ 2、-将redis-3.0.tar.gz包放到指定路径并解压,命令符:tar -zxvf redis-3.0.tar.gz 2.1 然后进入解压好的re

2018-02-05 16:59:32 504

转载 vm安装CentOs7

安装CentOs7教程点击打开链接

2018-02-05 09:42:02 146

转载 Maven配置及本地仓库设置

Maven配置及本地仓库设置https://www.cnblogs.com/growthTree/p/6284831.html

2017-12-21 00:51:12 339

转载 一致性哈希算法

一致性哈希算法图解一致性哈希算法-java实现

2017-12-07 15:40:25 160

转载 java类加载机制简述

JAVA源码编译由三个过程组成:1、源码编译机制。2、类加载机制3、类执行机制我们这里主要介绍编译和类加载这两种机制。一、源码编译代码编译由JAVA源码编译器来完成。主要是将源码编译成字节码文件(class文件)。字节码文件格式主要分为两部分:常量池和方法字节码。二、类加载类的生命周期是从被加载到虚拟机内存中开始,到卸载出内存结束。过程共有七个阶段,其中到初始化之前

2017-11-15 17:23:22 393

转载 Spring-IOC

在此之前先说一下没有的时候,对象直接的合作是如果工作的,比如A类要调用B类的方法,首先在A类中肯定需要创建一个B对象,然后通过B对象的实例去调用方法的实例方法,如是静态方法可以直接通过类名去调用即可。这样做的缺点,通过new对象的的方式去创建对象,第一相互之间的依赖性太大,同一个对象多次创建,用完以后需要销毁,效率低下,这样的方式总体就是,对象之间的耦合度高,效率低(每次都需要创建和销毁对象

2017-10-24 22:04:39 148

原创 Spring-AOP讲解-附带实例

spring aopaop是由java动态代理、cglib(cglib内封装了ASM字节码处理框架)、aspectj面向切面框架组成。aop中包含了通过接口实现的JDK动态代理 和 通过目标类实现的cglib代理java 动态代理--JDK动态代理只能对实现了接口的类生成代理,而不能针对类 ,通过实现InvocationHandler接口来代理类。代理分为静态代理和

2017-10-24 21:39:59 443

原创 Spring-AOP-cglib实现

cglib只能通过类实现代理,不能通过接口正好与java动态代理互补实例public class Test { //测试手动的cglib动态代理 @org.junit.Test public void testCglibDynamisProxy(){ Phone phone = CglibDynamisProxy.getInstace().getProxy(MyPhone

2017-10-24 21:35:45 188

原创 Spring -AOP -java静态代理和动态代理实例

静态代理-可以通过类代理也可以通过接口代理动态代理只能通过接口代理,但比静态代理灵活静态代理实例/** * 静态代理可通过接口或者类进行代理 * @author Administrator * */public class StaticProxyTest { public static void main(String[] args) { //基于接口

2017-10-24 21:17:54 341

原创 Spring 注解

注解只是一种特殊的标记,要使它具备特殊的含义或者是特殊的执行效果就需要配合 反射 来用注解分为元注解和自定义注解元注解就是用来注解其他的注解 如: 1、Target 用来注解对象类型--当前对象是用在类,方法,字段---用到枚举 ElementType 2、Retention 用来注解对象的保留时间-SOURCE(编译时),CLASS(字节码),RUNTIME(运行时)等

2017-10-16 00:24:32 178

转载 JVM系列三:JVM参数设置、分析

JVM系列三:JVM参数设置--分析引用地址点击打开链接

2017-05-16 14:57:54 200

原创 java基础--垃圾回收机制简单描述

Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。 需要注意的是:垃圾回收 - 回收的是无任何引用的对象占据的内存空间而不是对象本身,它只对堆区有效。每个对象都有生命周期。

2017-04-01 17:05:53 288

原创 java基础--包装类之基本数据类型的装箱和拆箱

java在JDK1.5之前没有自动装箱和自动拆箱功能 装箱--自动将基本数据类型转换为包装器类型拆箱--自动将包装器类型转换为基本数据类型。例:装箱Integer a = Integer.valueOf(100);拆箱int b = a.intValue();JDK1.5之后装箱Integer a = 100;拆箱int b = a;

2017-03-30 12:47:44 231

原创 java基础--引用数据类型数组-内存图解

1当引用一个类的数组时:Person[] pArr  = new Person[3];如果不实例化赋值则为取出来的值为null,因为堆区存放的是引用地址。2 当声明多个对象时:Person p1,p2,p3;

2017-03-29 19:07:47 232

原创 java基础--static关键字的使用以及内存图解

1、静态变量--每当创建一个类的实例时就会在堆区创建这个类的所有属性对象,如有被static 修饰的属性时,则将此属性放入静态区中被共享。1-1未加static关键字修饰的变量/** * static关键字修饰的变量 * @author Administrator * */public class Test_Static { public static void main(St

2017-03-28 19:58:44 244

原创 java基础--String在内存中的流程图解

引用和创建String对象时hashCode一致的问题。 String a = new String("hello");//堆区的值 String b = new String("hello"); String c = "hello";//文字常亮区的值 Object object = new Object(); System.out.println(a.ha

2017-03-28 14:45:32 419

原创 java基础- ==、equals、String

==运算符比较的是两个变量都为基本数据类型并且为数值类型时,只要两个变量的值相等则为true,但要是两个引用类型的对象时,必须指向同一个对象,才会返回true,否者为false。equals比较的是Object类中的实例,所有对象都可使用,它与“==”功能相似底层,代码:如果功能无法满足时,可以重写此方法。String类中就重写了equals方法:将对象抓换为char数

2017-03-27 19:23:41 124

原创 线程池-ThreadPoolExecutor

1.ThreadPoolExecutor的简单实现。/** * 线程池测试 * @author Administrator * */public class ThreadPoolTest2 {// 创建内部静态类--实现runnable接口 private static class TestRunnable implements Runnable{ // 声明任务唯一编号

2017-03-23 10:32:58 175

原创 线程池-Executors

Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队

2017-03-22 18:56:11 204

原创 线程池-基础

概念:一个线程的声明周期中包含了三个时间段,1是创建线程的时间-t1,2是线程执行任务所要花费的时间-t2,3是线程销毁的时间-t3,线程池主要技术点就是缩短或调整t1和t3的时间,从而提高服务器的性能。因为它把t1和t3安排在程序启动或者服务器空闲的时间段中,这样就不会有t1和t3的开销了。线程池不仅调整了t1,t3的时间段,还可以减少线程创建的数量。线程

2017-03-22 18:54:24 140

转载 多线程编程

Java多线程编程总结多线程转载--点击打开链接

2017-03-19 15:36:52 177

原创 单例-singleton

单例的作用第一、控制资源的使用,通过线程同步来控制资源的并发访问;第二、控制实例产生的数量,达到节约资源的目的。第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。三要素:1,单例必须私有化构造器--防止外部调用2,,必须自己创建自己的唯一实例3,单例必须给所有其他对象提供这一实例。单例分为饿汉

2017-03-18 12:40:03 257

原创 线程-ThreadLocal-线程局部变量

ThreadLocal的概念:它会给每一个访问它的线程创建独立副本,让线程之间不产生冲突,从而保证线程安全。ThreadLocal与synchronized不同,ThreadLocal完全不提供所锁,它是以空间换时间的为出发点而synchronized是以时间换空间为出发点,一个速度快但占用空间大,一个是节省空间但处理速度慢。编写格式:public  static Thread

2017-03-18 12:18:16 230

原创 线程-通信-wait/notify

概念:线程是操作系统中的独立个体,如果这个个体不仅过特殊处理的话就不能成为一个整体,所以线程通信就成为了整体比用之一。线程通信在提高cpu的使用率同时还会使开发人员对线程任务在处理的过程中进行有效的把控与监督。使用wait、notify方法实现线程间的通信;这两个方法都是object类中的方法,也就是说java中的所有对象都可以使用它们。注意:wait/notify必须配合sy

2017-03-18 12:06:53 167

原创 线程-volatile关键字

volatile关键字概念:主要作用是让变量在多个线程之间可见,并不具备原子性。在java中每个线程都有一个工作内存区,每个工作内存区中都拷贝了一份所有被共享的主内存中的变量,线程在自己的工作内存中所操作的这些变量都是拷贝过来的,不用再去主内存中去获取了。volatile的作用就是强制线程到主内存(共享内存)中去读取被volatile修饰的变量,而不去线程工作内存中去获取,从而实现了多个线

2017-03-17 21:29:20 232

原创 线程-synchronized锁重入

关键字synchronized拥有锁重入的功能,就是在使用synchrobized时,当一个线程得到对象的锁后,再次请求此对象也是可以获得该对象的锁。比如一个线程执行一个被加锁的方法A时,此方法体中又调用了请他被加锁的方法B,仍然可以执行方法B。

2017-03-17 20:34:46 161

原创 线程-对象锁的同步和异步

同步和异步的区别:同步方法-多个线程访问一个同步方法(synchronized)时要排队等待执行。异步方法-多个线程访问一个异步方法(没加synchronized)的时候会并发访问这个方法。就是说一个线程访问一个类中两个以上被synchronized修饰的方法时就必须获得一把锁后,释放掉,再去获得下一把锁,若想同时执行多个方法需改为异步方法。

2017-03-16 21:29:33 166

原创 线程-多个线程多个锁

多个独立的线程都可以拿到自己制定的锁,分别获得锁之后,执行synchronized方法体中的内容。关键字synchronized取得的锁是对象锁,而不是把一段代码当做锁,多个线程获得的就是多个不同的锁,它们之间互不影响。除非在静态(static)方法上面加上synchronized关键字,表示锁定class类,变成了独占class类,这样多个线程就必须同步去执行相同方法。

2017-03-16 21:19:33 256

原创 线程安全概念

线程安全概念:        当多个线程访问同一个类(方法或对象)时,这个类始终都能表现出正确的行为,那么这个类(方法或对象)就是线程安全的。synchronized:synchronized是java关键字--同步锁,它可以任何对象和方法上加锁,而加锁的这段代码被称为互斥区。

2017-03-14 10:46:14 351

原创 初识线程

进程一个进程就是一个独立的执行环境。进程有着完整的,私有的基本的运行时资源,尤其是每个进程都有自己的内存空间。 进程通常会被看作是程序或者是应用程序的同义词。然而,用户看到的应用程序实际上可能是多个相互协作的进程。为了方便进程间通讯,绝大多数的操作系统都支持IPC(Inter Process Communication , 进程间通讯),诸如管道(pipe)和套接字(soc

2017-03-14 10:15:25 180

空空如也

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

TA关注的人

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