JAVA程序设计(1.Java语言基础)

前言

本文是结合《Java程序设计》(黄岚、王岩、王康平)的摘要与上课ppt的笔记。


1.Java语言基础

1.1 Java概述

1.1.1 Java起源

  • 前身Oak软件;
  • Java具有安全、跨平台、面向对象、简单、适用于网络等显著特点;
  • 传统软件与具体实现环境有关,而java语言能在执行码(二进制码)上兼容使得开发的软件能运行在不同的机器(仅机器需要提供java语言解释器)上。

1.1.2 Java版本

  • Java SE:标准版允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用Java应用程序。
  • Java EE:企业版帮助开发和部署可移植、健壮、可伸缩且安全得服务器端Java应用程序。
  • Java ME:微缩版为在移动设备和嵌入式设备(如手机、PDA、电视机顶盒、打印机等)上运行的应用程序提供了一个健壮且灵活得环境。适用于小型设备和智能卡。

1.1.3 Java语言的特征

  • 简单性:略去了运算符重载、多重继承等概念;同时自动垃圾收集简化内存管理工作
  • 面向对象:Java语言设计集中于对象及其接口,提供简单的类机制以及动态得接口模型
  • 分布性:Java提供的类库可以处理TCP/IP协议,使得用户可以通过URL地址在网络上访问其他对象
  • 鲁棒性:Java不允许类型强制转换与指针的使用,同时可以自动回收内存空间,极大避免了错误的产生
  • 安全性:Java不支持指针,一切对内存的访问都必须通过对象的实例变量实现。(字节码执行的三个步骤:①类装载器将类文件加载到Java虚拟机,同时校验类文件规范;②字节码校验器检查类文件代码中是否存在非法操作;③当校验通过,Java解释器负责把该类文件解释成为机器码进行执行。)
  • 体系结构中立:Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意处理器上运行。
  • 可移植性:与平台无关的特性
  • 解释执行:解释型语言通常不会进行整体性的编译和连接处理,相当于把编译型语言的编译和解释过程混合到同一时间完成,更方便程序移植,但不利于程序的执行效率
  • 高性能:在特定的CPU上,Java字节码可以快速转换成机器码进行执行
  • 多线程:Java编写程序运行在JVM中,在JVM内部,程序的多任务是通过线程实现的。
  • 动态性:Java经常更新,适合不断发展的环境。

1.1.4 Java Application与Java Applet

区别:

区别 Java Application Java Applet
运行方式 完整的程序,可以独立运行(需要有Java虚拟机支持) 依附于HTML语言编写的网页
运行工具 可使用普通的Java解释器 需要通过网络浏览器才能执行
程序结构 有且仅有一个main方法 没有主类,但有一个从Java.Applet.Applet派生的类
可视化呈现 必须另外编写代码构建自己的图形界面 可以使用浏览器或者Appetviewer提供的图形用户界面
所受限制 对站点的磁盘文件不能进行读写操作
执行方面 在本地运行 一般放在服务器上,根据本地机的请求被下载到本地运行

1.1.5 Java与c/c++的比较

Java相较于c/c++删去了的:

  • 全局变量
    java程序中不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。eg:
class GlobalVar{
    
    
    public static global_var;
}
}
  • goto语句
  • 指针
  • 内存管理语句(c:malloc()/free();c++:new/delete)
  • 数据类型的支持:Java中数据类型总是匹配固定长度的位数,如规定int占32位
  • 类型转换
  • 头文件
  • 结构和联合
  • 预处理

1.1.6 类库与API文档

Java将功能相关的类放在同一个软件包中,所有的软件包集构成JavaAPI类库;所以JavaAPI是一整套用于实现各种基本功能和其他某些常用功能的Java编程的标准库,其中提供了各式各样的类来实现其语言功能。
常用的软件包:

  • 语言包(java.lang)提供字符串处理、多线程处理、异常处理、数学函数处理等
  • 实用程序包(java.util)提供散列表、堆栈、可变数组、时间、日期等
  • 输入/输出包(java.io)用统一的“流”模型来实现所有格式的I/O
  • 抽象图形用户接口包(java.awt)实现不同平台的计算机的图形接口部件
  • 网络包(java.net)支持Internet的TCP/IP协议,提供了与Internet的接口

