在java中,static是一个修饰符,用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能;被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

static关键词的作用

1、静态成员变量的语法特定
2、静态函数的语法特定
3、静态代码块的语法特定

定义静态成员变量

Person.java

?
1
2
3
class Person{
static int a;
}

按照以前可以这么调用

?
1
2
3
4
5
6
7
public class Test1{
public static void main(String[] args){
Person person = new Person();
person.a = 10;
System.out.println(person.a);
}
}

输出结果为10。

加上static后也可以这么使用:

?
1
2
3
4
5
6
public class Test1{
public static void main(String[] args){
Person.a = 10;
System.out.println(Person.a);
}
}

输出结果为10。

普通成员对象和静态成员变量的区别

普通成员变量对应p1和p2互不影响。而静态成员变量,p1和p2使用的是同一个变量。

在这里插入图片描述

静态函数

静态函数中不能直接引用非静态的成员变量,在静态函数中不能使用this.

定义静态函数

Person.java:

?
1
2
3
4
5
class Person{
static void fun(){
System.out.println("static function");
}
}

Test1.java

?
1
2
3
4
5
public class Test1{
public static void main(String[] args){
Person.fun();
}
}

输出:static function

静态代码块

静态代码块是在装载类的时候执行,作用是初始变量。

?
1
2
3
static{
System.out.println("static code");
}

到此这篇关于详解java中static关键词的作用的文章就介绍到这了,更多相关java中static关键词内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

标签:

