JAVA SE中你可能不知道的知识点
2017-04-24 17:13
274 查看
一、你可以给数字添加下划线
例如1_000_000(或者0b1111_0100_0010_0100_0000)表示100万。下划线阅读起来更容易,JAVA编译器会直接删除他们
二、带标签的break声明
break声明只是跳出直接封闭循环或者switch。如果你想跳到另外一个封闭声明的结束,则使用带标签的break声明。在应该退出的声明加上标签,像这样,给break提供标签:public static void main(String[] args) { outer: for(Integer i=1;i<10;i++){ for(Integer j=1;j<10;j++){ System.out.println(i+"+"+j); if(j.equals(5)) break outer; new Runnable() { public void run() { try { Thread.sleep(500); } catch (Exception e) { // TODO: handle exception } } }.run(); } } }
甚至可以是声明块
chunk:{ ...... if(...) break chunk; ...... }
三、命令行参数
所有java程序的main方法都有一个字符串数组的参数: public static void main(String[] args) 当程序执行时,在命令行中指定的参数就赋值给args 例如:
public class Test { public static void main(String[] args) { for(String arg:args){ if(arg.equals("-h")){ System.out.println("hello"); } } } }
如果程序以如下方式调用 java Test -h 那么 args[0] 为"-h"
四、Accessor(访问器)和Mutator(更改器)方法
如果一个方法改变了调用它的对象,我们就说这是个更改器方法。如果方法不改变调用自己的对象,他就是访问器方法。LocalDate类的plusDays方法就是访问器方法。大部分时候,共享对象是高效和方便的,但是你必须意识到,通过任何一个引用,都可能修改共享对象,安全的并发访问成了严重的问题。解决这种问题的一种方法就是只提供访问器方法,使得对象都是不可变的。
五、工厂方法
静态方法:给不属于你的类提供额外功能。 工程方法:静态方法的一种常见的使用,也就是返回一个类的新实例的静态方法。
为什么不用构造函数代替?区分两个构造函数的唯一方法是他们的参数类型。因此,你不能有两个无参数的构造函数。工厂方法也能返回共享对象,无须每次构建一个新对象。例如,调用Collections.emptyList()返回一个共享的不可修改的空列表。
六、内部类
/* * 除了编译时常量外,内部类不能声明静态成员。如果内部类有静态成员, * 那关于"static."的含义将会是模糊不清的。 * 它是意味着虚拟机中只有一个实例,还是意味着每个外部对象只有一个实例? * Java语言的设计者决定不解决这样的问题。 */ public class NetWork { private List<Member> members; public class Member{ private String name; private ArrayList<Member> friends; public Member(String name) { super(); this.name = name; this.friends = new ArrayList<>(); } public void leave(){ NetWork.this.members.remove(this); } } public Member enroll(String name){ Member newMember=new Member(name); members.add(newMember); return newMember; } }
内部类的方法可以访问它的外部类的实例变量,每个内部类对象都有自己外部类对象的引用。
相关文章推荐
- html你可能还不知道的一些知识点
- JavaScript 优雅的实现方式包含你可能不知道的知识点
- CSS3 Transitions 你可能不知道的知识点
- CSS你可能还不知道的一些知识点
- 你可能不知道的前端知识点
- html你可能还不知道的一些知识点
- 关于HTML你可能不知道的一些知识点
- ios 备忘录---你可能不知道的小知识点
- JS你可能还不知道的一些知识点(一)
- CSS你可能还不知道的一些知识点
- JS你可能还不知道的一些知识点(一)
- 一切小知识点,可能不知道原因
- 关于CodeIgniter你可能不知道的5个知识点
- 你可能不知道的前端知识点之:IntersectionObserver
- 关于PHP你可能不知道的10件事
- 这些你可能不知道:软件测试的常识
- 这些你可能不知道:软件测试的常识
- 您可能不知道的CSS元素隐藏“失效”以其妙用
- 盘点:你可能不知道的Linux用户(金融篇)
- 20个你可能不知道的 Linux 网络工具