Java零基础学习记录10(一周内容复习以及补充)

第一周总结以及补充

** *1:java 最大的特点:跨平台 jvm

是不是java 可以跨所有的平台?

答:不是。主流的平台都有对应的虚拟机。

2:c 是否可以跨平台?

可以。C 是多次编译,多个平台运行。Java 一次编译,四处执行。

**3:jdk:java development kit java 开发工具包

sdk:software development kit

**

4:jre:java 运行环境 java runtime environment

**

5:bin: binary 二进制**

Javac.exe :java 的编译工具 负责将 源代码编译为 字节码文件.class 与平台无关的。

Class 文件中的内容:jvm 的指令+ 数据的集合。

Java.exe :java 的解释工具。负责将字节码中的指令和数据解释给本地平台去执行。

6:DOS*

内部命令:DOS操作系统自身的指令。可以直接执行的。

外部命令:不是自身的指令,通常对应外部的执行的程序。

**

7:运算符


1.算术运算**

//任何表达式,或者操作数 都是有返回值的。

int num = 0;

num = num ++;//先返回,后自增。将 num ++ 表达式的返回值赋值给 num

num = ++ num;//先自增,后返回

例如:
num = 0;
System.out.println(num ++ + num ++ + ++ num);//0 1 3

2.赋值运算符

+= -= *= /= %= &= >>= |=

num = num + 1;

num ++;

++num;

num += 1;

3.逻辑运算符

逻辑表达式的返回值 为 Boolean值。 所有的操作数也必须是 Boolean 类型

4.位运算符

int a = 10;

int b = 20;

//一个数先后 ^ 同一个数 两次,结果是它自身

a = a ^ b;

b = a ^ b;

a = a ^ b;

System.out.println(a);//输出20

System.out.println(b);//输出10

**

8:方法

**
方法出现的必要性:代码复用、功能模块化,便于维护。

方法的语法:

[方法的各种修饰符 public static final] 返回类型 方法名字 (形参列表) {方法体}

**

9.返回类型:java支持的任意类型(8+3) + void

**.
如果返回类型不是void 代表着 方法执行之后必须产生一个与方法类型兼容的值。

如果返回类型是void ,那么代表方法执行完毕之后,只是实现了某些功能,而没有得到任何的结果。

方法名:是一种标识符 命名规范:首字符小写,多个单词构成,从第二个单词开始首字符大写。见名知意。

形参列表:代表这该方法的一种需求,代表使用该方法的时候,需要给该方法提供的一些外部的数据的列表。 形参列表可以是空的。

**

10.Return:return 是java 的一个关键字,只能使用在方法体中。

**
作用:

1:如果方法的返回类型不是void 那么必须 在方法体中必须使用return 将方法产生的结果 返回。 Return 结果表达式;

public static int max(int a, int b){

int max = a > b ? a : b;

return max;

}

2: 如果方法的返回类型 是 void ,那么在方法体中 可以使用 return ; 来结束方法。

3:方法中一旦执行了return 语句。该方法立即结束。立即返回。

**

11.方法重载:overload

**
在一个类的内部,方法名相同,参数列表不同的方法,称为方法重载。与返回类型无关。

方法的签名:把方法名+参数列表的组合称为方法的签名。一个类的内部,方法的签名必须唯一。

**

12.面向对象:

**
类:对对象的抽象的描述。

对象:类的一个具体的实例。

例子:农夫与蛇

1:分析:分析问题中存在几个对象。

2个对象,一个农夫,一个蛇。

2:分析:分析对象有什么功能和属性就可以实现我们最终的需求。

农夫:救助蛇、死亡

蛇:苏醒、咬人

3:创建类来描述对象。

农夫:Farmer 蛇:Snake

4:通过类,创建对象,创建一个农夫,一条蛇

Farmer farmer = new Farmer();

Snake snake = new Snake();

5:让对象调用自己对应的功能即可。

