java基础回忆、复习(一)
一:浅拷贝与深拷贝:
对于基本数据类型,直接进行拷贝,String类型,有两种拷贝方式:
1:直接将原对象中的name的引用值拷贝给新对象的name字段。<浅拷贝>
2:根据原对象中的name指向的字符串对象创建一个新的相同字符的对象,将新字符的引用符赋给新拷贝的对象的name字段<深拷贝>
深拷贝一个对象,这个对象必须实现Cloneable接口,实现clone方法,并且在clone内部,把该对象引用的对象也要clone一份,所以被引用的对象也必须实现Cloneable接口和clone方法
jpg来源java宝典
二:如果两个对象相同(equals方法返回true),那么他们的hashcode一定相同。
如果hashcode相同,他们并不一定相同。
三:String类是finla类,不能继承
四:方法的重载和重写都是实现在实现多态,重载实现编译时的多态,后者实现运行时的多态。
重载原则(1、方法名一致,参数列表中参数的顺序、类型、个数不变。2、与方法的返回值无关,存在与父类与子类,同类中。3、可以抛出不同的异常,可以有不同的修饰符)
重写原则(1、参数列表必须完全一样返回值也必须一样2、;构造方法不能被重写,声明为final、static的不能被重写,3、访问权限不能比父类低)
五:抽象方法需要子类冲重写,静态方法是无法被重写的
六:依赖注入(DI)
一个java对象(调用者)需要调用另一个java对象(被调用者,即被依赖对象)时,以前会采用“new被调用对象”。
使用Spring框架,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制,这样子,控制权由应用代码转移到Spring容器,控制权发生了反转,这就是Spring的控制反转。
Spring容器负责将依赖对象赋值给调用者的成员变量,这相当于为调用者注入了他依赖的实例,这就是Spring的依赖注入。
依赖注入的实现方式:
依赖注入的作用就是使用Spring框架创建对象时,动态地将其所依赖的对象注入Bean组件中,其实现方式通常有两种,一种时属性setter方法注入,另一种时构造方法注入。
属性setter方法注入:指ioC容器使用setter方法注入被依赖的实例,通过调用无参构造器或无参静态工厂方法实例化Bean后,调用Bean的setter方法,即可实现基于setter方法的依赖注入。
构造方法注入:指ioC容器使用构造方法注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。
java基础回忆、复习(一)的更多相关文章
- JAVA基础部分复习(一、8中基础类型,以及String相关内容)
以下是关于java中8种基本类型的介绍说明: package cn.review.day01; /** * java基础复习,8种数据类型 * (byte,short,long,int,double, ...
- JAVA基础部分复习(七、JAVA枚举类型使用)
/** * java中的枚举 * 枚举(enum),是指一个经过排序的.被打包成一个单一实体的项列表.一个枚举的实例可以使用枚举项列表中任意单一项的值. * 枚举在各个语言当中都有着广泛的应用,通常用 ...
- Java基础再复习(继承、多态、方法内部类**、HashMap用法**、参数传递**)
###继承: package com.shiyan; public class Animal { public int legNum; //动物四肢的数量 //类方法 public void bark ...
- JAVA基础部分复习(六、常用关键字说明)
/** * JAVA中常用关键字复习 * final * finalize * finally * * @author dyq * */ public class KeyWordReview exte ...
- JAVA基础部分复习(二、集合类型)
对于这些常用的集合,建议还是需要先了解一下底层实现原理,这样在不同的使用场景下才能选择更好的方案. Set介绍以及对比,常用方法: package cn.review.day02; import ja ...
- JAVA基础知识复习小结
集合 Set集合 Set集合的基本特征是元素不允许重复.HashSet不保存元素顺序,LinkedHashSet用链表保持元素的插入顺序,TreeSet可定制排序规则. HashSet的底层是用Has ...
- java基础知识复习
String http://blog.csdn.net/uyu2yiyi/article/details/6275808 1. 首先String不属于8种基本数据类型,String是一个对象. 因为 ...
- java基础知识点复习
第一天: JRE.JDK是什么? Jre java运行环境.Jre = java虚拟机+核心类库(辅助java运行的文件) Jdk:java开发工具集jdk = jre+java的开发工具 2. 配置 ...
- JAVA基础部分复习(五、JAVA反射)
关于反射: 1.需要了解jvm类的加载机制(java高级部分会详细介绍) 2.反射的API其实只要多看看API和源码,很容易就懂了. 下面是代码,简单讲解反射的使用: import java.lang ...
随机推荐
- 创建Windows服务
windows服务应用程序是一种长期运行在操作系统后台的程序,它对于服务器环境特别适合,它没有用户界面,不会产生任何可视输出,任何用户输出都回被写进windows事件日志.计算机启动时,服务会自动开始 ...
- go chan 入门代码
package main import ( "fmt" "sync" "time" ) // 生产数据 func producer(num ...
- 播放器: AVPlayer
AVPlayer *player = [AVPlayer playerWithURL:[NSURL URLWithString:@"http://flv2.bn.netease.com/vi ...
- js相关用法
一.location1.返回当前网址urllocation.href2.设置跳转网址urllocation.href = "http://www.baidu.com"3.重载刷新l ...
- AJAX 应用
ajax简介 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.Ajax不是一种新的编程语言, ...
- 523. Continuous Subarray Sum
class Solution { public: bool checkSubarraySum(vector<int>& nums, int k) { unordered_map&l ...
- frost_vex_01
int inc = 0; //整数inc等于0 while(inc < 6){ //inc在小于6的范围内递增 if(rand(@ptnum + inc + ch("seed" ...
- 使用 opendistro for elasticsearch 做为graylog的后端存储
graylog 是一个很不错的日志分析.收集.报警平台,包好了丰富的插件,同时内部的架构设计很不错 input 组件很多,使用stream.pipeline可以方便的进行数据处理,可以同时3.0 对于 ...
- C# 程序修改config文件后,不重启程序刷新配置ConfigurationManager
基本共识: ConfigurationManager 自带缓存,且不支持 写入. 如果 通过 文本写入方式 修改 配置文件,程序 无法刷新加载 最新配置. PS. Web.config 除外:Web. ...
- 生成用于ROM初始化的coe文件---使用matlab
生成用于ROM初始化的coe文件---使用matlab t=0:2*pi/2^12:2*pi; y=0.5*sin(t)+0.5; r=ceil(y*(2^8-1)); fid = fopen('si ...