收藏本站

spring boot 默认配置加载

SERVLET_CONFIG_PROPERTY_SOURCE_NAME  //sevlet config 占位


SERVLET_CONTEXT_PROPERTY_SOURCE_NAME //sevlet context 占位


JNDI_PROPERTY_SOURCE_NAME //jndi property  jndi可用时


SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME // getProperties -D 参数添加


SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME // getEnv&nb...

阅读全文>>

tomcat jmx 穿墙配置

默认情况下tomcat的jmx 访问需要两个端口,但因其中一个说动态的,有防火墙情况就难以配置。

tomcat 官方提供一个监听器,用于设置jmx 端口。方法如下:

1. 下载扩展包,到tomcat lib 下,下载地址在官网下载页Extras: JMX Remote jar

2. 在server.xml 中增加监听器配置。

 <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
          rmiRegistryPortPlatform=...

阅读全文>>

getMethod 与 getDeclared 区别

Java 的 Class 类提供了很多的 getDeclared××× 方法和 get××× 方法,例如 getDeclaredMethod 和 getMethod 成对出现,getDeclaredConstructors 和 getConstructors 也是成对出现,那两者有什么差别呢?看如下代码:

  1. public static void main(String[] args) throws Exception {  
  2. &...

阅读全文>>

hotspot 垃圾回收器配置

名称   
描述 参数
Serial 新生代收集器,单线程收集器,停顿时间长。试用与客服端,小内存
ParNew    新生代并行收集器,Serial的多线程版本,可与CMS配合 -XX:ParallelGCThreads=n 线程数,默认与cpu数一致
Parallel Scavenge 新生代并行收集器,并ParNew 更关注吞吐量

-XX...

阅读全文>>

hotspot 虚拟机参数

-Xms20M 最小堆内存

-Xmx20M 最大堆内存

-Xmn10  新生代内存。

-XX:SurvivorRatio=8 新生代中 eden 区内存与两个survivor 区内存比。如为8 则 Eden 区大小为8M,2个survivor 区各为 1M。新生代总内存为10 ,可用内存为9(eden + 1个survivor)。老年代为10M。

-XX:PermSize=10M 方法区最小内存

-XX:PermSize=20M 方法区最大内存

阅读全文>>

java 泛型实现原理及使用详解

    自java 1.5 起,我们可以在java中使用泛型了。关于为什么要使用泛型,可能是很多新手迷茫的地方。用一个Object 类代替不就好了。光说也记不住,练吧,如:


//未使用泛型时

 	public static void test(){
		List l = new ArrayList();
		l.add(Integer.valueOf(1));
		Integer b = (Integer) l.get(0);
		System.out.println(b);
	}

//使用泛型后	
	public static void t...

阅读全文>>

System.arraycopy 是浅拷贝?

    jdk 5新增的java.util.concurrent 包中有个CopyOnWriteArrayList类。从名字及所属包猜得出他是个与线程安全有关的List实现类。但今天我主要关心的还不是它,而是发现源代码中在这个类中元素集合改变时除了同步以外还大量用到 System.arraycopy 进行元素拷贝。于是引发了System.arraycopy 是深拷贝还是浅拷贝这个问题。这个方法是native 方法,传说速度是比较快的。但也就没法让我通过读源代码确定其是深拷贝还是浅拷贝。不过有copy 两字,我想应该是深拷贝,不然也就没必要建这个方法,况且还是本地方法。但工科是不能用猜的,还是做实验吧。

阅读全文>>

java 自动装箱、拆箱深入理解

    java 自动装箱作为java 5 提供给程序员的一颗语法糖,确实给java 编程带来很大方便。但不要因为自动装箱好用就滥用,因为其毕竟只是语法糖,本质是在通过调用各包装类的valueOf 方法来实现,所以对性能要求较高的地方,更要慎用。很多专家,包括有效编程 作者也建议,我们在能用基本类型的地方尽量用基本类型,不要用包装类因为其容易引起自动装箱。

    下面先来做一个测试:

	public static void main(String[] args) {
		Integer a = 1;
		Inte...

阅读全文>>

java 创建单例模式的几种方式及注意事项

    单例模式是java 设计中常用创建模式,特别适合于一些可以共用,及特别占用资源的类的创建。

    创建单例模式类方式常被分为懒汉式和饿汉式。下面简单列出各种方式代码并简单分析。

   

懒汉式一

/**
 * 单例模式测试
 * @author tjx
 */
public class SingleTest {
	//这是饿汉式,类一加载就创建改类对象创建好。
	//这种方式优点:简单,快捷,不需要考虑同步
	//缺点:如果该类的创建是比较...

阅读全文>>

深入理解java String

    字符串是最常用的数据类型,甚至比基本类型还用的多。正因如此,java 也对String 做了一些特殊处理,使得我们在编程时使用String 和 使用自动装箱的基本数据类型包装类很相似。

如:

     包装类: Integer a = 1;    a =a+1;

     String:   String a ="abc";  a=a+"d";

但不要因此就认为String...

阅读全文>>