关于预编译(PrepareStatement),对于所有的JDBC驱动程序来讲,有一个共同的功能,就是“防止SQL注入”,类似Oracle还有一种“软解析”的概念,它非常适合应用于OLTP类型的系统中. 在JDBC常见的操作框架中,例如ibatis.jdbcTemplate这些框架对JDBC操作时,默认会走预编译(jdbcTemplate如果没有传递参数,则会走createStatement),这貌似没有什么问题.不过在一个应用中发现了大量的预编译对象导致频繁GC,于是进行了源码上的一些跟踪,写…
原型模式 1 克隆羊问题 现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom 羊 属性完全相同的 10 只羊. 2 传统方式解决克隆羊问题 1) 思路分析(图解) Sheep类 package com.lin.prototype; public class Sheep { private String name; private int age; private String color; public String getName() { return…
1 看一个具体的需求 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系.如图: 2 传统的设计方案(类图) 3 传统的方式的问题分析 1) 将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的 2) 实际上我们的要求是 :在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系, 因此这种方案,不能很好实现的遍历的操作 3) 解决方案:=> 迭代器模式 4 迭代器模式基本介绍 基本介绍 1…
今天我们来盘一盘Socket通讯和WebSocket协议在即时通讯的小应用——聊天. 理论大家估计都知道得差不多了,小编也通过查阅各种资料对理论知识进行了充电,发现好多demo似懂非懂,拷贝回来又运行不了, 后来一咬牙,决定自己写一个demo出来,所以我们这里就不做理论延伸,只做demo演示,有不懂的可以在评论区讨论讨论. demo演示有两个,一个C#的Windows窗体应用程序,一个是net mvc.(小编demo编译器是visual studio2013) Socket通讯 Socket原理…
1 四则运算问题 通过解释器模式来实现四则运算,如计算 a+b-c 的值,具体要求 1) 先输入表达式的形式,比如 a+b+c-d+e,  要求表达式的字母不能重复 2) 在分别输入 a ,b, c, d, e 的值 3) 最后求出结果:如图 2 传统方案解决四则运算问题分析 1) 编写一个方法,接收表达式的形式,然后根据用户输入的数值进行解析,得到结果 2) 问题分析:如果加入新的运算符,比如 * / ( 等等,不利于扩展,另外让一个方法来解析会造成程序结构混乱, 不够清晰. 3) 解决方案:…
1 编写鸭子项目,具体要求如下: 1) 有各种鸭子(比如 野鸭.北京鸭.水鸭等, 鸭子有各种行为,比如 叫.飞行等) 2) 显示鸭子的信息 2 传统方案解决鸭子问题的分析和代码实现 1) 传统的设计方案(类图) 2)代码实现 package com.lin.strategy; public abstract class Duck { public abstract void display(); public void quack() { System.out.println("鸭子嘎嘎嘎嘎&q…
1 星巴克咖啡订单项目(咖啡馆): 1) 咖啡种类/单品咖啡:Espresso(意大利浓咖啡).ShortBlack.LongBlack(美式咖啡).Decaf(无因咖啡) 2) 调料:Milk.Soy(豆浆).Chocolate 3) 要求在扩展新的咖啡种类时,具有良好的扩展性.改动方便.维护方便 4) 使用 OO 的来计算不同种类咖啡的费用:  客户可以点单品咖啡,也可以单品咖啡+调料组合. 2 方案 1-解决星巴克咖啡订单项目 3 方案 1-解决星巴克咖啡订单问题分析 1) Drink 是…
1 展示网站项目需求 小型的外包项目,给客户 A 做一个产品展示网站,客户 A 的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同: 1) 有客户要求以新闻的形式发布 2) 有客户人要求以博客的形式发布 3) 有客户希望以微信公众号的形式发布 2 传统方案解决网站展现项目 1) 直接复制粘贴一份,然后根据客户不同要求,进行定制修改 2) 给每个网站租用一个空间 3) 方案设计示意图 3 传统方案解决网站展现项目-问题分析 1) 需要的网站结构相似度很高,而且都不是高访问量网站,如…
TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20.FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置.联接的方式.甚至是是否使用相同的操作系统无关.假设两台计算机通过ftp协议对话,并且能访问Internet, 你可以用ftp命令来传输文件.每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的.   FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式.   1.ASCII传输方式:假定用户正在拷贝的文件…
两种模式 client-了解 cluster模式-开发使用 操作 1.需要Yarn集群 2.历史服务器 3.提交任务的的客户端工具-spark-submit命令 4.待提交的spark任务/程序的字节码--可以使用示例程序 spark-shell和spark-submit 两个命令的区别 spark-shell:spark应用交互式窗口,启动后可以直接编写spark代码,即时运行,一般在学习测试时使用 spark-submit:用来将spark任务/程序的jar包提交到spark集群(一般都是提…