JAVA概述(语法基础篇)

1.1 计算机组成部分

计算机包括硬件(hardware)和软件(soxware)两部分。一般来说,硬件包括计算机中可以看得见的物理部分,而软件提供看不见的指令,这些指令控制硬件并且使得硬件完成特定的任务。学习一种程序设计语言,并不一定要了解计算机硬件知识,但是如果你了解一些硬件知识的话,它的确可以帮助你更好地理解程序中指令对于计算机及其组成部分的功效。

硬件组成:

一台计算机是由一下几个主要的硬件组成构成的:

中央处理器(Center Processing Unit,CPU)

CPU:处理器

比如 Intel(R)(生厂商) Core(TM)(表示系列) i7-4710(当第二部分只有三位数字时,则表明该款 CPU 是第一代产品,一般不建议再购买。如果是四位数字,则第一位数字表明了是第几代 CPU。如 3120 是第三代 CPU,4770 则是第四代 CPU,等等。)MQ(标压 U(Q)低压 HQ(高压)X(最高性能)) CPU @ 2.50GHz (频率最高最强)

影响 CPU 性能的另一项关键指标是核心数,当然,核心数越多越好。不过要注意,这里的核心数是指物理核心数。比如,双核四线程是物理双核而不是物理四核。最后,请注意是否具有一些“辅助技术”,例如超线程技术。一般说来, i3 不带超线程技术,而 i5 i7 不仅带有超线程技术,还具备睿频加速技术,因而性能会更胜一筹。

处理器编号的末尾附加字母“G”的编号越大,内置图形的性能越高,如Core i7-1065G7具有更高的性能的“G7”。如果选择Ice Lake处理器,则需要选择具有G7或G4的Intel Iris Plus集显的型号。

内存

存储设备

输入设备

输出设备

通信设备

这些组件通过一个称为总线(bus)的子系统链接。你可以将总线想象成一个连接计算机组件的道

路系统,数据和电信号通过总线在计算机的各个部分之间传输。在个人计算机中,总线搭建在主板上,

主板是一个连接计算机各个部分的电路板。

中央处理器

中央处理器是计算机的大脑。它从内存中获取指令,然后执行这些指令。CPU通常由两部分组成:

控制单元(control unit)和算术/逻辑单元(arithmetic/logic unit)。控制单元用于控制和协调其他组件

的动作。算术/逻辑单元用于完成数值运算(加法、减法、乘法、除法)和逻辑运算(比较)。

比特和字节

计算机就是一些列的电路开关。每个开关存在两种状态:关(ow )和开(on)。简单而言,在计算

机中存储信息就是将一系列的开关设置为开或者关。如果电路是开的,它的值是1。如果电路是关的,

它的值是0。这些0和1被解释为二进制数字系统中的数,并且将它们成为比特(bit,二进制数)。

计算机中字节(byte)是最小的存储单元。每个字节由8个比特构成。像3这样的小数字就可以存储

在单个字节中。为了存储单个字节放不下的大数字,计算机需要使用几个字节。

内存

计算机的内存由一个有序的字节序列组成,用于存储程序及程序需要的数据。你可以将内存想象成计算机执行程序的工作区域。一个程序和它的数据在被CPU执行前必须移到计算机的内存中。每个字节都有一个唯一的地址,使用这个地址确定字节的位置,以便于存储和获取数据。因为可以按任意顺序存 取字节,所以内存也被称为随机访问存储器(Random-Access Memory,RAM)。内存中字节的内容永远非空,但是它的原始内容可能对于你的程序来说是毫无意义的。一旦新的信息被放入内存,该字节的当前内容就会丢失。

存储设备

计算机的内存是一种易失的数据保存形式:断电时存储在内存中的信息就会丢失。程序和数据被永久地存放在存储设备上,当计算机确实使用它们时再移入内存,因为从内存读取从存储设备读取要快得多。

存储设备主要有以下三种类型:

磁盘驱动器

光盘驱动器

USB闪存驱动器

输入和输出设备

输入设备和输出设备让用户可以和计算机进行通信。最常用的输入设备是键盘和鼠标,而最常用的

输出设备是显示器和打印机。

通信设备

计算机可以通过通信设备进行联网,例如,拨号调制解调器、DSL、电缆调制解调器、有线网络接

口卡、或者无线适配器。

软件分类:

|-- 系统软件

操作系统、win10 window 11、Android、Linux……

系统级别的软件

|-- 应用软件

|-- C/S结构

client/server

客户端,服务器,典型特征:安装软件

|-- B/S结构

Browser/server

直接可以网页访问

WEB软件:(基于网络协议运作)