public class TestMethod {//测试类
 public static void main(String[] args) {
 Farmer farmer = new Farmer();
 Snake snake = new Snake();
 farmer.save(snake);
        }
}
class   Farmer{//农夫类
 void save(Snake s){
 System.out.println("善良的农夫救助了一条蛇!");
 s.awake();
 //代表了当前对象,也就是救助了s 的农夫
 s.attack(this);
 }
 void die(){
 System.out.println("善良的农夫挂了!");
 }
}
class   Snake{//蛇类
 void awake(){
 System.out.println("冻僵的蛇苏醒了!");
 }
 void attack(Farmer farmer){
 System.out.println("蛇攻击了善良的农夫!");
 farmer.die();
 }
} 

**

13.构造方法

**:
1.特点:没有返回类型、方法名必须有类名一致、任何一个类都至少有一个构造方法、如果一个类没有显示的提供一个构造方法,那么编译器会帮助我们生成一个默认无参的构造方法、如果一个类的内容,已经显式的定义了一个构造方法,那么默认无参的将不在提供!一个类可以有多个构造方法,构造方法可以重载、只能用new关键字调用。

2.构造方法的作用:对对象进行初始化。Jvm负责给创建对象,分配内存。

3:创建一个对象的过程:

1:类加载(仅一次,如果已经加载就不再加载)。对静态成员分配内存并初始化。

2:由jvm 给该类的所有的实例变量 在堆中分配内存,并执行默认初始化。

3:执行实例变量显示的赋值。

4:执行构造方法内的代码(对象就初始化完毕了)。

5:由new 关键字 将生成对象的引用返回。

**

14: this:代表当前对象的引用。

**
This 在方法体中使用,可以访问调用本类的成员变量和方法。

在类的方法中,直接访问本类的成员的时候,每一个成员前面都会隐含了一个this.可以显示的使用this ,如果不显示使用,那么编译器会给添加上this。

三个作用:

1:保证了不同的对象访问同一个方法的时候,访问的是不同对象内部的属性。

2:用来区分局部和成员变量的。

3:用来在本类的构造方法中调用本类的其他的构造方法,而且必须是在第一句调用。

**

15:static 关键字

**
可以修饰成员变量、成员方法。静态变量,静态方法。

静态成员变量的特点:

1:只被初始化一次,在类加载的时候被初始化。

类加载:当使用一个类的时候,由类加载器将类的字节码数据加载到内存中(方法区中). 三步:装载(将类的字节码数据加载到内存中)、链接、类的初始化(对static 修饰的变量进行默认初始化,并执行显示的赋值的初始话)。类加载只有一次。

2:只有一份内存空间,该空间不依赖于任何对象。多个对象共享该内存空间。

3:可以通过两种方式来访问静态成员,通过 【类名.】 通过 【对象.】 建议使用 【类名.】

**

16: 关于数组

**
只有一维数组

int[] arr = new int[10];

2:数组特点:

1:数组有长度的属性,代表的是数组元素的个数。

2:数组元素是有序的,是0序的,每个元素都是有序号的,序号称为:索引、下标、角标,从0开始,依次递增。数组元素的下标的范围[0~length-1]

3: 数组是一个对象,是引用数据类型。数组引用存放的是数组在堆内存中的首地址。

4:数组有两种定义的方式,静态+动态。

5:数组中只能保存一种数据类型

6:数组的元素是连续的在堆内存中分配的

7:数组的长度不可变

8:数组元素的类型可以是java支持的任意类型。

9:使用动态初始化,数组元素会被jvm进行默认初始化。

整数:0 浮点:0.0 char ‘\u0000’ Boolean false 引用 null

10:通过索引访问数组元素的效率非常高。遍历元素的效率很高。

11:通过内容查找元素的效率比较低。

12:插入元素,删除元素效率比较低。

**

17:方法调用 传参

在这里插入图片描述
**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值