构造方法

23中设计模式——原型模式

℡╲_俬逩灬. 提交于 2019-12-05 23:49:22
原型模式 一、定义 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 主要作用:主要用来对象的复制。通过第一次new的实例化的对象进行克隆,之后需要实例化对象时,直接克隆实例化对象变行。 二、UML图 三、原型模式的用法和注意点 1)用法 原型模式的核心类(接口)是:Prototype类(接口),在Java中Prototype需要具备以下的条件: 1、实现Cloneable接口,Java中的Cloneable是一个标志性接口,接口中不存在任何的方法。目的是为了告诉Jvm,实现了这个接口就可以被克隆,否则在运行的时候回抛出CloneNotSupportedException异常。 2、clone方法的作用是对象的拷贝,重写Object类的clone()方法,原因是因为Object类中的clone()方法是protected访问权限。有些类无法进行访问,将其改为public访问权限变行。 2)注意点 1、clone()方法具有两种拷贝,一种是浅拷贝,一种是深拷贝。浅拷贝,拷贝的只是对象中的基本数据类型和其包装类还有String。想要深拷贝,必须要将对象中的数组,容器,对象进行另外拷贝。 2、原型模式复制对象不会调用类的构造方法,但是你进行new初始化一定是通过构造方法的。为什么原型模型复制对象不会调用类的构造方法呢

Ehcache(01)——简介、基本操作

回眸只為那壹抹淺笑 提交于 2019-12-05 22:53:07
转发地址: https://www.iteye.com/blog/elim-2112170 Ehcache 简介 目录 1 CacheManager 1.1 构造方法构建 1.2 静态方法构建 2 Cache 2.1 Cache的创建 Ehcache是用来管理缓存的一个工具,其缓存的数据可以是存放在内存里面的,也可以是存放在硬盘上的。其核心是CacheManager,一切Ehcache的应用都是从CacheManager开始的。它是用来管理Cache(缓存)的,一个应用可以有多个CacheManager,而一个CacheManager下又可以有多个Cache。Cache内部保存的是一个个的Element,而一个Element中保存的是一个key和value的配对,相当于Map里面的一个Entry。 1 CacheManager CacheManager是Ehcache的核心,它的主要职责是对Cache的创建、移除和访问。只有CacheManager里面的Cache才能实现缓存数据的功能。一切使用Ehcache的应用都是从构建CacheManager开始的。构建CacheManager时,我们可以直接通过其构造方法来进行构建,也可以通过使用CacheManager提供的静态方法来进行构建。 1.1 构造方法构建

static关键字;变量;代码块

♀尐吖头ヾ 提交于 2019-12-05 19:48:47
部分参考自 关于 static 关键字的一篇很好的文章:https://www.cnblogs.com/dolphin0520/p/3799052.html 1)变量: public class ValiablesDesc { /* * 定义类变量,又称静态变量: * 1)在类中用static关键字声明,但是它在方法、构造器或者块之外; * 2)静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化 * 3)不能在方法、构造器内成名静态变量;(static是不允许用来修饰局部变量。不要问为什么,这是Java语法的规定) * 4)static成员变量的初始化顺序按照定义的顺序进行初始化。 */ public static String name = "郭晓锋"; /* * 定义实例变量,又称成员变量(instance valiable): * 1)在类中声明,但是它在方法、构造器或者块外; * 2)实例变量可以用访问描述符; * 3)实例变量有默认值。数字的默认为0,boolean的默认为false,对象引用默认值为NULL * 4)非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。 */ public String password; /* * Mutator Methods:调用方法后对象发生改变

mybatis resultMap 子元素

狂风中的少年 提交于 2019-12-05 19:37:48
resultMap constructor - 类在实例化时,用来注入结果到构造方法中 idArg - ID 参数;标记结果作为 ID 可以帮助提高整体效能 arg - 注入到构造方法的一个普通结果 id – 一个 ID 结果;标记结果作为 ID 可以帮助提高整体效能 result – 注入到字段或 JavaBean 属性的普通结果 association – 一个复杂的类型关联;许多结果将包成这种类型 嵌入结果映射 – 结果映射自身的关联,或者参考一个 collection – 复杂类型的集 嵌入结果映射 – 结果映射自身的集,或者参考一个 discriminator – 使用结果值来决定使用哪个结果映射 case – 基于某些值的结果映射 嵌入结果映射 – 这种情形结果也映射它本身,因此可以包含很多相 同的元素,或者它可以参照一个外部的结果映射。 constructor标签 <constructor> <!-- 这里的int对应实体类构造方法参数的 Integer --> <idArg column="id" javaType="int"/> <arg column="username" javaType="String"/> </constructor> //对应的构造方法 public POJO(Integer id,String username){ ... }

java源码 -- LinkedHashSet

我是研究僧i 提交于 2019-12-05 18:01:42
问题 (1)LinkedHashSet的底层使用什么存储元素? (2)LinkedHashSet与HashSet有什么不同? (3)LinkedHashSet是有序的吗? (4)LinkedHashSet支持按元素访问顺序排序吗? 源码分析 LinkedHashSet继承自HashSet,让我们直接上源码来看看它们有什么不同。 package java.util; // LinkedHashSet继承自HashSet public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable { private static final long serialVersionUID = -2851667679971038690L; // 传入容量和装载因子 public LinkedHashSet(int initialCapacity, float loadFactor) { super(initialCapacity, loadFactor, true); } // 只传入容量, 装载因子默认为0.75 public LinkedHashSet(int initialCapacity) { super(initialCapacity, .75f, true)