详解java中static关键词的作用的更多相关文章

  1. Java SPI 与 Dubbo SPI

    SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制。本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。在Java中SPI是被用来设计给服务提供商做插件使用的。基于策略模式来实现动态加......

  2. java中gc算法实例用法

    在我们对gc中的算法有基本概念理解后,要把算法的理念实现还需要依托实际垃圾收集器的使用。因为光靠一些简单的原理不足以支撑整个程序的运行,在回收机制上有专门的收集器。下面我们就垃圾收集器的概念、使用注意事项、收集器图解进行介绍,然后带来两种常见的垃圾收集器供大家参考。1.概念垃圾收集器时之前列举的垃圾......

  3. java HttpClient传输json格式的参数实例讲解

    最近的一个接口项目,传的参数要求是json,需要特殊处理一下。重点是这两句话:httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");se.setContentType(CONT......

  4. Java 反射修改类的常量值、静态变量值、属性值

    前言有的时候,我们需要修改一个变量的值,但变量也许存在于 Jar 包中或其他位置,导致我们不能从代码层面进行修改,于是我们就用到了下面的场景,通过反射来进行修改变量的值。定义一个实体类class Bean{ private static final Integer INT_VALUE = 100;......

  5. java封装实例用法讲解

    我们可以选择把类的方法、属性装起来,便于日后的程序书写和使用,这种处理方法就是封装的思想。因为封装类之后,其他的外部类方法就不能在混入其中,对代码的安全性进行了提高。接下来我们就对java中封装的概念、目的进行介绍,然后在实例中为大家演示封装的方法。1.概念封装性是面向对象三大特征之一,是指一种将抽......

  6. Java编程技术之浅析SPI服务发现机制

    SPI服务发现机制SPI是Java JDK内部提供的一种服务发现机制。SPI->Service Provider Interface,服务提供接口,是Java JDK内置的一种服务发现机制通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类......

  7. Java RPC 框架 Solon 1.3.1 发布,推出Cloud接口与配置规范

    Solon 是一个微型的Java RPC开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,3500多次的commit;内核保持0.1m的身材,超高的跑分,良好的使用体验。支持:Rpc、Rest api、Mvc 多种开发模式。Solon 强调:克制 + 简洁 + 开放的原则;力求:更小......

  8. Java中的基本数据类型与引用数据类型

    一、基本数据类型byte、short、int、long(整数类型)float、double(浮点数类型)char(字符型)boolean(布尔类型 )Java数据大多数存放在堆栈中。栈区:存放局部变量,对象声明的引用等。堆区:存放new关键字创建的类(包含成员变量)和数组等。堆与栈的优缺点栈的优点:......

  9. Java中ArrayList集合的常用方法大全

    ArrayList集合的创建非泛型创建ArrayList集合对象,可以添加任意Object子类元素至集合//非泛型创建的ArrayList集合对象可以保存任何类型的值ArrayList list = new ArrayList();list.add("str");//存入Stri......

  10. 浅谈在Java中JSON的多种使用方式

    1. 常用的JSON转换JSONObject 转 JSON 字符串JSONObject json = new JSONObject();jsonObject.put("name", "test");String str = JSONObject.toJSONS......

随机推荐

  1. CSS不用背景图片实现优惠券样式反圆角,凹圆角,反向半圆角,并且背景渐变

    日常开发过程中,特别是商城相关应用开发过程中,时常会遇到花里胡哨的设计图,比如优惠券样式,上图:实现思路如下:1.先写一个外容器,实现背景色渐变:Html:1 <div class="coupon"> 2 div>Css:1 .coupon { 2 widt......

  2. JavaScript 如何禁止用户保存图片

    场景 在业务需求中不希望用户保存图片,因为是一些供内部使用的图片。 思路 添加事件禁止选择、拖拽、右键(简单的禁止用户保存图片,但无法阻止用户打开控制台查看,或是直接抓包) 将之转换为 canvas(让浏览器认为不是图片以此禁止用户对之进行图片的操作,但无法阻止抓包) 禁止用户使用控......

  3. MySQL 中的自增主键

    MySQL 的主键可以是自增的,那么如果在断电重启后新增的值还会延续断电前的自增值吗?自增值默认为1,那么可不可以改变呢?下面就说一下 MySQL 的自增值。特点保存策略1、如果存储引擎是 MyISAM,那么这个自增值是存储在数据文件中的;2、如果是 InnoDB 引擎,1)在 5.6 ......

  4. ASP下通过Adodb.Stream实现多线程下载大文件

    有个朋友 做 某种小众音乐交换站的(他们那个行业的昵图网),需要用到付费下载。尝试过 防盗链,不太理想,最终使用了 Adodb.Stream 读取,直接输出。解决了 盗版的问题,但是新的问题又来了。Adodb.Stream 这种方式 电脑还好说,大部分电脑浏览器都支持。移动端 很多 浏览器为了 加速......

  5. Android实现长截屏功能

    本文实例为大家分享了Android实现长截屏功能的具体代码,供大家参考,具体内容如下1、MainActivitypublic class MainActivity extends AppCompatActivity {ScrollView scrollView;String sdRoot = Env......

  6. 使用line_profiler对python代码性能进行评估优化

    介绍python的逐行性能分析工具line_profiler的安装与使用,对给定的两个案例用line_profiler进行分析并给出性能分析的结论,其中通过正弦函数的不同实现方式的性能排名也给了大家一些库的使用的启发。性能测试的意义在做完一个python项目之后,我们经常要考虑对软件的性能进行优化。......

  7. docker+mysql集群+读写分离+mycat管理+垂直分库+负载均衡

    依然如此,只要大家跟着我的步骤一步步来,99.99999%是可以测试成功的centos6.8已不再维护,可能很多人的虚拟机中无法使用yum命令下载docker,但是阿里源还是可以用的 因为他的centos-vault仓库里放了之前版本的centos的包只需要在centos命令行界面下执行一下几条命令......

  8. ORACLE 利用 REPLACE函数替换字段字符串

    REPLACE(string,s1,s2) string 希望被替换的字符或变量 s1 被替换的字符串 s2 要替换的字符串 SQL> select replace(he love you,he,i) from dual; REPLACE(H ---------- i love you...

  9. 用python批量移动文件

    我是用来移动图片的,其他格式的文档也是可以的,改下后缀列表就可以了import os,shutilimport datetime #将文件夹里的图片全部移动到新文件夹中#revised by Stephen Shen 2020-3-10 09:28:50 def renameFile(dst......

  10. Python抓取文件夹的所有文件,包括子文件夹和子文件夹的文件

    #!/user/bin/python # -*- coding:utf8 -*- import Basic import os ##################################################### ######## Input......