Java

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传入当前对象,静态方法无此参数;  在第一次创建一个类实例,或者调用类的静态属性、静态方法...

Spring 与 mybatis整合---事务管理

MyBatis与Spring整合前后事务管理有所区别整合前:通过  session=sessionFactory.openSession(true);  //或者是false设置事务是否自动提交;整合后,在这样写就不起作用了,无论设置为true还是false 都会自动提交事务;如果想设置事务非自动提交有以下几...

Spring 与 mybatis整合 Error parsing Mapper XML. Cause: java.lang.NullPointerException

mapper配置文件中的namespace没有填;而且namespase的值应该填为:mapper的权限定名;否则还是会抛出异常 org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'sqlSessi...

java NIO原理及实例

1、reactor(反应器)模式  使用单线程模拟多线程,提高资源利用率和程序的效率,增加系统吞吐量。下面例子比较形象的说明了什么是反应器模式:  一个老板经营一个饭店,  传统模式-来一个客人安排一个服务员招呼,客人很满意;(相当于一个连接一个线程)  后来客人越来越多,需要的服务员越来越多,资源条件不足以再请更多的...
代码星球·2020-08-12