本文是大二时期所写,在我的博客上发布,现在在语雀上再次整理一下,我的博客地址:java基础知识

CS模式与BS模式

image.png

Java特性和优势

简单性

就是c++语法的纯净版。没有头文件,指针运算,结构,联合,操作符重载,虚基类等等。由于语法基 于c,因此学习起来完全不费力。

面向对象

面向对象是一种程序设计技术,他将重点放在数据(即对象)和对象之间的接口上。

可移植性

这是JAVA的一个重要的优势。JAVA代码或者说字节码、二进制码可以跨平台的移植,而不用管具体的操 作系统和硬件环境。JAVA本身就是面向网络的,只有在网络环境中才能显示出他的优势,比如:现在我 有一个网络环境,要让我的笔记本和手机交互,笔记本环境是windows发出一个让手机定时录音的JAVA 代码,手机只有简单Linux内核操作系统,照样可以完美的执行这个代码。 “一次编写,随处运行”:“write once, run anywhere” JAVA在设计时就很注重移植和跨平台性。比如:JAVA的Int永远都是32位。不像c++可能是16,32,可 能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。

高性能

JIT(JUST IN TIME)即时编译。将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时 候重新调用。这样的话,使JAVA程序的执行效率大大提高,某些代码甚至接待c++的效率。随着这种技 术的一天天完善,也许有一天会超越编译代码的效率。

动态性

就是在需要时将某些代码添加到正在运行的程序中。反射机制。当需要把某些代码添加到正在运行的程 序中时,动态性是一个非常重要的特性。Java的动态特性是其面向对象设计方法的扩展。它允许程序动 态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的

多线程

多线程的使用可以带来更好的交互响应和实时行为。多线程的简单性是Java成为主流服务器端开发语言 的主要原因之一。

安全性

Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以构建防 病毒,防篡改的系统。

健壮性

Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内 存的申请与释放等)。Java程序不可能造成计算机崩溃。Java系统仔细检测对内存的每次访问,确认它 是合法的,而且不致引起任何问题。不过,即使Java程序也可能有错误。如果出现某种出乎意料之事, 程序也不会崩溃,而是把该例外抛弃。再通过异常处理机制,程序就会发现这类例外,并加以处理。

Java软件的基本组成

JDK

JDK(Java SE Development Kit),Java标准开发平台,它提供了编译、运行Java程序所需的各种工 具和资源 包括Java编译器、Java运行时环境,以及常用的Java类库等。

JRE

JRE( Java Runtime Environment) 、Java运行环境,用于解释执行Java的字节码文件。 普通用户需要安装 JRE(Java Runtime Environment)来运行 Java 程序。 程序开发者必须安装JDK来编译、调试程序。

JVM

JVM(Java Virtual Mechinal),Java虚拟机,是JRE的一部分。 它是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的 虚拟计算机。 所有平台的上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的 代码,然后由虚拟机来解释执行。 跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同 平台下需要安装不同版本的JVM。

面向对象的三大特征

1.封装/隐藏

需要让用户知道的暴露出来,不需要让用户知道的全部隐藏起来。这就是封装。

2.继承

继承的本质是对某一批类的抽象,从而实现的现实世界更好的建模。

继承的另一个好处是:代码重用,让我们不再重新发明轮子

3.多态

为了处理问题的灵活性,就是在做之前,不要把话说死,说的模糊一点想象空间大一点,真做的时候再具体化。

类与对象

对象

是具体的实物

是对对象的抽象