今日学习20190423

java基础

导入是为了提供一个管理名字空间的机制。

当编译一个java的源代码文件时,次文件通常被称为编译单元,每个编译单元都要有一个后缀名. java,而在编译单元内则可以有一个public类,该类的名称必须要与文件名相同(包括大小写,但是不包括后缀名.java)。每个编译单元只能有一个 public类,否则编译器就不会接受。如果在该编译单元中海油额外的类的话,那么在包之外的世界是无法看见这些类的,这是因为他们不是public类,而且他们主要用来为public类提供支持。

当编译一个.java文件时,在 .java文件中的每个类都要有一个输出文件,而该输出文件名称与  . java文件的每个类的名称相同,只是多了一个后缀名.class。因此在编译少了的 .java文件的时候会得到大量的.class文件。

编译单元内完全不带public类也是可能的,在这种情况下,可以随意的对文件命名。(尽管随意命名会使得人们在阅读和维护代码时产生混淆)。

 

java可运行程序是一组可以打包并压缩为一个java文档文件(JAR,使用加吧的jar文档生成器)的.class文件。java解释器负责这些文件的查找,装载和解释。

java包名的命名规则使用全部小写,包括中间的字也是如此。

包名称的第一部分是类的创建者的反顺序的Internal域名,第二部分是把包名称分解为机器上面的一个目录,所以当java程序运行的时候需要加载.class文件的时候,他就可以确定 .class文件在目录上所处的位置。

java解释器运行的过程:

首先,找出环境变量CLASSPATH( (可以通过操作系统来设置,有事也可通过安装程序—用来在你的机器上安装java或基于加吧的工具—来设置)。CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径名称(于是,package  foo.bar.baz就变成了 foo \ bar\baz或者foo/bar/baz或其他,取决于操作系统)。得到的路径会和CLASSPATH中的各个不同的项相连接,解释器就在这些目录中查找与你所要创建的类名称相关的.class文件。(解释器还会 去查找某些涉及java解释器所在位置的标准目录)。

冲突:

当导入的两个包中都包含一个A类时,如果不使用A,那么不产生冲突,如果使用了A就会产生冲突,因为编译器不知道要用哪个A。

用impor 改变行为

java没有C语言的条件编译功能,该功能可以使你不必更改代码的情况下,就能够切换开关并产生不同的行为。java去掉次功能的原因是因为C语言在绝大多数的情况下使用此功能来解决跨平台的问题,但是java本身就可以实现跨平台。

然而,条件编译还有其他的作用,调试就是 一个常见的用途。调试功能在开发过程是开启的,而在发布的产品中是禁用的。可以通过修改被导入的package的方法来实现这一目的,修改的方法是将你的程序中用到的代码从调试版改为发布版,。这一技术适用于任何种类的条件代码。(两个包中包含相同的类)

例如:创建两个包,包含相同的类,类中有一个debug()方法。第一个版本显示发送给控制台的string参数,第二个版本说明都不做,使用静态import语句将该类导入。

可变参数列表

【转】https://www.cnblogs.com/xuecanmeng/p/5203399.html


默认行为打印类的名字和对象的地址

枚举类型

枚举类型可以使用在switch  case中。

 

Spring

 

posted @ 2019-04-23 20:58  夜雨敲墙  阅读(96)  评论(0编辑  收藏  举报