Java学习心得
文章平均质量分 77
风之轩墨
代码开发就是要多学多练,别说什么不会做、没见过、没学过,一句话,不能做就赶紧去学习!
展开
-
ForkAndJoin初步使用总结
目录说明代码示例任务调用1 使用invoke调用2 使用sumbit总结一下说明初次使用ForkAndJoin框架来操作task,总结一下调用任务的两种方式。代码示例任务private static class TestTask extends RecursiveAction { private String name; private int a; private Map<String, String> map;原创 2021-07-10 21:42:22 · 252 阅读 · 0 评论 -
设计模式-装饰器模式
装饰器模式在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰器模式来实现。定义装饰器模式(Decorator Pattern)属于对象结构型模式。在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)。优点装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果装饰器模式完全遵原创 2021-01-05 21:32:49 · 120 阅读 · 0 评论 -
设计模式-桥接模式
桥接模式当一个抽象可能有多个实现时,通常用继承来进行协调。抽象类定义对该抽象的接口,而具体的子类则用不同的方式加以实现。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立地进行修改、扩充和重用。如果一个抽象类或接口有多个具体实现子类,而这些子类之中有内容或概念上重叠,需要我们把抽象的共同部分各自独立开来:即原来是准备放在一个接口里,现在需要设计两个接口——抽象接口和行为接口。然后再分别针对各自的具体子类定义抽象接口和行为接口的方法和调用关系。简单来说,就是把一个对象的描述和行原创 2021-01-05 21:31:49 · 109 阅读 · 0 评论 -
设计模式-适配器模式
适配器模式适配器模式(Adapter Pattern)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。优点客户端通过适配器可以透明地调用目标接口。复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。在很多业务场景中符合开闭原则。缺点适配器编写过程需要结合业务场景全面考虑,可能会增加系统的复杂性。增加代码阅读难度,降低代码可读性,过多使用适配器会使系统代原创 2021-01-05 21:30:45 · 109 阅读 · 0 评论 -
设计模式-代理模式
目录说明问题来源解决方案优点缺点模式结构应用场景示例工厂工厂接口食品工厂饮料工厂静态代理代理工厂调用检查动态代理代理处理方案调用检查总结Spring中的代理第一种方式,使用xml配置第二种方式,使用注解说明在代理模式(Proxy Pattern)中,我们创建具有现有对象的对象,以便向外界提供功能接口。一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。问题来源在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些原创 2021-01-05 21:29:40 · 86 阅读 · 0 评论 -
设计模式-工厂模式(简单工厂模式、工厂模式、抽象工厂模式)
工厂模式前提开发者创造的实体类代码并不会提供给客户端,只是开放了一个接口,即工厂类。客户端在获取系统中的对象的时候,只能通过工厂类来获取对象(即使用者除了工厂类和一些简单条件,对其余代码一无所知。)定义定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。分类简单工厂模式(Simple Factory Pattern):又叫作静态工厂方法模式(Static Factory Method Pattern),有一个具体原创 2020-12-28 21:14:09 · 223 阅读 · 0 评论 -
设计模式-建造者模式
建造者模式建造者模式,又称生成器模式:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。三个角色:建造者、具体的建造者、监工、使用者(严格来说不算)建造者角色:定义生成实例所需要的所有方法;具体的建造者角色:实现生成实例所需要的所有方法,并且定义获取最终生成实例的方法;监工角色:定义使用建造者角色中的方法来生成实例的方法;使用者:使用建造者模式。示例一般来说,去快餐店点单的时候,一个套餐可能会有很多的选择,可以只需要基础的汉堡和饮料,也可以增加一些别的东西。如果定义一原创 2020-12-28 21:12:33 · 75 阅读 · 0 评论 -
设计模式-原型模式
原型模式定义用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。原型模式的克隆分为浅克隆和深克隆。浅克隆创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。深克隆创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。优点Java自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一原创 2020-12-28 21:02:22 · 50 阅读 · 0 评论 -
设计模式-单例模式
单例模式在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。定义一个类只有一个实例,且该类能自行创建这个实例的一种模式。特点单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。优点单例模式可以保证内存里只有一个实例,减少了内存的开销。可以避免对资源的多重占用。单例模式设置全局访问点,可以优化和共享资源的访问。缺点单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,原创 2020-12-22 21:13:59 · 141 阅读 · 0 评论 -
Java中的各种引用(强引用、软引用、弱引用、虚引用)(五)
目录前言问题问题一问题二前言Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)Java中的各种引用(强引用、软引用、弱引用、虚引用)(二)Java中的各种引用(强引用、软引用、弱引用、虚引用)(三)Java中的各种引用(强引用、软引用、弱引用、虚引用)(四)这里先不说虚引用,先说一下引用队列ReferenceQueue。问题问题一第一个问题:当软引用和弱引用的引用对象因为GC或者内存不足被回收了以后,SoftReferences对象和WeakReferences对象是否还存在?原创 2020-11-02 22:20:55 · 189 阅读 · 0 评论 -
Java中的各种引用(强引用、软引用、弱引用、虚引用)(四)
目录前言实现特点TestCodeJVM设置Test1 内存充足的情况,不触发GCTest2 内存充足的情况下,触发GCTest3 不触发GC,内存不足结果分析结论前言Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)Java中的各种引用(强引用、软引用、弱引用、虚引用)(二)Java中的各种引用(强引用、软引用、弱引用、虚引用)(三)这里介绍一下弱引用实现弱引用通过WeakReference对象来实现WeakReference<byte[]> reference1 =原创 2020-10-30 14:52:24 · 140 阅读 · 0 评论 -
Java中的各种引用(强引用、软引用、弱引用、虚引用)(二)
目录前言强引用举例准备测试说明结论前言在 Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)里面已经说过了对象的创建和内存的分布,也提到了四种引用,这里说一下强引用。强引用强引用就是一般的对象引用。被强引用的对象,只有在完全没有任何引用的时候,才会被系统回收。只要该对象存在引用,系统宁可抛出OOM,也不会强制回收该对象。举例准备首先,需要对JVM的运行环境做一下设置,我们可以设置JVM的内存为20M,以方便观察。-Xms20M -Xmx20M测试package com.tes原创 2020-10-29 17:39:39 · 87 阅读 · 0 评论 -
Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)
目录前言强引用软引用弱引用虚引用主要区别引用前言以下是自己学习的记录和一些尝试,如果存在不对的地方,请指出。多谢!强引用正常引用即为强引用。eg:Object o = new Object();软引用使用SoftReference获取的对象即为软引用对象。eg:SoftReference<Object> sr = new SoftReference<>(new Object());通过sr实现对对象new Object()的软引用。弱引用使用WeakRefe原创 2020-10-29 17:37:11 · 129 阅读 · 0 评论 -
Java中的各种引用(强引用、软引用、弱引用、虚引用)(三)
目录前言软引用实现特点codeTestJVM设置Test1 内存充足,触发GCTest2 内存不足,触发GCTest3 内存充足,不手动回收结果说明结论前言Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)Java中的各种引用(强引用、软引用、弱引用、虚引用)(二)本文说一下软引用软引用实现软引用是通过创建SoftReference对象来实现的。 SoftReference<byte[]> reference = new SoftReference<>原创 2020-10-29 17:29:42 · 120 阅读 · 0 评论