Java 平台
Java ME  适用于小型设备和智能卡的Java嵌入式平台
Java SE   适用于桌面系统的java标准平台
Java EE   适用于Java企业级应用平台
Java特点
- 
跨平台特性  
 Java虚拟机三个特点:
 动态性:动态分配数组的存储空间、动态创建对象、动态链接数据库
 异常处理:提供可靠的异常处理机制
 多线程:多线程方式运行
 JVM详解Java语言设计体现平台无关性 :int整数占用32位,与操作系统16、32、64位无关 
- 
完全面向对象和简单性 
 java对c++基本语法改进如下:
 · 不支持全局变量和宏替换,使用最终变量代替宏替换,避免全局变量和宏替换的副作用
 · 为每种数据类型分配固定的长度,实现数据类型的平台无关性
 · 进行相容性的检查,防止不安全的类型转换
 · 不支持goto语句
 · 不支持指针类型,通过引用模型实现指针功能
 · 不支持结构类型,使用类代替;不支持联合类型
 · 不支持头文件,用import语句声明导入包中的类或接口
 · 内存动态存储且自动管理,动态申请数组和对象的存储空间,自动释放空间,没有指针操作java语言完全面向对象,所有设计类中实现,一个Java程序就是类的集合 
 java对c++面向对象机制改进如下:
 · 为8种基本数据类型提供了基本数据类型包装类,使基本数据类型与类相关联,体现完全面向对象
 · 将数组设计为引用类型,每个数组都有长度属性
 · 不支持类似c语言面向过程设计,不支持全局函数,所有函数都是类中的成员方法:方法参数不支持默认值形式,避免因默认值造成的二义性,成员方法内不能用static声明局部变量
 · 不支持友元类和运算符重载,友元类破坏封装性
 · 提供单继承机制,一个类只有一个父类,能够形成具有数结构的层次体系,根类为object,通过“单继承+接口”实现多继承功能
- 
可靠性 
 严密的语法规则
 资源回收机制
- 
安全性 
 域管理方式的安全模型
- 
多线程 
 内置多线程机制
- 
支持分布式应用网络 
 JSP提供服务端的动态web设计
 支持多重协议的URL寻址
 支持socket网络通信方式
 核心类库支持HTTP等基于TCP/IP协议类库
Java核心技术JDBC(java database connectivity)定义Java应用程序于关系型数据库链接规范JSP(java server pages)基于Java体系的web开发技术,可以建立跨平台、安全、高效的动态网站JavaBean Java对象组件技术,类似Windows的ActiveXJavaMail  提供E-mail邮件服务的支持类库,支持SMTP和POP3服务器
Application应用
Java应用程序的两种形式:Application 和 Applet
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 class或- interface–声明共有类或接口,0-1个,文件名与该名相同
- class– 声明默认类,0到多个
- interface–声明接口,0到多个
 声明包的语句只能有一个,并且必须是第一条语句。声明为public的类或接口只能有一个,且文件名必须与类名相同。
压缩成jar文件
实际应用中,通常将一个包,包中的类文件,子包及子包中的类文件压缩成Java的压缩文件(.jar)
JDK提供的文件压缩命令是jar.exe
来源:CSDN
作者:while_false_
链接:https://blog.csdn.net/qq_34595352/article/details/103800036
