随笔分类 - java
摘要:本文存在[视频版本][1],请知悉 项目简介 项目来源于: "https://gitee.com/thuihuang/shine_bookshop" 一个基于 JSP+Servlet+Jdbc 的shine网上书城。涉及技术少,易于理解,适合 JavaWeb初学者 学习使用。 技术栈 编辑器 Ecl
阅读全文
摘要:意图 原型模式是创建型设计模式,可以复制已存在的对象而无需依赖它的类。 问题 假如现在有一个对象,我们想完全复制一份新的,我们该如何做? 1. 创建同一个类的新对象 2. 遍历所有已存在对象的值,然后将他们的值复制到新对象。 很好,但是我们会发现存在如下问题: 1. 该对象的值并不一定全对对外开放,
阅读全文
摘要:前言 起初打算按照之前的日产系列写建造者模式。但参考了网上的很多文章,让我对建造者模式更加的困惑,也害怕自己无法已易懂的方式进行解释。最后通过Google发现了一篇英文文章 "Builder" ,使我茅塞顿开。我自己对这篇文章进行了翻译,希望对大家理解建造者模式有帮助。 意图 建造者模式是创建型设计
阅读全文
摘要:实例分析 "大白话工厂方法模式(Factory Method)" 一文中,我们讲解了日产4S店工厂规模的扩大,创建了针对不同车型的工厂,减少了工厂的工作内容,提高了效率。下面我们继续以4S店的故事讨论抽象工厂模式。 为了满足各个阶层的客户,日产公司推出了豪华系列品牌 英菲尼迪 ,而且为了吸引客户购买
阅读全文
摘要:[TOC] 简单工厂模式缺陷 "大白话简单工厂模式(Simple Factory Pattern)" 中通过买车的经历解释了简单工厂模式。但熟悉设计模式的朋友会发现一些问题。 工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响。用日产车工厂的例子来形容就是日产汽车
阅读全文
摘要:大白话简单工厂模式 (Simple Factory Pattern) 从买车经历说起 毕业两年,码农张小两口无法忍受挤公交,凌晨起床抢火车票的痛苦,遂计划买车。逛了多家4S店,最终定下日产某车型的轿车。4S店接受订单后,向工厂说明车型,工厂随后进行汽车制造,运输到4S店中再到了小两口的手上,小两口终
阅读全文
摘要:1 public class Test{ 2 3 public static void main(String[] args){ 4 String str1 = "\"name\"";//字符串两边含有双引号 5 String str2 = "name \"is\" zcr";//字符串中间含有双引号 ...
阅读全文
摘要:1 public class Test { 2 public static void main(String[] args) { 3 String s = "xXccxxxXX"; 4 // 从头开始查找是否存在指定的字符,索引从0开始 //结果如下 5 System.out.println(s.in...
阅读全文
摘要:join线程 Thread提供了让一个线程等待另一个线程完成的方法——join()方法。当在某个程序执行流中调用其它线程的join()方法时,调用线程将被阻塞,直到被join()方法加入的join线程执行完为止。 join()方法通常由使用线程的程序调用,以将大问题划分为许多小问题,每个小问题分配一个线程。当所有的小问题都得到处理后,再调用主线程来进一步操作。 ...
阅读全文
摘要:当线程被创建并启动后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(new)、就绪(runnable)、运行(running)、阻塞(blocked)和死亡(dead)5种状态。尤其是当线程启动后,它不可能一直“霸占”着CPU独自运行,所以CPU需要在多条
阅读全文
摘要:继承Thread类创建线程类 步骤: 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务。因此把run()方法称为线程执行体。 创建Thread子类的实例,即创建了线程对象。 调用线程对象的start()方法来启动该线程。 1 public class FirstThread extends Thread { 2 privat...
阅读全文
摘要:参考:http://blog.csdn.net/shimiso/article/details/8595564
阅读全文
摘要:机会所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程。当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就行一个线程。我们可以这样理解多线程:单线程的程序如同只雇佣一个服务员的餐厅,他必须做完一件事情后才可以做下一件事情;多线程的程序则如同雇佣多个服务员的餐厅,他们可以同时做多件事情。 线程和进程 几乎所有的...
阅读全文
摘要:参考:http://blog.sina.com.cn/s/blog_59ca2c2a0100qhjx.html http://www.cnblogs.com/caiyao/p/4964176.html
阅读全文
摘要:瀑布模型开发 严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。 使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。 强调文档,在开发的后期才会看到软件的模样。在这种情况下,文档的重要性仿佛已经超过了代码的重要性。 瀑布模型把开发人员定义为流水线上的工...
阅读全文
摘要:1.static方法 static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员变量/方法都是必须依赖具体的对象才能被调用。 注意:虽然静态方法中不能访问非静态成员方法/变量,但是...
阅读全文
摘要:1.final类 final类不能被继承,没有子类,final类中的方法默认是final的。 final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。 2.final方法 final方法不能被子类覆盖,但可以继承。 3.final变量 用final修饰的成员变量表示常
阅读全文
摘要:public String[] split(String regex) 默认limit为0 public String[] split(String regex, int limit) 当limit>0时,则应用n-1次 结果: 当limit<0时,则应用无限次 结果: 当limit=0时,应用无限
阅读全文

浙公网安备 33010602011771号