静态代码块?类加载就执行,最先执行

class demo{

static int num;

static{

num=10;

num*=3;

System.out.println("haha");

}

static void show(){

System.out.println("num="+num);

}

}

空参构造自动生成对象时,使用非静态的属性

代码:

package com.swift;
//使用无参构造方法自动生成对象,序号不断自增
public class Person {
private int count; //如果在定义类时,使用的是非静态的属性,则得到的结果都是相同的,都为1。因为这个count生命周期短,只在对象内部
public int id;
public String name;
public int age;
public String city;
public Person() {
super();
count++;
this.id=count;
this.name="NoName-"+count;
this.age=20;
this.city="蜀国"+count; }
public Person(int id ,String name,int age,String city) {
this.id=id;
this.name=name;
this.age=age;
this.city=city;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getInfo() {
return "The Person is id=" + id + ", name=" + name + ", age=" + age + ", city=" + city ;
} }

结果:

空参构造自动生成对象时,使用静态的属性

代码:

package com.swift;
//使用无参构造方法自动生成对象,序号不断自增
public class Person {
private static int count; //如果在定义类时,使用的是静态的属性,则得到的结果是不同的。count生命周期长,与类相同
public int id;
public String name;
public int age;
public String city;
public Person() {
super();
count++;
this.id=count;
this.name="NoName"+count;
this.age=20;
this.city="蜀国"; }
public Person(int id ,String name,int age,String city) {
this.id=id;
this.name=name;
this.age=age;
this.city=city;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getInfo() {
return "The Person is id=" + id + ", name=" + name + ", age=" + age + ", city=" + city ;
} }

结果:

Demo类

package com.swift;

public class DemoPerson {

    public static void main(String[] args) {
new Person();
new Person();
new Person();
new Person();
new Person();
// Person p3=new Person();
// Person p4=new Person();
// p1.id=100001;
// p1.name="刘备";
// p1.age=40;
// p1.city="蜀国";
// p2.id=100002;
// p2.name="关羽";
// p2.age=35;
// p2.city="蜀国";
// p3.id=100003;
// p3.name="张飞";
// p3.age=33;
// p3.city="蜀国";
// p4.id=100004;
// p4.name="诸葛亮";
// p4.age=30;
// p4.city="蜀国";
// System.out.println(p1.getInfo());
// System.out.println(p2.getInfo());
// System.out.println(p3.getInfo());
// System.out.println(p4.getInfo());
} }

什么是静态代码块?java中如何使用空参构造方法自动生成不同名字的对象,使用非静态的属性和静态属性有什么区别,原因是什么?如何理解static关键字的更多相关文章

  1. 堆、栈、方法区、静态代码块---Java

    java 堆.栈.方法区 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基 ...

  2. Java 面向对象—非静态代码块

    一.非静态代码块 1.声明格式 [修饰符] class 类名 { { 非静态代码块 } } 2.非静态代码块中的代码执行时机 (1)在"每次"创建对象的时候执行 (2)比构造方法早 ...

  3. java构造代码块与静态代码块

    一:构造代码块 1.概述 作用:给对象初始化. 优先级:优先于对象的构造函数之前执行. { /*构造代码块的代码*/ } 给所有的对象统一的初始化,而构造函数只是给特定的对象初始化,因为构造函数可以重 ...

  4. Java中静态代码块、构造代码块、构造函数、普通代码块

    在Java中,静态代码块.构造代码块.构造函数.普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序. 1.静态代码块 ①.格式 在java类中(方法中不能存在静态代 ...

  5. java中的静态变量、静态方法与静态代码块详解与初始化顺序

      我们知道类的生命周期分为装载.连接.初始化.使用和卸载的五个过程.其中静态代码在类的初始化阶段被初始化. 而非静态代码则在类的使用阶段(也就是实例化一个类的时候)才会被初始化. 静态变量 可以将静 ...

  6. java中的静态变量,静态方法与静态代码块详解

    java中的类的生命周期分为装载,连接,初始化,使用,和卸载五个过程. 而静态代码在类的初始化阶段被初始化. 而非静态代码则在类的使用阶段(也就是实例化一个类的时候)才会被初始化. 静态变量 可以将静 ...

  7. Java中普通代码块,构造代码块,静态代码块区别及代码示例

    //执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...

  8. Java中普通代码块,构造代码块,静态代码块执行顺序

    //执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...

  9. Java中普通代码块,构造代码块,静态代码块的代码演示样例及区分

    //运行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 当中静态代码块仅仅运行一次.构造代码块在每次创建对象是都会运行. 1 普通代码块 <span ...

随机推荐

  1. IT兄弟连 Java语法教程 Java语言的跨平台特性

    什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台. CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种零部件的命 ...

  2. jQuery EasyUI/TopJUI输入框事件监听

    jQuery EasyUI/TopJUI输入框事件监听 代码如下: <div data-toggle="topjui-panel" title="" da ...

  3. 运用html常用标签和css定位等学做模仿百度导航页面

    导航部分文字链接,鼠标触碰变颜色,除百度logo引用图片外,其它均代码编写.注释部分是一开始用的百度一下截图做的按钮,后来用div填充颜色写了一个按钮.效果图如下. HTML代码如下: <!DO ...

  4. C# Func与Action总结

    Action:无参数无返回值委托. Action<T>:泛型委托,无返回值,根据输入参数的个数不同有十六个重载. Func< out T>:无输入参数,有返回值. Func&l ...

  5. 打war包时无法把src/main/java里的xml文件打包上去

    maven打包默认打src/mian/resource里面的xml,而不会去src/main/java,所以 再pom.xml里的bulid节点里加上 <resources> <re ...

  6. 六,IO系统

    六,IO系统 一,数据源 1,数据源--管道确认使用那根管道--节点流 2,先确定管道在tey中new出管道,new出后就写关闭代码,写完关闭代码在写中间代码 3,取数据和放数据结束语句必须有两个,不 ...

  7. 网络编程之异步IO,rabbitMQ笔记

    对于网络并发编程而言,多线程与多进程算是最常见的需求场景了.毕竟网站开放就是想要更多的流量访问的. 回顾 回顾下之前学过的关于线程,进程和协程的知识点 IO密集型任务--用多线程更好计算密集型任务-- ...

  8. list 转换成datatable

    感谢网上的一位朋友 /// <summary> /// 将集合类转换成DataTable /// </summary> /// <param name="lis ...

  9. iOS使用TestFlight进行内部和外部人员测试

    前言 在iOS 8中,苹果发布了一个叫做TestFlight的新玩意,用于将Beta测试流水化.此前你可能听说过这个东西,因为TestFlight作为一个独立的测试平台已经有些年头了.被苹果收购之后用 ...

  10. Vue2.0 官方文档学习笔记

    VUE2.0官方文档 基础部分: 1.VUE简介 Vue是一个基于MVVM的框架,其中M代表数据处理层,V代表视图层即我们在Vue组件中的html部分,VM即M和V的结合层,处理M层相应的逻辑数据,在 ...