Java主要做的就是WEB软件

|-- 中间件:中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。


1.2 人机交互方式

那我们一般又是如何和计算机“打交道”的呢?

用户和计算机交互的方式有两种:

图形化界面方式(Graphical User Interface,GUI):这种方式简单直观,使用者易于接受,容

易上手操作

命令行方式(Command Line Interface,CLI):需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记住一些命令,通过命令行可以和计算机进行相应的沟通,也就是说只要我们输入命令即可完成和计算机沟通的目的。那么命令都有那些呢?

这里主要介绍一些常用的dos命令:

dir:列出当前目录下的文件以及文件夹

md:创建文件夹(目录)

rd:删除目录 remove directory

cd:进入指定目录

cd.. :退回到上一级目录

cd\:退回到根目录

del:删除文件

exit:推出dos命令行

help:帮助命令

cls:dos窗口中清屏可以使用

ipconfig: 查询ip地址

copy src dest: 复制文件

#切换盘符: 直接输入盘符和冒号 例如D:

新建文件: echo javase>1.doc

早期操作电脑常用dos命令,因为需要记住很多命令,不利于普及,后期发展成图形界面,通过鼠标点击界面的形式完成对电脑的操作,其实内部运行的还是这些命令。我们现在普遍使用的Windows系统也保留了dos系统,当出现一些情况,我们的电脑无法进入Windows桌面时,我们会使用到


1.3 计算机语言

1946年,世界上第一台通用计算机ENIAC产生,意味着计算机语言诞生

计算机不理解人类的语言,所以,计算机程序必须使用计算机可以使用的语言编写。现在有数百种编程语言,对于人们来说,开发它们是编程过程更容易。但是,所有的程序都必须转换成计算机可以执行的指令。

机器语言

计算机的原生语言因计算机类型的不同而有差异,计算机的原生语言就是

机器语言(machine language),即一套内嵌的原子指令集。因为这些指令都是以二进制代码的形式存在,所以,为了以机器原生语言的形式给计算机指令,必须以二进制代码输入指令。例如,为进行两个数的相加,可能必须写成如下的二进制形式:

101101010010010101010101110

汇编语言

用机器语言进行程序设计是非常单调乏味的过程,而且,所编写的程序也非常难以读懂和修改。为

此,在计算机的早期就创建了汇编语言,作为机器语言的替代品。汇编语言(assembly language)使用

短的描述性单词(称为助记符)来表示每一条机器语言指令。例如助记符 add 一般表示数字相加,

sub 表示数字相减。将数字2和数字3相加得到结果,可以编写如下汇编代码:

add 2, 3, result

汇编语言的出现降低了程序设计的难度。然而,由于计算机不理解汇编语言,所以需要使用一种称

为汇编器的程序将汇编语言程序转为机器代码。

使用汇编语言编写代码比使用机器语言容易。然而,用汇编语言编写代码依然很不方便。汇编语言

中的每一条指令对应机器代码中的一条指令。用汇编语言写代码需要知道CPU是如何工作的。汇编语言

被认为是低级语言,因为汇编语言本质上非常接近机器语言,并且是机器相关的。

高级语言

20世纪50年代,新一代编程语言即众所周知的高级语言出现了(例如C ,C++ ,Java,.net ,PHP , Kotlin,Python,Scala)。

C、Pascal、Fortran面向过程的语言

C++面向过程/面向对象

Java跨平台的纯面向对象的语言.NET Python、Scala

它们是平台独立的,这意味着可以使用高级语言编程,然后在各种不同类型的机器上运行。高级语言很像英语,易于学习和使用。高级语

言中的指令称为语句。例如,下面是计算半径为5的圆面积的高级语言语句:

area = 5 * 5 * 3.1415926;

有许多高级编程语言,每种都为特定目的而设计。用高级语言编写的程序称为源程序(source program)或源代码(source code)。由于计算机不能运行源程序,源程序必须被翻译成可执行的机器代码。翻译可以由另外一种称为解释器或者编译器的编程工具来完成。

解释器:从源代码中读取一条语句,将其翻译为机器代码或者虚拟机器代码,然后立刻运行。

编译器:将整个源代码翻译为机器代码文件,然后执行该机器代码文件。

1.4 软件与软件开发

软件的定义,是指一系列按照特定顺序组织的计算机数据与指令的集合。

软件的分类:

操作系统软件:操作系统主要任务是控制和监视系统的活动、分配和调配系统资源和调度系

统。为用户提供最基本的计算机功能。

应用软件:处理特殊领域问题的软件。扩展了计算机的功能,为用户提供更加丰富的计算机操

