自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 问答 (3)
  • 收藏
  • 关注

原创 kafka配置参数

############################# System ############################# #唯一标识在集群中的ID,要求是正数。 broker.id=0 #服务端口,默认9092 port=9092 #监听地址,不设为所有地址 host.name=debugo01 # 处理网络请求的最大线程数 num.network.threads=2 # 处理磁盘I

2017-07-21 13:06:31 658

原创 java注解使用

语法 声明public @interface 成员以无参无异常方式声明 可以用default为成员指定一个默认值 如果注解只有一个成员,则成员名必须为value(),在使用时可以忽略成员名和赋值号(=) 注解类可以没有成员,没有成员的注解为标识注解 元注解+ @Target- Annotation所修饰的对象范围(Type,Field,Method) + @Retention- Annotation

2017-07-20 17:36:19 455

原创 java使用泛型

泛型方法 是否拥有泛型方法,与其所在的类是否泛型没有关系。要定义泛型方法,只需将泛型参数列表置于返回值前。 public static <T> void test(T param){ System.out.println("value="+param+", type="+param.getClass().getName()); } //调用 test("hello");//

2017-07-20 16:39:12 415

原创 Orika简单使用

使用orika进行对象间Mapping 1. 当两个类的属性名都一样 package com.orika; /** * Title:CopiedStudent.java * Description: * * @author zhuyang * @version 1.0 2017/7/18 */ public class CopiedStudent { private St

2017-07-18 09:51:43 4032

转载 Java基础学习过程

JVM 1. 内存模型( 内存分为几部分? 堆溢出、栈溢出原因及实例?线上如何排查?) 2. 类加载机制 3. 垃圾回收 Java基础 什么是接口?什么是抽象类?区别是什么? 什么是序列化? 网络通信过程及实践 什么是线程?java线程池运行过程及实践(Executors)

2017-04-05 14:58:46 453

原创 一些面试java

最近一直在找工作京东 阿里这些都去过好几次的,但是结果都是一样。所以,还是自己能力不行吧,虽然自己觉得答的不那么差。在这里做一个总结吧,我想随着我面试失败次数的增加,文章内容也会不断修改,大公司一般问的干货比较多,话不多说. 1. java自动装箱和拆箱 java将基本数据类型自动转成相对应的对象(int->Integer)叫自动装箱,反之(Integer->int)叫自动拆箱。因为装拆箱动作

2017-02-25 16:43:29 405

转载 hashMap的原理 深入理解

前言:这篇文章写的越品越有味 首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类):equals:是否同一个对象实例。注意,是“实例”。比如String s = new String(“test”);  s.equals(s), 这就是同一个对象实例的比较;等号(==):对比对象实例的内存地址(也即对象实

2017-02-07 21:44:00 462

原创 JVM运行机制

本文主要讨论以下内容: 1. JVM启动流程 2. JVM基本结构 3. 内存模型 JVM启动流程 1. 我们在启动一个JAVA程序的时候一般是通过java命令启动。 2. 运行java命令后JVM会首先加载jvm.cfg文件 3. 通过cfg找到JVM.DLL 4. jvm.dll初始化jvm并获得JNIEnv接口用来findClass 5. 最后运行class里的ma

2017-01-18 22:53:05 437

原创 SpringCloud(六)springcloud feign

概念: Feign是一个可声明式的webservice客户端。它能让调用webservice更加简单,通过对接口的注解便可轻松使用。spring cloud同时集成了Ribbon和Eureka来对Feign提供负载均衡。 大概使用: Example spring boot app @Configuration @ComponentScan @EnableAutoConfiguration

2017-01-16 22:21:59 1666

原创 SpringCloud(五)Ribbon自定义负载均衡插件

上篇文章介绍了怎么配置不同的负载均衡的方式,使用的是ribbon自带的几种策略。现在我们通过插件的方式添加新的一种策略。 package com.zhuyang.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.

2017-01-11 23:41:45 2797

原创 SpringCloud(四)Ribbon自定义负载均衡

上篇文章我们已经完成了Ribbon负载均衡的功能。做法很简单,只需要在RestTemplate添加@LoanBalanced 的注解。默认情况下,Ribbon的负载均衡策略是RoundRobbin(轮训)的方式,可很多时候在特定场景下需要不同的策略,这个时候就需要自定义Ribbon策略了。看下面代码: package com.zhuyang.cloud.controller; import o

2017-01-11 23:15:17 12892 4

原创 Oracle PL/SQL复习

这是很早以前写在javaeye的,现在搬过来。 DESC STUDENTTABLE SET SERVEROUTPUT ON; declare v_str1 VARCHAR2(10); v_str2 VARCHAR2(50); begin v_str1:='hello'; select STUDENT_NAME into v_str2 from STUDENTTABLE where S

2017-01-10 23:00:26 381

原创 Jedis实现发布(Publish) 订阅(Subscribe)

package com.zhuyang.redis.mq; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * get Jedis * @author zhuyang * */ public c

2017-01-10 22:46:37 5855

原创 Java使用Jedis操作Redis

package com.zhuyang.redis.command; import redis.clients.jedis.Jedis; public class Utils { public static Jedis getJedis (){ return new Jedis("localhost"); } } package com.zhuyang.redis.command;

2017-01-10 22:43:21 561

原创 SpringCloud(三)Ribbon负载均衡

上篇文章我们成功的将providr和consumer注册到eureka上面了。但是有两个问题: 1、 consumer通过rest请求provider的时候,url是硬编码return this.restTemplate.getForEntity("http://localhost:8001/simple/" + id, User.class).getBody(); 2、 provide

2017-01-09 23:16:55 6545

原创 SpringCloud(二)将服务注册到Eureka

在上篇文章中我们已经写好了服务站和消费者。本文将会把两个服务注册到Eureka服务中。 Eureka Server package com.zhuyang.cloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootAppli

2017-01-09 22:59:48 4031

原创 SpringCloud(一)构建SpringBoot微服务

本篇文章将会展示两个springboot项目,一个是provider(服务提供者),另一个是consumer(服务消费者).基本思路是provider通过查询数据库返回信息,consumer通过rest的方式访问provider. 下面看代码: Provider DemoMicroserviceProviderUserApplication.java package com.zhuya

2017-01-09 22:47:06 2829 1

原创 ActiveMQ之HelloWorld

本篇文章从代码角度去实现一个mq。因为ActiveMQ是对JMS的一种实现,因此,AMQ的开发步骤就应该和JMS的开发模型一样。 1. 创建ConnectionFactory 2. 创建Connection 3. 创建Session 4. 创建Destination/Topic 5. 创建Producer/Consumer package com.zhuyang.mq.p2p; im

2017-01-09 21:49:02 497

转载 JMS基本概念基本概念

基本概念 JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。 消息模型 ○ Point-to-Point(P2P) ○ Publish/Subscribe(Pub/Sub) 即点对点和发布订阅模型 P2P P2P模式图  涉及到的概念  消息队列(Queue)发送者(Sender)接收者(Receiver)每个消息

2017-01-09 21:40:55 385

原创 Redis常用命令

String set --设置字符 set hello world setnx --设置key对应的值。如果key存在,则返回0,且设置不生效。 setnx hello new_world setex --设置key对应的值。且设置其失效时间。 setex hello2 10 'i will be expi

2016-12-30 20:48:54 378

转载 深入理解Java内存模型之系列篇

深入理解Java内存模型(一)——基础 并发编程模型的分类 在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来

2016-12-27 20:26:51 411

转载 垃圾收集器(二)

1、Serial收集器曾经是虚拟机新生代收集的唯一选择,是一个单线程的收集器,在进行收集垃圾时,必须stop the world,它是虚拟机运行在Client模式下的默认新生代收集器。 2、Serial Old是Serial收集器的老年代版本,同样是单线程收集器,使用标记整理算法。 3、ParNew收集器是Serial收集器的多线程版本,许多运行在Server模式下的虚拟机中首选的新生

2016-12-26 23:05:40 312

原创 垃圾收集器(一)

引用计数法 很多地方判断一个对象是否存活的算法是给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就+1;档引用失效时,计数器-1;任何时刻计数器为0的对象就是不可能在被使用。但是主流Java虚拟机没用选用引用计数器算法来管理内存,其中最主要的原因是它很难解决对象之间相互循环引用的问题。(示例代码参考周志明 《深入理解java虚拟机 62p》) 可达性分析法 在主流的商用程序语言的主

2016-12-26 22:03:59 260

原创 JAVA内存区域

运行时数据区域 程序计数器 程序计数器是一块很小的内存空间,它可以看做是当前线程执行的字节码的行号指示器。 JAVA虚拟机栈 与程序计数器一样,java虚拟机栈也是线程私有的,他的生命周期与线程相同。虚拟机栈藐视的是java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用知道执行完成的过程,就对应着一个 栈帧在

2016-12-26 21:42:52 406

原创 SpringBoot Dubbo ZooKeeper项目(一)

该系列是一个以springboot dubbo zookeeper为技术栈的练习项目。很多东西不懂,还望大家多多指点。开始吧。 前提 安装好zookeeper最好是集群的,3个节点吧。 项目结构 user_manager_api -- 提供服务 UserManager - 接口,定义了登录,查询更新3个接口 UserManagerImpl - 实现 User -

2016-12-25 14:20:18 497

原创 Dubbo应用

在朋友的推荐下,最近在看阿里巴巴出的Dubbo项目,这个做一些笔记 需求 在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。 (1) 当服务越来越多时,服 务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。 此时需要一个服务注册中心,动态的注册和发现服务,使服务

2016-12-24 19:42:34 445

原创 CompletionService使用

前面说到Callable和Future。 每一个Callable都会返回一个Future. 但是如果ExecutorService启动了多个callable,那么我们就需要处理多个Future,这个时候就应该用到CompletionService ExecutorService exe2 = Executors.newFixedThreadPool(10); CompletionServi

2016-12-18 22:41:21 664

原创 Callable & Future

我们知道创建一个线程可以通过实现Runnable接口和继承Thread类,并重写run方法。但是run方法是不带返回的。 而Callable接口同样是用于多线程,并能返回一个Future ExecutorService exe = Executors.newFixedThreadPool(2); Future future =exe.submit(new Callable() {//sub

2016-12-18 22:36:37 327

原创 ThreadPool使用

为什么要用线程池: 1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。 2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,线程开的越多,消耗的内存也就越大,最后死机)。 Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是ExecutorSer

2016-12-18 22:20:56 577

原创 ThreadLocal使用

Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。 package com.zhuyang.concurrency.threadlocal; import java.util.HashMap; import java.util.M

2016-12-18 22:08:25 370

原创 java Atomic分析

JAVA在java.util.concurrent中提供了对原子操作的包,用来实现一些原子操作。 package com.zhuyang.concurrency.atomic; import java.util.concurrent.atomic.AtomicInteger; public class AtomicIntegerTest extends Thread { private s

2016-12-18 21:55:32 413

原创 java多线程Lock Condition生产消费者

直接看代码吧,log写的很清楚了,重点是在Queue.java类 Consumer用来消费 package com.zhuyang.concurrency.lock.notify; import java.util.List; public class Consumer implements Runnable { private Queue queue; public Consum

2016-12-12 00:46:13 422

原创 java 单例模式

/** * 饿汗式 * 饿汗式单例模式虽然免除了多线程所带来的影响,但是该对象是在类加载的时候就放到内存。如果该对象足够大,占用资源较多势必会影响程序的性能。 * * @author Administrator * */ public class Singleton1 { private static final Singleton1 instance = new Singleton1(); pr

2016-12-10 21:44:29 317

原创 js闭包和循环

function box(){ var arr = []; for(var i=0;i<5;i++){ arr[i]=function(){ return i; } } return arr; } var b = box(); console.log(b.length); for(var i=0;i<b.length;i++){ console

2016-12-10 21:38:58 314

原创 javascript闭包

概念:     闭包就是能读取到其他函数内部变量的函数。 创建一个闭包方式:     在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量。 function box(){ var user ='Zhu'; return function(){ return user; } } var b = box(); console.log(b(

2016-12-10 21:34:39 270

原创 zookeeper配置文件管理

最近在学ZK知识,刚刚入门,写了一个客户端监控节点配置文件内容的小程序。package com.zhuyang.zk.configuration; import java.io.File; import java.io.FileInputStream; import org.apache.zookeeper.AsyncCallback.StringCallback; import org.ap

2016-12-08 22:42:59 761

原创 将博客搬至优快云

将博客搬至优快云将博客搬至优快云

2016-11-30 20:21:19 132

原创 js闭包和循环

  function box(){ var arr = []; for(var i=0;i&lt;5;i++){ arr[i]=function(){ return i; } } return arr; } var b = box(); console.log(b.length); for(var i=0;i&lt;...

2016-11-30 17:25:57 207

原创 javascript闭包

概念:    闭包就是能读取到其他函数内部变量的函数。创建一个闭包方式:    在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量。 function box(){ var user ='Zhu'; return function(){ return user; } } var b = box(); console.log(b()) cons...

2016-11-30 17:11:15 136

原创 DIANPING

ASSASA

2016-09-06 21:33:44 421

空空如也

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

TA关注的人

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