static Bowl bowl5 = new Bowl(5); }public class StaticInitialization { public static void main(String[] args) { print("Creating new Cupboard() in main"); new Cupboard(); print("Creating new Cupboard() in main"); new Cupboard(); table.f2(1); cupboard.f3(1); } static Table table ...
importjava.util.HashMap;importjava.util.Map;publicclassStaticMapInitializationExample{publicstaticvoidmain(String[]args){Map<String,String>countries=newHashMap<String,String>(){{put("China","Beijing");put("USA","Washington, D.C.");put("India","New Delhi");put("Japan","Tokyo");}};// ...
public class MathCache {private static Map<Integer, Double> squareRootCache = new HashMap<>();public static double getSquaredRoot(int number) {if (!squareRootCache.containsKey(number)) {double result = Math.sqrt(number);squareRootCache.put(number, result);}return squareRootCache.get(number);...
publicclass Test {privatestatic finalMap<Integer,String> myMap; static {Map<Integer,String> aMap =...; aMap.put(1,"one"); aMap.put(2,"two"); myMap = Collections.unmodifiableMap(aMap); } } 原文由 我喜欢Guava初始化静态、不可变地图的方式: staticfinalMap<Integer,String> MY_MAP = Immuta...
不要将数组声明为public static final 不要创建一些不使用的对象,不要导入一些不使用的类 程序运行过程中避免使用反射 使用数据库连接池和线程池 容器初始化时尽可能指定长度 ArrayList随机遍历快,LinkedList添加删除快 使用Entry遍历map 不要手动调用System().gc; String尽量少用正则表达式 日志的输出要注意级别 对资源...
static{ i =0;// 给变量赋值可以正常编译通过 System.out.print(i);// 这句编译器会提示“非法向前引用” } staticinti=1; } 与类的构造函数(或者说实例构造器 <init>())不同,不需要显式的调用父类的构造器。虚拟机会自动保证在子类的 <clinit>() 方法运行之前,父类的 <clinit>() 方法已经执行结束...
publicclassFoo{publicstaticvoidmain(String[]args){int a·=3;int b=a+2;System.out.println(b);}} 使用javac编译Foo.java得到二进制字节码文件Foo.class,但二进制的Foo.class难以被人类理解,为了直观地查看编译后的字节码,可以使用JDK中的javap -verbose Foo.class输出人类可读的字节码,部分输出如代码清单2...
static int i = 10;在编译成字节码的时候,解析成如下形式:#2 = Fieldref #3.#18 // S...
ClassLoader默认支持并发加载,可以通过ClassLoader.registerAsParallelCapable方法主动取消并发加载操作,ClassLoader实现并发加载的原理如下:当ClassLoader加载类时,如果该类是第一次加载,则会以该类的完全限定名称作为Key,一个new Object()对象为Value,存入一个ConcurrentHashMap的中。并以该object对象为锁进行同步控制。同一...
public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); ctx.scan("com.acme"); ctx.refresh(); MyService myService = ctx.getBean(MyService.class); } 请记住,@Configuration 类是用 @Component元注解的,所以它们是组件扫描的候选者。在...