[置顶] JAVA设计模式总结之23种设计模式

摘要: 上一篇总结了设计模式的六大原则《JAVA设计模式总结之六大设计原则》,这一篇,正式进入到介绍23种设计模式的归纳总结。 一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解 阅读全文

posted @ 2017-09-29 21:57 pony1223 阅读(423404) 评论(14) 推荐(80) 编辑

[置顶] JAVA设计模式总结之六大设计原则

摘要: 从今年的七月份开始学习设计模式到9月底,设计模式全部学完了,在学习期间,总共过了两篇;第一篇看完设计模式后,感觉只是脑子里面有印象但无法言语。于是决定在看一篇,到9月份第二篇设计模式总于看完了,这一篇看完,脑子里面已经能够对绝大多数的设计模式能够说出其核心思想且可以画出类图也知道应用场景,算是一个进 阅读全文

posted @ 2017-09-27 22:53 pony1223 阅读(39129) 评论(10) 推荐(34) 编辑

2024年10月20日

SHELL

shell脚本运行4种方法:

1. chmod a+x myshell.sh

   ./myshell.sh

2. . myshell.sh

3. source myshell.sh

4. /bin/bash myshell.sh

shell 语法:

数据类型: 字符串 String 

	变量:	全局变量 ---- 环境变量

		局部变量 ---- 本地变量

		变量名=变量值		VAR=10

	对比:
		$变量名:	取变量的值

		${变量名}:	取变量的值(更安全)

		$(命令):	取命令执行结果

		$((变量名)): 	对变量执行算数运算

		$[变量名]: 	对变量执行算数运算

	导出:export

	删除:unset

	* ? [0123456789][0-9]

	命令代换:

		$() == ``  	VAR=`date` 

	算数代换:

		$(()) == $[]
		
	转义字符:

		\ 转特殊意 , 转本身意

		-- 

	单引号: 括字符串 --- 不能展开变量

	双引号: 括字符串 --- 可以将变量 展开。    --- 建议,在取变量值时,都加“”。尤其是在 测试条件中。


控制语句:if、else、switch case、for、while ...

	条件判别表达式:真:0	假:1

	test 测试条件

	[空格 测试条件]

	整数判别符:	-eq 等于			只能用在 整数之间。

			-ne 不等于

			-gt 大于

			-lt 小于

			-ge 大于等于

			-le 小于等于

	文件类型判别符:-d 目录文件

			-f 普通文件

			-p 管道

			-l 软连接

			-c 字符设备

			-b 块设备

			-s socket

	字符串长度判断:				
			-z 空字符串(长度0)

			-n 非空字符串(长度非0)

	字符串判等:					不能使用 整数判断的 符号

			=  相等

			!= 不等

	逻辑运算:	a  -- && 逻辑与

			o  -- || 逻辑或

			!	逻辑非


【if语句】:

	if [ 判别条件 ]; then
		
		执行内容

	elif [判别条件]

		执行内容
	else
		执行内容
	fi

demo:

! /bin/bash

echo "请输入你要判别的文件名:"

read file_name

if [ -f "$file_name" ];then
echo 'it is a file'

elif [ -d "$file_name" ];then

echo 'It is a dir'

elif [ -p $file_name ];then

echo 'It is pipe'

else
echo 'it is not a known file'
exit 1
fi

case分支语句】:

! /bin/bash

echo "请输入你要判别的文件名:"

read file_name

case "$file_name" in

testfile|file1|file2)
echo "it is a file";;
testdir|dir1|dir2)
echo "it is a dir";;
p1)
echo "It's a pipe";;
*)
echo "not found";;

esac

【for循环语句】:

! /bin/bash

for TEST in ls;do
ls -l $TEST
done

while循环换语句】:

! /bin/bash

count=1

read passwd

while [ $passwd != "itcast" -a $count -lt 3 ]; do
echo "Try again"

count=$[count+1]

read passwd

done

【位置参数】:
	
	$0:	类似于C中的argv[0] ---- 描述可执行程序名

	$1-$N:  类似于C中的argv[1]--argv[N] 命令行参数

	$#:	计算命令行参数的个数(不包含 argv[0])

	$*/$@:  表示所有的 argv 命令行参数(不包含 argv[0])

	$$: 	取出本进程的进程号 

	shift 左移 命令参数  

