`
得小白者天下得
  • 浏览: 7871 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
    语法糖本质上来说,应该算是一种障眼法。但是这个障眼法却能使程序员编程更加简单出错也更少,程序也相对简洁、可读性高。在看JVM的时候,突然看到这部分内容,就和大家分享一下。知其然,更要知其所以然,了解本质才能更好理解事物。 首先,我们来看看泛型: public static void genericsSugar() { Map<String, String> map = new HashMap<String, String>(); map.put("hello", "nihao"); ...
public class VarArgs { static void printArray(A... args) { for (Object obj : args) { System.out.println(obj + " "); } System.out.println("#######"); } static void printArray(Object... args) { for (Object obj : args) ...
在try{}catch{}finally{}块中,都知道finally子块是肯定会执行的。当然也有个别情况,当在try{}或者catch{}块中出现强制退出System.exti(int)时,finally子块就不会执行了。这种情况不在今天的谈论范围以内。 看代码更加直观些: package practice; public class FinallyRun { private int a = 0; public int getInt() { try { a = 1; return a; } finally { a = 2; // re ...
  我们知道,动态绑定的调用是在运行时才决定的,对象无法知道到底调用的是哪个类的方法。   当我们在构造器中调用动态绑定的方法,就会用到该方法被覆盖之后的定义。但是这种调用的效果难以预计,因为被覆盖的方法在 ...
我们知道,在初始化一个类时,如果它的父类没有进行初始化,那么JVM就会触发其父类的初始化动作。但是,当我们引用类的时候,可不一定会触发其初始化,这种引用类的方式称为被动引用。 看下面的例子: public class NotInit { ...
看过Thinking in java的人都知道,在不考虑父类的情况下,类的初始化顺序相对简单,总体是先静态的,然后是非静态的。这里都包括成员变量和代码块。对于静态变量和静态代码块,不管它们在何处定义,总是按照其先后顺序进行 ...
学习Java也有一段时间了,从刚开始就用Eclipse,对命令行编译运行java文件就忽略了。先上代码:HelloWorld.java package test; public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld"); } } 以前一直以为在命令行下使用javac命令编译java文件,必须和源文件名一致(包括大小写)。我用的是win8的32位系统。但是当我在命令行下输入 javac helloworld. ...
先来代码 package test; public class TestGetClass { public static void main(String[] args) { A a1 = new A(); Object o1 = new A(); System.out.println(a1.getClass().getSimpleName()); System.out.println(o1.getClass().getSimpleName()); System.out.println(o1.getClass().getSuperclass() ...
Global site tag (gtag.js) - Google Analytics