首页 > 编程语言 >java static 静态变量

java static 静态变量

时间:2023-01-17 09:33:13浏览次数:67  
标签:arr java String 静态 static public

目录

视频链接

静态变量:https://www.bilibili.com/video/BV17F411T7Ao?p=121
静态方法和工具类:https://www.bilibili.com/video/BV17F411T7Ao?p=122
static的注意事项:https://www.bilibili.com/video/BV17F411T7Ao?p=123

java static

static 基础

jdk8之前静态变量存放在方法区,之后被优化到堆内存中,当调用静态变量时,会在堆中创建静态存储区存放所有静态变量(与new关键字是不同的),即:静态变量是随着类的加载而加载,优先于对象出现。

public class Student() {
    private String stuName;
    //静态区是独一份的,新创建的对象需要再去查找
    public static String teacherName;
}
public class StudentTest() {
    public static void main(String[] args) {
	// 所有的Student对象的teacherName都会被赋相同值
        Student.teacherName ="teacher static";
        Student s1 = new Student;
	...
    }
}

static修饰方法的应用场景

static修饰的常不是Javabean类也不是测试类,而是工具类。

工具类

私有化构造对象是为不让创建对象,因为工具类不是描述一类事物的,创建对象没有意义。

工具类实例

package year23month01day17.demo94proj;

public class ArrayUtil {
    // 私有化构造方法不让外界创建工具类的对象
    private ArrayUtil() {
    }

    // 定义静态方法(不要私有化):遍历返回整数数组的内容
    public static String printArr(int[] arr) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");

        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                sb.append(arr[i]);
            } else {
                sb.append(arr[i]).append(", ");
            }
        }

        sb.append("]");

        return sb.toString();
    }

}
package year23month01day17.demo94proj;

public class TestDemo {
    public static void main(String[] args) {
        int[] arr = { 1, 2, 3, 4, 5 };
        String str = ArrayUtil.printArr(arr);

        System.out.println(str);
    }
}

java static应用注意事项

静态方法中没有this关键字。不能访问诸如自定义的变量或方法。

标签:arr,java,String,静态,static,public
From: https://www.cnblogs.com/xiaoaozi/p/17056867.html

相关文章

  • Java项目笔记
    使用lombok成员方法输出日志@SpringBootApplication@Slf4jpublicclassReggieTakeOutApplication{publicstaticvoidmain(String[]args){SpringA......
  • Java实现字符串和零宽字符之间的相互转换
    如题,上网找了一圈发现都是用JavaScript实现的,只好自己将JavaScript实现的代码转为Java代码实现://String->零宽字符publicstaticStringstrToZeroWidth(Stringstr){......
  • idea运行别人的java项目需要注意的地方
    常规java项目的配置1.假设有两层路径,要进入到第二层,才用右键打开第一层第二层2.在ProjectStructure中配置输出文件夹的路径3.修改编译的方式,javac或者eclipse4......
  • 05.Java流程控制
    Java流程控制用户交互ScannerJava提供了一个工具类,可以获取用户的输入。Java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。基本语法:Scanners......
  • Java字符串 equals()与==的比较
    理解equals()方法和==运算符执行的是两个不同的操作是重要的。如同刚才解释的那样,equals()方法比较字符串对象中的字符。而==运算符比较两个对象引用看它们是否引用相同......
  • 9.使用JavaConfig实现配置
    要完全不使用Spring的xml配置了,全权交给Java来做!JavaConfig是Spring的一个子项目,在Spring4之后,它成为了一个核心功能!实体类packagecom.zuo.entity;importorg.sp......
  • 手写笔记18:谈谈Java内存模型?
    ......
  • 18.(行为型模式)java设计模式之观察者模式
    一、什么是观察者模式定义对象间⼀种⼀对多的依赖关系,使得每当⼀个对象改变状态,则所有依赖于它的对象都会得到通知并⾃动更新,也叫做发布订阅模式Publish/Subscribe,属于⾏......
  • [JavaScript]前端解析cookie为对象
    参考解析页面传参varcookie_str=document.cookievarcookie_arr=cookie_str.split(";")varcookie_obj={}for(vari=0;......
  • 13.(行为型模式)java设计模式之模板模式
    一、什么是模板模式定义⼀个操作中的算法⻣架,将算法的⼀些步骤延迟到⼦类中,使得⼦类可以不改变该算法结构的情况下重定义该算法的某些特定步骤,属于⾏为型模式二、模板模......