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. 金山wps的面试经历

    故事从两个月前开始说起吧. 前段时间突然想跳槽,原因也没啥,就是想折腾下,看看外面的世界?有一部分原因是想离家近一些稳定下来,博主上份工作坐标厦门,风景好的简直随便拍照就是大片. 不废话了,机缘巧合, ...

  2. 实战_1:在Eclipse中新建RCP项目

    (1)file => New => Plug-in Project  (2) 指定项目名称 => next source folder: 源码路径 Output folder:编译后 ...

  3. http接口与webservice接口的区别

    常见的API接口有两类:http接口和webservice接口. http接口走http协议,通过路径来区分调用方法,请求报文一般是key-value形式的,返回报文一般是json串,常用的是get和 ...

  4. HTML语言 网页制作-----标签、表格、表单、框架

    一:序 Html静态网页,内容(hyper text markup language,超文本标记语言) Css 网页美化 Javascript 脚本语言 二:html的介绍 <!DOCTYPE ...

  5. python学习笔记(8)迭代器和生成器

    迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退 ...

  6. Serializable中的serialVersionUID是必须的吗

    不写serialVersionUID就没有吗 即使不写, jdk反序列化时也会自动检查这个id, 反编译.class文件你也看不到这个值 rpc反序列化 如果使用jdk的方式, 这个必须配置 如果使用 ...

  7. [LC] 485. Max Consecutive Ones

    Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...

  8. java 二分法查找原理

    二分法查找原理: 1.只要低位下标不大于高位下标,就进行二分查找(步骤1-3) 2.先在有序的数组中对半查找中间的坐标,如果中标和要查找的下标相等时,找到目标数,那二分结束. 3.如果步骤2没有找到, ...

  9. Warning: $HADOOP_HOME is deprecated. hadoop解决方法补充版

    下面的解决方案我亲自试了没有问题:可行,但是对于初学者来说肯定会有一个疑问:这个.bash_profile文件到底在哪呢:其实很简单: 当前用户的.bash_profile在/home/用户/下,系统 ...

  10. Rancher的部署安装(编排选用K8S)

    为什么要使用Rancher Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台.Rancher提供了在生产环境中使用的管理Do ...