Java创建对象常见的几种方式?什么是maven?(核心功能)、什么是MVC?说说分层的好处。Spring的两大核心技术是什么?

1、Java创建对象常见的四种方式?

先创建一个学生类

import java.io.Serializable;
public class Students implements Cloneable, Serializable {
    private int sid; //学号
    private String sname; //姓名
    private String gender; //性别
    private String birthday; //出生日期
    private String major; //专业
    //一定要保留这个默认的无参数的构造方法,否则spring也无法实例化。
    public Students() {
    }
    public Students(int sid, String sname, String gender, String birthday, String major) {
        this.sid = sid;
        this.sname = sname;
        this.gender = gender;
        this.birthday = birthday;
        this.major = major;
    }
    public int getSid() {
        return sid;
    }
    public void setSid(int sid) {
        this.sid = sid;
    }
    public String getSname() {
        return sname;
    }
    public void setSname(String sname) {
        this.sname = sname;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public String getBirthday() {
        return birthday;
    }
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    public String getMajor() {
        return major;
    }
    public void setMajor(String major) {
        this.major = major;
    }
    @Override
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
    @Override
    public String toString() {
        return "Students{" +
                "sid=" + sid +
                ", sname='" + sname + '\'' +
                ", gender='" + gender + '\'' +
                ", birthday='" + birthday + '\'' +
                ", major='" + major + '\'' +
                '}';
    }
}
new关键字
import java.io.*;
import java.lang.reflect.Constructor;
public class IocDemo {
    public static void main(String[] args) throws Exception {
        Students s1 = new Students(100,"宋小宝","男","1999-10-10","二人转");
        System.out.println(s1);
   }
}
clone方法
import java.io.*;
import java.lang.reflect.Constructor;
public class IocDemo {
    public static void main(String[] args) throws Exception {
    	Students s1 = new Students(100,"宋小宝","男","1999-10-10","二人转");

	//使用clone来创建对象。
	Students s2 = (Students) s1.clone();
	System.out.println(s2);
	}
}
反射
import java.io.*;
import java.lang.reflect.Constructor;
public class IocDemo {
    public static void main(String[] args) throws Exception {
    	Students s1 = new Students(100,"宋小宝","男","1999-10-10","二人转");

	//反射怎么创建对象呢。大家仔细观察我没有使用new.使用了反射。
	Class clazz = s1.getClass();
	Constructor constructor = clazz.getConstructor(int.class,String.class,String.class,String.class,String.class);
	Students s5 = (Students) constructor.newInstance(new Object[]{100,"小沈阳","女","1999-10-10","二人转"});
	System.out.println(s5);
	   }
}
反序列化
import java.io.*;
import java.lang.reflect.Constructor;
public class IocDemo {
    public static void main(String[] args) throws Exception {
        File file = new File("dest.data");

	Students s1 = new Students(100,"宋小宝","男","1999-10-10","二人转");

        //反序列化创建对象。
	ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
	out.writeObject(s1); //把宋小宝对象写入到文件中。
	ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
	Students s6 = (Students) in.readObject();
	System.out.println(s6);
	}
}
什么是反射?说说反射是如何应用到spring框架上。

反射机制是Java语言中一个非常重要的特性,它允许程序在运行时进行自我检查,同时也允许对其内部成员进行操作。反射机制提供的功能主要有:得到一个对象所属的类;获取一个类的所有成员变量和方法;在运行时创建对象;在运行时调用对象的方法。

就好比给对象做CT,通过反射对象可以观察到自身的状态和属性。比如;构造方法、属性、成员方法、注解…

IOC内部实现技术=XML解析+反射

2、什么是maven?maven的核心功能有哪些?

maven是一个项目管理工具软件,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

maven四大核心功能: 依赖管理、模块管理、部署管理、插件管理。

如何给maven添加依赖?

就是用它来自动导入jar包!
访问mvn官网
找到依赖后,添加pom.xml 的 Dependencies标签下。

3、什么是MVC?说说分层的好处。

MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。

MVC是一种设计模式,一种软件分层思想的体现。
M:Model ----->JavaBean
V:View ----->jsp/html
C:Controller ---->Servlet/Controller

分层就是体现了MVC的设计模式。

分层的好处就是解耦,做到高内聚,低耦合。

4、Spring的两大核心技术是什么?

1、IOC(DI):
Inverse of Controller,控制反转。
Dependency Inject ,依赖注入。

2、AOP:
面向切面编码。

什么是IOC/DI?

IOC(控制反转):全称为:Inverse of Control。从字面上理解就是控制反转了,将对在自身对象中的一个内置对象的控制反转,反转后不再由自己本身的对象进行控制这个内置对象的创建,而是由第三方系统去控制这个内置对象的创建。

DI(依赖注入):全称为Dependency Injection,意思自身对象中的内置对象是通过注入的方式进行创建。

那么IOC和DI这两者又是什么关系呢?

IOC就是一种软件设计思想,DI是这种软件设计思想的一个实现。而Spring中的核心机制就是DI。

就是把本来在类内部控制的对象,反转到类外部进行创建后注入,不再由类本身进行控制,这就是IOC的本质。

就是不使用new 创建对象,而是通过IOC容器自动注入.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值