每日知识点20190609

java

  • javadoc只能为public和protected成员进行文档注释,private和默认权限的注释则会被忽略掉,不过可以用-private进行标记,以便把private成员的注释耶包括在内.

  • int x = Character.digit('c', 16):是把16进制的c转为10进制,结果是12,16进制中a、b、c、d、e、f分别代表10、11、12、13、14、15.

  • 计算机中计算都是采用补码计算的。在计算机中的机器字长的最高位表示正负,0为正数,1为负数。正数的原码、反码和补码都一样,都等于原码。负数的原码是正数的原码将其最高位变成1即可,负数的反码就是在原码的基础上符号位不变其余位按位取反,负数的补码就是在反码的基础上+1.值得注意的是,计算机将数值10000000表示为最大负数-128.推荐大家看下为什么计算机中要采用补码来储存数据,这是我搜索当中觉得不错的一篇文章-为什么计算机采用补码形式进行数据的表示.

  • 对于byte或short值进行移位运算,得到的可能不是正确的结果。它们会被转换成int类型,在进行移位操作,然后被截断,赋值给原来的类型.如short i = -1; i >>>= 10; 因为i是short类型,所以会被截断,最终的结果是-1.

  • Math.round:四舍五入.

  • 如果在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return.

  • 对于一类中的成员最好使用private访问权限修饰符。若你直接让外部类去访问该属性,有一天如果想要改变获取该属性的方式,那外部类岂不是也要跟着修改,所以最好的方式是用private修改该属性,同时提供具有public修饰符的方法,该方法主要用来获取该属性,至于怎么获取就是你说了算,外部类只要调用该方法即可,即使哪一天获取属性的方式变化了,也只需要修改方法的内部代码即可,外部类的调用方法还是不变.

  • 当实现某个接口时,并不需要实现嵌套在其内部的任何接口.

  • 当某个外围类的对象创建了一个内部类对象时,此内部类对象必定会秘密地捕获一个指向那个外围类对象的引用.

  • 看到这个程序的时候一开始我是不能理解的,后面仔细想想好像很有道理!先不用管为什么要这么写,看就完事了!


    package a;
    public class A extends B{

        public B b;

        public A(B b) {
            this.b = b;
        }

        public void a () {
            System.out.println(name);//compile ok
            System.out.println(b.name);//compile error
        }
    }

    package b;
    public class B {
        protected String name;
    }

一开始我想着没问题啊,怎么会报错呢?后面一想想,这是两个事情啊!不能混为一谈.name是在访问A类中的变量,按照protected权限来说是可以访问的,但是对于另外一个对象b自身来说,若是在该类里面去访问name是没问题的,但是借助其他类来访问b对象,让b对象去访问name是不可取的,因为A类与b对象没有任何的关系,b.name就是去访问b类中的name变量,不好意思,它只对子类或同包访问,而A类都不是,可以考虑下若b = new C(),而C类正好继承B,这种多态场景下是不是更好理解一些.

  • 高级for循环,只要是实现了Iterable类都可以使用高级for循环,实际上它底层是调用的迭代器的hasNextnext方法,当然这些是编译器帮你做的,不用我们操心了,于是我又很好奇的尝试了数组,不知道它底层有没有实现Iterable,因为它也是可以使用高级for循环,结果不太一样,也是编译器帮你做的,只不过是假的高级for循环,最终被编译成了普通的for循环了.

高级for-1

很简单,以上是源码.

高级for-1

以上是编译后的字节码文件,不信你编一个试试.

  • 为什么说向上转型是运行时安全,向下转型是运行时非安全:假设代码能够正常编译,对于任意一个子类对象而言,都能将其子类引用类型转换成父类引用类型(多态),即使在运行时子类对象任意变化代码都能够正常运行,而在向下转型时,对于父类引用指向子类对象而言,我们并不知道具体是哪个子类对象,只能在运行时才能确定它,一旦子类对象类型不匹配则会抛出异常。
posted @ 2020-12-21 22:47  zliawk  阅读(62)  评论(0)    收藏  举报