课程咨询 :18487146383

  • 关于 Java 的4个谎言

    发布:长沙Java培训      来源:码农网      时间:2016-09-21

  • 有一些关于java的常见叙述,在网上比较流行,但是有时候这些内容是错误的。所以,今天来跟着达内长沙java培训纠正一下这些错误吧:

    1. System.exit(0)会跳过finally块的执行

    System.setSecurityManager(new SecurityManager() {

    @Override

    public void checkExit(int status) {

    throw new ThreadDeath();

    }

    });

    try {

    System.exit(0);

    } finally {

    System.out.println("In the finally block");

    }

    这段代码为什么会输出In the finally block?为什么没有打印出堆栈跟踪信息呢?

    2. String str =“Hello”;其中str是一个字符串对象

    跟C++不同的是,Java里的变量要么是基础类型,要么是引用。变量不可能是对象。这意味着像这样的表达式:

    String str = "Hello";

    String text = "Bye";

    str == text; //比较两个引用,而不是内容

    str = text; //把text的引用赋值给str

    大多数情况下其实没有太大的区别,不过这么写容易引起困惑。

    final StringBuilder sb = new StringBuidler();

    sb.append("Hello"); //这个引用是final类型的,而不是这个实例。

    method(sb); //可以通过方法来修改这个实例,不过这个变量是无法修改的。

    3.Java的内存泄露跟C++程序员理解的一样

    达内长沙java培训看到内存泄露在维基百科上的定义是”在计算机科学中,如果程序没有正确地管理好内存分配 ,就会出现内存泄露。在面向对象编程中,如果内存中的一个对象无法在代码中访问不到的话,这就是内存泄露。” 不过在Java中,对象总是可达的,那些没有强引用的对象会被清除掉。内存泄露这个术语在Java中意味着:内存中存在着不该存在的对象,通常来说是有些不再使用的资源却仍存储在集合中。

    4.多线程编程很难

    如果你没有经验的话,多线程编程的确很难。如果你只是把一堆代码扔到一堆线程中去执行,那样出了问题根本没法解决,只能是一团糟。但达内长沙java培训觉得如果你能进行线程的按需分配,控制线程间的交互,使用一些团队中的成员也能明白的简单的模式,问题就变得简单多了。当然还有一个挑战就是你得让团队中的所有人都遵循你的这个规则。

上一篇:定义不可变对象的策略

下一篇:关于 Java面试的6个谎言

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:5月31日

Java--零基础业余班

Java--零基础业余班

开班日期:5月31日

Java--大数据全日制班

Java--大数据全日制班

开班日期:5月31日

Java--大数据业余制班

Java--大数据业余制班

开班日期:5月31日

  • 网址:http://cs.java.tedu.cn     地址:长沙市开福区芙蓉中路一段 476 号建鸿达现代城 9 楼
  • 课程培训电话:18487146383     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56