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 ,问题就出在加载内部类上面,我们可以把内部类看成外部类的非静态成员,它的初始化必须在外部类对象创建后以后进...
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《java并发编程实践》中所说:写道给线程安全下定义比较困难。存在很多种定义,如:“一个类在可以被多个线程安全调用时就是线程安全的”。 此处不赘述了,首先给出静态变量、实例变量、局部变量在多线程环境下的线程安全问题结论,然后用示例验证,请大家擦亮眼睛,有错必究,否则误人子弟! 静态变量:线程非安全。静态变...
代理模式是常用的java设计模式,他的特征是代理类与目标类有同样的接口,代理类主要负责为目标类预处理消息、过滤消息、把消息转发给目标类,以及事后处理消息等。代理类与目标类之间通常会存在关联关系,一个代理类的对象与一个目标类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用目标类的对象的相关方法,来提供特定的服务。 结构图如下: 按照代理的创建时期,代理类可以分为静态代...