java之封装

霸气de小男生 提交于 2019-12-05 17:24:49
1.1 封装 1.1.1 封装体现 1.方法就是一个封装体。 2.关键字private也是一种封装。 1.1.2 封装的含义 封装 : 把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的成员方法才能对数据进行操作。 1.1.3 封装的好处 1 提高了代码的复用性。 2 隐藏了实现细节,还要对外提供可以访问的方式,便于调用者的使用。 3 提高了安全性。 1.1.4 private关键字 private只能修饰成员变量,不能修饰局部变量。被private修饰的成员只能在本类中使用,对于非本类的提供公共的访问方式;这种方式被称为方法。此做法的目的(1)为了保护数据;(2)可以筛选不合理的值;比如年龄设置为int,负数也可以被输出;有了方法就可以增加约束条件。 定义方法设置值必须以set开头,取值必须以get开头。 public class Person { //成员变量 private String name; private int age; //设置值 public void setName(String a) { name=a; } public void setAge(int b) { //给年龄增加条件 if(b>0&&b<100){ age=b; }else { System.out.println("输入不合理"); } }

Java学习笔记(2)--- 对象和类入门,java包,this 和 super区别

╄→尐↘猪︶ㄣ 提交于 2019-12-05 17:17:55
1.对象和类(Object and class): 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。 面对对象编程是java非常重要的一部分,作者本身之前学过c++所以省略了部分基础,详见例子: https://www.runoob.com/java/java-object-classes.html 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 a.类的内容: 方法:比如说Dog可以有 void barking(),void sleeping() 这些行为。 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。比如说我们要定义狗的年龄,就从外部引入一个 age_dog 的变量赋值给成员变量。没有默认值,必须自己赋值。 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。比如狗 dog 可以有 age,color 这种特征变量。有默认值,如果没有会系统自动分配,根据类型不同则默认值不同。 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。 注

突然想到的四个关键字

£可爱£侵袭症+ 提交于 2019-12-05 16:47:35
一、final 关键字 final关键字主要用在三个地方:变量、方法、类。 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。 当用final修饰一个类时,表明这个类不能被继承。final类中的所有成员方法都会被隐式地指定为final方法。 使用final方法的原因有两个。第一个原因是把 方法锁定 ,以防任何继承类修改它的含义;第二个原因是 效率 。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升(现在的Java版本已经不需要使用final方法进行这些优化了)。类中所有的private方法都隐式地指定为final。 二、static 关键字 这个关键字一时半会说不明白,明天拿出来细细看。先认识一下。 static 关键字主要有以下四种使用场景: 修饰成员变量和成员方法: 被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享,可以并且建议通过类名调用。被static 声明的成员变量属于静态成员变量,静态变量 存放在 Java 内存区域的方法区。调用格式: 类名.静态变量名 类名.静态方法名() 静态代码块: 静态代码块定义在类中方法外, 静态代码块在非静态代码块之前执行(静态代码块—

String,StringBuilder(字符串的缓冲区)

给你一囗甜甜゛ 提交于 2019-12-05 16:44:50
String,StringBuilder(字符串的缓冲区) 1.API应用程序接口 快速使用API步骤:A:打开帮助文档 B:点击显示,找到索引,看到输入框 C:你要学习什么内容,你就在框框里面输入什么内容 举例:Random D:看包 java.lang包下的类在使用的时候是不需要导包的 E:看类的描述 Random类是用于生成随机数的类 F:看构造方法 Random():无参构造方法 G:看成员方法 public int nextInt(int n):产生的是一个[0,n)范围内的随机数 2.Scanner类 作用:用Scanner类的方法可以完成接收键盘录入的数据,接收的数据类型为基本数据类型和字符串类型. public String nextLine():获取键盘录入字符串数据 3.Object类 作用::是类层次结构的根类,所有的类都直接的或者间接的继承自该类 构造方法:Object() 4.String类的构造方法 String(字符串是一个不可变的字符序列) String(String original):把字符串数据封装成字符串对象 String(char[] value):把字符数组的数据封装成字符串对象 String(char[] value, int index, int count):把字符数组的一部分数据封装成字符串对象 String类创建对象的特点: A

Java之封装性

独自空忆成欢 提交于 2019-12-05 16:28:23
封装概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。 原则 将 属性隐藏 起来,若需要访问某个属性, 提供公共方法 对其访问。 封装性在Java当中的体现: 方法就是一种封装 关键字private也是一种封装 封装的操作 private关键字 private是一个权限修饰符,代表最小权限。 可以修饰成员变量和成员方法。 被private修饰后的成员变量和成员方法,只在本类中才能访问。 封装的步骤 1:使用 private 修饰成员变量,代码如下 package demo03; public class MyStudent { //private 修饰成员变量 private String name; private int age; } 2:提供 getXxx 方法 / setXxx 方法,可以访问成员变量,代码如下: package demo03; public class MyStudent { //private 修饰成员变量 private String name; private int age; //获取成员变量name值的方法 public