作方式。

软件开发,是指一系列的流程,并不单单只编写代码,主要有一下几个流程:

需求分析

系统分析

编码

测试

上线运营

后期运维

下线


1.5 Java语言介绍

Java是一种功能强大和多用途的编程语言,可用于开发运行在移动设备、台式计算机以及服务端的

软件。

Java是由James Gosling在Sun公司领导的小组开发的(2010年Sun公司(Stanford University Network,斯坦福大学网络公司)被Oracle以74亿美元收购)。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。 applet内嵌在HTML代码中。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

1991年,Green项目,开发语言最初命名为Oak (橡树) 一开始为消费类电子产品的嵌入式芯片而设计的。

1994年,开发组意识到Oak 非常适合于互联网,java美国的硅谷大会上取得广泛关注

1995年更名为Java,开源并重新设计用于开发Web应用程序(面向Internet)。

1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作

1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最1998年,发布JDK 1.2,同年发布企业平台J2EE

1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生

2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0

2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME 2009年,Oracle公司收购SUN,交易价格74亿美元

2011年,发布JDK 7.0

2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本2017年,发布JDK 9.0,最大限度实现模块化

2018年3月,发布JDK 10.0,版本号也称为18.3

2018年9月,发布JDK 11.0,版本号也称为18.9

现今,Java广泛用于开发服务端的应用程序。这些应用程序处理数据、执行计算,并生成动态网

页。许多商用网站后端都是采用Java进行开发的。

本次以8为主要版本,讲解一些11这些版本的新特性

技术架构

Java语言分为三种技术架构:

javaSE(Java Standard Edition)标准版

支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,此版本以前称为J2SE,允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java 应用程序,能为Java EE提供开发基础。比如Java版的扫雷。 JVM

Java EE(Java Enterprise Edition)企业版

是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如:Servlet Jsp等,主要针对于Web应用程序开发。版本以前称为J2EE.可帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和Web 2.0 应用程序。 EJB

Java ME(Java Micro Edition)型版

支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,此版本以前称为J2ME,开发移动设备和嵌入式设备(比如手机、PDA、电视 机顶盒和打印机)。现在使用的越少用了,Android安卓会逐渐的取代J2ME的市场份额。(游戏,通信)

java使用领域

企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电信、交通、电子商务等。

移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。

java之父James Gosling团队在开发”Green”项目时,发现C缺少垃圾回收系统,还有可移植的安全性、分布程序设计和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。java是一个纯粹面向对象的语言。舍弃了c语言中容易引起错误的指针,增加了垃圾回收器,泛型,枚举等功能。

跨平台

跨平台就是说同一个软件可以在不同的操作系统上执行,而不需要对软件做任务处理。即通过Java

语言编写的应用程序在不同的系统平台上都可以运行。

Java应用程序为什么可以跨平台呢?其实只要在需要运行Java应用程序的操作系统上,先安装一个

Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。

因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序

的跨平台性。也称为Java具有良好的可移植性。

Java程序之所以能够实现跨平台运行,是因为它根本就不直接运行在任何底层平台上,而是需要在

哪里运行,就在哪里(如Windows平台)事先准备好自己的Java平台,而这只是仅仅是安装和配置一个

软件而已!

Java虚拟机(Java Virtual Machine,JVM):它是运行所有Java程序的抽象计算机,是Java语言的运

行环境,它是Java 最具吸引力的特性之一,JVM读取并处理编译过的与平台无关的字节码(class)文件。


1.6 Java开发环境搭建

JREJDK

JRE(Java Runtime Environment Java运行环境):包括Java虚拟机和Java程序所需的核心类库等,

如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK(Java Development Kit Java开发工具包):JDK是提供给Java开发人员使用的,其中包含了

Java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

简单而言:使用JDK开发完成的java程序,交给JRE去运行。

为什么JDK中包含一个JRE呢?

其一,开发完的程序,总需要运行一下看看效果。

其二,也是最重要的,JDK中的开发工具其实都是Java语言编写的应用程序,为了方便使用才

打包成exe文件,如果没有JRE,那么这些工具是运行不了的。

JDK下载安装

JAVASE8.0的安装和配置_java se 8_暮雨. 满城的博客-CSDN博客我的CSDN链接

JDK的安装和配置

1、去官网Java Downloads | Oracle下载对应版本的JDK

推荐使用8或者11

2、安装JDK

1、点击安装包,开始安装

2、选择安装的目录(新建一个空文件夹,在其中新建两个文件夹一个安装JDK一个安装JRE)

JRE与JDK

JRE(Java Runtime Environment Java运行环境):包括Java虚拟机和Java程序所需的核心类库等,

