java
Younger_zeng
这个作者很懒,什么都没留下…
展开
-
5. 抽象工厂方法
抽象工厂方法模式文章目录抽象工厂方法模式1. 意图2. 概述3. 结构图4. java代码实现5. 优缺点6. 使用场景7. 与其他模式的关系8. Java应用1. 意图工厂方法模式解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。可考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产2. 概述抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依原创 2020-08-19 01:27:03 · 564 阅读 · 0 评论 -
4. 工厂方法模式
工厂方法模式文章目录工厂方法模式1. 意图2. 概述3. 结构图4. java代码实现5. 优缺点6. 使用场景7. 与其他模式的关系8. Java应用1. 意图简单工厂模式通过所传入的不同来创建不同产品,必须要修改工厂类源代码,违反开闭原则,需要实现增加新产品而不影响源代码2. 概述工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又简称为工厂模式(Factory Pa原创 2020-08-19 01:25:26 · 359 阅读 · 0 评论 -
3. 简单工厂模式
简单工厂模式文章目录简单工厂模式1. 概述2. 意图3. 结构图4. Java代码实现5. 优缺点6.适用场景6.适用场景1. 概述简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。要点:当你需要什么,只需要传入一个正确的参原创 2020-08-18 22:36:24 · 287 阅读 · 0 评论 -
2. 面向对象设计原则
面向对象设计原则原创 2020-08-18 22:30:46 · 107 阅读 · 0 评论 -
1.设计模式概述
1. 设计模式概述原创 2020-08-18 22:27:05 · 85 阅读 · 0 评论 -
浅克隆和深克隆
Java-1. 深克隆和浅克隆深克隆和浅克隆* 浅克隆:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址(克隆地址)。* 即:克隆的非基本类型属性发生变化会使两个对象相互影响* 深克隆:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址(克隆值)。* 即:克隆的非基本类型属性发生变化不会使两个对象相互影...原创 2019-10-16 22:18:33 · 150 阅读 · 0 评论 -
idea开发出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误
本人用Idea开发,出现如下Bug:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.younger.dao.UserMapper.findById at org.apache.ibatis.binding.MapperMethod$SqlCommand.<i...原创 2018-08-19 13:28:35 · 6039 阅读 · 2 评论 -
深入理解Java虚拟机----第十三章:线程安全与锁优化
第十三章:线程安全与锁优化13.1概述13.2线程安全 当多个线程访问一个对象的时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的13.2.1Java语言中的线程安全不可变在Java语言里(特指JDK1.5以后),不可变(...原创 2018-08-08 09:23:05 · 489 阅读 · 0 评论 -
深入理解Java虚拟机----第十二章:Java内存模型与线程
第十二章:Java内存模型与线程12.1概述衡量一个服务端的好坏,每秒事物处理数(Transactions Per second,TPS)是最重要的指标之一12.2硬件的效率与一致性基于高速缓存的存储交互很好的解决了处理器与内存的速度矛盾,但是也为计算机系统带来了更高的复杂性,引入了新的问题:缓存一致性为了使处理器内部运算单元尽量充分利用,处理器会对输入代码乱序执行优化...原创 2018-08-08 09:20:55 · 541 阅读 · 1 评论 -
深入理解Java虚拟机----第十一章:晚期(运行期)优化
第十一章:晚期(运行期)优化11.1概述为了提高热点代码的运行效率,在运行时,虚拟机会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In Time Compiler ,JIT编译器)java虚拟机规范中没有约束JIT的应该如何实现,所以这部分功能完全是与虚拟机具体实现相关的内容11.2HotSpot虚拟机即时编译...原创 2018-08-08 09:12:13 · 388 阅读 · 0 评论 -
深入理解Java虚拟机----第十章:早期(编译器)优化
第十章:早期(编译器)优化10.1概述Java语言的“编译期”其实是个“不确定”的过程:前端编译器:把Java文件编译成class文件,例如Sun的javac、Eclipse JDT中的增量编译器(ECJ)后端编译器(JIT编译器,just in time compiler):把字节码转换为机器码,例如HotSpotVM的C1、C2编译器静态提前编译(AOT编译器,Ahea...原创 2018-08-07 23:18:05 · 897 阅读 · 1 评论 -
深入理解Java虚拟机----第九章:类加载及其执行子系统的案例与实战
第九章:类加载及其执行子系统的案例与实战9.1概述在class文件格式和执行引擎这部分内容中,用户程序能直接影响的并不多,Class文件以何种形式存储,类型何时加载、如何连接,以及虚拟机如何执行字节码指令都由虚拟机直接控制,用户无发改变;能够通过程序控制的,主要是字节码生成和类加载器两部分9.2案例分析9.2.1Tomcat:正统的类加载架构一个功能健全的web服务...原创 2018-08-07 23:15:28 · 771 阅读 · 0 评论 -
MySQL常用基础语法
MySQL语法MySQL语法启动和关闭分类:数据类型DDLDMLDCLDQL条件查询模糊查询字段控制查询排序聚合函数分组(GROUP BY)查询HAVING子句LIMIT完整性约束MySQL数据库备份与还原多表查询启动和关闭启动:net start mysql;关闭:net stop mysql;登录:my...原创 2018-08-02 17:20:23 · 24937 阅读 · 2 评论 -
深入理解Java虚拟机----第一章:走进Java
第一章:走进Java1.1 java概述java技术体系:java程序设计语言各种硬件平台上的java虚拟机Class 文件格式Java API类库来自商业机构和开源社区的第三方Java类库JDK:java程序设计语言、java虚拟机、Java API 这三部分统称为 JDK(Java Development Kit)。JRE:Java API类库中的 Java...原创 2018-08-07 22:42:50 · 1692 阅读 · 1 评论 -
深入理解Java虚拟机----第二章:Java内存区域与内存溢出异常
第二章:Java内存区域与内存溢出异常2.2运行时数据区域2.2.1 程序计数器(Program Counter Register)概述:一块较小的内存空间,可以看作是当前线程所执行的字节码的 行号指示器作用:通过改变计数器的值来选取下一条需要执行的字节码指令。(分支、循环、跳转、异常处理、线程恢复等)基础功能都依赖与其完成。特点: 1.线程私有,每条线程都需要有一个独...原创 2018-08-07 22:50:36 · 547 阅读 · 1 评论 -
深入理解Java虚拟机----第三章:垃圾收集器与内存分配策略
第三章:垃圾收集器与内存分配策略3.1概述 程序计数器、虚拟机栈、本地方法栈 3 个区域随线程生灭(因为是线程私有),栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。而 Java 堆和方法区则不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我们只有在程序处于运行期才知道那些对象会创建,这部分内存的分配和回收都是动态的,...原创 2018-08-07 22:53:28 · 1234 阅读 · 1 评论 -
深入理解Java虚拟机----第四章:虚拟机性能监控与故障处理
第四章:虚拟机性能监控与故障处理原创 2018-08-07 22:56:56 · 371 阅读 · 0 评论 -
深入理解Java虚拟机----第五章:调优案例分析与实战
第五章:调优案例分析与实战原创 2018-08-07 22:58:55 · 421 阅读 · 0 评论 -
深入理解Java虚拟机----第六章:类文件结构
第六章:类文件结构6.1概述计算机只能识别0和1虚拟机以及建立在虚拟机上语言的出现,使编写的程序编译成二进制本地机码(native code)非唯一选择,越来越多编程语言选择了与操作系统和机器指令集无关、平台中立的格式作为程序编译后的存储格式6.2无关性的基石虚拟机可以载入和执行同一种平台无关的字节码各种平台不同的虚拟机和各个平台统一使用的程序存储格式-字节码(By...原创 2018-08-07 23:00:52 · 750 阅读 · 1 评论 -
深入理解Java虚拟机----第七章:虚拟机类加载机制
第七章:虚拟机类加载机制7.1概述 虚拟机把描述类的数据从class文件加载到内存,经过校验、转换解析、初始化,最形成能够被虚拟机直接使用的java类型,这就是虚拟机的加载过程类的加载、连接、初始化在运行期进行动态扩展的语言特性是依赖于运行期动态加载和动态连接这个特点实现的运行期类加载应用:applet、jsp、osgi7.2类的加载时机 类的加载...原创 2018-08-07 23:09:05 · 607 阅读 · 0 评论 -
深入理解Java虚拟机----第八章:虚拟机字节码执行引
第八章:虚拟机字节码执行引8.1概述 执行引擎:输入字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果8.2运行时栈帧结构 栈帧:是虚拟机用于方法调用和方法执行的数据结构,是虚拟机运行时数据区的虚拟机栈的栈元素栈帧存储了方法的局部变量表、操作数栈、动态连接、方法返回地址等信息每一个方法从调用开始到执行结束,就是栈帧在虚拟机栈中入栈出栈的过程...原创 2018-08-07 23:13:28 · 585 阅读 · 1 评论 -
git命令教程
git教程git教程初始设置创建版本库查看状态版本回退工作区和暂存区撤销修改删除文件远程仓库创建与合并分支解决冲突分支管理Bug分支其他本文来自Git教程 廖雪峰的笔记初始设置$ git config --global user.name "Your Name"$ git config --global user.email ...原创 2018-08-01 20:18:00 · 120 阅读 · 0 评论