zoukankan      html  css  js  c++  java
  • Java知识储备

    1,关于 . java文件
    规定:第一行为 package name; 表示该.java文件属于哪一个包。
    一个.java文件中可以有多个类,但是只能有一个public类,并且这个public类必须与.java文件名一样(区分大小写)。
     
    2,package(包)
    概念:package表示包,类似于文件夹。
    ··· 注意:如果一个.java文件声明了package,在使用javac编译时要使用带包编译即:javac -d . name.java,否则在执行.class文件时会报错(找不到或无法加载主类)。
    ··· package的命名规范为域名倒置,例如:com.company.department.group.project.module;逐步细化。
     
    3,CLASSPATH和JAVA_HOME的作用
    classpath是java编译后生成的.class文件的存放位置,默认为 . 即在当前目录下生成.class文件,java1.6后不用配置。
    java_home是java安装目录的根目录。
     
    4,类加载
    ··· 概念:
    JVM首次使用某个类时,需要通过CLASSPATH查找该类的.class文件,并将.class文件中对类的描述加载到内存中,进行保存(如:包名,类名,父类名,属性,方法,构造方法等)。
    ··· 何时加载
        · 被动加载:创建对象,创建子类对象,访问静态属性,调用静态方法。
        · 主动加载:Class.forName("全限定名");  // 类似于反射。
    ··· 注意:
        · 类加载时使用“双亲委派机制”,首先通过启动器和标准扩展查看是不是就java.lang包下的类,如果不是,再用系统类加载器加载用户定义的类。这样可以防止黑客修改lang包下的类。
        · 可以通过类加载器隔离加载的类,比如一个Tomcat可以部署多个项目时,就是通过类加载器隔离不同项目中加载的类。
     
    5,代码块
    ··· 静态代码块:类加载的时候执行(且只会执行一次),可以用来初始化静态属性。 // stataic{}
    ··· 动态代码块:对象创建的时候执行,类似于构造方法。
    ··· 方法中的代码块:用来隔离变量的作用域。
     
    6,创建对象时的执行步骤
    ··· 类加载(如果类还没有加载):
        初始化静态属性;
        执行静态代码块;
    ··· 对象初始化(执行构造方法):
        初始化实例属性;
        执行动态代码块;
        执行构造方法中的内容;
     
    注意事项
        · 构造方法不能递归调用。
        · idea中把jar添加到Modules,其实就是在执行java命令时,把jar包的路径添加到-classpath参数中。-classpath就是启动JVM时这个程序所有的 .class文件所在的目录,然后找到入口main方法开始执行。
        · Runtime.getRuntime().addShutdownHook(new Thread)可以添加一个钩子,当JVM退出时,会执行这个线程。
  • 相关阅读:
    Web后门工具WeBaCoo
    苹果内存取证工具volafox
    PlayMaker GUI的Normalized
    Arduino可穿戴教程之第一个程序——选择端口(三)
    缩略图信息提取工具vinetto
    jquery的defer
    toDo
    瀑布流案例
    js基本知识6
    js基本知识5
  • 原文地址:https://www.cnblogs.com/shendeng23/p/12417035.html
Copyright © 2011-2022 走看看