Java知识Part01

1、一个字节8bit

2、char2个字节

3、接口的方法默认为public,除了static、final变量,不能有其他变量,接口是对行为的抽象,是一种行为的规范,可以通过extends关键字扩展多个接口

4、StringBuffer 线程安全 ,对于线程不安全的StringBuilder 性能低10%~15%

5、protected和private作用相当,差别仅在于继承的类可以访问protected成员,但是不能访问private成员

6、java是单根继承,顶级父类只有Object,是便于垃圾收回的基础。

7、堆栈 指针向下移动,分配新的内存,向上移动 释放内存

8、存储位置 寄存器——》堆栈——》堆——》常量存储——》非RAM存储

9、方法名和参数列表 合起来称为“方法签名”

10、while(x = y) 编译器期望的是一个布尔值。由于Java不会自动将int换成布尔值,所以编译器会抛出一个编译时错误,所以如果x和y都是布尔值的时候,x=y属于合法表达式

11、类型转换(cast)原意为模型铸造

12、窄化转换(narrowing conversion) 将能容纳更多信息的数据类型转换成无法容纳那么多信息的类型

13、static方法的内部调用非静态方法

传递一个对象的引用到静态方法里(静态方法可以创建其自身的对象),然后通过这个引用(和this效果相同),就可以调用非静态方法和访问非静态数据成员。但通常达到这个效果,只需要写一个非静态方法即可

public class StaticInvokeNoStaticMethod {

    private String a = "hello";

    public static void main(String[] args) {

        StaticInvokeNoStaticMethod financeBenefit = new StaticInvokeNoStaticMethod();

        StaticInvokeNoStaticMethod.Test1(financeBenefit);

    }

    void show(){

        System.out.println("world");

    }

    public static void Test1(StaticInvokeNoStaticMethod financeBenefit){

        System.out.println(financeBenefit.a);

        financeBenefit.show();

    }

}

14、即时(Just-In-Time,JIT)编译器技术,可以把程序全部或部分翻译成本地机器码(这本来是Java虚拟机的工作),程序运行速度因此提升。当需要装载某个类(通常是在为该类创建第一个对象)时,编译器会先找到其.clss文件,然后将该类的字节码装入内存。

此时,有两种方案可供选择。一种是让即时编译器编译所有代码,但是这方法有2个缺陷:这种加载动作散落在整个程序生命周期内,累加起来要花更多的时间;

并且会增加可执行代码的长度(字节码要比即时编译器展开后的本地机器码小很多),这将导致页面调度,从而降低程序速度。

另一种做法为惰性评估(lazy evaluation),即时编译器只在必要的时候才编译代码,这样,从不会被执行的代码也许就压根不会被JIT所编译。新版JDK的Java HotSpot技术就采用了类似的方法,代码每次被执行的时候都会做一些优化,所以执行的次数越多,它的速度越快。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,681评论 1 114
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,697评论 0 11
  • 一. Java基础部分.................................................
    wy_sure阅读 3,839评论 0 11
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,417评论 0 4
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,267评论 0 2