java中static特殊性和final(static成员直接被访问,this不能用在static方法中,static不可访问非static)

java的static关键字

    java中,static修饰的成员变量和成员方法叫静态变量和静态方法,不依赖类特定的实例,被类的所有实例共享。

静态变量或类变量 和 实例变量,区别是:

    静态变量在内存中只有一个拷贝(节省内存),JVM只分配一次内存,在加载类的过程中完成静态变量的内存分配,用类名直接访问,也可以通过对象来访问(不推荐,尽量不用)。
    实例变量在初始化后一个实例时为该实例分配一次内存,多个实例之间的实例变量是独立的

static的方法和变量可直接用类名访问;

    java中,Static类方法和类变量,先于实例(对象)存在,不用初始化类就可以直接用类名访问。在类加载时Java虚拟机根据类名在运行时数据区的方法区内找到Static方法。

Static方法不能调用非静态成员

    但静态方法不能调用非静态方法,以及引用非静态成员变量。因为类未初始化,没有实例,没有分配内存,不能调用。

非Static方法可以调用Static方法

    实例化后的方法,通过对象自身可以引用static方法

在static方法中不能使用this

    在static方法中不能用this来访问对象。this指针是类对象自身引用,需要类初始化类对象后才能使用,也就是new classA()后才能分配内存,才有this。
    如果设计类时,static函数必须用到某些类成员,则必须将该成员也定义为static。(内存有要求,要考虑内存是否够用)

所以,java类main方法必须是 public static的

    类的main方法这样就可以被外部直接访问,(未住初始化就可以访问)。并且,不初始化类对象不能访问类的非static成员。

类未实例化(初始化new())时,需要访问类内部函数,用java反射机制

java中final关键字

1.final的类不允许被继承。
2.final方法不允许被覆盖。
3.final变量只能被赋一次值。

判断数: if(! parentRegionID.matches(“\d+”))
判断字符串:if(! parentRegionID.matches(“\w+”))
\转义
^开头

Original: https://www.cnblogs.com/cl1024cl/p/6205334.html
Author: 代码王子
Title: java中static特殊性和final(static成员直接被访问,this不能用在static方法中,static不可访问非static)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/538710/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 题目:键盘录入内容,输出到文件中

    package com.gao.IO; import java.io.*; public class Test08 { public static void main(String…

    Java 2023年6月5日
    079
  • SQL基础

    测试环境:https://www.w3schools.com/sql/trysql.asp?filename=trysql_asc 1. 基本概念 表中的一行为一条数据,一列即为一…

    Java 2023年6月7日
    082
  • VSCode打字特效Power Mode插件

    由于最近比较频繁使用VSCode这个软件写代码,然后里面有一个非常炫酷的打字特效插件,平时写代码的时候不会感觉太枯燥(其实就是装一下逼吧)! 安装很简单,但是容易忘,所以这里整理一…

    Java 2023年6月5日
    078
  • redis 架构 数据类型

    架构 string 如果一个字符串对象保存的是整数值,此时使用的int编码 如果一个字符串对象保存的字符串长度大于32字节,使用的raw(sds)编码 如果一个字符串对象保存的字符…

    Java 2023年6月5日
    076
  • main 方法可以继承吗?

    阿里二面:main 方法可以继承吗? 昨天,微信群里一位网友,在群里发了自己面试阿里的过程。其中一个面试,他在群里 PUA 其他网友。这道面试题就是: Java &#x4E…

    Java 2023年6月7日
    089
  • 面试题:Java中为什么只有值传递?

    作者:小牛呼噜噜 | https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 经典的问题 形参&实参…

    Java 2023年6月15日
    085
  • Mybatis延迟加载

    resultMap中的association和collection标签具有延迟加载的功能。 延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息。使用关联信息时再去加载关联…

    Java 2023年6月13日
    062
  • Spring5源码解析_IOC之容器的基本实现

    前言: 在分析源码之前,我们简单回顾一下SPring核心功能的简单使用: 容器的基本用法 Bean是Spring最核心的东西,Spring就像是一个大水桶,而Bean就是水桶中的水…

    Java 2023年6月7日
    0105
  • 现在已经卷到需要问三色标记了吗?

    曾经,我以为这些东西自己平时看看书就够了,属于那种花了半天精力总算搞明白了,然后过两天就自然忘记的东西。 结果,这都啥啊,啥是卡表,什么又是三色标记法,这些鬼问题都有人面试问,卷就…

    Java 2023年6月13日
    070
  • Mybatis3中的MapUtil是用来干嘛的?

    解决并发带来的性能问题(读取操作不加锁) https://zhuanlan.zhihu.com/p/364340936 Original: https://www.cnblogs….

    Java 2023年6月7日
    099
  • Active MQ 整合SpringBoot

    配置文件 POM 4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.3.BUILD-SNAPSHOT co…

    Java 2023年6月7日
    060
  • CentOS8:No URLs in mirrorlist

    问题 解决方案 更新源 sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentO…

    Java 2023年6月15日
    080
  • Spring Cloud 面试问题

    说一说你对Spring Cloud的理解 Spring Cloud 是Spring官方推出来的一套微服务应用场景解决方案! 准确来说,我认为Spring Cloud 是对微服务里面…

    Java 2023年6月7日
    0101
  • GitLab 服务搭建

    GitLab 概述 GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。GitLab 产品将分为三个发行版本 CE…

    Java 2023年6月7日
    062
  • java序列化

    java序列化的方式 (1)实现Serializable接口,在方法中定义readObject()与wirteObject()方法(注意这两个方法是要去自己定义的而且固定格式,并不…

    Java 2023年6月8日
    080
  • vue路由守卫用于登录验证权限拦截

    vue路由守卫用于登录验证权限拦截 to:进入到哪个路由去 from:从哪个路由离开 next:路由的控制参数,常用的有next(true)和next(false) home需要判…

    Java 2023年6月15日
    062
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球