原文地址 JAVA 中静态块、静态变量加载顺序详解_西红柿鸡蛋打卤面的博客 - CSDN 博客如果类是第一次加载:先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关。执行子类的静态代码块和静态变量初始化。 并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关。执行父类的代码块执行父类的实例变量初始化 。执行父类的构造函数执行子类的代码块执行子类的实例变量初始化执...
package com.atzhangwl.t_p01;/** * @Description * @Author zhangwl to show that jvm program use class * @Date 2020/1/2 11:11 */public class RunMain { public static void main(String[] args) { //1、 System.out.println(MyChild_1.parentStr); //2、// System.out.println(MyChild_1.childStr); }}class MyParent_1 { public static String parentStr = "str from parent"; sta...
package com.liubingfei.test.proxy.staticproxy;/*** @author LiuBingFei* @desc 接口,定义抽象方法:卖房子,出租房子。* @date 2020/3/5 22:09* @return*/publicinterface house {//卖房子publicabstractvoid sell_house();//出租房子publicabstractvoid rental_house();
} package com.liubingfei.test.proxy.staticproxy;/*** @author LiuBingFei* @desc* @date 2020/3/5 22:12* @return*/publicclass house_owner implement...
1.文字阐述静态代码块的作用。2.构造代码块与构造函数的调用顺序如何?和方法的声明位置是否有关?为什么?构造代码块的作用是什么?3.类加载时,是否一定会执行静态代码块?如何手动控制类加载?4.定义类Person,Man,Woman形成继承关系。5.什么是抽象方法?什么是抽象类?抽象类是否有构造函数,是否可以重载?6.抽象修饰符有哪些非法组合?并给出合理的解释?7.super和this作用以及用法以及注意事项?8.定义接口1.IWhite2.IRich3....
一、概述 定义:为其他对象提供一种代理,以控制这个对象的访问。 代理模式的种类:静态代理和动态代理二、静态代理 ps:我们创建一个Book用于基础操作,再创建一个JavaBook用来代理Book类的功能。 1.Book.javapackage com.yw.reflectjavalib.proxy.staticproxy;/*** 定义一个book实体* create by yangwei* on 2020-02-16 17:48*/
public class Book {public void doWork() {System.out.println("读书");}
}2.JavaBook...
梳理一下:根据定义变量位置的不同,可以将变量分成两大类:成员变量和局部变量。成员变量(俗称全局变量):在类里定义的变量。又分为实例变量和类变量(也成为静态变量)。实例变量:不以static修饰,需要先将类实例化,才能通过实例访问,不能通过 类.实例变量 来访问实例变量,也就是只要实例存在,程序就可以访问该实例的实例变量类变量:以static修饰,只要类存在,程序就可以访问该类的类变量下面的示例讲述了关于静态内部类...
/** * Created by Administrator on 2017/3/6. *//** * @author zhenghong * @date 2017-03-06-22:07 **/public class TestA { public static void main(String []args) { new B(); }}class A{ static { System.out.println("static A"); } public A() { System.out.println("constutor A"); } { System.out.println("normal A"); }}class B extends A{ stat...
一、堆和栈的速度性能分析 堆和栈是JVM内存模型中的2个重要组成部分,自己很早以前也总结过堆和栈的区别,基本都是从存储内容,存储空间大小,存储速度这几个方面来理解的,但是关于堆和栈的存储速度,只知道堆存储速度慢,栈存储速度快,至于为什么堆比栈的存取速度慢,并没有特别深入的研究,从网上也找了很多资料,但很多理由并不太认同,这里也列举一些,并结合自己的理解来分析,如果不正确欢迎指正。 1、从分配的...
定义静态域nextId和一个静态方法getNextId,将三个Employee对象写入数组,然后打印雇员信息。最后打印出写一个可用的员工标识码来展示静态方法。package company;publicclass Gettext {publicstaticvoid main(String[] args) {// TODO 自动生成的方法存根Employee[] staff = new Employee[3];staff[0] = new Employee("Tom",40000);staff[1] = new Employee("Dick",60000);staff[2] = new Employee("Harry",65000);for(Employee e:...
util=function(){ return { $:function(id){ return document.getElementById(id); }, trim:function(str){ return str.replace(/(^\s+)|(\s+$)/g, ""); }, len:function(str){ return str.replace(/[^\x00-\xff]/g,‘**‘).length; }, format:function(str){ var arg = arguments; return str.replace(/\{(\d...
非静态方法(不带static)可以访问静态方法(带static),但是反过来就不行,为什么呢?public class test{public void static main(String args[]){method(); //会出错,提示你讲method方法改成静态的method2(); //调用方法正确new Test2().method(); //正确}public void method(){System.out.println("HelloWorld");}public static void method2(){System.out.println("HelloWorld");}
}
public class Test2{public void method(...
一道面试题,以下程序的输出是?public class StaticDispatch {static abstract class Human{}static class Man extends Human{}static class Woman extends Human{}public void sayHello(Human guy){System.out.println("hello , guy!");}public void sayHello(Man guy){System.out.println("hello, gentleman!");}public void sayHello(Woman guy){System.out.println("hello, lady!");}public static void main(String[] args) ...
/*** 静态代理* 公共接口:* 1、真实角色* 2、代理角色* **/publicclass StaticProxy {publicstaticvoid main(String[] args) {new WeddingCompany(new You()).happyMarry();//new Thread(线程对象).start(); }
}
interface Marry{void happyMarry();
}
//真实角色class You implements Marry{@Overridepublicvoid happyMarry() {System.out.println("you and 嫦娥终于奔月了....");}}
//代理角色class WeddingCompany implement...
前言有的时候,我们需要修改一个变量的值,但变量也许存在于 Jar 包中或其他位置,导致我们不能从代码层面进行修改,于是我们就用到了下面的场景,通过反射来进行修改变量的值。定义一个实体类class Bean{ private static final Integer INT_VALUE = 100;
}
利用反射修改私有静态常量方法System.out.println(Bean.INT_VALUE);
Field field = Bean.class.getField("INT_VALUE");
//将字段的访问权限设为true:即去除privat...
如:public class InnerClassDemo{int x;class A{static int a = 0;//这样写是不合法的.static final int b=0;//这样写是合法的}} java类加载顺序,首先加载类,执行static变量初始化,接下来执行对象的创建,如果我们要执行代码中的变量int a 初始化,那么必须先执行加载外部类,再加载内部类,最后初始化静态变量 a ,问题就出在加载内部类上面,我们可以把内部类看成外部类的非静态成员,它的初始化必须在外部类对象创建后以后进...