如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK(Java Development Kit Java开发工具包):JDK是提供给Java开发人员使用的,其中包含了

Java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

简单而言:使用JDK开发完成的java程序,交给JRE去运行。

为什么JDK中包含一个JRE呢?

其一,开发完的程序,总需要运行一下看看效果。

其二,也是最重要的,JDK中的开发工具其实都是Java语言编写的应用程序,为了方便使用才

打包成exe文件,如果没有JRE,那么这些工具是运行不了的

一定不要使用特殊符号

3、在安装成功后,注意会弹出jre的安装提示

3、当jdk和jre都安装成功后,安装就结束,就需要配置jdk

4、找到jdk安装的主目录,复制个主目录

此电脑->属性->高级设置->环境变量

5、新建一个项:

JAVA_HOME: java安装主目录

6、在path中添加java的路径中

%JAVA_HOME%\bin

7、重新打开cmd,测试是否安装成功!!

java -version

javac -version(建议直接使用这个命令就行)

安装配置过程中的问题:

如果没有成功!!!

卸载了重新安装

在控制面板中卸载

编辑器安装(这里以vscode为例编辑器选择自己喜欢的就好)

初学者,建议使用记事本工具(editplus、notepad++、vsocde、sublime等等)

IDE(集成开发环境) eclipse、idea

1. 登录官网https://code.visualstudio.com/

2. 展开下载列表,按需下载,建议Stable稳定版

3. 下载后一路next安装即可

path环境变量配置

1. 计算机图标右键属性

2. 高级系统设置

3. 环境变量

4. 系统变量找path

5. 双击点开添加jdk安装路径下的bin目录路径

在配置环境变量过程中发现,path环境变量中还有很多其他与系统相关的配置,若JDK目录更

改了,这时就要再次修改path中配置的值,很容易造成误操作。

为了不因为jdk的目录或者目录名称的改变,而不断更改path的值,而导致对path变量值的误

操作,可以通过以下技巧完成:

1. 新创建一个环境变量 JAVA_HOME 记录住jdk的目录。

2. 在path中通过%%动态的获取JAVA_HOME的值即可。

3. JAVA_HOME=C:\mysox\Java\jdk1.7.0_21

4. path=%JAVA_HOME%\bin;%path%

5. %path%:动态获取path环境变量的值。

6. %JAVA_HOME%:动态获取名称为JAVA_HOME环境变量的值

classpath配置

既然class文件(字节码文件)是java的运行文件,可不可以实现,在任意目录下都可以执行某一目录下的class文件呢?根据path环境变量的原理,可以定义一个名为classpath环境变量,将要运行的class文件所在目录定义在该变量中

例: set classpath=c:\

classpath变量值是java类文件的目录

path变量是windows程序文件的目录

JVM查找类文件的顺序

如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件。

如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件

值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目

录下在查找一次值的结尾出如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,不会在当前目录下查找,即使当前目录下有,也不会运行。

建议:配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用 “.”

表示

注意:

Java语言拼写上严格区分大小写

一个Java源文件里可以定义多个Java类,但其中最多只能有一个类被定义成public类

若源文件中包括了public类,源文件必须和该public类同名

一个源文件中包含N个Java类时,编译后会生成N份字节码文件,即每个类都会生成一份

单独的class文件,且字节码文件名和其对应的类名相同

JDK > JRE > JVM

JDK(java development kit):java开发工具包

JRE(java runtime environment):java运行时环境

JVM(java virtual machime):java虚拟机

JDK:

是java开发工具包,是Sun公司针对java开发人员的产品,jdk中包含jre,在jdk的安装目录下有一个jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里面就是jvm,lib中是java工作需要的类库,而java和lib合起来就称为jre

JRE:

是运行基于java语言编写的程序所不可缺少的运行环境,也是通过它,java的开发者才可以将自己开发的程序发布到用户手中,让用户使用,与大家熟悉的jdk不同,jre是运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器,调试器)等,知识针对使用java程序的用户

JVM:

就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序首先被编译为.class文件,这种类文件可以在虚拟机上运行,也就是说class并不直接与机器的操作系统相对应。而是经过虚拟机间接的与操作系统交互,由虚拟机将程序解释给本地系统执行,只有jvm还不能将class执行,因为在解释class的时候jvm需要调用解释所需要的类库lib,而jre包含lib类库,jvm屏蔽了具体操作系统平台的相关信息,使得java程序只需要生成在java虚拟机上运行的目标代码。可以在多种平台(操作系统)上不加修改的运行

JDK=JRE+开发工具集 JRE=JVM+JAVASE标准类库


