Java

几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列

微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果。虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开发进程。本文选自《架构解密:从分布式到微服...

java 操作mongoDB

引入jar包:<dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>3.0.2</version><...
代码星球·2020-08-12

分布式服务管理zookeeper的java api

zookeeper是一个分布式服务管理工具,本身具备高可用性,很多知名分布式系统入hadoop、Hbase等都采用zk管理。常见的两个应用场景:1、服务的注册与发现  2、集群统一配置下面看一下使用java对zk进行交互的常用api首先maven引入:<dependency><groupId>o...

Java设计原则

引用一段经典的话,“武学的最高境界是无招胜有招”,在编程领域,设计模式就可以认为是招数,而真正的内功心法是设计原则;下面讲述一下编程中应该遵循的基本原则1、单一职责原则  一个类只负责一种职责,只有这种职责的改变会导致这个类的变更。绕口一点的正统说法:不要存在多于一个原因导致类变更  假如:类T...
代码星球·2020-08-12

redis集群使用Java工具类(Java jedis集群工具类)

packagecom.xiaomi.weather.vote.webservices.util.redisCache;importcom.google.common.base.Strings;importorg.apache.log4j.Logger;importredis.clients.jedis.HostAndP...

Java 关于final那些事

先说结论:对于引用类型的变量,Java本身会创建两个东西,一个是对象本身,另一个是记录对象地址的一个int值,将引用类型的对象声明为final实际上是固定记录地址的那个int的值不能改变,如果通过某种途径改变了对象本身,那么对象也就变了!看测试代码:/**Copyright(c)2017.Panteng.Co.LtdA...
代码星球·2020-08-12

Java properties配置文件工具类

/**Copyright(c)2017.Panteng.Co.LtdAllrightsreserved*/importorg.apache.log4j.Logger;importjava.io.File;importjava.io.IOException;importjava.io.InputStream;import...

struts2 result type的类型

一共十种类型1、dispatcher  默认的类型,相当于servlet的foward,服务器端跳转。客户端看到的是struts2中配置的地址,而不是真正页面的地址。一般用于跳转到jsp页面2、redirect、redirect-action  页面重定向,客户端跳转;前者用于跳转到jsp页面,后者用于跳转到actio...
代码星球·2020-08-12

kafka消息中间件及java示例

kafka是一个消息中间件,用于各个系统之间传递消息,并且消息可持久化!可以认为是队列模型,也可以看作是生产者消费着模型;简单的生产者消费者客户端代码如下:packagecom.pt.util.kafka;importjava.util.Date;importjava.util.Properties;importkaf...

Java 基于log4j的日志工具类

  对log4j日志类进行了简单封装,使用该封装类的优势在于以下两点:  1、不必在每个类中去创建对象,直接类名+方法即可  2、可以很方便的打印出堆栈信息  packagecom.tradeplatform.receiveorder.util;importjava.io.PrintWriter;importjava....

spring AOP 代理机制、执行过程、四种实现方式及示例详解

 1、加载过程  spring首先检测配置文件中的代理配置,然后去加载bean;如果配置文件中没有配置代理,自然代理不会生效,如果配置了代理,但是代理还没有生效,那么有可能是加载顺序的问题,即在检测到代理配置之前,先加载的bean;这种情况尤其是在多个spring配置文件中的系统中容易出现,注意spring配...

Java 集合类

1、Java中的三大类集合list、set、map  其中list和set均实现了collection接口,并且应用了泛型;publicinterfaceList<E>extendsCollection<E>publicinterfaceSet<E>extendsCollection...
代码星球·2020-08-12

Java 类的加载过程(阿里面试题)

问以下程序打印出什么内容:  问题及解析如下:/***加载方法不等于执行方法,初始化变量则会赋值*类加载顺序应为加载静态方法-初始化静态变量-执行静态代码块*实例化时先加载非静态方法-实例化非静态变量-执行构造代码块-执行构造函数*@authorpanteng**/publicclassStaticTest{/**第一...

Java 中的四种引用及垃圾回收策略

Java中有四种引用:强引用、软引用、弱引用、虚引用;    其主要区别在于垃圾回收时是否进行回收:  1.强引用  使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回...

java 静态方法和单例模式的区别

1、加载时间  首先明白内存问题  Java内存分为:堆内存、栈内存、方法区(静态区和非静态区)、本地方法区  无论是静态方法还是非静态方法,在内存中都只有一份分别位于方法区的静态区和非静态区;非静态方法在调用时会默认使用this传入当前对象,静态方法无此参数;  在第一次创建一个类实例,或者调用类的静态属性、静态方法...