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. ...
随机推荐
- Prism 基础知识学习(五)发布订阅
Prism 基础知识学习(五)发布订阅 在 ViewBViewModel.cs中 1 public class ViewBViewModel : IDialogAware 2 { 3 /// < ...
- 关于Zotero组件在office word中的添加
引言:学姐问我,怎么弄Zotero,在调试过程中遇到的问题及解决方案 Q&A Zotero的安装 找到官网(https://www.zotero.org/)点击download,安装(个人觉得 ...
- 005. gitlab安装
1. gitlab介绍 官方网站: www.gitlab.com gitlab是一款使用ruby编写的代码版本管理系统,他可以通过web界面来管理代码. 2. gitlab安装 官方安装文档: htt ...
- CENTOS6.8 修改主机名
1.临时修改主机名 显示主机名:spark@master:~$ hostnamemaster修改主机名:spark@master:~$ sudo hostname hadoopspark@mast ...
- sql数据的操作
/* 数据的写入 名称 : 库名 表名 字段名 用 反引号包裹 数据 : 字符串数据使用单引号包裹 ...
- [SWPUCTF 2021 新生赛]easy_sql
这道题呢就是很简单的sql注入,我们直接用sqlmap来跑. 首先我们打开页面可以看见提示,参数为wllm **然后我们启动虚拟机,输入sqlmap的命令:sqlmap -u "url地址/ ...
- 在线RSA公钥私钥生成工具
在线RSA非对称加密公钥私钥生成工具,提供便捷.安全的公私钥生成服务.支持多种密钥长度选择,满足个性化需求.一键生成PEM格式证书,让您快速实现数据加密与身份验证,保障数据安全,提升网络安全防护能力. ...
- FreeRTOS简单内核实现3 任务管理
0.思考与回答 0.1.思考一 对于 Cotex-M4 内核的 MCU 在发生异常/中断时,哪些寄存器会自动入栈,哪些需要手动入栈? 会自动入栈的寄存器如下 R0 - R3:通用寄存器 R12:通用寄 ...
- debian使用桌面管理器管理多个桌面系统
环境:debian12.x 前言:我安装了debian12版本的操作系统在虚拟机中,在安装的时候选择的是KDE桌面,便于以后日常使用linux操作系统 在安装KDE桌面后,会自动安装一个sddm,sd ...
- HTML元素如何按字符串原格式输出文本换行制表符信息
只需给相应HTML元素添加 style="white-space: pre"