javaSE
文章平均质量分 63
wonder_wonder
为什么不呢
展开
-
Java单例模式:饿汉&懒汉
本文为转载博客,原文出处见文末。引言在开发中,如果某个实例的创建需要消耗很多系统资源,那么我们通常会使用惰性加载机制(或懒加载、延时加载),也就是说只有当使用到这个实例的时候才会创建这个实例,这个好处在单例模式中得到了广泛应用。这个机制在单线程环境下的实现非常简单,然而在多线程环境下却存在隐患。1、单例模式的惰性加载通常当我们设计一个单例类的时候,会在类的内部构造这个类(通过构造函数,或者在定义处直接创建),并对外提供一个static getInstance() 方法提供获取该单例对象的途径转载 2021-10-27 19:51:08 · 122 阅读 · 0 评论 -
Java-通配符作为方法参数
使用类似<? extends Number>通配符作为方法参数时表示: 方法内部可以调用获取Number引用的方法,例如:Number n = obj.getFirst();; 方法内部无法调用传入Number引用的方法(null除外),例如:obj.setFirst(Number n); 即一句话总结:使用extends通配符表示可以读,不能写。使用类似<? super Integer>通配符作为方法参数时表示: 方法内部可以调用传入Intege.转载 2020-10-15 11:18:01 · 928 阅读 · 1 评论 -
Java-动态代理
代理模式代理模式的作用可简单理解为功能增强,即为被代理对象委托一个代理对象,代理对象可进行消息的预处理,消息传递,消息后置处理等功能。代理对象本省不提供服务,一般通过持有被代理对象的引用,调用被代理对象的方法提供服务。动态代理与静态代理的根本区别是:通过反射进行服务调用,并提供消息处理功能,这样就可为不同的代理类提供功能增强,如果要加入新的代理功能,只需实现新的InvocationHandler。静态代理了解动态代理前,首先来看静态代理如果实现代理模式~比如我们有一个字体提供类,有多种实转载 2020-10-12 23:09:30 · 97 阅读 · 0 评论 -
lambda表达式
为何要引入Lambda表达式 对于一个Java变量,我们可以对其赋值,但如果我们想对一个代码块赋值应该怎么做?[外链图片转存失败(img-Sw2zWyFt-1564908853441)(https://note.youdao.com/yws/api/personal/file/656E07932E904A09B51695534936AED1?method=download&sha...原创 2019-11-18 14:41:19 · 1983 阅读 · 0 评论 -
java-多态参数与泛型
在使用泛型的集合在参数传递过程中使用多态可能会出现问题,与数组传递过程比较如下:public void go(){Animal[] animals={new Dog(),new Cat()};Dog[] dogs = new { new Dog(),new Dog(),new Dog()};operateMethod(animals);operateMethod(dogs);}...原创 2020-10-13 10:18:58 · 545 阅读 · 0 评论