java基础 static
参考文章:
静态导包:https://blog.csdn.net/u012338954/article/details/51010337
常量池:http://blog.sina.com.cn/s/blog_ee34aa660102wrk3.html
static:http://www.cnblogs.com/xrq730/p/4820992.html
静态变量和静态方法
static关键字最基本的用法是:
1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来
2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来
被static修饰的变量、被static修饰的方法统一属于类的静态资源,是类实例之间共享的,换言之,一处变、处处变。JDK把不同的静态资源放在了不同的类中而不把所有静态资源放在一个类里面,很多人可能想当然认为当然要这么做,但是是否想过为什么要这么做呢?个人认为主要有三个好处:
1、不同的类有自己的静态资源,这可以实现静态资源分类。比如和数学相关的静态资源放在java.lang.Math中,和日历相关的静态资源放在java.util.Calendar中,这样就很清晰了
2、避免重名。不同的类之间有重名的静态变量名、静态方法名也是很正常的,如果所有的都放在一起不可避免的一个问题就是名字重复,这时候怎么办?分类放置就好了。
3、避免静态资源类无限膨胀,这很好理解
静态方法能不能引用非静态资源?
不能,new的时候才会产生的东西,对于初始化后就存在的静态资源来说,根本不认识它
静态方法里面能不能引用静态资源?
可以,因为都是类初始化的时候加载的,大家相互都认识
非静态方法里面能不能引用静态资源?
可以,非静态方法就是实例方法,那是new之后才产生的,那么属于类的内容它都认识
静态变量的初始化时间
类加载的时候
静态变量的存储位置
常量池
编译时,在字节码文件(.class)中的class常量池中,此时,常量池中包括包括了关于类、方法、接口等中的常量,也包括字符串常量和符号引用
运行时,用于存放编译期生成的各种字面量和符号引用,和运行时动态生成的常量
静态块
static
{
System.out.println("Enter A.static block");
}
静态块里面的代码只执行一次,且只在初始化类的时候执行
静态资源的加载顺序是严格按照静态资源的定义顺序来加载的
静态代码块对于定义在它之后的静态变量,可以赋值,但是不能访问
静态代码块是严格按照父类静态代码块->子类静态代码块的顺序加载的,且只加载一次
静态类
静态类只有一种:静态嵌套类
http://www.cnblogs.com/amei0/p/5039648.html
静态导包
import static是JDK1.5之后的新特性,这两个关键字连用可以指定导入某个类中的指定静态资源,并且不需要使用类名.资源名,可以直接使用资源名
import static java.lang.Math.*;
public class A
{
public static void main(String[] args)
{
System.out.println(sin(2.2));
}
}
java基础 static的更多相关文章
- java基础—static关键字
一.static关键字
- Java基础--static关键字
不管是平时阅读源代码,还是笔试.面试中,static关键字还是经常被问道,这篇文章主要来重新复习一下该关键字. 一.static用途 static方便在没有创建对象的时候调用方法或者变量. stati ...
- java基础--static关键字的使用
一.static关键字的作用 使类成员完全独立于该类的任何对象.通常情况下,类成员必须通过它的类的对象访问,但是被static修饰的成员,能够被自己访问,而不必引用特定的实例. 一旦一个成员被声明为s ...
- Java基础static的探究
static方法就是没有this的方法. 在static方法内部不能调用非静态方法, 但是在非静态的方法中可以调用静态的方法和变量. 而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用stati ...
- java基础——static keyword小节
static 用于修饰成员 修饰成员变量和成员函数 被修饰过的成员的特点: 1.随着类的载入而载入 2.优先于对象而存在 3.被全部对象所共享 4.能够直接被类名调用
- Java基础 static限定符的使用 以及【 static实现的 singleton(单例)设计模式】
static实现的 singleton(单例)设计模式 /** static实现的 singleton设计模式 , 使得一个类只能够创建一个static对象 */ 模板设计结构: package Co ...
- java基础之关键字static
在java当中有很多关键字,static便是其中一个,它很普通但我们经常需要运用到它,所以要了解static是非常有必要的. 鉴于本人知识结构有限,若有错误忘不吝赐教,甚为感谢. 一. ...
- Java基础系列--static关键字
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8477914.html 一.概述 static关键字是Java诸多关键字中较常使用的一个,从 ...
- java基础(五)-----关键字static
在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块. ...
随机推荐
- chrome(谷歌)浏览器字体发虚解决办法
chrome(谷歌浏览器)浏览网页时,字体发虚的解决办法: 1.点击chrome里的 “设置” - 外观 - 字体,改为 微软雅黑,该方法测试无效. 2.将系统字体的pingfang字体卸载,完美解决 ...
- asp.net mvc ViewBag常用操作
1.视图获取json类型数据 var str = '@(ViewBag.loginInfoList)'; if ($.trim(str).length>0) { re = new RegExp( ...
- springmvc注解@Controller和@RequestMapping
Spring从2.5版本引入注解,从而让开发者的工作变得非常的轻松 springmvc注解Controller org.springframework.stereotype.Controller注解类 ...
- 爬取 豆瓣电影Top250
目标 学习爬虫,爬豆瓣榜单,获取爬取静态页面信息的能力 豆瓣电影 Top 250 https://movie.douban.com/top250 代码 import requests from bs ...
- MP构造器
官方文档:https://baomidou.gitee.io/mybatis-plus-doc/#/wrapper 实体包装器,用于处理 sql 拼接,排序,实体参数查询等! 补充说明: 使用的是数据 ...
- Shell 编程 编辑工具 awk
本篇主要写一些shell脚本编辑工具awk的使用. 概述 awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理. awk倾向于将一 ...
- 《linux就该这么学》课堂笔记15 vsftpd文件传输、Samba/NFS文件共享
1.为了能够在如此复杂多样的设备之间(Windows.Linux.UNIX.Mac等不同的操作系统)解决问题解决文件传输问题,文件传输协议(FTP)应运而生. FTP服务器是按照FTP协议在互联网上提 ...
- 孪生网络(Siamese Network)在句子语义相似度计算中的应用
1,概述 在NLP中孪生网络基本是用来计算句子间的语义相似度的.其结构如下 在计算句子语义相似度的时候,都是以句子对的形式输入到网络中,孪生网络就是定义两个网络结构分别来表征句子对中的句子,然后通过曼 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结
丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...
- 201871020225-牟星源《面向对象程序设计(java)》第四周学习总结
201871020225-牟星源<面向对象程序设计(java)>第四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...