diff --git a/docs/java/Java基础知识.md b/docs/java/Java基础知识.md index 61bb4cee..2177504d 100644 --- a/docs/java/Java基础知识.md +++ b/docs/java/Java基础知识.md @@ -112,6 +112,13 @@ JRE 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有 所以,实际上 java 和 javax 没有区别。这都是一个名字。 +#### 1.1.8 为什么说Java语言“编译与解释并存” +高级编程语言按照程序的执行方式分为编译型和解释型两种。简单来说,编译型语言是指编译器针对特定的操作系统将源代码一次性翻译成可被该平台执行的机器码;解释型语言是指解释器对源程序逐行解释成特定平台的机器码并立即执行。比如,你想阅读一本英文名著,你可以找一个英文翻译人员帮助你阅读, +有两种选择方式,你可以先等翻译人员将全本的英文名著(也就是源码)都翻译成汉语,再去阅读,也可以让翻译人员翻译一段,你在旁边阅读一段,慢慢把书读完。 + +Java语言既具有编译型语言的特征,也具有解释型语言的特征,因为Java程序要经过先编译,后解释两个步骤,由Java编写的程序需要先经过编译步骤,生成字节码(*.class文件),这种字节码必须由Java解释器来解释执行。因此,我们可以认为Java语言编译与解释并存。 + + ### 1.2 Java语法 #### 1.2.1 字符型常量和字符串常量的区别? @@ -176,6 +183,50 @@ JRE 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有 ![deep and shallow copy](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/java-deep-and-shallow-copy.jpg) +#### 1.5.5 方法的四种类型 +1、无参数无返回值的方法 +```java +// 无参数无返回值的方法(如果方法没有返回值,不能不写,必须写void,表示没有返回值) +public void f1() { + System.out.println("无参数无返回值的方法"); +} +``` +2、有参数无返回值的方法 +```java +/** +* 有参数无返回值的方法 +* 参数列表由零组到多组“参数类型+形参名”组合而成,多组参数之间以英文逗号(,)隔开,形参类型和形参名之间以英文空格隔开 +*/ +public void f2(int a, String b, int c) { + System.out.println(a + "-->" + b + "-->" + c); +} +``` +3、有返回值无参数的方法 +```java +// 有返回值无参数的方法(返回值可以是任意的类型,在函数里面必须有return关键字返回对应的类型) +public int f3() { + System.out.println("有返回值无参数的方法"); + return 2; +} +``` +4、有返回值有参数的方法 +```java +// 有返回值有参数的方法 +public int f4(int a, int b) { + return a * b; +} +``` +5、return在无返回值方法的特殊使用 +```java +// return在无返回值方法的特殊使用 +public void f5(int a) { + if (a>10) { + return;//表示结束所在方法 (f5方法)的执行,下方的输出语句不会执行 +} + System.out.println(a); +} +``` + ## 2. Java面向对象 ### 2.1 类和对象 #### 2.1.1 面向对象和面向过程的区别