一、String类
1、简介:String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明为final类时,不能有类。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。
2、String类对象的创建
1)创建空字符串的String对象
2)使用构造方法创建并初始化String对象
3)使用已知字符串Str1创建String对象
4)用字符数组value创建一个String对象
5)将数组中某些元素创建String对象
3、String类常用方法
1)求字符串长度
2)求字符串某一位置字符
3)提取子串
4)字符串比较
5)查找单个字符
6)大小写替换
7)截去字符串两端的空格,但不处理中间的空格
4、字符串与基本类型的转换
1)字符串转换为基本类型 ParseInt,ParseDouble.......
2) 基本类型转换为字符串类型 ValueOf
二、数组
1、什么是数组
1) 我们先看一个例子:
当我们需要编写代码保存4名学生的考试成绩,我们是可以定义四个变量分别保存他们的成绩
如果需要编写代码保存400个学生的考试成绩呢?当然最好的办法就不是创建400个变量了,而是创建一个保 存成绩的数组。
2)理解:数组可以理解为一个巨大的盒子,里面可以按顺序存放多个类型相同的数据,形成变量集合
数组中的元素可以通过下标来访问,下标从0开始。
2、数组的使用
a.声明:数据类型[] 数组名; 或 数据类型 数组名[]; 存储学生成绩的数组,类型为整型
b.数组的空间分配:数组名 = new 数据类型[数组大小]; 长度为5的整数数组
c.声明分配一起来: 数据类型[] 数组名 = new 数据类型[数组大小];
d.赋值:分配空间后就可以向数组中存放数据了,数组中元素都是通过下标来访问的
f.另一种直接创建数组的方式
3、数组常用方法
1)排序 :Arrays.sort(数组名) 需要import java.util.Arrays;
2)将数组转换为字符串 :Arrays.toString(数组名)
4、遍历数组
1)for循环
2)foreach循环
5、二维数组
1)二维数组的访问输出同一维数组一样,只是多了个下标
2)原理:
也说明了在定义二维数组的时候可以只指定行的个数,然后再为每一刚分别指定列的个数,创建不规则的二维数组
三、对象
1、用引用操纵对象
在Java中,一切都被视为对象,操纵的标识符实际上就是对象的一个引用。
身边有很多得例子,车,狗,人等等,都有自己的状态和行为。拿一条狗来举例子,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴、跑等等。
引用也只是一个变量值(杯子),一样有东西放进去只不过放进去的是"遥控器"。
2、对象创建原理
3、特例:基本类型
4、作用域
1)作用域是由花括号的位置决定的
2)对象的作用域:new 创建一个对象时,对象可以存活在作用域之外
String引用s在作用域终点消失,s指向的String对象依然继续占据内存空间
3)必要结论
a.在Java中,由new创建的对象,只要你需要,就会一直保留下去。
b.它有一个垃圾回收站,用来见识new创建的对象,并辨别出那些不会再被引用的对象,随后释放这些对象的内存空间,给其他的对象使用。
四、类
1、类是什么?
当用户编写自己的Java程序时,主要工作就是编写类。
当程序运行时,已声明的类用来创建新对象。由类创建对象的过程称为实例化。每一个对象都是类的新实例。
类是一种抽象数据类型,可以说类是对象的抽象,而对象是对象的实例。
2、创建类
我们用关键字class来定义一个新类型
class TypeName{
}
即使我们并没有做任何事情,也没有任何行为,但是我们可以用new TypeName()来创建它的对象。
例如:
3、字段和方法
类定义以后,可以在类中设置两种类型元素:字段(属性、数据成员)和方法(行为、成员函数)。
1)类中字段变量分为三种:
a.局部变量:在方法、构造函数或者语句块中定义的变量,变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
b.成员变量:成员变量定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化,它可以被类中方法、构造方法和特定类的语句块访问。
c.类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。
静态变量:static类型的变量又是静态变量。静态变量和实例变量是不同的。
静态变量在装载类的时候被分配内存并初始化,因为类只能被装载一次,所以静态变量在内存中也只有一个拷贝。 也就是说它不属于某个实例变量,而是属于类,只要程序加载了类的字节码,不用创建任何实例对象就会被分配空间可以被使用。
实例变量是在创建实例时被分配内存并初始化,所以每个实例都有各自的实例变量。也就是说它必须得创建对象后才可以通过这个对象来使用。
同一个类的实例之间共享静态变量。
2)成员方法
a.构造方法
每一个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器会为该类提供一个默认构造方法。
在创建一个对象的时候,至少要调用一个构造方法。一个类可以有多个方法,但必须满足条件:
默认构造方法:没有参数的构造方法
重载构造方法:有参数的构造方法
b.方法重载
如果有两个方法的方法名相同,但参数不一致,那么就可以说一个方法是另一个方法的重载方法。
c.静态方法与实例方法
成员方法分为类方法(静态方法)和实例方法。用static修饰的是类方法/静态方法。
静态方法也和静态变量一样,不需创建类的实例,可以直接通过类名访问。
静态方法是针对类而不是某个对象实例的调用,所以,静态方法中不允许直接访问实例变量和实例方法。
访问静态变量:可以通过 类名.静态变量 / 类对象.静态变量 访问
访问静态方法:可以通过 类名.静态方法 / 类对象.静态方法 访问
访问实例变量/实例方法:只能通过 类对象.实例变量/实例方法 访问
五、包装类
1、简介
Java语言是一个面向对象的语言,但是Java的基本数据类型却不是面向对象的,在实际使用时存在很多不便,为了解决这个问题,Java为每个基本数据类型设计了一个对应的类去代表它们,这八个和基本数据类型对应的类统称为包装类。
2、创建包装类对象
3、包装类常用方法
4、自动装箱与拆箱机制
装箱:将基本类型转换成包装类型,分为自动装箱和手动装箱
拆箱:将包装类型装换成基本类型,分为自动拆箱和手动拆箱
5、基本类型与其他类型之间的转换
6、基本类型与字符串类型的转换
1)基本类型-->字符串类型
a.String的valueOf()方法
b.空字符串 + 一个基本类型变量
c.包装类的toString()方法
2)字符串类型 --> 基本类型
a.包装类的valueOf()方法
b.包装类的parse...()静态方法