Java 数组_方法_static关键字

简介: Java 数组_方法_static关键字

java数组

存储一批同种类型数据

静态初始化数组
数据类型[] 数组名 = new 数据类型[]{元素1, 元素2 , ...};
int[] ages = new int[]{12,24,26};  // 和 C 语言有区别
数据类型[] 数组名 ={元素1, 元素2 , ...};
int[] ages = {12,24,26};

数组是引用类型

访问数组
数组名[index];

获取数组长度

array.length;

注意点

  • 数据类型[] 数组名 可以写成 数据类型 数组名[] --> 同C语言
  • 数组一旦定义后,长度和类型就已经确定了
动态初始化数组

定义时只确定类型和长度

数据类型[] 数组名 = new 数据类型[长度];

元素默认值

两种初始化方式,不可以混用

数组遍历
for(int i = 0 ;i< array.length; i++ ){
    // array[i];
}
java方法
  • 程序逻辑清晰
  • 代码的复用
方法定义
修饰符 返回值类型 方法名(形参列表){
  // 方法体
}
  • 方法的编写顺序无所谓
方法重载

同名方法, 形参列表不同

调用时,通过参数的不同来区分调用的方法

通过形参不同实现功能差异化的选择

修饰符,返回值类型不能作为重载的基础

形参列表不同指的是:形参的个数类型顺序不同,不关心形参的名称

static 关键字
  • 静态, 可以修饰成员变量,成员方法
  • 静态成员变量,静态方法
  • static 修饰后的成员变量, 被类的所有对象共享(访问和修改) --> 属于类,内存中只有一份
类名.静态成员变量;
对象.静态成员变量; --> 也可以
  • 静态成员方法,可以使用类名访问,可以使用对象访问
  • 实例成员方法,只能使用对象访问
static 访问注意事项
  • 静态方法只能访问静态成员,不可以直接访问实例成员
  • 实例方法可以访问静态成员,也可以访问实例成员
  • 静态访问中不可以使用this关键字, this 代表的是对象
工具类

类中的静态方法,每个方法都是以完成一个公用的功能为目的。

  • 实例方法需要创建对象调用
  • 静态的工具类无需创建对象,就可以直接调用方法 --> 将工具类的构造器进行私有
代码块

类的5大成分: 成员变量,构造器,方法,代码块,内部类

代码块定义在方法中

使用{} 括起来的代码称为代码块

  • 静态代码块
  • 格式 : static{}
  • 需要通过static关键字修饰,随着类的加载而加载,并且自动触发、只执行一次
  • 在类加载的时候做一些静态数据初始化的操作,以便后续使用

定义成员变量时不允许赋初值

  • 在启动系统时对静态资源进行初始化
  • 构造代码块
  • 格式: {}
  • 每次创建对象,调用构造器执行时,都会执行该代码块中的代码,并且在构造器执行前执行
单例设计模式

一个问题通常有n种解法的,但其中肯定有一种解法是最优的,这个最优的解法被人总结 出来了,称之为设计模式

  • 单例模式
    保证系统中,应用该模式的这个类永远只有一个实例,即一个类永远只能创建一个对象
  • 单例实现方式
  • 饿汉单例模式
  • 懒汉单例模式
饿汉单例模式

在用类获取对象的时候,对象已经提前为创建好

步骤

  • 定义一个类,构造器私有
  • 定义一个静态变量,存储一个对象
public class SingleInstance{
    // 静态变量存储一个对象:属于类,与类一起加载一次
    public static SingleInstace instance = new SingleInstance();
    // 私有构造器
    private SingleInstance(){
        // ...
    }
}
懒汉单例模式

真正需要该对象时,才去创建一个对象(延迟加载对象)

步骤

  • 定义一个类,私有构造器
  • 定义一个静态变量存储对象
  • 提供一个返回单例对象的方法
public class SingleInstance{
    // 静态变量存储一个对象:属于类,与类一起加载一次
    public static SingleInstace instance;
    // 私有构造器
    private SingleInstance(){
        // ...
    }
    
    // 提供一个一个方法返回一个单例对象
    public static SingleInstance getInstance(){
        ...
        return ...;
    }
}
相关文章
|
5月前
|
存储 缓存 Java
Java数组全解析:一维、多维与内存模型
本文深入解析Java数组的内存布局与操作技巧,涵盖一维及多维数组的声明、初始化、内存模型,以及数组常见陷阱和性能优化。通过图文结合的方式帮助开发者彻底理解数组本质,并提供Arrays工具类的实用方法与面试高频问题解析,助你掌握数组核心知识,避免常见错误。
|
3月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
287 18
|
3月前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
231 4
|
4月前
|
算法 安全 Java
除了类,Java中的接口和方法也可以使用泛型吗?
除了类,Java中的接口和方法也可以使用泛型吗?
174 11
|
3月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
326 5
|
4月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
4月前
|
Java
Java 数组学习笔记
本文整理Java数组常用操作:遍历、求和、查找、最值及二维数组行求和等典型练习,涵盖静态初始化、元素翻倍、去极值求平均等实例,帮助掌握数组基础与应用。
|
5月前
|
算法 Java 开发者
Java 项目实战数字华容道与石头迷阵游戏开发详解及实战方法
本文介绍了使用Java实现数字华容道和石头迷阵游戏的技术方案与应用实例,涵盖GUI界面设计、二维数组操作、游戏逻辑控制及自动解法算法(如A*),适合Java开发者学习游戏开发技巧。
330 46
|
5月前
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
463 0