java中的类的生命周期分为装载,连接,初始化,使用,和卸载五个过程。 而静态代码在类的初始化阶段被初始化。 而非静态代码则在类的使用阶段(也就是实例化一个类的时候)才会被初始化。静态变量可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象。 静态变量有两种情况:静态变量是基本数据类型,这种情况下在类的外部不必创建该类的实例就可以直接使用 静态变量是一个引用。这种情况比较特殊,主要问题...
在前面我们说过静态的变量,就是使用static修饰的量,我们称之为静态的变量,用static修饰的方法,我们称之为静态的方法 静态的方法是直接可以使用来来进行调用,不需要创建该类的实例化的对象就可以了。 还是来看看下面的代码吧。package oop2;public class static2 {static public void say() {System.out.print("hello world");}public static void main(String[] args) {static2 t1=new static2();t1.say();System.out.println...
??在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写(Override)。方法重写又称方法覆盖。 public class Test {public static void main(String[] args) {/*** 结论:* 静态方法可以被继承,但是不能被覆盖,即不能重写。* */Son.staticMethod(); // 运行结果:Father staticMethod} }class Father {public static void stati...
一、静态代码块1.在java类中(方法中不能存在静态代码块)使用static关键字和{}声明的代码块:public class CodeBlock{static{System.out.println("静态代码块"); } } 2.执行时机(1)静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于分钟代码块以及构造函数。如果一个类中有多个静态代码块,就会按照书写的顺序执行。3.静态代码块的作用:一般情况下,如果有些代码需要在项目启动的时候执行,这时就需要静...
一.为啥写这个文章写的比较啰嗦,有些东西可以不看,因为想看懂框架, 想了解SSH或者SSM框架的设计原理和设计思路, 又去重新看了一遍反射和注解, 然后看别人的博客说想要看懂框架得先看懂设计模式,于是遇到了动态代理这个大坑, 写博客等于是对自己学习过程的一个回顾和总结本文主要参考欧阳锋的10分钟看懂动态代理设计模式 二.理解和弄懂代理的前期准备 2.1.什么是代理简单来说就是有活不自己干,让别人干, 比如你不想写作业, 让同学...
原文地址:https://github.com/nnngu/LearningNotes/blob/master/_posts/2017-04-17-017%20Java%E4%B8%AD%E7%9A%84%E9%9D%99%E6%80%81%E4%BB%A3%E7%90%86%E3%80%81JDK%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86%E3%80%81cglib%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86.md 一、静态代理 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。 静态代理由业务实现类、业务代理类两部...
前面介绍了方法引用的概念及其业务场景,虽然在所列举的案例之中方法引用确实好用,但是显而易见这些案例的适用场合非常狭窄,因为被引用的方法必须属于外层匿名方法(即Lambda表达式)的数据类型,像isEmpty、contains、startsWith、endsWith、matches、compareTo、compareToIgnoreCase等等无一例外全部归属String字符串类型,假使Lambda表达式输入参数的数据类型并不拥有式子右边的方法,那么方法引用还能派上用场吗?当然Java8憋...
一、代理模式介绍 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 简言之,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和简化访问方式。代理模式UML类图 举个例子,我们生活中经常到火车站去买车票,但是人一多的话,就会非常拥挤,于是就有了代售点,我们能从代售点买车票...
1 package proxy.staticproxy; 2 3 public interface IStar { 4 5 public void sing(); 6 }1 package proxy.staticproxy; 2 3 public class RealStar implements IStar{ 4 @Override 5 public void sing() { 6 System.out.println("我是大明星:我要大声唱:巴拉巴拉。。。"); 7 } 8 } 1 package proxy.staticproxy;2 3 public class ProxyStar implements IStar {4 5 private IStar realStar;6 7 ...
一、Java中有一个设计模式是代理模式 代理模式是常用的Java设计模式,特征是代理类与委托类有相同的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。 代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。简单的说就是,我们在访问实际对象的时候,是通过代理...
/*** 静态代理* 公共接口:* 1、真实角色* 2、代理角色* **/ public class StaticProxy {public static void main(String[] args) {new WeddingCompany(new You()).happyMarry();//new Thread(线程对象).start();} } interface Marry{void happyMarry(); } //真实角色 class You implements Marry{@Overridepublic void happyMarry() {System.out.println("you and 嫦娥终于奔月了....");}} //代理角色 class WeddingCompany implem...
注:若需要被静态化的 页面中 使用了 response.sendRedirect跳转,则最后静态页面为 最终跳转后的页面。 而那些 使用js 跳转的 比如 window.location.href 则 无效,直接作为js代码在生成的静态页面中,并执行。 //保存为文件 import java.io.*; public class GenerateIndexPage {protected static String defaultToFile = "frame/main_Null.html";protected static String defaultFromFile = "http://localhost:8080/stfb/frame/m...
描述Person对象:package android.java.oop09;// 描述Person对象 public class Person {private String name;private int age;private double height;private static String country = "中国";private Person() {}public Person(String name, int age, double height) {this.name = name;this.age = age;this.height = height;}public void showValue() {System.out.println("name:" + name + " age:" + age + " height:" + height...
静态代码块: 静态代码块什么时候执行,是由当前类被加载进内存的时候,什么时候当前类被加载进内存? 答:例如 描述好了Student对象,当 new Student(); 的时候,第一步:是把Student类加载进内存,第二步/或者是后续的工作才是 实例化操作处理等; 描述Student对象/实体:package android.java.oop05;public class Student {private int id = 01;private String name = "谢宁";private int age = 90;private String englishName ...
1、去除ArrayList中重复字符串元素方式 * A:案例演示 * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) * 思路:创建新集合方式/** * A:案例演示 * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) * 思路:创建新集合方式 */ public static void main(String[] args) { ArrayList list = new ArrayList(); ...