- 博客(17)
- 收藏
- 关注
原创 Java的克隆与C+的拷贝之间的区别
Java的克隆与C+的拷贝之间的区别 有的人会误认两者是同样的东西,Java有深克隆、浅克隆,C+有深拷贝、浅拷贝,这里为大家详细介绍一下两者的区别。 首先带着大家复习一下C+中深拷贝和浅拷贝的区别 在对一个对象进行拷贝时,拷贝的结果仅仅是将这个对象的地址赋给拷贝对象,在对拷贝对象进行修改的时候,原对象也会做出相应的改变,这就是浅拷贝。 为了拷贝能得到一个地址不一样的新的对象,需要重写拷贝构造函数,创建一个新的对象一一赋值再返回,这就是深拷贝。 C+中可以通过重载运算符完成深拷贝,Java中没有运算符重载该
2021-01-01 23:01:09
378
原创 Java设计模式
一,设计原则 1,找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。 2,针对接口编程,而不是针对实现编程 3,多用组合,少用继承 4,为了交互对象之间的松耦合而努力 5,类应该对扩展开放,对修改关闭(开放-关闭原则) 6,要依赖抽象,不要依赖具体类(依赖倒置原则) 指导方针 (1)变量不可以持有具体类的引用 (2)不要让类派生自具体类 (3)不要覆盖基类中已实现的方法 7,只和你的密友交谈 (最少知识原则) 指导方针 我们应该只调用属于以下范围的方法: (1)该对象本身 (2
2021-01-01 17:15:22
244
原创 Java框架整合
一,项目搭建准备 1,准备数据库 2,基本环境搭建 导入相关的依赖 3,maven资源过滤 4,建立项目相关结构、包 pojo的实体类包 dao的数据库交互包 service的业务层包 controller的控制器包 mybatis的配置文件:mybatis-config.xml spring的配置文件:applicationContext.xml 二,mybatis层 1,编写数据库的配置文件database.properties jdbc.driver=com.mysql.cj.jdbc.Driver
2020-09-09 14:28:35
230
原创 SSM项目常见依赖
单元测试Junit <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> 数据库驱动 <dependency>
2020-09-03 22:45:32
139
原创 Java框架知识点总结第七篇——SpringMVC
一,什么是MVC MVC是模型(model),视图(view),控制器(controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的双向耦合。 MVC不是一种设计模式,MVC是一种架构模式。 Model:数据模型,提供要展示的数据,因此包含数据和行为。 View:负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。 Controller:接收用户请求,委托给模型进行处理,处理完毕后把返回的模型数据返回给视图,由视图
2020-09-01 16:26:04
210
原创 Java框架知识点总结第六篇——mybatis
一,mybatis中常见的问题 1,实体类的属性名和数据库的名称不一致时 (1)可以修改sql语句来使他们匹配 select id as userId ,username as userName from user (2)也可以采用配置的方式来将实体类的属性名和数据库的名称一一匹配 <resultMap id="?" type="?"> <id property="属性" column="列名"> <resultMap> 二,mybatis常用标签 1,SqlMap
2020-08-18 11:29:30
121
原创 Java框架知识点总结第五篇——mybatis
一,mybatis的环境搭建 第一步:创建maven工程并导入坐标 第二步:创建实体类和dao的接口 第三步:创建mybatis的主配置文件SqlMapConfig.xml 第四步:创建映射配置文件IUserDao.xml 注意事项 创建IUserDao.xml和IUserDao.java时名称是为了和我们之前的知识保持一致,在mybatis中它把持久层的操作接口名称和映射文件也叫做:Mapper。所以IUserDao和IUserMapper是一样的。 在idea中创建目录时它和包是不一样的,包在创建时,
2020-08-18 11:28:49
175
原创 Java框架知识点总结第四篇——spring
一,动态代理 特点:字节码随用随创建,随用随加载 作用:不修改源码的基础上对方法增强 分类: 基于接口的动态代理 基于子类的动态代理 1.1 基于接口的动态代理 涉及的类:Proxy 如何创建代理对象: 使用Proxy类中的newProxyInstance方法 创建代理对象的要求:被代理类最少实现一个接口,如果没有则不能使用 newProxyInstance方法的参数: ClassLoader:类加载器 它是用于加载代理对象字节码的,和被代理对象使用相同的类加载器。固定写
2020-07-08 21:45:21
160
原创 Java框架知识点总结第三篇——spring
一,spring中的新注解 Configuration 作用:指定当前类是一个配置类 细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写 ComponentScan 作用:用于通过注解指定spring在创建容器时要扫描的包 属性:value:它和basePackages的作用是一样的,都是用于指定创建容器时要扫描的包。 我们使用此注解就等同于在xml中配置了 <context:compon
2020-07-04 22:34:23
185
原创 Java框架知识点总结第二篇——spring
一,程序的耦合 耦合:程序间的依赖关系 耦合包括: (1)类之间的依赖 (2)方法见的依赖 解耦:降低程序间的耦合关系 实际开发中:应该做到,编译器不依赖,运行时依赖 解耦的思路: 第一步:使用反射来创建对象,而避免使用new关键字 第二步:通过读取配置文件来获取要创建的对象全限定类名 二,beanfactory beanfactory:一个创建bean对象的工厂 bean:在计算机英语中,有可重用组件的含义 javabean:用java语言编写的可重用组件。 它就是用于创建service和dao对象的 第
2020-07-03 22:07:59
287
原创 Java框架知识点总结第一篇——maven
一,依赖管理 依赖管理就是maven工程对jar包的管理过程。 传统web工程的jar包放在每个工程的项目中,而maven工程是通过jar包的坐标从jar包仓库(本地仓库)中得到jar包,若是本地仓库没有jar包,则本地仓库会从中央仓库中下载jar包。 二,maven项目的标准目录结构 src/main/java 核心代码部分 src/main/resources 配置文件部分 src/test/java 测试代码部分 src/test/reso
2020-07-03 19:13:02
220
原创 Java基础知识点总结第五篇——线程
一,使用线程 (1)实现runnable接口 先创建一个runnable实例,然后从这个实例构造一个thread对象,再调用thread对象的start方法去启用。 Runnable task1 = () -> { try { …… }catch{} }; Thread t1 = new Thread(task1)l t1.start(); (2)继承thread类 class MyThread extends Thread { public void run() { task c
2020-06-29 17:09:39
199
原创 Java基础知识点总结第四篇——集合
一,集合 集合中有两个基本接口:collection和map。 1,常见集合 Colleciton (1)set TreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。 HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作。并且失去了元素的插入顺序信息,也就是说使用 Iterator 遍历 HashSet 得到的结果是不确定的。 LinkedHashS
2020-06-26 14:25:46
169
原创 Java基础知识点总结第三篇——泛型
一,泛型数组列表 ArrayList是一个有类型参数的泛型类,为了指定数组列表保存的元素对象的类型,需要用一对尖括号将类名括起来追加到ArrayList后面。 冷知识 1,如果可以知道或能够估计出数组可能存储的元素数量,就可以在填充数组之前调用ensureCapacity方法: 例:staff.ensureCapacity(100); 另外还可以把初始容量传递给ArrayList构造器。 例:ArrayList staff = new ArrayList<>(100); 2,一旦能够确认数组列表
2020-06-26 12:42:44
245
原创 Java基础知识点总结第二篇
一,类和对象 1,重载和重写的区别 重载就是同样的一个方法能够根据输入数据的不同,做出不同的处理 重写就是当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法。 重载:发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。 重写:重写就是子类对父类方法的重新改造,外部样子不能改变,内部逻辑可以改变。 二,继承 1,继承 继承可以基于已有的类创建新的类。继承已存在的类就是复用(继承)这些类的方法,而且可以增加一些新的方法和字段,
2020-06-20 13:25:16
192
原创 Java基础知识点总结第一篇
一,数据类型 java中一共有8中基本类型,其中有4种整型(byte、short、int、long)、两种浮点类型(float、double)、1种字符类型char和1种用于表示真值的boolean类型。 包装类型:基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。 类型 存储要求 取值范围 包装类型 int 4字节 -2147483648~2147483647 Integer short 2字节 -32768~32767 Short long
2020-06-17 13:51:52
311
原创 java实现的常用排序
在归并排序写过两遍之后再遇见还是毫无头绪,快速排序自己写或多或少还有丁点的问题情况下, 还是决定写篇博客记录一下这些排序方法吧 选择排序 选择排序算是排序里面挺简单的一个了,顾名思义,选择排序就是依次选出数组中最小的一个放在最前面。举出一个简单的例子方便理解,代码中也会给出相应注释。 例: 数组nums : 5,3,7,6,4; 遍历第一遍最小的数下标为 1,于是nums[0]与nums[1]做交...
2020-04-24 16:07:28
173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人