第一章 java概述

雨燕双飞 提交于 2020-01-03 04:05:14

Java 平台
Java ME 适用于小型设备和智能卡的Java嵌入式平台
Java SE 适用于桌面系统的java标准平台
Java EE 适用于Java企业级应用平台

Java特点

  1. 跨平台特性
    在这里插入图片描述
    Java虚拟机三个特点:
    动态性:动态分配数组的存储空间、动态创建对象、动态链接数据库
    异常处理:提供可靠的异常处理机制
    多线程:多线程方式运行
    JVM详解

    Java语言设计体现平台无关性 :int整数占用32位,与操作系统16、32、64位无关

  2. 完全面向对象和简单性
    java对c++基本语法改进如下:
    · 不支持全局变量和宏替换,使用最终变量代替宏替换,避免全局变量和宏替换的副作用
    · 为每种数据类型分配固定的长度,实现数据类型的平台无关性
    · 进行相容性的检查,防止不安全的类型转换
    · 不支持goto语句
    · 不支持指针类型,通过引用模型实现指针功能
    · 不支持结构类型,使用类代替;不支持联合类型
    · 不支持头文件,用import语句声明导入包中的类或接口
    · 内存动态存储且自动管理,动态申请数组和对象的存储空间,自动释放空间,没有指针操作

    java语言完全面向对象,所有设计类中实现,一个Java程序就是类的集合
    java对c++面向对象机制改进如下:
    · 为8种基本数据类型提供了基本数据类型包装类,使基本数据类型与类相关联,体现完全面向对象
    · 将数组设计为引用类型,每个数组都有长度属性
    · 不支持类似c语言面向过程设计,不支持全局函数,所有函数都是类中的成员方法:方法参数不支持默认值形式,避免因默认值造成的二义性,成员方法内不能用static声明局部变量
    · 不支持友元类和运算符重载,友元类破坏封装性
    · 提供单继承机制,一个类只有一个父类,能够形成具有数结构的层次体系,根类为object,通过“单继承+接口”实现多继承功能

  3. 可靠性
    严密的语法规则
    资源回收机制

  4. 安全性
    域管理方式的安全模型

  5. 多线程
    内置多线程机制

  6. 支持分布式应用网络
    JSP提供服务端的动态web设计
    支持多重协议的URL寻址
    支持socket网络通信方式
    核心类库支持HTTP等基于TCP/IP协议类库

Java核心技术
JDBC(java database connectivity)定义Java应用程序于关系型数据库链接规范
JSP(java server pages)基于Java体系的web开发技术,可以建立跨平台、安全、高效的动态网站
JavaBean Java对象组件技术,类似Windows的ActiveX
JavaMail 提供E-mail邮件服务的支持类库,支持SMTP和POP3服务器

Application应用
Java应用程序的两种形式:ApplicationApplet
Application 是能够独立运行的应用程序,有控制台和图形用户界面两种运行方式
Applet 是可以嵌入web页面的最小应用,不能独立运行,必须嵌入超文本,由Java解释器解释执行

public class Hello
{
	public static void main(String args[])
	{
		if(args.length == 0)
		{
			System.out.println("Hello!");
		}
		else
		{
			for(int i = 0; i < args.length; i++)
			{
				System.out.println(args[i]);
			}
		}
	}
}

在这里插入图片描述

JDK
jdk是Java开发工具包,包括Java类库、Java编译器、Java解释器、Java运行时环境和Java命令行工具。
JDK安装教程


一个Java源程序(*.java)可以声明多个类,每个类编译后都生成一个字节码文件
包是类的集合,一个包中包含多个类,一个包中的多个类不能重名,不同包中的类名可以相同

Java API 的常用包

包名 功能
java.lang 语言包 java语言的核心类库包含Java语言必不可少的系统类定义,包括Object类、基本数据类型封装类、数学运算、字符串、线程、异常处理等
java.util 实用包 工具类库,包含日期类,集合类
java.awt 提供构建图形用户界面的类库,包含组件、事件及绘图功能
java.applet 实现applet应用程序
java.text 文本包 提供各种文本和日期格式
java.io 输入输出流包 提供标准输入输出流,文件操作类库
java.net 网络包 提供网络编程相关的类库,包括socke通信支持,Internet访问支持
java.sql 提供数据库应用功能的类库
java.swing 扩充和增强图形用户界面功能的类库

导入包

import{.子包}.|接口*;
import  java.util.Date;

声明类所在的包

package{.子包}

package语句只能写一次,必须写在程序的第一行,即写在类声明之前,多个类可以同属一个包。

示例:

package mypackage;                  // 声明当前的文件或接口在指定的包中
public class Point                  // 点类,类声明
{
	public int x, y;                // 成员变量
	public Point(int x, int y)      // 构造方法,以(x,y)构造Point对象
	{
		this.x = x;
		this.y = y;
	}
	public Point()                  // 构造方法,重载,默认值为(0,0)
	{
		this(0,0);
	}
	public String toString()        // 成员方法,Point对象的描述字符串,形式为(x,y)
	{
		return "Point("+this.x+","+this.y+")";
	}
}
//////////////////////////
import mypackage.Point             // 导入mypackage包中的 Point 类
public class Line                  // 直线类
{
	public Point start,end;        // 直线的起点和终点
	public Line(Point start, Point end)  // 构造方法,两点确定一条直线
	{
		this.start = start;
		this.end = end;
	}
	public String toString()        // 对象的描述字符串
	{
		return this.getClass().getName()+"("+this.start.toString()+", "this.end.toString()+")";
	}
	public static void main(String args[])
	{
		Point start = new Point(100,100);
		Point end = new Point(100,200);
		System.out.println(new Line(start, end).toString());
	}
}
// 若省略import, 则Point类必须用全称:mypackage.Point

Java源程序结构

  • package–声明包,0-1个
  • import–导入包,0到多个
  • public classinterface–声明共有类或接口,0-1个,文件名与该名相同
  • class– 声明默认类,0到多个
  • interface–声明接口,0到多个
    声明包的语句只能有一个,并且必须是第一条语句。声明为public的类或接口只能有一个,且文件名必须与类名相同。

压缩成jar文件
实际应用中,通常将一个包,包中的类文件,子包及子包中的类文件压缩成Java的压缩文件(.jar)
JDK提供的文件压缩命令是jar.exe

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!