介绍Java的基础原理
Java
是1995年SUN公司推出的一门高级编程语言,是面向互联网的语言,WEB应用程序首选的语言(安卓底层,大数据hadoop框架用java编写,Spark用Scala编写,Scala用java写的),(相对其他语言)简单易学、安全可靠、完全面向对象、跨平台(操作系统,完全忽略操作系统,写完后任何操作系统都可以用)。
java是通过java虚拟机进行编译和运行的。
Java虚拟机是编译和运行Java程序等的各种命令及其运行环境的总称。Java源程序在编译之后生成后缀为“.class”的文件,该文件以字节码(bytecode)的方式进行编码。这种字节码实际上是一种伪代码,它包含各种指令,这些指令基本上是与平台无关的指令。Java虚拟机在字节码文件(及编译生成的后缀为.class的文件)的基础上解释这些字节码,及将这些字节码转行成为本地计算机的机器代码,并交给本地计算机执行。
这样,字节码实际上是一种与平台无关的伪代码,通过Java命令变成在各种平台上的机器代码。这些伪代码最终是在本地计算机平台上运行的,但Java程序就好像是在这些Java命令的基础上运行的,因此这些Java命令的集合好像是采用软件技术实现的一种虚拟计算机。这就是Java虚拟机名称的由来。
Java虚拟机执行字节码的过程由一个循环组成,它不停地家族程序,进行合法性和安全性检测,以及解释执行,直到程序执行完毕(包括异常退出)。Java虚拟机首先从后缀为“.class”文件中加载字节码到内存中;接着在内存中检测代码的合法性和安全性,例如,检测Java程序用到的数组是否越界、所要访问的内存地址是否合法等;然后解释执行通过检测的代码,及根据不同的计算机平台将字节码转化成为相应的计算机平台的机器代码,再交给相应的计算机执行。如果加载的代码不能通过合法性和安全性检测,则Java虚拟机执行相应的异常处理程序。Java虚拟机不停地执行这个过程直到程序执行结束。虽然Java语言含有编译命令,但是Java虚拟机对字节码的解释执行机制决定了Java语言是一种解释执行的语言。
跨平台的原理
Java虚拟机---Java Virtual Machine---JVM,针对不同的操作系统,开发了不同的Java虚拟机,一段Java程序并不是直接运行在计算机上而是运行在Java虚拟机上,Java虚拟机将Java程序翻译成当前系统能够识别的命令。Java语言是跨平台的,但是Java虚拟机不是跨平台的。
Java的技术结构
J2SE---标准版
J2EE---企业版
J2ME---移动版(早期有人用,现在几乎不用了)
JDK/JRE/JVM
JVM---Java能够跨平台的前提
JRE---Java Runtime Environment---Java运行时环境---JVM+核心类库
JDK---Java Development Kit---Java开发工具包---开发工具+JRE
java.sun.com
www.oracle.com
1994年叫Oak---橡树
后改Java---爪哇
JDK1.0(-JDK1.1-1.2(Applet/swing---GUI后来淘汰)-1.3-1.4-1.5(JDK5.0,十个特性)---JDK6---JDK7.0---JDK8(也可以叫1.8/十个特性)到了1.8共有3000多个类和接口方法。
(Jdk1.7.0_75后面75表示更新75次,无论安装了哪个版本,前50个小版本的尽量不要用)
C:\\Program Files(X86)
注意:安装路径中不要出现空格和中文!
编译
将Java代码翻译成计算机能读懂的语言的过程
注意:
1. class文件的文件名和类名对应
2.每一个类编译完成之后都会产生一个class文件
3. 公共类的类名必须和Java文件的文件名一致
4. Java程序运行的入口是主函数,没有主函数,Java程序能够编译
环境变量
是指为操作系统指定的一些运行参数的量
(1)新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径)
(2)编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
(3)新建->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
关键字
是指在Java中被赋予了特殊含义的单词
一共有53个关键字,其中51个在用,还有2个目前没有使用---const、goto---保留字
用于定义数据类型的关键字 | |||||||
class |
interface |
byte |
short |
int |
long |
||
float |
double |
char |
boolean |
void |
enum |
||
用于定义数据类型值的关键字 | |||||||
true |
false |
null |
|
|
|
||
用于定义流程控制的关键字 | |||||||
if |
else |
switch |
case |
default |
while |
||
do |
for |
break |
continue |
return |
|
||
用于定义访问权限修饰符的关键字 | |||||||
private |
protected |
public |
|
|
|
||
用于定义类、函数、变量修饰符的关键字 | |||||||
abstract |
final |
static |
synchronized |
|
|
||
用于定义类与类之间关系的关键字 | |||||||
extends |
implements |
|
|
|
|
||
用于定义建立实例、判断实例的关键字 | |||||||
new |
this |
super |
instanceof |
|
|
||
用于异常处理的关键字 | |||||||
try |
catch |
finally |
throw |
throws |
|
||
用于包的关键字 | |||||||
package |
import |
|
|
|
|
||
其他修饰符关键字 | |||||||
native |
strictfp |
transient |
volatile |
assert |
|
||
注意:所有的关键字都是小写的!
标识符
在程序中自定义的名称
定义规则:5点
1可以由字母、数字、_、$组成---不建议使用$符号
2不能使用纯数字、数字不能作为开头
3不能使用关键字
4Java是一门严格区分大小写的语言
5为了提高程序的阅读性,尽量的见名知义
支持中文命名,但是不推荐
class A{}
class a{} 可以这样写,但是windows不允许,windows不区分大小写
驼峰命名法
类名/接口名
如果由多个单词组成,每个单词的首字母大写 HelloWorld
变量名/方法名
如果由多个单词组成,第一个单词的首字母小写,其余单词的首字母大写 playGame
包名
如果由多个单词组成,所有字母全部小写,中间用 . 隔开
常量名
如果由多个单词组成,所有字母全部大写,中间用_隔开
注释
在程序中用来解释或者说明程序的文字
格式
//注释文字 单行注释
/*注释文字*/ 多行注释
/**注释文字*/ 文档注释---往往用于注释类、方法或者常量
javadoc -d .\\document Demo.java---这个命令只能用来提取公共类中文档注释的内容
以上就是介绍Java的基础原理的详细内容,更多请关注其它相关文章!