Java基础

一、注释、数据类型、变量、关键字

Java基础①

二、类型转换、运算符、输入

Java基础②

三、循环、数组

Java基础③

四、方法

1.方法的定义、调用

定义:
在这里插入图片描述
例:
在这里插入图片描述

  • 方法申明了具体的返回值类型,可以为其他类型(float、char、string甚至对象),内部必须使用return返回对应类型的数据。(返回值为int,return值的类型也必须为int)。
  • 形参列表可以有多个,甚至可以没有;多个形参必须用“,”隔开,且不能给初始化值。
  • 返回值类型为void表示方法不需要返回结果,内部可以不使用return返回数据。
  • 方法名称:规则与变量命名一致

调用: 方法名(参数)add(1,2);

注意:

  1. 方法的编写顺序无所谓
  2. 方法与方法之间是平级关系,不能被嵌套定义
  3. 方法的返回值类型为void(无返回值),方法内则不能使用return返回数据。反之则必须返回对应类型的数据
  4. return语句下不能编写代码,因为永远执行不到
  5. 方法不调用就不执行,调用时必须严格匹配方法的参数情况
  6. 有返回值的方法调用时可以选择变量接收结果,或者直接输出调用,甚至直接调用;无返回值方法只能调用一下。

2.方法调用的内存图

方法没有被调用时候,在方法区中的字节码文件中存放
方法被调用的时候,把它从方法区提取到栈内存中执行,执行完毕后出栈

在这里插入图片描述

3.方法的参数传递机制

(1)基本类型的参数传递

Java的参数传递机制:值传递

  • 在传输实参给方法的形参时,并不是传输实参变量本身,而是传输实参变量中存储的值,即值传递
    注意:
  • 实参:在方法内部定义的变量。
  • 形参:方法定义时的变量。(在定义方法时候,“()”中所声明的参数)

(2)引用类型的参数传递:地址值传递,会通过地址改变原数据的值

4.方法重载

(1)方法重载的形式、作用

方法重载:同一个类中,多个方法名称相同,但形参列表不同
通过参数的不同来区分调用的是哪个方法
使用方法重载的好处:

  • 对于相似功能的业务场景:可读性好,方法名称相同暗示是同一类型的功能,通过形参不同实现功能差异化的选择

(2)方法重载的识别技巧

  • 只要是在同一个类中,方法名称相同,形参列表不同,那他们就是重载的方法
  • 形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。

5.return关键字单独使用

  • return:可以立即跳出并结束当前方法的执行;return关键字单独使用可以放在任何方法中。
  • return:跳出并立即结束所在方法的执行。
  • break:跳出并结束当前所在循环的执行。
  • continue:结束当前所在循环的当次继续,进入下一次执行。

五、面向对象基础

1.创建类和对象

设计类:
在这里插入图片描述

用类创建对象:
在这里插入图片描述
使用对象:

在这里插入图片描述

