static个人理解
static解:
主要用于内存管理,static关键字的方法不需要new对象就可以直接在同static内进行调用,在其他类中可直
接通过类名进行变量的访问。
static关键字属于类,不是类的实例。
成员分为两种:静态变量与实例变量。
static修饰后只会被分配一次内存,加载类的时候就会预先完成内存分配
静态变量可以被类的所有实例共享,静态变量可以增加实例之间的交互性
相对的 静态方法不能调用非静态的方法与变量,并且静态不能用this与super
静态变量适合全局变量的定义:比如一个boolean flag布尔变量可以多次使用,不用每次定义并且节省了内存
静态代码块:
static{}修饰的代码块
类似于方法,不可以放在方法体内
可以放在类的任何地方,类中可以存在多个
静态代码块只会初始化一次,并且在类内按次序进行,而非静态代码块会在new对象时都会触发
1、静态内部类,跟静态方法一样,只能访问静态成员变量和方法,不能访问非静态方法和属性。
2、普通内部类,可以访问任意外部类的成员变量和方法。
3、静态内部类,可以声明普通成员变量和方法,而普通内部类不能声明static成员变量和方法。
4、静态内部类,可以单独初始化。
子方法static去掉的报错(求平方数的静方法)的原因,例子
原因:得先new对象,不new对象不能直接调用
原代码
public class SquareInt {
public static void main(String[] args) {
int result;
for (int x = 1; x <= 10; x++) {
result = square(x);
// Math库中也提供了求平方数的方法
// result=(int)Math.pow(x,2);
System.out.println("The square of " + x + " is " + result + "\n");
}
}
// 自定义求平方数的静态方法
public static int square(int y) {
return y * y;
}
}
将静态方法修改后
public class SquareInt {
public static void main(String[] args) {
SquareInt Sq=new SquareInt();
//先创建对象
int result;
for (int x = 1; x <= 10; x++) {
result = Sq.square(x);
// Math库中也提供了求平方数的方法
// result=(int)Math.pow(x,2);
System.out.println("The square of " + x + " is " + result + "\n");
}
}
// 自定义求平方数的静态方法
public int square(int y) {
return y * y;
}
}
static个人理解的更多相关文章
- C# const与static的理解
C# const与static的理解 static readonly与 const变量,作用是一样的,无论访问修饰符是不是public,还是其它(private. protected.interna ...
- Java中static的理解
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...
- 对JAVA的static深刻理解(结合C语言的思考)
public class statictest { String X = "我是非静态变量"; static int butterfly =0; static String sta ...
- 对final和static的理解
一.final (一).final的使用 final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量) 1. 当用final修饰一个类时,表明这个类不能被继承.2. 当用final修饰一个方法 ...
- C static 关键字理解
今天来看一下这么一个程序. #include<stdio.h> int count =1; int fun(void) { static int count =10; return cou ...
- extern、 const、static的理解
1.extern:是一个声明,用来告诉编译器其它文件中存在这个变量,可以拿到使用.是文件级的 2.static: 是一个文件内的声明,只能在本文件内使用,是文件中的(函数级的) 3.const ...
- 对C语言中static的理解
对C语言中的static关键字的深入理解 在一次面试的时候面试官问我static全局变量与全局变量的区别,之前虽然用过但是并没仔细去搞懂他,这次来细心的学习一下. 基本概念 使用static有三种情况 ...
- Java面试题之对static的理解
1.静态变量 类型说明符是static.2.静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个 ...
- 浅谈对static的理解
相信很多朋友在面试过程中都遇到过关于static的相关题目,接下来我们来分析一下static. static(静态的),用来修饰成员变量,成员方法,它随着类的加载而加载,使用static修饰的数据可以 ...
- 内部类不能有静态变量(除静态的对Static的理解)
关于内部类(static与final) Static 不用实例化就能加载进内存 而内部类需要外部类实例化后才能加载进内存.这就间接造成static需要实例化了.与static不需要实例化语义矛盾 1. ...
随机推荐
- 分布式缓存NewLife.Redis
NewLife.Redis 是一个Redis客户端组件,以高性能处理大数据实时计算为目标. Redis协议基础实现位于Redis/RedisClient,FullRedis为扩展实现,主要增加列表结构 ...
- LLM 大模型学习必知必会系列(三):LLM和多模态模型高效推理实践
LLM 大模型学习必知必会系列(三):LLM和多模态模型高效推理实践 1.多模态大模型推理 LLM 的推理流程: 多模态的 LLM 的原理: 代码演示:使用 ModelScope NoteBook 完 ...
- 【论文笔记】R-CNN系列之代码实现
代码源码 前情回顾:[论文笔记]R-CNN系列之论文理解 整体架构 由三部分组成 (1)提取特征的卷积网络extractor (2)输入特征获得建议框rois的rpn网络 (3)传入rois和特征图, ...
- golang interface 和 struct 添加方法的区别
在 Go 语言中,struct 和 interface 都可以关联方法,但它们的方式不同: 1. struct 添加方法: 结构体(struct)本身不直接包含方法,但可以通过定义一个指向该结构体类型 ...
- graylog 大于等于 查询
graylog 大于等于 查询 :>=1000 不要有空格 如下: pay_channel:PSBC AND hs:>=4
- Vue学习:4.v-model使用
第一节算是对v-model的粗略了解,仅仅是将input的输入与Vue 实例的数据之间双向绑定.这一节将更详细的了解v-model在不同表单元素中的使用. v-model实例:找对象 实现功能: 使用 ...
- 《最新出炉》系列入门篇-Python+Playwright自动化测试-51- 字符串操作 - 上篇
1.简介 在日常的自动化测试工作中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥 ...
- python 二次封装logging,导致日志输出的filename错误及优化封装
问题 封装logging文件名称为:A.py 调用A模块的文件名称为:B.py 二次封装了logging日志模块,根据需要,传入level,判断等级,调用logging模块的info.debug等日志 ...
- Freertos学习:在Posix环境仿真FreeRTOS
--- title: rtos-freertos-在Posix环境仿真FreeRTOS date: 2020-06-11 16:22:34 categories: tags: - freertos - ...
- 如何查看docker容器的volume挂载情况
准备在docker容器当中编写个日常维护的脚本,但容器里连yum和vim命令都没有,所以就想到通过容器映射在本机的volume里编写脚本这样在容器中不就可以直接用了吗,那么在这之前你首先得知道dock ...