`

JAVA面向对象编程(孙卫琴)读书笔记(四)

阅读更多

一个java源文件
包含了一个或零个包声明语句 package
包含了零个或多个引入语句 import
包含零个或多个类的声明  class
包含零个多个接口的声明 interface   (但是最多只有一个类或者是接口为public 且源文件的名字要

和声明为public 的类和接口一致)

 

包的命名
例如:com.abc.netstore.common.SysContent类
从上面这个类所处的位置,我们可以得到以下信息
他是abc公司的netstore项目中common包中的一个类
此类命名也就是网上的url命名规范的反转形式 如 abc公司的网址是 http://netstore.abc.com

 

JDK中提供的java基础包
java.lang--包含了线程类Thread 、异常类Exception 、系统类 System、整数类Integer、和字符串类
String、这个包是经常用到的,所以java虚拟机是自动引入的。

java.awt--抽象窗口工具包,其包含了用于构建GUI节界面的类及其绘图雷

java.io--输入输出包,其包含了各种输入流类和输出流类。

java.util--提供一些使用的类,例如 日期类,集合类

java.net支持tcp/ip网络协议,包含socket类和url相关的类,这些类主要用于网络编程。

除了上面所说的包,还有其他的,例如 数据库编程用的 java.sql包, 用于编写网络程序的java.rmi
另外 javax.* 包 是对基本包的扩展 例如,用于编写gui程序的javax.swing,以及用于写声音程序的
javax.sound包
JDK中所有包中的类构成了java类库,或者叫J2SE API(呵呵,现在总算对它有个明确的概念了)

 

在引入包中的类的时候要注意了,一定要把类的地址全给出来
例如  import com.bac.netstore.Shop
      import com.bac.netstore.*
前者的性能要优于后者

 

如果要引入来自两个不同包的同名类,程序中必须提供完整的类名类区分
如:

 import com.bac.bookstore.Book;
 import com.abc.hotel.Book;
 
 public class Appmai{

      public static void main(String args[]){
        com.abc.bookstore.Book book1=new  com.abc.bookstore.Book();
        com.abc.hotel.Book book2=new  com.abc.hotel.Book();
}
}
同时要注意的是,像上面那样引入这两个类的时候 用improt com.abc.* 是不行的

 

return的两种用法
一种是我们常用的 根据方法返回相对应的类型
另一种的就是结束执行本方法
如 public void speak(String word1,String word2){
    if (word1==word2)
    return//结束本方法的调用
    }

 

程序的入口 main()
以下的形式都是可以的,取决于个人喜好
public static void main (String args[])
public static void main (String[] args)
static public void main (String args[])
此外static 修饰的方法默认的都是final 类型的(不能被子类覆盖的)

 

关键字
类和接口声明 class,extends,implements,interface
包引入和声明 import,package
数据类型 boolean,byte,char,double,float,int,long,short
某些数据类型的可选值 false,true,null
流程控制 break,case,continue,default,do,else,for,if,return,swith,whlie
异常处理 try,catch,finally,throw,throws
修饰符abstract,final,native,private,protected,public,static,synchronized,trandient,volatile
操作符 instanceof
引用 this,super

java语言保留字 const和goto
关键字使用要注意的  都是要小写,friendly,sizeof不是java关键字,程序中的标识符不能用关键字命

 


上面说的标识符是指程序中的包、类、接口、变量、方法
他们的命名规则为
 开头必须是字母、下划线、美元符号$或者是人民币符号¥
 由字母和数字(区分大小写)下划线" _" 以及美元符号组成
 大小写敏感 hello Hello HELLO 这三个是不同的标识符

 

编程规范
 类和接口开头要大写,如果有几个单词组成,每个单词开头要大写  SmartDoll
 方法和类名 开头要小写,如果有几个单词构成,后面的单词开头要大写 allChilren
 包名要小写
 常量名要大写  final String  DEFAULT_COLOR_OF_BULE="yellow";

 


java常用目录结构
src 存放java源文件
classes  存放已经编译好了的类文件
lib 存放第三方的java软件的jar文件
doc 存放各种帮助文档
doc/api 存放javaDoc文档
depoly 存放java应用的打包文件--jar文件

 

JDK 包含了
java虚拟机 其可以在各种操作系统平台上
JDK类库
开发工具 这些工具都是可执行文件 包括 javac.exe(编译工具)、java.exe(运行工具)、javadoc.exe(

生成javaDoc文档工具)、jar.exe(打包工具)

 


javac命令的主要选项
-nowarn 不输出警告信息
-verbose 输出详细信息

-classpath <路径> 覆盖classpath的环境变量
-sourcepath <路径> 指定java源文件路径
-d <目录> 指定要生成的类文件的目录,此目录必须以存在

例如: javac -sourcepath c:\dollapp\src
             -classpath c:\dollapp\classes
             -d c:\dollapp\classes
             c:\dollapp\src\com\abc\dollapp\main\*.java
             c:\dollapp\src\com\abc\dollapp\doll\Doll.java

上面的命令信息是 源文件在c:\dollapp\src 而classpath路径设置为c:\dollapp\classes
生成的类文件存储在 c:\dollapp\classes,编译的源文件有

c:\dollapp\src\com\abc\dollapp\main\*.java路径下的所有java文件,和
c:\dollapp\src\com\abc\dollapp\doll\Doll.java下的Doll.java文件。
如果要编译多个文件的时候 用空格隔开
(直接用cd 切换到当前目录下进行编译就可以了,还这么麻烦)

 


java命令的主要选项
-classpath 覆盖classpath路基
-verbose 输出详细的信息

-D<属性名=属性值>设置系统属性
如:java -Duser="tom" Someclass
user为属性名,tom为属性值,Someclass为类名
-jar 指定运行某个jar文件中的特定类   例如:java -jar c:\lib\mytools.jar Someclass

 


classpath路径的设定
DOS 下进行设定  c:> set classpath=c:\classes2
用java 命令或者是javac命令进行设定 c:\>java -classpath c:\classes3
(直接在环境变量里设置就OK了,还这么麻烦)

 


java应用打包
用DOS命名切换到c:\dollapp\classes目录下
执行   jar -cvf c:\dollapp\deploy\dollapp.jar  *.*
次命令 把c:\dollapp\classes目录下所有的包括子目录的所有类文件打包为dollapp.jar

jar cf mychiv.jar  *.class


前面还提到了 用java执行jar文件中一个特定的类文件,比如要执行主程序文件,
java -jar  dollapp.jar  AppMain
还有一种方法
就是在你要打包的文件夹里创建一个Manifest.txt文件
里面包含的内容为 Main-Class: com.abc.dollappp.main.AppMain
此文件的内容表明jar文件中的主程序文件为com.abc.dollappp.main.AppMain类
切换到要打包的目录下 执行以下命令  jar -cvfm  dollapp.jar  Manifest.txt *.*
当我们再执行 java -jar dollapp.jar 就直接会执行AppMain类

 

java虚拟机的运行                              java虚拟机
                                                 |------------------------------|
  AppMain.java---AppMain.class---|      类加载器           |
                                                 |         |                    |
                                                 |      字节码验证器    |
                                                 |         |                    |
                                                 |      解析器              |
                                                 |         |                    |
                                                 |      运行时环境        |
                                                 |                              |
                                                 |------------------------------|
                                                          |
                                               |----------|---------------|
                                     Windows      Unix          Linux

从上面的图可以看出java可以运行于不同的平台上归功于java虚拟机
而java虚拟机内部的工作流程如下
  1.把类文件中的二进制数据加载到内存中
  2.对类的二进制数据进行验证
  3.解析并执行命令
  4.运行时环境中最重要的一个资源是运行时数据区,在这里运行时数据区是操作系统为java虚拟机系

统进程分配的内存区域,由java虚拟机管辖这个区域,它进而把这块区域分配成多个子区域,
(底层的东西就是麻烦,就大概了解到这吧,等有一定的功底的时候再来研究)


 
分享到:
评论

相关推荐

    JAVA面向对象编程(孙卫琴)学习笔记

    《JAVA面向对象编程》是孙卫琴老师的一本经典教程,涵盖了Java编程的核心概念和实践技巧,特别是面向对象编程的精髓。以下是对这些文件内容的详细解析: 首先,"JAVA面向对象编程(孙卫琴)_1java的第一个程序.doc...

    JAVA面向对象编程(孙卫琴)读书笔记(三)

    在本篇【JAVA面向对象编程(孙卫琴)读书笔记(三)】中,我们将深入探讨Java编程语言的核心概念——面向对象编程。这篇读书笔记基于孙卫琴老师的著作,旨在帮助开发者更好地理解和应用面向对象的设计原则和技巧。下面...

    WI TWO 淘宝分享Java面向对象编程(孙卫琴)_学习笔记

    Java面向对象编程是Java开发中的核心概念,由孙卫琴老师讲解的这门课程深入浅出地探讨了这一主题。面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它以对象为中心,通过封装、继承和多态三大...

    JAVA面向对象编程(孙卫琴)2

    《JAVA面向对象编程》是孙卫琴老师的一本经典教程,深入浅出地讲解了Java语言的面向对象特性。在学习这门课程时,我们不仅可以理解面向对象编程的基本概念,还能掌握如何在实际开发中应用这些知识。以下是对标题和...

    Java面象对象编程学习笔记(孙卫琴版)doc+pdf

    孙卫琴老师的《Java面向对象编程》是一本深受初学者欢迎的教材,旨在帮助读者掌握这一关键技术。 首先,我们要了解面向对象编程(Object-Oriented Programming,简称OOP)的基本概念。它是一种编程范式,主要围绕着...

    八种编程语言毕业设计参考文献

    《Java面向对象程序设计》**(2014):侧重于面向对象的编程思想和方法,帮助读者掌握Java面向对象编程的核心技巧。 4. **陈云婷.《21天学通Java》**(2014):这是一本速成指南,适用于希望快速上手Java的初学者。 ...

    java参考文献

    - 内容概述:本书是Java领域内的一本经典著作,深入浅出地介绍了Java编程的基本概念、面向对象编程思想以及设计模式等内容。 - 关键知识点: - 面向对象编程(OOP)的核心概念:封装、继承、多态。 - Java中的类和...

    Web开发技术(java)课程简介Web开发技术(java)课程简介

    先修课程包括《面向对象程序设计一》和《数据库原理》,确保学生具备必要的编程和数据管理基础。 课程的目标集中在JavaEE概念和架构的学习,特别是针对Web层的编程。学员将深入理解HTML、Servlet、JSP、JDBC、MVC...

    hibernatepdf

    它允许开发人员使用面向对象的编程模型来处理数据库操作,而无需直接编写SQL语句,从而提高了开发效率和代码的可读性。Hibernate通过提供数据持久化的解决方案,使得Java对象可以透明地保存到关系数据库中,同时也...

Global site tag (gtag.js) - Google Analytics