- Golang中Slice切片
white.tie
Golanggolang开发语言后端
切片Sliceslice并不是数组或数组指针。它通过内部指针和相关属性引用数组片段,以实现变长方案。1.切片:切片是数组的一个引用,因此切片是引用类型。但自身是结构体,值拷贝传递。2.切片的长度可以改变,因此,切片是一个可变的数组。3.切片遍历方式和数组一样,可以用len()求长度。表示可用元素数量,读写操作不能超过该限制。4.cap可以求出slice最大扩张容量,不能超出数组限制。0c{fmt.
- C语言---深入理解指针(3)
星竹晨L
C语言c语言
目录1字符指针变量2数组指针变量2.1什么是数组指针变量2.2数组指针变量的初始化3二维数组传参的本质4函数指针变量4.1两个有趣的代码4.2typedef关键字5函数指针数组6函数指针数组的应用---计算器的实现6.1计算器的一般实现6.2利用函数指针数组实现6.3一般实现的改进1字符指针变量在指针的类型中有一种指针类型为字符指针char*,一般使用:#includeintmain(){char
- 【C/C++】数组指针:array 地址 &array *parray 两次解引用 **parray 值相同的原因解析
Herk (ง •̀_•́)ง
C/C++c语言c++数据结构
一、提出问题#includeintmain(){chararray[16]={'A','B'};char(*parray)[16]=&array;printf("========================\n");printf("array:\t%#lx\n",array);printf("&array:\t%#lx\n",&array);printf("&*array:\t%#lx\n",
- C++指针汇总
程序员小郑1024
C++c++指针
C++指针概念描述C++Null指针C++支持空指针。NULL指针是一个定义在标准库中的值为零的常量。C++指针的算术运算可以对指针进行四种算术运算:++、–、+、-C++指针vs数组指针和数组之间有着密切的关系。C++指针数组可以定义用来存储指针的数组。C++指向指针的指针C++允许指向指针的指针。C++传递指针给函数通过引用或地址传递参数,使传递的参数在调用函数中被改变。C++从函数返回指针C
- 各类指针的使用与技巧(C++)
TENET-
C++语法和结构c++开发语言
文章目录1.内存地址2.指针3.使用指针4.Null指针5.指针的算术运算递增一个指针递减一个指针指针的比较6.指针和数组7.指针数组8.指向指针的指针(多级间接寻址)9.传递指针给函数1.内存地址通过指针,可以简化一些C++编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一
- C++ char* 字符串处理、数组指针及传参
东都大白兔
C++基础c++指针字符串
编写函数,将一个字符串str中指定的字符ch删去(包括重复出现的字符),并编写主函数进行调用测试。函数原型:voiddelchar(char*str,charch);。输入:占二行。第1行,输入任意字符串(注:输入的字符串长度不会超过80)第2行,输入一个字符输出:占一行样例输入:x=-3,456,789;y=1,113,458,样例输出:x=-3456789;y=113458代码#include
- 【C语言实现】简易计算器(3种)
王德博客
c语言开发语言
1函数指针数组(应用:转移表)//voidmenu()//{//printf("---------------计算器---------------\n");//printf("------1.ADD2.SUB-------\n");//printf("------3.MUL4.DIV-------\n");//printf("---------------0.EXIT--------------\
- C语言:高级指针
星期八不上发条
c语言开发语言
1.根据优先级,优先级最高的作为主要的名词,优先级低的做修饰例如:intmain(){ inta; intb[10];int*f[10]={&a,b};//f是指针还是数组?return0;}[]优先级更高,所以f先是数组,长度为10,每个单元都是int*所以可简述为f是保存指针的数组,简称指针数组,f主要是数组,指针是它的类型以此类推,可以组成多种高级指针intmain(){ int
- 指针(2)进阶指针
矢鱼
笔记c语言
接下来,我们介绍一下进阶指针:这里包括很多指针数组、数组指针、二级指针、函数指针等等。常见类型首先我们来说一下常见指针的类型:指向整型的指针:int*指向字符型的指针:char*指向浮点型的指针:float*指向双精度浮点型的指针:double*指向结构体的指针:struct_name*指向联合体的指针:union_name*指向枚举类型的指针:enum_name*指向void类型的指针:void
- 25 指针详解之 难点、易错点一次性彻底击碎!
small_wh1te_coder
c语言c++
1例子之指向3个字符串的指针数组,易混淆!1.1过程详解:char *str[3]={ "Hello,thisisasample!", "Hi,goodmorning.", "Helloworld" }; char s[80]; strcpy(s,str[0]); //也可写成strcpy(s,*str); strcpy(s,str[1]); //也可写成strcpy(s,
- C语言-指针数组和数组指针
虔城散人
C语言c语言数据结构开发语言
在C语言中,int*p[3]和int(*p)[3]的区别与运算符优先级和声明类型密切相关:int*p[3]•类型:指针数组•含义:声明一个包含3个元素的数组,每个元素是int*类型的指针•优先级:[]优先级高于*,因此p先与[3]结合•内存布局:p[0]→某个int变量的地址p[1]→另一个int变量的地址p[2]→第三个int变量的地址•典型用途:存储多个独立指针inta=1,b=2,c=3;i
- 指针数组表示不定长字符串列表的用法
xu_wenming
数据结构c语言嵌入式硬件驱动开发
/*nullpointerdefinition*/#defineRT_NULL0指针数组(constchar*net_modules[])内存布局:数组中每个元素是一个指针,指向字符串常量(如"UMA503")。字符串存储在程序的只读数据区,指针数组本身存储这些地址。constchar*net_modules[]={"UMA503",//指针指向常量字符串"YM310","ML307",RT_NU
- 【C语言基础教程】函数指针与指针大小
人才程序员
C语言系列课程c语言开发语言1024程序员节c++软件工程软件构建
文章目录前言一、函数指针1.1函数指针的概念1.2三个示例代码示例1:使用函数指针调用不同的函数示例2:使用函数指针实现回调函数示例3:使用函数指针数组二、指针的大小2.1前述2.2指针大小如何决定?两方面理解总结前言在C语言中,指针是一项强大的工具,用于处理内存中的数据。除了常见的指向变量和数组的指针,C语言还支持函数指针,它是一个指向函数的指针。本文将深入探讨函数指针的概念以及指针的大小在C语
- C语言二维数组及数组指针、指针数组
不悔哥
c语言开发语言
先复习一下数组的定义例如:定义一个3行3列的整型数组intarray[3][3]上述代码声明了一个3行3列的二维数组,其数组名是array,其下标变量的类型为整形。如下图所示:该数组的下标变量一共有3x3个。先来看一下这道题,第一个*ptr和*(ptr+1),第二个**ptr和**(ptr+1)的值分别是什么,看不懂,然后就看下面的介绍。这道题是Cprimerplus第10章的课后习题,对于我们理
- C语言初阶3扩展:数组
软软kk
C语言初阶c语言开发语言后端
C语言初阶3扩展:数组1.返回值含义2.多维数组一维使用方式2.1二维数组转一维数组2.1.1按行遍历2.1.2按列遍历2.2三维数组转一维数组3.一维数组多维使用方式3.1一维数组转二维数组3.2一维数组转三维数组4.二维数组指针用法4.1一维数组指针用法4.2二维数组指针用法1.返回值含义返回值有时存在两种情况:合法值和非法值。如果有非法值的情况,通常使用一些特定的值指代特殊情况。例如:数组下
- Let C语言通俗化
Mryan2005
#我与C语言c语言开发语言
目录输入/输出输出输入基本运算加、减、乘、除、取余整数除法和浮点数除法变量声明基本数据类型赋值声明时,令var为1赋值为1交换运算整数除法和浮点数除法实例逻辑实例自增/自减判断if单分支如果否则如果,否则如果,最后否则实例switch实例三目运算符循环for实例while计算每一位数的和计算每一位数的积无限制输入dowhile实例函数构造调用实例数组声明字符数组和字符串访问遍历一维数组二维数组指针
- C语言 指针(6)
多雨西雅图
C语言c语言开发语言
目录1.字符指针变量2.数组指针变量3.二维数组传参的的本质1.字符指针变量在指针的类型中我们知道有一种指针类型为字符指针char*;一般使用:intmain(){charch='w';char*pc=&ch;*pc='w';return0;}还有一种使用方式如下:intmain(){constchar*pstr="hellobit.";//这里是把一个字符串放到pstr指针变量里了吗?print
- C语言深入理解指针(四):玩转字符指针、函数指针与数组指针
秋山落叶万岭花开ღ
c语言c语言
宝子们,我们在指针的江湖已经驰骋了好几章啦,从指针基础、const修饰、野指针avoidance,到数组、二级指针和多维数组模拟,一路上升级打怪,相信指针的神秘面纱在大家眼里已经一层层揭开咯。今儿个,咱继续乘风破浪,探索字符指针、数组指针、二维数组传参、函数指针和转移表这些超实用又超有趣的指针应用!这可是把指针功力再升一级的关键,大家可千万别错过哦。字符指针变量:解锁字符串的秘密花园字符指针可是和
- C语言指针数组与数组指针详解
努力创造奇迹
C语言开发入门c语言开发语言
一、指针数组定义与概念指针数组是一个数组,数组中的每个元素都是一个指针。其一般定义形式为:type*array_name[size],其中type是指针所指向的数据类型,array_name是数组名,size是数组的大小。例如,int*ptr_array[5]定义了一个名为ptr_array的指针数组,它包含5个指向int类型数据的指针。内存布局指针数组在内存中首先分配一块连续的内存空间来存储数组
- 力扣HOT100之链表:23. 合并 K 个升序链表
编程绿豆侠
力扣HOT100leetcode链表算法
这道题我是用最淳朴最简单的思路去做的,用一个while循环持续地将当前遍历到的最小值加入到合并链表中,while循环中使用一个for循环遍历整个指针数组,将其中的最小值和对应下标记录下来,并将其值加入到合并链表中,同时对应的那条链表的指针后移一位。这里我们需要用到一个额外的辅助变量flag,在每一次执行for循环之前需要初始化为false,默认为所有链表都已经遍历到末尾,在for循环中,如果遇到了
- Go 1.17 相比 Go 1.16 有哪些值得注意的改动?
go
本系列旨在梳理Go的releasenotes与发展史,来更加深入地理解Go语言设计的思路。https://go.dev/doc/go1.17Go1.17值得关注的改动:语言增强:引入了从切片(slice)到数组指针的转换,并添加了unsafe.Add和unsafe.Slice以简化unsafe.Pointer的使用。模块图修剪:对于指定go1.17或更高版本的模块,go.mod文件现在包含更全面的
- 数据结构手撕--【堆】
@Aurora.
数据结构算法
目录编辑定义结构体:初始化:插入数据:删除:取堆顶元素:堆销毁:判断堆是否为空:TopK问题:堆其实是完全二叉树物理结构:二叉树的层序遍历(顺序存储)逻辑结构:完全二叉树定义结构体:typedefintHPDataType;typedefstructheap{HPDataType*a;//数组指针(指向一块空间)intsize;//有效数据个数intcapacity;//最多可以存的数据个数}He
- 【C++】STL之deque
CodeWithMe
C/C++c++开发语言
dequeDeque的底层既不直接依赖vector也不依赖list,而是结合了两者的思想,采用了一种分块(chunk)存储与动态指针数组(map)结合的结构。以下是详细分析:1.底层结构设计Deque的核心设计是分块存储+动态指针数组(map):分块存储:Deque的元素被分散存储在多个固定大小的连续内存块(称为buffer或chunk)中。每个块的容量固定(例如512字节或存储固定数量的元素,如
- 进阶指针( 三 ): 函数指针
要下雨了吗
c++算法c语言数据结构visualstudio
一、函数指针的本质:指向“代码”的指针什么是函数指针?定义:存储函数入口地址的指针核心特性:函数名==&函数名数组名!=&数组名直接用函数名/指针名调用函数(无需解引用)一句话对比数组指针:场景数组指针函数指针指向内容数据(数组)代码(函数)取地址差异arr≠&arrAdd==&Add调用方式需解引用+下标直接当函数名用二、定义函数指针:从“迷路”到“开窍”定义步骤(以Add函数为例):原函数:i
- C语言学习笔记(week2)2-24 3-2
05020810
每周笔记c语言学习笔记
22数组指针变量指向整个数组的指针int(*p)[5]其中(*p)说明p是一个指针变量,[5]说明p指向的是一整个数组,5代表元素个数,int代表指向这个数组里边存放的元素的数据类型intarr[6]={1,2,3,4,5,6};int(*p)[6]=&arr;for(inti=0;i0&&input0){my_swap(((char*)base+j*width),((char*)base+(j+
- C语言基础(十一)---数组指针与指针数组
8RTHT
c语言java算法
数组指针(1)、定义概念:数组指针是指向整个数组的指针,本质上还是指针(地址)特点:先有数组,后有指针它指向的是一个完整的数组(2)、一维数组指针语法:(必须给*指针变量名带括号,[]的优先级高于*) 数据类型(*指针变量名)[数组容量];案例: intarr[]={11,22,33,44,55}; int*p=arr; //这里是指向数组的首地址 p++; //可以进行自增操作,指向首元
- 【从C到C++的算法竞赛迁移指南】第二篇:动态数组与字符串完全攻略 —— 写给C程序员的全新世界
牧木江
c语言c++算法笔记经验分享
系列导航:[第一篇]C++基础与竞赛优势[▶本篇]动态数组与字符串革命[第三篇]映射与集合的终极形态[第四篇]STL算法与迭代器[第五篇]现代语法糖精粹[第六篇]竞赛实战技巧一、动态数组:彻底告别malloc(手把手教学)1.1C程序员熟悉的痛苦场景假设我们需要处理一个动态增长的整数数组,传统C代码是这样的:int*arr=NULL;//数组指针intsize=0;//当前元素个数intcapac
- 一图总结C++中关于指针的那些事
weixin_34331102
c/c++
指向对象的指针,指向数据成员的指针,指向成员函数的指针;数组即指针,数组的指针,指针数组;指向函数的指针,指向类的成员函数的指针,指针作为函数参数,指针函数;指针的指针,指向数组的指针;常指针,指向常对象的指针;……大哥,这些都是什么鬼?!用下面一张图全概括。用例子对照图示,有感觉,就用术语将概念大声地念出来,动员所有的感官参与,搞清楚这些,不是事。图如下:
- C语言简答题--持续更新 1-11
Xiezequan
笔记总结集合c语言算法
文章目录C语言static作用一、const的作用二、Typedef和Define的区别三、define和枚举的区别定义方式不同五、定义常量数量的区别数据类型特性差异四、宏常量和枚举常量在C语言中各自的优缺点是什么**宏常量****枚举常量**五、volatile作用含义总结使用场景六、extern作用七、sizeof和strlen区别八、数组和链表的区别九、指针和数组的区别十、指针数组和数组指针
- c语言指针专题复习笔记
~Eliauk
c语言c语言指针
c语言指针/*使用指针的好处:1.使程序简洁、紧凑、高效2.有效的表示复杂的数据结构3.动态分配内存4.得到多于一个的函数返回值*/test1:概念->存储地址的变量test2:运算->算术运算、赋值运算、关系运算test3:二维数组指针test4:字符指针与字符串指针test5:指针数组与多级指针test6:void指针与const修饰符环境—>VisualStdio2019#includevo
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include