- 博客(23)
- 资源 (3)
- 收藏
- 关注
原创 java 设计模式七大设计原则
一.开闭原则(Open Close Principle) 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 作用:保证以前代码的准确性,使开发者更专注于新扩展的代码上。开放-封闭原则的意思就是说,你设计的时候,时刻要考虑,尽量让这个类是足够好,写好了就不要去修改了,如果新需求来,我们增加一些类就完事了,原来的代码能不动则不动。这个原则有两个特性,一个是...
2018-09-14 15:51:39 800
原创 String存放在堆中还是栈中
1. String str1 = "abc"; System.out.println(str1 == "abc"); 步骤: 1) 栈中开辟一块空间存放引用str1, 2) String池中开辟一块空间,存放String常量"abc", 3) 引用str1指向池中String常量"abc", 4) str1所指代的地址即常量"abc"所在地址,输出为true 2. St
2018-09-14 08:55:04 7934 4
原创 String t1 = "hello"与String t2 = new String("hello")区别
案例:public class TestString { public static void main(String[] args) { String t1 = "hello" + "world"; String t2 = "hello"; String t3 = "world";
2018-09-13 17:50:55 405
原创 Gson用法: json转对象
1.创建Gson: Gson gson = new GsonBuilder().setPrettyPrinting().create(); 或者 Gson gson = new Gson(); 2.json转对象 Object obj = gson.fromJson(jsonString, Object.class); 或者 Obje...
2018-09-06 09:07:43 4666
转载 JSON--七种JSON框架
  简介JSON是JavaScript Object Notation的缩写,是一种轻量级的数据交换形式,是一种XML的替代方案,而且比XML更小,更快而且更易于解析。因为JSON描述对象的时候使用的是JavaScrip...
2018-09-06 09:05:39 999
转载 适配器模式
前言适配器模式是将一个类的接口转换成客户希望的另外一个接口,身边很多东西都是适用于适配器模式的,笔记本的电源(也叫电源适配器),是将220V的交流电转换为笔记本电脑所需要的12V(电流先忽略),笔记本电脑的各种接口,VGA转Hdml,USB-TypeA 转 USB-TypeC,亦或者你在香港买了个手机,充电器是你生活中没见过的三孔插座通过一个转换头转换为国内常用的插头,很多例子都能很形象的解释这...
2018-09-30 13:52:46 157
转载 MyBatis框架及原理分析
MyBatis框架及原理分析MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情:1.封装JDBC操作2.利用反射打通Java类与SQL语句之间的相互转换MyBatis的主要设计目的就是让我们对执行SQL语句时对输入输出的数据管理更加方便,所以方便地写出SQL和方便地获取SQL的执行结果才是MyBatis的核心竞争力。MyBatis的配置...
2018-09-30 13:00:24 121
转载 MySQL命令,一篇文章替你全部搞定
MySQL命令,一篇文章替你全部搞定MySQL的基本操作可以包括两个方面:MySQL常用语句如高频率使用的增删改查(CRUD)语句和MySQL高级功能,如存储过程,触发器,事务处理等。而这两个方面又可以细分如下:MySQL常用语句表(或者数据库)的CRUD表数据的CRUD,其中表数据查询使用最多,也更复杂。查询可以按照单表还是多表可以分为:单表SELECT查询和多表的联结查询(INNER JO...
2018-09-30 09:07:35 166
原创 原型模式
原型模式介绍1、用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。2、所谓原型模式,就是java中的克隆技术,以某个对象为原型。复制出新的对象。显然新的对象具备原型对象的特点。效率高(避免了重新执行构造过程步骤)3、克隆类似于new,但和new不同。new创建新的对象属性采用的是默认值。克隆出来的对象的属性值完全和原型对象相同。...
2018-09-29 14:14:11 106
原创 建造者模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各...
2018-09-29 13:00:51 167
原创 Spring注解@Component、@Repository、@Service、@Controller区别
Spring注解@Component、@Repository、@Service、@Controller区别:•@Service用于标注业务层组件•@Controller用于标注控制层组件(如struts中的action)•@Repository用于标注数据访问组件,即DAO组件•@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。...
2018-09-27 16:03:03 239 1
转载 MyBatis+MySQL 返回插入的主键ID
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。方法:在mapper中指定keyProperty属性,示例如下:<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">...
2018-09-20 16:17:11 312
原创 单例模式
单例模式:是一种常用的软件设计模式,在它的核心结构中值包含一个被称为单例的特殊类。一个类只有一个实例,即一个类只有一个对象实例。意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。关键代码:构造函数是私有的。应用实...
2018-09-18 10:27:37 131
原创 工厂模式和抽象工厂模式的区别
工厂模式和抽象工厂模式的区别: 工厂模式创建一个工厂类,此工厂生产一类产品,根据工厂产生产品; 抽象工厂模式:使用抽象类创建一个工厂,此工厂生产多类产品,每类产品对于一个继承此工厂的具体工厂类。如图:参考:抽象工厂模式介绍:https://blog.csdn.net/qq_34287953/article/details/82743699 工厂模式介绍:htt...
2018-09-17 16:12:05 304
原创 抽象工厂模式
抽象工厂模式: 抽象工厂模式:(使用抽象类创建一个工厂,此工厂生产多类产品,每个产品对于一个继承此工厂的具体工厂类,在使用工厂生成器产生不同的工厂,根据工厂产生产品) 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或互相依赖对象的接口,而无需指定它们具体的类。 与工厂模式的区别:这两种设计模式主要的区别在于产品,工厂模式是用来创建同一个产品的不同类...
2018-09-17 15:36:08 219
原创 工厂模式
工厂模式: 工厂模式(属于创建型模式):创建一个工厂类,此工厂生产一类产品,根据工厂产生产品 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 主要解决:主要解决接口选择的问题。 何时使用:我们明确地计划不同条件下创建不同实例时。 如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。 ...
2018-09-17 15:29:54 190
转载 Java面试常问的关键字总结
Java面试常问的关键字总结 final finalize finallythrows和throwstatic关键字的作用abstract 和 interface super 和 thissynchronize 和 volatile1. final finaliz...
2018-09-14 10:14:57 205
原创 内存泄露和内存溢出的区别
1、内存泄漏 内存泄漏(memory leak): 是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。 一般我们所说的内存泄漏是指堆内存的泄漏,堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完成之后必须显示释放内存。应用程序一般使用malloc、realoc、new等...
2018-09-14 09:43:17 258
转载 Java虚拟机(JVM)
1. JVM生命周期启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使...
2018-09-14 09:01:50 67
转载 springAOP事物管理不生效原因总结
配置如下:<bean id="<strong>transactionManager</strong>" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" r
2018-09-07 16:22:41 522
原创 mybatis与hibernate的区别
mybatis与hibernate一样是个orm数据库框架。它与hibernate区别是非常大的,有以下几点:总结起来:mybatis:小巧、方便、高效、简单、直接、半自动hibernate:强大、方便、高效、复杂、绕弯子、全自动hibernate是全自动,而mybatis是半自动。hibernate完全可以自动生成sql。而mybatis仅有基本的字段映射,仍然需要通过手...
2018-09-06 15:29:14 210
转载 代理模式和装饰模式区别
代理模式 vs 装饰模式 代理模式和装饰模式有很大的相似性,二者的类图(几乎)是一样的。下面分别讲解代理模式和装饰模式。1、代理模式 一般著名的跑步运动员都会有自己的代理人,如果想联系该运动员的比赛事宜,可以直接联系他的代理人就可以了。类图如下所示:&...
2018-09-06 14:07:27 248
原创 Java中类及方法的加载顺序
无父类存在的情况步骤如下: 虚拟机在首次加载Java类时,会对静态代码块、静态成员变量、静态方法进行一次初始化(静态间按顺序执行)。 只有在调用new方法时才会创建类的实例。 类实例创建过程:先初始化类的非静态变量,然后非静态初始块,再构造方法。 例子1:public class Text { public static int k = 0; ...
2018-09-05 09:36:21 206
Go语言从入门到精通课件PPT
2023-11-05
erlang24.0_win64
2022-03-01
全球地区数据库数据,240个国家共7293行数据(带经纬度,国内细化到区县,国外细化到二级行政区)
2022-02-07
基于Java开发的安卓短信拦截器
2016-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人