一个Java文件中可以定义多个class类,但只能有一个类是public修饰,而且public修饰的类名必须成为代码文件名。(建议一个文件定义一个class类
成员变量的完整定义格式 修饰符 数据类型 变量名称 = 初始化值(一般无需指定初始化值,存在默认值。)

2.对象的内存运行机制

在这里插入图片描述

main方法和成员变量存储在方法区中,程序执行时把main提取到栈内存。
创建对象时,在堆内存分配内存,而只把内存的地址赋给对象值
Car c1 = new Car():

  • new Car()语句在堆内存中分配实际内存
  • c1 = new Car()语句把堆内存里对象的地址赋给c1
    对象中的成员变量也随对象存放在堆内存里。

垃圾回收: 当堆内存中的对象 没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”,Java会自动回收这些“垃圾”。

3.构造器

构造器作用: 定义在类中的,可以用于初始化一个类的对象,并返回对象的地址。

构造器的格式:
在这里插入图片描述

调用构造器得到对象的格式: 类 变量名称 = new 构造器;

Car c = new Car("奔驰",23.2);

构造器的分类和作用

  • 无参构造器(默认存在时):初始化对象时,成员变量的数据均采用默认值
  • 有参构造器:在初始化对象的时候,同时可以接收参数为对象进行赋值。

注意事项:

  • 任何类定义出来,默认就自带了无参数构造器,写不写都有。
  • 一旦有了有参构造器,那么无参构造器就没有了,如果还想用无参构造器,需要手动写出来。

4.this关键字

代表当前对象的地址。 可以出现在构造器、方法中。
用于指定访问当前对象的成员变量、成员方法。

5.封装

  • 面向对象的三大特征:封装、继承、多态。
  • 什么是封装:告诉我们如何正确设计对象的属性和方法。
  • 封装的原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。

封装思想的好处:

  • 让编程变得简单,有什么事,找对象,调方法就行
  • 降低学习成本,可以少学、少记,或者说压根不用记(不用记对象的那么多方法,有需要时去找就行)

如何进行封装的更好?

  • 一般建议对成员变量使用private(私有、隐藏)关键字修饰进(private修饰的成员只能在当前类中访问
  • 为每个成员变量提供配套public修饰的getter、setter方法暴露其取值和赋值。

6.JavaBeen

JavaBeen也可以称为实体类,其对象可以用于在程序中封装数据。

标准JavaBean须满足如下书写要求:

  • 成员变量使用private修饰。
  • 提供成员变量对应的setXxx()/getXxx()方法。
  • 必须提供一个无参构造器;有参构造器是可写可不写的。

7.成员变量和局部变量

区别成员变量局部变量
类中位置不同类中,方法外常见于方法中
初始化值不同有默认值,无需初始化没有默认值,使用之前需要完成赋值
内存位置不同堆内存栈内存
生命周期不同随着对象的创建而存在,随着对象的消失而消失随着对象的调用而存在,随着方法的运行结束而消失
作用域在所属的大括号中

六、String、ArrayList

String

1.String概述:

  • String类定义的变量可以用于指向字符串对象,然后操作该字符串。
  • Java中的所有字符串文字(例如“abc”)都为此类对象。

2.String类的特点

String常被称为不可变字符串类型,他的对象在创建后不能被更改。(字符串变量重新赋值后会创建新的内存空间,重新赋给变量)

3.字符串对象存储在

  • 以 “ ” 方式给出的字符串对象,在字符串常量池中存储。
  • new出的字符串对象,在堆内存里。

4.创建字符串对象的方式:

  • 方式一:直接使用 “ ” 定义。
  • 方式二:通过String类的构造器创建对象。

在这里插入图片描述
以 “ ” 方式给出的字符串对象,在 字符串常量池 中存储,而且相同内容只会在其中存储一份。
通过构造器new对象,每new一次都会产生一个新对象,放在 堆内存 中。

5.String常用API

equals:
比较内容,内容一致就返回true。
在这里插入图片描述
== 用来比较地址值,equals() 用来比较内容(基本数据类型用 ==,对象比较用equals() )
其他常用API:
在这里插入图片描述

ArrayList

1.集合

集合和数组类似,也是一种容器,用于装数据的。

数组的特点:

  • 定义完成并启动后,类型确定、长度固定
  • 问题:不适合个数不能确定,且要进行增删数据的操作

集合的特点:

  • 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。
  • 集合非常适合做元素个数不确定,且要进行增删操作的业务场景。
  • 集合提供了许多丰富好用的功能,而数组的功能很单一。

2.ArrayList集合

ArrayList集合的对象获取:

ArrayList list = new ArrayList();

在这里插入图片描述

ArrayList集合添加元素的方法:

public boolean add(E e)
public void add(int index,E element)

在这里插入图片描述

3.泛型

ArrayList:其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型。

举例:

  • ArrayList:此集合只能操作字符串类型的元素。
  • ArrayList:此集合只能操作整数类型的元 素。

注意:集合中只能存储引用类型,不支持基本数据类型。

如何统一ArrayList集合操作的元素类型?

  • 使用泛型:<数据类型>
  • ArrayList list1 = new ArrayList();

4.ArrayList集合常用方法:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值