函数:	
	函数名(){ 

		函数体 
	}

	函数传参:	函数名 参数1 参数2 参数3 ...... 参数N

		函数外:$0 ---命令行参数的 argv[0]

			$1-$N 命令行参数的 argv[1]-argv[N]

		函数内:$0 ---命令行参数的 argv[0]

			$1-$N 函数的参数1--参数N
	

面向对象: 继承、重载、封装、多态。。。

框架:

正则表达式:

字符类使用的 符号:

	. 匹配一个字符

	* 匹配多个字符

	[]匹配指定范围的字符

	- 在[]内, 设定范围

	^ 匹配除该符号以后的其他字符, 在[]内使用

grep 找文本容

grep -R -r “” /目录位置

find 找文件

-name

	find ./ -name "init"    find /目录位置  参数  “匹配项”

-size
	
	find ./ -size +3M -size -7M 

	find ./ -size +20k -size -80k

	find ./ -size +200 -size -500  --> 单位: 512B(扇区的大小 0.5k)

-type
	-d/-f/-p/-l/-s/-c/-b

	find ./ -type f
	
-maxdepth

	find ./ -maxdepth 2  -type d

-exec

	find ./ -maxdepth 2  -type d -exec ls -ld {}\;

-ok:								交互版的 -exec

	find -maxdepth 1 -type d -ok rm -rf {}\;

-xargs

	find -maxdepth 1 -type f | xargs ls -ld

-print

	touch test\ test.c   ---》 “test test.c”

	find -maxdepth 1 -type f -print0 | xargs -0 ls -ld


-atime|ctime|mtime: 天为单位

	a:访问

	c:文件内容修改

	m:文件属性被修改

-amin|cmin|mmin:分钟为单位

	find ./ -name "syslog*" -mtime +5 -exec ls -l {} \;

sed ----行

格式1sed  参数  脚本语句(/pattern/动作)  目标文件

格式2sed  参数  -f 脚本文件	 目标文件

a: 追加

i:插入

d:删除

s:替换

s/原串/目标串/g ---> action

p: 打印 ---- 满足条件打印两次,没有满足打一次。

-n: 原输出静默。

-i: 反应到源文件中

&: 替代原串

\1 \2: 原串中的第一个字符,第二个字符。

贪心算法。

基础正则。 -E 选用扩展正则。

awk ----列。

格式1: awk  参数  脚本语句(pattern { 动 作 })  目标文件

格式2: awk  参数  -f 脚本文件	 目标文件


awk '$2>75 {print $0} $2<75 {printf "%s %s\n", $0, "reorder"}' testfile 

awk '$2>75 {print $0} $2<75 {printf("%s %s\n", $0, "reorder");}' testfile 

awk '$2>75 {print $0} $2<75 {print $0 " reorder";}' testfile 


CC  CFLAGS  CPPFLAGS...

脚本语句:

	1. /pattern/ { 动作 }

	2. condition { 动作 }

		condition :BEGINEND

c中使用正则。

egrep "^([0-9]{1,3}\.){3}[0-9]{1,3}" test.regex


1. regcomp(): 编译正则表达式。————结构体。--》描述 "^([0-9]{1,3}\.){3}[0-9]{1,3}" 

2. regexec():  执行正则表达式。------》 用结构体样式的正则,匹配字符串

3. regfree(): 释放正则表达式。————结构体。释放

regerror():正则错误处理函数。 perror


1. int regcomp (regex_t *compiled, const char *pattern, int cflags)

	参1: 传出参数。结构体,用于保存转化后的正则表达式。  regex_t regex;  &regex

	参2:正则表达式字符串。

	参3:	REG_EXTENDED : 选用 扩展正则

		REG_NOSUB : 当指定该选项时。说明,不保存正则表达式匹配后的结果。

				影响regexec() nmatch = 0 和pmatch = NULL;

		REG_ICASE: 忽略大小写

		REG_NEWLINE: 识别换行符。 ^ $

	返回值:成功:0 失败:错误号。

2. int regexec (const regex_t *compiled, const char *string, size_t nmatch, regmatch_t matchptr[], int eflags)

	参1:regcomp传出参数。已经转化成结构体正则表达式

	参2:待匹配字符串

	参3:数组大小。欲使用该参数,要求:regcomp() 参3,应设置为非 REG_NOSUB 。

	参4:用于盛装匹配成功的结果集的数组。 欲使用该参数,要求:regcomp() 参3,应设置为非 REG_NOSUB 。

	参5:设置^ $ 失效。

		REG_NOTBOL、REG_NOTEOL

	
	返回值:成功:0 失败:错误号

