- golang的var ,make ,new, := 的区别
卑微的小鬼
算法
用途new:主要用于为值类型(如基本数据类型int、float64、结构体struct等)分配内存空间,并将分配的内存初始化为对应类型的零值,然后返回指向该内存地址的指针。packagemainimport"fmt"funcmain(){//使用new为int类型分配内存numPtr:=new(int)fmt.Println(*numPtr)//输出:0//使用new为结构体分配内存typePoi
- go.mod 里的 toolchain 怎么去掉
Lucky小黄人
golang开发语言后端
有时我们电脑里安装了多个golang版本,导致在有些仓库使用高于1.20版本的golang,会把go1.18->go1.20toolchaingo1.20.2如果需要恢复原样,首先关闭所有已打开的goland的terminal,不只是当前仓库的teminal,其他仓库也需要关闭,然后在当前仓库,去设置的Module中,选择go1.18版本,然后再点开teminal,就不会出现自动修改的情况了
- 【Golang 面试题】每日 3 题(六十二)
Pandaconda 的测开之路
#Golang面试专栏golang开发语言后端笔记面试go经验分享
✍个人博客:Pandaconda-CSDN博客专栏地址:http://t.csdnimg.cn/UWz06专栏简介:在这个专栏中,我将会分享Golang面试中常见的面试题给大家~❤️如果有收获的话,欢迎点赞收藏,您的支持就是我创作的最大动力184.三色标记法具体步骤具体来说,三色标记算法分为以下几个步骤:初始时,所有对象都是白色,加入一个“根集合”(rootset),根集合是一组已知可达对象的集合
- 第一个Go语言程序——Hello world
「已注销」
GOLANG笔记golang开发语言后端
Go语言简介Go语言(也被称为Golang)是一门开源的编程语言,由Google开发并于2009年首次发布;它在设计上强调简单性、高效性和安全性,旨在提高程序员的生产力和代码可读性。Go语言的设计主要针对高并发、高性能和简单的编程;具有良好的内存管理和垃圾回收机制,支持并发编程,可以轻松地使用多核CPU。Go语言官网GO语言中文网Go语言的特点简单易学:Go语言的语法简洁明了,易于学习和使用。高并
- golang 入门
weixin_34102807
golangphpffmpeg
缘起之前下载视频用的you-get,但是b站一直下不了,优酷也经常出问题,所以接触到luluhttps://github.com/iawia002/Lulu这个也是基于you-get直接pipinstalllulu,但是作者不维护了,新出了个https://github.com/iawia002/a...这个不是python开发的,而是go,通过gogetgithub.com/iawia002/a
- 2020腾讯后端面试题以及解答(golang方向)
橙狮科技
面试golang后端
1、goalng相关Q:context作用,原理,超时控制A:golangcontext的理解,context主要用于父子任务之间的同步取消信号,本质上是一种协程调度的方式。另外在使用context时有两点值得注意:上游任务仅仅使用context通知下游任务不再需要,但不会直接干涉和中断下游任务的执行,由下游任务自行决定后续的处理操作,也就是说context的取消操作是无侵入的;context是线
- golang的数组、slice和map
相信美好的事情即将发生 ᅟᅠ
golanggolang数据结构开发语言
golang的复合数据结构包括:数组、切片、结构体、函数、map、channel、接口等1.数组1.1数组的初始化import"fmt"funcmain(){//数组的初始化1vararr1[3]intarr1[0]=1arr1[1]=2arr1[2]=3fmt.Println(arr1)//数组的初始化2vararr2=[4]int{1,2,3,4}fmt.Println(arr2)//数组初始
- golang数组与slice
shadowgully
golanggolang开发语言后端
golang的数组分为固定长度和动态(slice)两种形式。定长数组定长数组采用数组名:=[长度]数组成员类型{初始化值}声明并初始化或者var数组名[长度]数组成员类型声明。定长数组可以采用for循环或者rangefor循环遍历:array1:=[5]int{1,2,3,4,5}fmt.Println(array1)forindex,value:=rangearray1{fmt.Println(
- Go语言开发Web应用实战——这本书介绍了如何用Golang开发Web应用,涵盖从基础概念到实践应用等内容
AI天才研究院
Python实战Golang实战自然语言处理人工智能语言模型编程实践开发语言架构设计
作者:禅与计算机程序设计艺术1.简介2019年是第四个十年科技革命的开端,也是Golang被广泛应用的一个年份。这几年,Golang的热度不断提升,在开源社区及企业内部也出现了一批拥抱Go的优秀人员。每当我听到有人宣传“Golang开发更快、更安全、更高效”,或者推荐“Go语言入门”时,都会觉得不可思议。Golang作为新一代的编程语言,非常适合用来开发复杂的分布式系统,但同时它也非常简单易懂,可
- 【Golang】Golang的数组和slice切片的区别
不想写bug的小滕
golang开发语言后端
文章目录前言总结前言在Golang编程中,数组和切片(slice)是两种常用的数据结构。虽然它们在某些方面有相似之处,但在使用方式和底层实现上有显著的区别。理解这些区别对于编写高效、可维护的代码至关重要。本文将详细介绍Golang中数组和切片的区别,帮助读者更好地掌握这两种数据结构的使用。在Go语言中,slice(切片)和数组是两个不同的概念,尽管它们在某些方面有相似之处。以下是它们的主要区别:1
- golang中数组array和切片slice的区别
tekin
golanggolang开发语言后端数组array切片slice
go语言中最常用的数据结构数组array和切片slice的区别对比:定义和初始化:数组:[size]类型切片:[]类型,数组变量[low:high]vararr1=[3]string{"a","b","c"}//数组array定义和初始化fmt.Printf("arr1数据类型:%vType:%T\n",reflect.ValueOf(arr1).Kind(),arr1)//arr1数据类型:ar
- 雪花算法应用
蚂蚁在飞-
后端
什么是雪花算法?雪花算法是由Twitter开源的分布式ID生成算法,用于生成64位的长整型唯一ID。其结构如下:-1位符号位:始终为0-41位时间戳:精确到毫秒-10位工作机器ID:包含5位数据中心ID和5位机器ID-12位序列号:同一毫秒内的自增序号Golang实现以下是一个完整的Golang实现:packagesnowflakeimport("sync""time""errors")//Sno
- Golang | 每日一练 (3)
张胤尘
Golang每日一练golang后端面试
欢迎来到张胤尘的技术站技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌文章目录Golang|每日一练(3)题目参考答案`map`实现原理`hmap``bmap`数据存储模型键值底层访问竞态检测`Sanitizer`检测空检查并发写检查哈希值计算桶定位扩容处理桶内查找安全并发访问`map`使用`sync.Mutex`或者`sync.RWMutex`并发安
- golang内存泄漏
yunteng521
gogolang后端pprof内存泄漏oom
golang也用了好几年了,趁着有空整理归纳下,以后忘了好看下一般认为Go10次内存泄漏,8次goroutine泄漏,1次是真正内存泄漏,还有1次是cgo导致的内存泄漏1:环境go1.20win102:goroutine泄漏单个Goroutine占用内存,可参考Golang计算单个Goroutine占用内存,在不发生栈扩张情况下,新版本Go大概单个goroutine占用2.6k左右的内存Gorou
- golang:时间转换总结
OceanStar的学习笔记
golanggolangjava开发语言
在编程中,我们经常会遭遇八小时时间差问题。这是由时区差异引起的,为了能更好地解决它们,我们需要理解几个时间定义标准。GMT(GreenwichMeanTime),格林威治平时。GMT根据地球的自转和公转来计算时间,它规定太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间为中午12点。GMT是前世界标准时。UTC(CoordinatedUniversalTime),协调世界时。UTC比GMT更精
- Golang - 时间处理总结
二进制杯莫停
Golanggolang开发语言后端
Golang-时间处理总结1获取时间对象1.1获取当前对象对象1.2根据指定时间返回time.Time类型1.2获取当前年月日时分秒、星期几、一年中的第几天等操作1.3日期字符串解析成time.Time类型解析的时候需要特别注意时区的问题:2时间对象转时间字符串3时区4时间运算5时间比较6时间戳7常见例子7.1time转日期字符串7.2time转时间戳7.3时间戳转time7.4时间戳转日期字符串
- golang时间相关函数总结
zhoupenghui168
golang#golang基础golang服务器前端time
1.时间戳转换成日期函数//时间戳转换成日期函数funcUnixToTime(timestampinterface{},formatstring)string{ifformat==""{format="2006-01-0215:04:05"}value1,ok64:=timestamp.(int64)//类型断言,判断传入的参数数据类型,并根据不同数据类型进行逻辑处理value2,ok32:=ti
- 股票量化实时行情接口WebSocket接入Python封装
数据掘金
websocket量化行情接口python
Python做量化,如果是日内策略,需要更实时的行情数据,不然策略滑点太大,容易跑偏结果。之前用行情网站提供的level1行情接口,实测平均更新延迟达到了6秒,超过10只股票并发请求频率过快很容易封IP。后面又尝试了买代理IP来请求,成本太高而且不稳定。在Github上看到一个可转债的Golang高频T+0策略,对接的是WebSocket协议,拿来改了改,封装了一个Python版本的包,记录一下:
- 【Golang学习之旅】分布式任务队列(使用 RabbitMQ / Kafka)
程序员林北北
分布式golang学习云原生kafkarabbitmqjava
文章目录前言1.什么是分布式任务队列?1.1消息队列的特点2.为什么使用RabbitMQ和Kafka?2.1RabbitMQ2.2Kafka3.RabbitMQ和Kafka的基本原理3.1RabbitMQ的基本原理3.2Kafka的基本原理前言在微服务架构中,处理异步任务是不可避免的需求。为了处理任务的异步执行,系统需要一个可靠的消息队列机制。消息队列能够保证消息的持久化、顺序性和可靠性,并且能够
- 深入理解Golang中的new()和make()函数
水草
golang开发语言后端
在Go语言开发中,new()和make()是两个容易让开发者感到困惑的内建函数。尽管它们都用于内存分配,但其设计目的、适用场景和底层实现存在本质差异。本文将通过类型系统、内存模型和编译器实现三个维度,深入解析这两个函数的本质区别。一、类型系统的哲学分野1.1new()的通用性设计new(T)是为所有类型设计的通用内存分配器,其行为模式高度统一://为int类型分配零值内存pInt:=new(int
- 使用LlamaIndex查询 MongoDB 数据库,并获取 OSS (对象存储服务) 上的 PDF 文件,最终用Langchain搭建应用
朴拙Python交易猿
数据库mongodbpdf
使用LlamaIndex查询MongoDB数据库,并获取OSS(对象存储服务)上的PDF文件,然后利用Langchain搭建应用,涉及多个步骤。下面我们将详细介绍如何将这些步骤结合起来,构建一个系统:1.环境准备首先,确保你已经安装了以下Python库:pipinstallllama_indexpymongolangchainopenaiboto3pdfplumberpymongo:MongoDB
- Golang的消息队列架构
caihuayuan4
面试题汇总与解析大数据springsqljava
一、消息队列的定义和作用消息队列是一种在不同组件之间传递消息的通信机制。它可以解耦系统的各个部分,提高系统的可靠性和扩展性。消息队列可以在系统之间传递消息,并且在消息发送者和消息接收者之间进行异步通信,使得系统可以更加灵活和高效地工作。消息队列的作用消息队列在实际开发中有着广泛的应用,比如在电商行业中,可以用消息队列来处理订单的各种状态变更通知;在游戏行业中,可以用消息队列来处理玩家之间的交互信息
- Golang 面试题
ox0080
#北漂+滴滴出行程序员面试指南Golanggolang开发语言后端
常见的Go语言面试题及其答案和代码示例:一、高频面试题1.Goroutine和线程的区别?答案:Goroutine是Go语言中的轻量级线程,由Go运行时管理,初始栈大小约为2KB,可以动态扩展和收缩,创建和切换成本非常低。线程是操作系统级别的线程,栈大小通常为MB级,创建和切换涉及内核态和用户态的切换,成本较高。Go使用M:N调度模型,将多个Goroutine映射到少量的操作系统线程上,从而高效利
- 【Golang】golang中 regexp.MustCompile与regexp.MatchString的区别
小镇学者
Golanggolangmysql开发语言
在Go语言中,regexp.MustCompile和regexp.MatchString都是regexp包中用于处理正则表达式的函数,但它们的功能和使用场景有所不同,下面为你详细介绍。功能概述regexp.MustCompile:用于将正则表达式字符串编译成一个*regexp.Regexp对象。如果编译过程中出现错误,它会触发一个panic。regexp.MatchString:用于检查一个字符串
- Go语言入门指南
茶颜悅色
golang开发语言后端
Go语言,作为一门现代编程语言,自诞生以来便备受开发者青睐。它以其简洁的语法、高效的性能和强大的并发支持,迅速成为云服务开发、后端开发以及微服务架构中的热门选择。本文将从Go语言的历史背景、特性、安装方法到快速入门等方面进行详细介绍,帮助你快速上手这门语言。一、Go语言的历史背景Go语言(Golang)由Google公司于2007年9月30日启动研发,并在2009年11月10日正式开源。它的设计初
- golang哈希算法性能对比md5,crc32,sha1,murmur3
raoxiaoya
golanggolang哈希算法
packagemainimport("crypto/md5""crypto/sha1""hash/crc32""github.com/spaolacci/murmur3")varstr="helloworld"funcmd5Hash()[16]byte{returnmd5.Sum([]byte(str))}funcsha1Hash()[20]byte{returnsha1.Sum([]byte(s
- golang 调用 c++ (cgo)
LRZ0001
Goc++golang
文章目录目录结构各文件对应的代码library.hpplibrary.cpplibrary-bridge.hlibrary-bridge.cppmain.go方式一:调用静态链接库编译静态链接库运行方式二:调用动态链接库生成动态链接库运行注意:调用动态库会有加载不到的情况参考文章目录结构[root@localhostexample03]#tree.├──library│├──library-bri
- golang调用c库函数
wx_kingstone
cppgolangc++golanggoc语言cgo
golang调用c库函数c语言相关代码golang相关代码golang编译本文章介绍了golang如何调用c语言库函数。如果想调用c++库函数,建议在c++上再封一层c语言代码,编译成c语言动态库,再被golang调用。c语言相关代码cc文件、so编译省略c头文件,mytest.h#ifndef__MYTEST_H_#define__MYTEST_H_#ifdef__cplusplusextern
- Golang使用viper读取配置到结构体,但是获取的数据为空
又菜又爱玩呜呜呜~
golang
1.viper库viper库是一个读取配置文件的库,支持多种配置文件,如JSON/TOML/YAML/HCL/envfile/Javaproperties等2.遇到的问题在使用viper库的时候发现按照相应的配置已经读取到了对应的配置,但是转换为结构体的时候发现怎么拿结构体里面的数据都是空的3.解决步骤1.打印所有的viper读取到的配置database:host:127.0.0.1port:33
- ERROR: Get https://registry-1.docker.io/v2/
dockergo
在使用docker搭建golang项目的时候,突然docker拉取golang镜像都出现一下错误:刚开始觉得是自己使用golang版本有问题,就直接去https://hub.docker.com/_/golang/tagsdokcer官方网站查看,最终结果还是以失败告终。排除是golang版本错误,就考虑可能是docker的配置文件代理有问题。1.查看docker配置文件/etc/docker/d
- 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