1.2 Java程序结构与运行机制

1.2.1 一个简单的Java程序


public class HelloWorldDemo {
    
    
      public static void main(String[] args) {
    
    
    	  System.out.println("Hello World!");
      }
}

输出结果:

"Hello World!"

上述代码中可以学到:

  • class用于声明一个类
  • public表示访问权限为公共类,最多只能有一个公共类
  • static指明该方法是一个类方法,可以通过类名直接调用
  • void表示无返回
  • **main()**是Java解释器在没有实例情况下的程序入口,只能有一个
  • ()中的String[] args是传递给main()方法的参数,是字符串数组类型

运行程序的过程中,首先它会被保存到一个HelloWorldDemo.java的源文件中,该文件名与公共类名一致,然后编译器进行编译生成字节码文件:

HelloWorldDemo.class

然后Java解释器运行该字节码文件解释为指定的机器码运行。
在这里插入图片描述

所以我们总结程序结构有:

  • package语句——最多一句并放于非空注释行的第一句
  • import语句——可以有0或多个,位于各种类定义之前
  • public class Definition——定义公共类,最多一个,且注意Java源程序文件名与公共类命完全一致
  • class Definition——类定义部分,允许0~多个
  • interface Definition——接口定义部分,允许0~多个

1.2.2 Java运行机制

Java应用程序的生命周期包括编辑、编译、装载、解释、执行

扫描二维码关注公众号,回复: 12926797 查看本文章
  • 编译过程:Java在进行程序编译时将符号引用信息保留在字节码中,由解释器在运行过程中创建内存布局,然后再通过查表来确定一个方法所在的地址,保障了Java的可移植性和安全性。
  • 解释与执行过程:由Java命令完成运行JVM字节码的工作。该过程分为三步
    装入:类装载器装入一个程序所需要的所有代码,各个类都有一个自己独立的名字空间,使得他们之间不会相互影响
    代码检验:解释器在符号引用与特定的地址空间之间建立对应关系及查询表,放置了代码对地址的非法访问
    代码执行:多采用解释执行方式,即解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作

值得注意的是Java虚拟机的建立需要针对不同的软硬件平台做专门的实现,既要考虑处理器的型号,也要考虑操作系统的种类。

在这里插入图片描述

1.4 Java编程规范

Java采用驼峰式命名规则,即多个单词首尾相连,除首字母外,后续单词的首字母一般为大写
1)包名:全小写的名词,中间可以用点分割开,如java.awt.event
2)类命:首字母大写,通常由多个单词合成一个类命,要求后续的每个单词的首字母大写,如class HelloWorldDemo
3)接口名:命名规则与类名相同
4)方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,后续的每个单词的首字母都大写,如isButtonPressed
5)变量名:往往由一个或多个名词合成,首字母小写,后续每个单词首字母大写,如userName
6)常量名:基本数据类型的常量名为全大写,如果由多个单词构成,可以用下划线隔开;如果是对象类型的常量,则是大小写混合,由大写字母把单词隔开,如int YEAR,int WEEK_OF_MONTH

1.5 课后习题

编写一个Java程序输出Hello World!,并分别通过控制台和Eclipse环境运行:
①Eclipse环境:

public class san316 {
    
    
      public static void main(String[] args) {
    
    
    	  System.out.println("Hello World!");
      }
}

在这里插入图片描述

②控制台运行:

  • 首先在cmd中输入java –version确定java环境变量是否已经配好

  • 其次在cmd中输入javac –version 确定javac环境变量是否已经配好

  • 在用cd命令转到要编译.java文件的路径(便捷方式可以先打开java文件所处文件夹,在路径处输入cmd)
    在这里插入图片描述

  • 用javac classname.java编译该java文件,将会在对应的文件夹中看到产生了一个.class文件;
    在这里插入图片描述

  • 其次,若要运行该.class文件,则直接输入java classname即可(不用加后缀名)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/KQwangxi/article/details/114852795