3. void regfree (regex_t *compiled)

posted @ 2024-10-20 13:00 pony1223 阅读(135) 评论(0) 推荐(0) 编辑

常用SQL

摘要: 多表查询 -- 多表查询-数据准备 use mydb3; -- 创建部门表 create table if not exists dept3( deptno varchar(20) primary key , -- 部门号 name varchar(20) -- 部门名字 ); -- 创建员工表 c 阅读全文

posted @ 2024-10-20 12:50 pony1223 阅读(18) 评论(0) 推荐(0) 编辑

Mysql高级-day01

摘要: Mysql高级-day01 MySQL高级课程简介 序号 Day01 Day02 Day03 Day04 1 Linux系统安装MySQL 体系结构 应用优化 MySQL 常用工具 2 索引 存储引擎 查询缓存优化 MySQL 日志 3 视图 优化SQL步骤 内存管理及优化 MySQL 主从复制 4 阅读全文

posted @ 2024-10-20 12:31 pony1223 阅读(58) 评论(0) 推荐(0) 编辑

2024年10月19日

Mysql高级-day03

摘要: Mysql高级-day03 1. 应用优化 前面章节,我们介绍了很多数据库的优化措施。但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。 1.1 使用连接池 对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关闭连接,是比较耗费 阅读全文

posted @ 2024-10-19 17:10 pony1223 阅读(73) 评论(0) 推荐(0) 编辑

Mysql高级-day02

摘要: Mysql高级-day02 1. Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & Utilities : 管理服务和工具组件 SQL Interface : SQL接口组件 Parser : 阅读全文

posted @ 2024-10-19 17:10 pony1223 阅读(20) 评论(0) 推荐(0) 编辑

Mysql高级-day04

摘要: Mysql高级-day04 1. MySql中常用工具 1.1 mysql 该mysql不是指mysql服务,而是指mysql的客户端工具。 语法 : mysql [options] [database] 1.1.1 连接选项 参数 : -u, --user=name 指定用户名 -p, --pas 阅读全文

posted @ 2024-10-19 17:09 pony1223 阅读(20) 评论(0) 推荐(0) 编辑

2024年10月13日

day11-特殊文件、日志技术、多线程

摘要: day11-特殊文件、日志技术、多线程 一、属性文件 1.1 特殊文件概述 同学们,前面我们学习了IO流,我们知道IO流是用来读、写文件中的数据。但是我们接触到的文件都是普通的文本文件,普通的文本文件里面的数据是没有任何格式规范的,用户可以随意编写,如下图所示。 像这种普通的文本文件,没有任何规律可 阅读全文

posted @ 2024-10-13 17:24 pony1223 阅读(20) 评论(0) 推荐(0) 编辑

day14-单元测试、反射、注解、动态代理

摘要: day14-单元测试、反射 恭喜同学们,Java主要的知识我们其实已经学习得差不多了。今天同学们再把单元测试、反射、注解、动态代理学习完。Java的基础知识就算全齐活了。 首先,我们进入单元测试的学习。 一、单元测试 1.1 单元测试快速入门 所谓单元测试,就是针对最小的功能单元,编写测试代码对其进 阅读全文

posted @ 2024-10-13 17:21 pony1223 阅读(25) 评论(0) 推荐(0) 编辑

day10-IO流(二)

摘要: day10-IO流(二) 一、字符流 同学们,前面我们学习了字节流,使用字节流可以读取文件中的字节数据。但是如果文件中有中文,使用字节流来读取,就有可能读到半个汉字的情况,这样会导致乱码。虽然使用读取全部字节的方法不会出现乱码,但是如果文件过大又不太合适。 所以Java专门为我们提供了另外一种流,叫 阅读全文

posted @ 2024-10-13 17:21 pony1223 阅读(18) 评论(0) 推荐(0) 编辑

day12-多线程

摘要: day10-多线程 一、多线程常用方法 下面我们演示一下getName()、setName(String name)、currentThread()、sleep(long time)这些方法的使用效果。 public class MyThread extends Thread{ public MyT 阅读全文

posted @ 2024-10-13 17:21 pony1223 阅读(19) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示