随笔分类 - java
java
摘要:前面已经说过命令模式,现在我们来看看spring框架中JdbcTemplate中使用的命令模式 首先先注入jdbctemplate 调用 queryForObject 方法 其实每个方法底层实现都一样,就用这个举例吧。点进去这个方法,一路跟进去,找到最深那个query方法 在中间一直都在构建查询需要
阅读全文
摘要:命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 命令模式的结构 命令模式是对命令的封装。命令
阅读全文
摘要:1、项目上遇到的问题 最近在做一个项目,需要同时用到oracle和mysql两个数据库,那么问题就来了,怎么实现多数据源呢?数据源之间是怎么切换呢?多数据源事务怎么控制呢? 以下demo都是基于springboot。 2、其实实现多数据源还是很简单的,主要是以下步骤 1)配置application.
阅读全文
摘要:由于linux和windows文件分隔符不一样,所以获取文件路径挺麻烦 我的项目是spring boot,部署在linux上是一个jar包 在本地idea环境中,创建一个文件, String fileName = System.currentTimeMillis() + ".jpg"; // 文件名
阅读全文
摘要:桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。 桥梁模式的用意 桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这
阅读全文
摘要:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得
阅读全文
摘要:作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构 单例模式的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。 饿汉式单例类 上面的例子中,在这个类被加载时,静态变量ins
阅读全文
摘要:原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。 原型模式的结构 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的
阅读全文
摘要:建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 产品的内部表象 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又
阅读全文
摘要:工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 那么工厂方法模式是在什么场景下使用呢,下面就以本人的理解举例说明
阅读全文
摘要:一、抽象工厂模式 应用:spring必不可少的三个模式:factory模式(包括简单工厂和抽象工厂), strategy模式,template method模式 场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为
阅读全文
摘要:volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩
阅读全文
摘要:1. ROUND_DOWN BigDecimal b = new BigDecimal("2.225667").setScale(2, BigDecimal.ROUND_DOWN);System.out.println(b);//2.22 直接去掉多余的位数2. ROUND_UP BigDecima
阅读全文
摘要:我们通常希望避免在两个并行事务中产生如下情形: Adam的事务读取数据 XBarbara的事务读取数据 XAdam的事务修改数据 X,并将其修改为 XAAdam的事务写入数据 XABarbara的事务修改数据 X,并将其修改为 XBBarbara的事务写入数据 XB结果是,Adam所做的修改完全被B
阅读全文
摘要:1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一
阅读全文
摘要:现有如下代码: 反例之一:丢弃异常 代码:15行-18行。 这段代码捕获了异常却不作任何处理,可以算得上Java编程中的杀手。从问题出现的频繁程度和祸害程度来看,它也许可以和C/C++程序的一个恶名远播的问题相提并论??不检查缓冲区是否已满。如果你看到了这种丢弃(而不是抛出)异常的情况,可以百分之九
阅读全文
摘要:1、什么是自动拆箱和装箱问题基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 一般我们要创建一个类的对象实例的时候,我们会这样: Class a = new Class(parameter); 当我们创建一个Integer对象时,却可以这样
阅读全文
摘要:-- 6378.138这个是地球的直径,单位千米.latitude是用户位置的纬度,longitude是用户位置经度.latitude 为商户的纬度字段, -- longitude为商户的经度字段。上面一段sql计算得出根据用户经纬度计算与商户的距离。 -- 30.5821398542, SELEC
阅读全文
摘要:1、下载jdk:wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/
阅读全文
摘要:1、String price = "19.90"; // 19.99int totalFee =(int)(new BigDecimal(price).multiply(new BigDecimal("100"))).doubleValue();int totalFee2 = (int) (Doub
阅读全文

浙公网安备 33010602011771号