1.7 运行Java程序

步骤一:编写

将 Java 代码编写到扩展名为 .java 的文件中。

选择记事本或编辑器,敲入代码:

public class Demo{

}

将文件保存成 Demo.java ,这个文件是存放Java代码的文件,称为源文件,扩展名必须是 .java

步骤二:编译

通过 javac 命令对该 java 文件进行编译

有了Java源文件,将其编译成JVM可以识别的文件。在该源文件目录下,通过 javac.exe 编译工

具对 Demo.java 文件进行编译。如果程序没有错误,没有任何提示,但在当前目录下会出现一个

Demo.class 文件,该文件称为字节码文件,也是可以执行的Java的程序。

步骤三:运行

通过 java 命令对生成的 class 文件进行运行

有了可执行的Java程序( Demo.class 字节码文件)通过运行工具 java.exe 对字节码文件进行执行。出现提示:缺少一个名称为 main 的方法。因为一个程序的执行需要一个起始点或者入口,所以 在Demo类中的加入

public static void main(String[] args){}

对修改后的 Demo.java 源文件需要重新编译,生成新的class文件后,在进行执行。发现没有编译失败,但也没有任何效果,因为并没有告诉JVM要帮我们做什么事情,也就是没有可以具体执行的语句。想要和JVM来个互动,只要在 main 方法中加入一句

System.out.println("hello java");

因为程序进行改动,所以再重新编译,运行即可。

完整的程序如下:

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}

以图片形式展示用记事本工具编写java代码


1.8 常见错误

语法错误

在编译过程中出现的错误称为语法错误(syntax error)或编译错误(compile error)。语法错误是

由创建代码时的错误引起的,例如:拼错关键字,忽略了一些必要的标点符号,或者左右花括号。例如

以下示例错误:

public class ShowSyntaxError {

public static main(String[] args) {

}

}

运行时错误

运行时错误(runtime error)是引起程序非正常中断的错误。运行应用程序时,当环境监测到一个不可能执行的操作时,就会出现运行时错误。输入错误是典型的运行时错误。当程序等待用户输入一个值,而用户输入了一个程序不能处理的值时,就会发生输入错误。另一个常见的运行时错误是0作除数。当整数除法中除数为0时可能引发这种情况。例如以下示例错误:

public class ShowRuntimeError {

public static void main(String[] args) {

System.out.println(10/0);

}

}

逻辑错误

当程序没有按预期的方式执行时就会发生逻辑错误(logic error)。这种错误发生的原因有很多种。例如以下示例错误:

public class ShowLogicError {

public static void main(String[] args) {

System.out.println("Celsius 35 is Fahrenheit degree ");

System.out.println((9/5)*35+32);

}

}

常见小错误1:遗漏右括号

括号用来标识程序中的块。每个左括号必须有一个右括号匹配。为了避免这个错误,任何时候输入

左括号的时候就输入右括号。

常见小错误2:遗漏分号

每个语句都以一个语句结束符“;”结束。通常,编程入门者会忘了在一个块后的最后一行语句加上语

句结束符。

常见小错误3:遗漏引号

字符串必须放在引号中。通常,编程入门者会忘记在字符串结尾处加上一个引号。

常见小错误4:命名拼写错误

Java是大小写敏感的。编程入门者常将名称拼写错误。


1.9 java的语言特点

7、java程序运行机制与运行过程

面向对象;两个基本概念:类、对象;三大特性:封装、继承、多态

健壮性:吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放

等),提供了一个相对安全的内存管理和访问机制

跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run

Anywhere”

简单性:Java语言是易学的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。

面向对象:Java语言是强制面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承并支持类与接口之间的实现机制(关键字为implements)。

健壮:Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。

安全:Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻

击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。

多线程:Java语言是原生支持多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。

可移植性:Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。

Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统的解释器中运行。

Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

Java是性能略高的。与那些解释型的高级脚本语言相比,Java的性能还是较优的。

java的内存核心机制:JAVA虚拟机(JAVA Virtal Machine) 垃圾收集机制(Garbage Collection)

java虚拟机 :JVM 是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据,内存,寄存器。对于不同的平台,有不同的虚拟机。只有操作系统是航有对应的java虚拟机,java程序才可在运行。java虚拟机机制屏蔽了底层运行平台的差别,实现了一次编译,到处运行。

垃圾回收:不再使用的内存空间应回收。Java 语言消除了程序员回收无用内存空间的责任:它

提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。

GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法

垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行

垃圾回收

对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有 向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。

当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行

System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。

Java的注释

单行注释//

多行注释/* */

文档注释的生成

Java图解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值