Java语言入门(一)——Java语言介绍

计算机语言

计算机语言(Computer Language)只用于人与计算机之间通讯的语言。计算机语言是人与计算机传递信息的媒介。计算机系统最大特征是指令通过一种语言传达给机器。为了使电子计算机进行各项工作,就需要一套用以编写计算机程序的数字、字符和语法规划,由这些字符和语法规则组成计算机各种指令(或各种语句)。
计算机语言可以归为面向过程语言和面向对象语言。

面向过程语言

概念
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用函数就可以了。面向过程是一种以过程为中心的编程思想,它是一种基础的顺序的思维方式,面向对象方法的基础实现中也包含面向过程思想。

特性:模块化 流程化

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开 发,性能是最重要的因素。

缺点:没有面向对象易维护、易复用、易扩展

面向对象语言

概念
面向对象是把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题的步骤中的行为,是以功能来划分问题。
面向对象是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。

特性:抽象 封装 继承 多态

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。

缺点:性能比面向过程低

转自: https://blog.csdn.net/hellenlee22/article/details/89672107.

Java语言的发展

1991年由James Gosling负责开发的一个分布式代码系统(Oak),最初是为家用消费电子产品(电冰箱、电视机等)进行编程控制 (set-top box)。
1993年Sun 公司将目标市场转向 Internet 。
1994年将Oak语言更名为Java。
1995年Java被正式发布,之后立即引起极大的轰动

Java语言目前的主要应用

1 许多大公司购买了Java的许可证。
2 众多软件开发商开始支持Java软件产品。
3 面向对象的应用开发。
4 Intranet(企业内部网)上的软件开发。
5 动态画面的设计,包括图形图像的调用。
6 与各类数据库连接查询的SQL语句实现。
7 其他应用类型的程序。

Java语言的特点

1 简单性:
(1)系统精简,但功能齐备。
(2)风格类似于C++,对C++程序员而言非常容易掌握。
(3)Java摒弃了C++中容易引发程序错误的地方,如指针操作和内存管理。
(4)提供丰富的类库。
2 面向对象
完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。
3 分布式管理
支持TCP/IP协议。Java应用程序可通过一个特定的URL来打开并访问对象,就像访问本地文件系统那样简单。
4 健壮性
(1)提供面向对象的异常处理机制,在编译时能对NULL指针检测、数组边界检测、异常出口字节代码校验等。
(2)自动垃圾收集来进行内存管理。
5 结构中立
将源程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能运行这种中间代码。
6 安全性
(1)Java语言提供的安全
(2)编译器提供的安全
(3)字节码校验
(4)类装载
7 可移植性
Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,而与体系结构无关。
8 解释性
Java编译器将java源文件生成类文件.class,类文件可通过java命令解释执行,将Java字节码转换为机器码。
9 高性能
JIT编译器。可以提高Java代码的执行速度。
10 多线程
内置多线程功能,似的在一个程序里可同时执行多个小任务。带来的好处是更好的交互性和实时控制性。
11 动态
允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。
12 面向对象
封装性、多态性、继承性、动态链接。
13 操作平台无关性
严格的语言定义:“没有依据机器的不同而不同”或“由编译器决定”等字眼,最后的目标码都是一致的,初值都是确定的。

Java语言的翻译过程

Java源程序
Java编译器
Java Bytecode
Bytecode载入器
字节码校验器
Bytecode解释器
系统执行平台

(1)Java源程序为.java文件;Java Bytecode为.class文件。
(2)Java编译器:进行编译,没有绝对地址。
(3)Bytecode载入器:调入包含,继承所用到的所有的类,内存分配确定,编程真正可执行的机器码。
(4)字节码校验器:不存在伪造的指针,不违反访问权限,不非法访问对象,不导致操作栈溢出。

Java与C/C##的区别

(1)不再有#include和#define等预处理功能。
(2)不再有structure,union及typedef。
(3)不再有函数、不再有指针、不再有多重继承。
(4)不再有goto。
(5)不再有操作符重载(Operatior Overloading)。
(6)取消自动类型转换,要求强制转换。

项目JavaC++
全局变量
数据类型和转换无结构、枚举或联合,转换时进行类型相容检查通过指针进行任意的类型转换,带来不安全性
范围运算符无作用域范围运算符::
数组对象,有只读的length无length
内存管理可创建不属于基本数据类型的对象不能
提前声明不必进行提前声明必须
预处理没有预处理机制
头文件importinclude
指针
goto和virtual
注释文档对注释文档的内建支持

安全问题

(1)Java是在网络环境下使用的语言
(2)一个安全的网络至少要防止以下几种破坏的可能性:
毁灭系统资源、消耗系统资源、挖掘系统或个人机密、骚扰正常工作的进行。

Java虚拟机

(1)不同的操作系统有不同的虚拟机.它类似一个小巧而高效的CPU,.byte-code代码是与平台无关的是虚拟机的机器指令.
(2)Java字节代码运行的两种方式:
第一种是解释执行(interpreter),即逐条将字节码翻译成机器码并执行;第二种是即时编译(Just-In-Time compilation, JIT),将一条方法中的所有字节码翻译成机器码后再执行。前者的优势在于无需等待编译,后者的优势在于实际运行速度更快。Java虚拟机为了实现更快的运行速度,通常两种方式都会采用,即混合模式,综合两者的优点。

字节码

(1)*.class文件与机器码不同,不是真正的CPU可运行的指令代码,故又称伪代码。
(2)通过JVM以及JRE将其转成本地机器代码,达到一次撰写,到处运行的效益。
(3)(Write Once,Run Anywhere)编译一次,到处运行。

垃圾收集

(1)虚拟机使用两个独立的堆内存,分别用于静态内存分配和动态内存分配。
(2)非垃圾收集堆内存,用于存储所有类定义、常量池和方法表。
(3)另一个堆内存,用于垃圾收集的算法适用于存放在动态堆内存中的对象。
(4)垃圾收集器在收集对象前调用finalize方法。
(5)显式调用垃圾收集(System.gc())方法,不能保证立即运行,因为其优先级很低。

开发环境

(1)javac: Java编译器, 用来将java程序编译成Bytecode。
(2)java: Java编译器,执行已经转换成Bytecode的java应用程序。
(3)jdb: Java调试器, 用来调试java程序。
(4)javap: 反编译,将类文件还原回方法和变量。
(5)javadoc:文档生成器,创建HTML文件。
(6)appletviwer : Java解释器, 用来解释已经转换成Bytecode的java小应用程序。

C盘下目录
C盘下目录
C盘下目录
C:\
java
用户类文件所在目录myclass
当前目录
bin
lib
javac
java
appletviewer
classes.zip

运行环境的配置

(1)打开我的电脑–属性–高级–环境变量
(2)设置环境变量:
path=javac和java命令所在的目录。
classpath=存放字节码文件的目录
(3)在DOS命令行窗口cmd (可以按住shit键+单击鼠标右键)
1)java 测试有无安装java
2)java –version 查看java版本
3)set path 查看是否有path路径
4)set classpath 查看classpath路径

如图所示运用该命令进行查询

DOS命令行

(1)编译程序 : “javac 文件名.java”
(2)运行程序 : “java 文件名”
(3)不同盘之间的跳转:“盘名+:”
(4)相同盘下路径的跳转:“cd +路径”
(5)返回上一层目录:“cd …”

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值