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退出时,会执行这个线程。

1,Java知识储备的更多相关文章

  1. 剑指Offer——中国银行面试知识储备

    剑指Offer--中国银行面试知识储备+面试内容 事件介绍 时间:2016.11.23 08:30 地点:北京市海淀区永丰路299号南门(中国银行软件中心) 事件:中国银行面试(中英文面试) 注意事项 ...

  2. shrio的知识储备

    博客讲解; shrio的知识储备 shrio的简单认识 笔记整理地址: Shrio.pdf 下载 Shrio理论.doc 下载 Shrio知识储备.doc  下载 Shrio的知识储备 (一)   S ...

  3. Java知识体系

    Java知识体系 java知识结构.jpg web框架.jpg 计算机课程体系.png 2016-08-19_090929.png 流行的哈希算法生存状况.jpg "JAVA之父" ...

  4. 一个php技术栈后端猿的知识储备大纲

    <h1 align="center">Easy Tips</h1><p align="center"><a href= ...

  5. Android开发学习必备的java知识

    Android开发学习必备的java知识本讲内容:对象.标识符.关键字.变量.常量.字面值.基本数据类型.整数.浮点数.布尔型.字符型.赋值.注释 Java作为一门语言,必然有他的语法规则.学习编程语 ...

  6. python网络爬虫,知识储备,简单爬虫的必知必会,【核心】

    知识储备,简单爬虫的必知必会,[核心] 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌 ...

  7. Java知识体系纲要

    最近一段时间,把Java主要涉及到的大概念都大致学习了一遍,为了让自己能够更好地形成对Java知识体系的整体把握,先把学过的知识点添加到自己画的思维导图上. 整个Java知识体系的划分,我自己主要将它 ...

  8. 想要开发自己的PHP框架需要那些知识储备?

    作者:安正超链接:https://www.zhihu.com/question/26635323/answer/33812516来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  9. 震惊!90%的程序员不知道的Java知识!

    震惊!90%的程序员不知道的Java知识! 初学Java的时候都会接触的代码 public static void main(String[] args){ ... } 当时就像背公式一样把这行代码给 ...

随机推荐

  1. [ZJOI2019]语言(树链剖分+动态开点线段树+启发式合并)

    首先,对于从每个点出发的路径,答案一定是过这个点的路径所覆盖的点数.然后可以做树上差分,对每个点记录路径产生总贡献,然后做一个树剖维护,对每个点维护一个动态开点线段树.最后再从根节点开始做一遍dfs, ...

  2. MDS算法及其matlab实现

    问题背景: 在求解MTSP问题的时候,因为已知的为各个巡检点之间路径耗时长度,而这个具体描述采用无向图结构可以很好的描述,在matlab中通过函数(graphallshortestpaths)可以得到 ...

  3. 3)利用Build.php自动创建目录和文件

    (1)首先做法参照: thinkphp5的手册的  命令行--->自动生成目录结构 或者看云的资料:https://www.kancloud.cn/manual/thinkphp5/118021 ...

  4. dedecms_5.7 download.php SQL注入

    最近在看Web渗透与漏洞挖掘,这本书的编写目的感觉非常的不错,把渗透和代码审计结合在一起,但是代码审计部分感觉思路个人认为并不是很清晰,在学习dedecms v5.7 SQL注入的时候就只看懂了漏洞, ...

  5. AJAX数据传输(原生js)

    原生ajax写法 <!DOCTYPE html> <html lang=""> <head> <meta charset="UT ...

  6. Games

    题目描述 Alice and Bob are playing a stone game. There are n piles of stones. In each turn, a player can ...

  7. Ubuntu 12.04 查看DOCSIS配置文件

    查看BIN格式的DOCSIS配置文件,需要专用工具. 工具安装 在Windows下,可以使用工具VultureWare DOCSIS Config Editor. 在Ubuntu(本机版本12.04) ...

  8. id NSObject instanceType 区别

    id 当不确定数组元素类型时,可以选择使用id NSObject和id都可以指向任何对象 NSObject使用时必须强转 instantceType 只能返回和方法所在类相同类型的对象    返回值类 ...

  9. 前端-jQuery-长期维护

     ###############    jQuery简介     ################ jQuery这是非常重要的,在django项目中大量的前端都是使用jQuery进行操作 为什么要学习 ...

  10. HLS图像处理总结(一)

    HLS工具 以个人的理解,xilinx将HLS(高层次综合)定位于更方便的将复杂算法转化为硬件语言,通过添加某些配置条件HLS工具可以把可并行化的C/C++的代码转化为vhdl或verilog,相比于 ...