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. JDBC常用驱动和语法汇总

    A. Firebird url=jdbc:firebirdsql:[HOST_NAME]/[PORT:][FULL_PATH_TO_DATABASE_FILE] driver=org.firebird ...

  2. 2)#ifndef和#pragma once

    #################################################################################################### ...

  3. day38-进程-事件

    #1.事件Event:以交通灯为例.可以控制所有进程等待或者运行. from multiprocessing import Event e = Event() #实例化一个事件,创建一个交通灯,默认是 ...

  4. 关于Java中反射的总结

    Java是面向对象的编程语言,万物皆对象,反射技术就是把类声明.类中的字段声明.方法声明.构造函数声明等都看成是对象,从而可以把类中的各个部分拆解出来单独处理,反射技术主要用来编写通用功能,平时编程使 ...

  5. 苹果为啥不愿意替美国FBI解锁,这是一种创新态度?

    国外媒体报道,苹果计划对iPhone进行安全更新,最新版的iOS会在手机锁定一个小时后禁用手机充电和数据端口,这意味着,消费者丢失手机或者非正常离开iPhone之后,可以通过锁定手机,来避免手机数据被 ...

  6. CString转换成std::string

    unicode的编码格式: CString strCS; std::string strSTD =  CT2A(strCS.GetBuffer()); 其他的编码格式: CString strCS; ...

  7. spring mvc 设置@Scope("prototype")

    spring中bean的scope属性,有如下5种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例 prototype表示每次获得be ...

  8. python数据类型:元组

    python数据类型:元组 python的元组与列表类似,但是元组的元素不能修改 元组使用小括号,列表使用大括号 元组创建简单,只需要在括号中添加元素,使用逗号隔开 创建元组: tup1 = (50, ...

  9. 专利|Pct||

    专利:有些专利写的尽量模糊,为了不让别人检出,让别人能轻易侵犯专利权 优先权:在本国申请后,在他国也是同一个专利人申请,并也是同一个申请日. 发明20年:实用新型外观设计:20年 Pct:专利合作条约 ...

  10. Java使用JNDI技术获取DataSource对象

    package common; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Contex ...