【转】Java设计模式之策略模式
本文继续介绍23种设计模式系列之策略模式。背景在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的...
【转】java设计模式之建造者模式
本文继续介绍23种设计模式系列之建造者模式。定义:建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。实用范围1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2、当构造过程必须允许被构造的对象有不同表示时。角色在这样的设计模式中,有以下几个角色:1、Builder:为创建一个产品对象的各个部件指定抽象接口。2、ConcreteBuilde...
【转】Java中的String为什么是不可变的?—String源码分析
转载于: https://blog.csdn.net/kwame211/article/details/78740496 谢谢作者什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不...
回顾一下JavaScript中的正则表达式
最近用到了一些正则表达式的操作,有点遗忘,在这里回顾一下。如有遗漏错误,请指正。一 简介 来看下JS文档中对正则表达式的介绍:如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'da...
js中参数都是按值传递的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, ini
CSS多行文字超出隐藏加省略号
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
<meta name="viewport&
ES6箭头函数this指向和arguments知识
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
<meta name="viewport&
ES6 assign
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
<meta name="viewport&
$().each,$.each和arr.forEach对比解析
jQuery中each类似于javascript的for循环但不同于for循环的是在each里面不能使用break结束循环,也不能使用continue来结束本次循环,想要实现类似的功能就只能用return,break 用return falsecontinue 用return ture<!DOCTYPE html>
<html >
<he...
Python 之类与对象及继承
类与对象 学习类的语法 关键字 class 类别,分类 class 类名: 属性 特性特征 类名的编写规范:首字母大写 驼峰命令 见名知意--->遵守规范。 Math StudentInfo class SuperMan: # 实例 类名() # 属性-->本质:变量 height = 180 name = '咸蛋超人' age = 18 共性/特性--->动作特征 本质:函数--->属于谁?类?--->类函数 or 类方法 self c语言 java 指针? 他与普通函数的唯一区别就是:函数
$.extend()和$.fn.extend()
jQuery.extend():把两个或者更多的对象合并到第一个当中;jQuery.fn.extend():把对象挂载到jQuery的prototype属性,来扩展一个新的jQuery实例方法。两者调用方式不同: jQuery.extend(),一般由传入的全局函数来调用,主要是用来拓展个全局函数,如$.init(),$.ajax(); jQuery.fn.extend(),一般由具体...
Linux下C编程2--线程的练习
先挖坑,周末再补== 对于多线程的demo,主要在尝试封装 thread类来简化创建多线程的步骤: 主要参考文章:跳转1 线程基类 BaseThread:主要提供接口 自己的功能线程类 MyThread: 主要去实现你的线程中希望执行的操作 #ifndef CTHREAD_HH
#define CTHREAD_HH
#include <stdio.h>
#include <iostream>
#include <pthread.h>
class BaseThread
{
public:
细说CSS伪类和伪元素
原文 简书原文:https://www.jianshu.com/p/eae56b7fe7fe 大纲 1、伪元素 2、伪类元素 3、伪元素和伪类元素的区别 4、伪类和伪元素的使用 1、伪元素 伪元素在DOM树中创建了一些抽象元素,这些抽象元素是不存在于文档语言里的(可以理解为html源码)。比如:documen接口不提供访问元素内容的第一个字或者第一行的机制,而伪元素可以使开发者可以提取到这些信息。并且,一些伪元素可以使开发者获取到不存在于源文档中的内容(比如常见的::b
Jquery设置style:display的方法
在实际项目开发中,我在进行页面元素显隐曾遇到一个问题,就是使用了$('#id).attr('style','display:block');的方式进行显示,结果导致控件上配置的其他样式被覆盖,所以对显隐的问题进行了总结,我们在使用时要注意。 1、不覆盖控件原有的其他样式基础上进行显示和隐藏控制用如下方法: 显示: $('#id).css('display','block'); <==>$('#id)[0].style.display='block'; <==>$('#id).show(); 隐
flex布局设置width无效
常常我们布局会使用到flex,但布局中存在一些问题,比如无法设置宽度 display: flex;
flex-wrap: nowrap; 我通过设置元素不换行,然后子元素分别设置了50px的宽度和高度,但是无法生效,要通过如下方式设置 flex: 0 0 50px; 子元素不能直接设置width: 50px,需要通过flex布局指定宽度,关于里面的具体参数,可以看这篇文章: 链接
今日推荐
周排行