JAVA简史
JAVA发展过程
JAVA是静态面向对象编程语言的代表,
健壮性:语言的严谨性,语言漏洞少。语法规则很强。
特点:简单性,面向对象(单继承,无多继承),分布式,健壮性,安全性,平台独立性与可移植性,多线程,动态性。
具体介绍如下:
• Java是跨平台的
• Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释
器负责将字节码文件解释成为特定的机器码进行运行。
• Java是简单的
• 不再有#include 和#define 等预处理功能
• 不再有struct,union及typedef
• 不再有函数、
• 不再有指针、不再有多重继承
• 不再有goto
• 不再有操作符重载(Operatior Overloading)
• 不再有全局变量 取消自动类型转换,要求强制转换
• 不再有手动内存管理
• Java是安全的
• Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
• Java提供了自动内存管理机制,由垃圾回收器在后台自动回收,
• Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
• 而在运行环境提供了四级安全性保障机制:
• 字节码校验器 -类装载器 -运行时内存布局 -文件访问限制
• Java是完全面向对象的
• Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。
• 由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影
响了其面向对象的彻底性!
• Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计
语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固
有缺陷。
• Java是健壮的
• Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
• 对指针的丢弃是Java的明智选择。
• Java的安全检查机制使得Java更具健壮性。
三步走:编写——编译——运行
【源代码.java——.class(客户看到的是.class(可执行文件)文件)】
编译为.class(字节码文件,虚拟机(JVM)执行,不依赖于平台,跨平台特性)
主要做外部系统。可编写桌面应用程序、WEB应用程序、分布式系统与嵌入式应用系统。
JAVA做人工智能较好,其次是PYTHON。(C++太难。)
名词解释:
A.JVM:JAVA虚拟机(Java Virtual Machine)
它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
B.JDK:Java开发工具包(Java Development Kit)编译+运行
它是整个Java开发的核心,它包含了Java的运行环境(JVM+Java系统类库)和JAVA工具。
C.JRE:Java运行环境(Java Runtime Environment)运行
它包含两部分:Java Runtime Environment和Java Plug-in(插件).Java Runtime Environment是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机(JVM)、Java核心类库和支持文件。他不包含开发工具(JDK)——编译器、调试器和其他工具。JRE需要辅助软件——Java Plug-in(插件),以便在浏览器中运行applet.
没安装JDK不能编译,没安装JRE不能运行。JVM隶属于JRE.
JAVA跨平台原理:
• 总结1:Java运行过程
• Java程序的运行分为两步:先编译再解释执行
• 通过“编译器”将Java源程序编译成Java 字节码文件(.class)(字节码文件采用结构中立
的中间文件格式)
• 通过不同的“虚拟机”将Java字节码文件解释为对应机器语言并执行
• 总结2:Java跨平台和C跨平台的区别
• Java:一次编译,到处运行 C:多次编译,到处运行
• 在互联网情况下,平台各异,Java的跨平台更具有优势
• Java可以跨所有平台吗:要看有没有提供并安装相应的虚拟机
• Java的运行速度没有C语言快
• Java需要将class文件解释成机器码再执行;C执行执行机器码
• 总结3:字节码文件bytecode
• .class文件 二进制文件
• 格式中立、平台无关的二进制文件
• 是编译的产物,是解释的原料
1.什么是变量?
答:值可以发生改变的量。
2.变量的定义?
答:数据类型 变量名 【=值】;(【】代表可省略。)
(1)变量名:规则(java命名规则:字母数字下划线);规范:首字母小写、驼峰、名词。
(2)数据类型:原始(基本)数据类型(8个)和引用数据类型(自定义)数据类型。
原始(基本)数据类型(8个):
类型 字节 类 数的范围
byte 1 Byte -128~127
Char 2 Character 0~65535
short 2 Short -32768~32767
int 4 Integer
float 4 Float 3.4e~038
long 8 long -263~263-1
double Double
Boolean 没有 Boolean
字节型:byte(-7,122)
字符型:char(735 ASCALL值)97-a 65-A 48-0(单引号)
整型:short/int/long
浮点型:folat/double
布尔型:true/false(无0和非0之分,C语言有)
多行注释:ctrl+shift+/(先括起来)
输出简单语句:
package pro;//隶属的文件夹(包)
/*
类名和文件名一致
*/
public class DemoA {
//主程序入口
public static void main(String[] args){
//输出一段内容
System.out.println("Hello,World");//输出后换行
System.out.print("你好,世界");//输出后不换行
System.out.println("Hello,World");
//输出一些特殊符号
System.out.println("\\");
System.out.println("\'");
System.out.println("\"");
System.out.println("\t");
System.out.println("\n");
}
}
数据类型,运算符
1.标识符
标识符的命名规则:
•必须以字母、 _下划线、 美元符$开头。
• 其它部分可以是字母、 下划线“_”、 美元符“$”和数字的任意组合
• 大小写敏感, 长度无限制。
• 不可以是Java的关键字。
2.关键字
3.数据类型: 基本数据类型(“四类八种”)和引用数据类型
3.1整型数据类型 byte short int long
3.2浮点型数据类型 float double
3.3字符数据类型 char
3.4布尔数据类型 boolean
4.运算符
4.1算术运算符
难点 ++ -- 注意+的三个作用
4.2赋值运算符
= += -=...
sum+=6---->sum=sum+6
4.3关系运算符
> < == 关系运算的结果是boolean类型
4.4逻辑运算符
操作数和结果都是boolean型
&和&&的区别和联系(是否短路)
4.5条件运算符
? : 唯一的三目运算符 int max = num1>num2?num1:num2;
4.6 位运算符 了解即可
4.7 运算符的优先级别:单目>算术>关系>逻辑>条件>赋值
5.基本数据类型的类型转换
5.1.自动类型转换 double d=5;
5.2.强制类型转换 int n =(int)3.14;
6.其他
6.1.字符集: Java采用Unicode字符集 常用字符集都兼容ASCII字符集
6.2.final常量:使用final修饰变量, 变量变成常量, 值不能再被改变
6.3.Scanner: 可以接收来自键盘的输入 Scanner in = new Scanner(System.in);
注意要导包 import java.util.Scanner;