002 Java 语言的特点 面向对象 内存管理 静态语言 可移植 多线程 高性能 健壮性 分布式 具体表现?

425 阅读3分钟

面向对象

面型对象是一种编程思想,它是对现实的一种抽象,面向对象会把相关的数据和方法组织为一个整体来看待。

面向过程也是一种编程思想,以过程为中心的编程思想。

Java是一种面向对象的编程语言。 面向对象程序的 OOP设计的优先:

  • 与人类思维习惯一致;
  • 隐藏信息,提高了程序的可维护性和安全性,实现模块化和信息隐藏;
  • 提高了程序的复用性;

对象:用来描述客观事物的一个实体,由一组属性和方法构成。 属性:静态、成员变量、类变量 方法:动态、成员方法、类方法 类和对象的关系是抽象和具体的关系;类是多个对象进行抽象的结果,是实体对象的概念模型。一个对象仅仅是一个类的实例。(==类是对象的集合,对象是类的实体==) ==类是程序的基本单元==,类名由多个单词组成,每个单词首字母大写。 局部变量:方法或语句块内部定义的变量 成员变量:方法外部,类内部定义的变量

面向对象和面向过程区别可以参考blog.csdn.net/lingyiwin/a…

内存管理

Java摒弃了C++中难以理解的多继承、指针、内存管理等概念;不用手动管理对象的生命周期。通过GC垃圾回收机制进行内存管理。

静态语言

静态语言就是在编译期间能够知道数据类型的语言,在运行前就能够检查类型的正确性,确定后不能更改。

Java语言是强类型语言

  • 1:对于每一种数据类型都定义了明确的具体数据类型
  • 2:在内存中分配不同大小的内存空间

Java中的数据类型 基本类型:布尔类型boolean;字符型char;数值类型(整数类型:byte、short、int、long;浮点类型float、double) 引用类型:类、接口、数组、空类型、 String BigDecimal类:表示大小数类型;BigInteger表示大整数类型。

整数类型 byete 1个字节 2的8次方;short 2个字节;int 4个字节;long 8个字节。

浮点类型 float 4个字节;double 8个字节

相对动态语言没有任何特定的情况需要制定变量的类型,在运行时确定数据类型。如JavaScript, var解决一切。

可移植

write once,run anywhere,熟悉的一次编译,到处运行。 Java的核心JVM(Java虚拟机)屏蔽了class文件和操作系统以及硬件之间的差异。从而实现可移植。

JVM:Java虚拟机,即Interpreter解释器,跨平台的实现

源文件编译器Compiler字节码文件解释器Interpreter解释器Interpreter
MyProgram.javajavacMyProgram.classjvm运行在计算机上

编译时:使用java编译器 运行时:使用Java解释器,通过网络 Java.class----》类加载器----》字节码校验器----》编译器/JIT代码生成器--》硬件

安装JDK后就有 了JRE和JVM JDK>JRE>JVM

多线程

从操作系统的角度,实现多线程有一下几种:

  • 在用户空间实现多线程
  • 在内核空间实现多线程
  • 在用户和内核空间混合实现多线程

==Java语言就是通过在用户空间实现多线程。内核感知不到Jav存在多线程机制。==

高性能

中所周知,Java语言是解释性语言,通过JVM内嵌的解释器将字节码转换为机器码,转换过程效率较低。 随着Hotspot JVM提供的JIT编译器的出现,Java也实现了部分编译执行,大大提高了执行效率。

故Java不仅仅是一种解释执行的语言。

健壮性

  • 强制类型机制
  • 异常处理
  • 垃圾自动收集 等都是健壮性的表现。

分布式

Java语言支持Internet应用,net api 提供网络编程类库。 如:URL,URLConnection、Socket、ServerSocket等。 Java的RMI(远程方式激活)机制都是开发分布式应用的重要手段。