由static关键字谈java基础
来源:互联网 发布:域名 主机记录 编辑:程序博客网 时间:2024/05/27 06:51
最近在想,自己算是中级程序员还是高级程序员,已经工作四年了,还没有对自己有一个明确的定位。毕竟程序员
的级别也不能单纯以工作时间作为唯一衡量标准。
在一个公司待一段时间,不管你的技术好与坏,总可以去适应公司的业务,框架,工作氛围。所有很多程序员,包
括我自己。能按时交付自己的工作成果,就觉得自己很了不起,飘飘然。IT技术更新很快,只有不断学习,才能进步。
而且,我发现自己工作四年,工作还算得心应手,但是偶尔碰到一些基础知识,还是束手无策。这让我反思,在追求新
技术,新思想的同时,是不是偶尔停下脚步,扎实一下基础知识呢?你们怎么看呢?请大家指教。
废话不多说,下面看一个java基础知识点:static关键字。首先来看static的特点:
(1)static变量也称作静态变量:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。
(2)被static关键字修饰的方法或者变量不需要依赖于对象进行访问,类被加载了,可以通过类名去进行访问。
(3)static关键字还有一个作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
下面来看一个例子:
public class Student {private static int sid = 0;private String name;private int age;public Student(String name) {this.name = name;age = sid++;}public static int getSid() {return sid;}public static void setSid(int sid) {Student.sid = sid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public static void main(String[] args) {Student.sid = 100;Student s1 = new Student("lyl"); System.out.println(s1.getAge());System.out.println(s1.sid);}}
输出结果:
100
101
知识点:
(1)static成员变量,存在于data seg内存数据段中,int基本数据类型,只占这一块内存。
(2)Student.sid = 100就是讲数据段中的sid的值修改为100
(3)new Studnet("lyl")的时候,会调用构造函数,字符串“lyl”初始化在数据段。构造方法的形参name执行数据段中的“lyl”
this.name就是Student的name属性,将形参name赋值给Student的name属性。等价于student的name属性也指向数据段的“lyl”
(4)age = sid++;这个操作的原则是:先赋值,再加加。即 age = 100 age加加就等于101
(5)执行完构造方法,形参name的栈空间自动消失。
- 由static关键字谈java基础
- java 基础 static 关键字
- Java基础-关键字static
- java基础-static关键字
- java基础---static关键字
- java基础---static关键字
- java 基础static关键字
- Java基础---static关键字
- java 基础 static关键字
- Java基础--static关键字
- Java基础------static关键字
- 【JAVA基础】static关键字
- JAVA 基础 (static关键字)
- java基础之static关键字
- Java 基础总结--static关键字
- java基础梳理-关键字static
- java基础之--关键字static
- Java基础之static关键字
- java 字节码增强之ASM
- Leetcode - Largest Rectangle in Histogram
- C#技术漫谈之垃圾回收机制(GC)
- 50HZ干扰 示波器接地
- A/B Problem
- 由static关键字谈java基础
- Android项目不自动生成第一个Activity
- RotateCard(自定义旋转view)——By 小明湖畔(463785757@qq.com)
- 用vs2013编译lua静态库
- Swift之网络编程-文件下载
- 三星苹果业绩分野对中国厂商的启示
- Spark源码走读10——Spark On Yarn
- Injection Attack
- mongoDB的高级查询和高级修改