byteBuffer的用法

byteBuffer的用法
byteBuffer的用法

byteBuffer的使用之道

分类:JAVA 2011-11-08 22:281918人阅读评论(0)收藏举报bytebufferimportiteratorexception网络应用

缓冲区分配和包装

在能够读和写之前,必须有一个缓冲区,用静态方法allocate() 来分配缓冲区:

ByteBuffer buffer = ByteBuffer.allocate(1024);

allocate() 方法分配一个具有指定大小的底层数组,并将它包装到一个缓冲区对象中—在本例中是一个ByteBuffer。

还可以将一个现有的数组转换为缓冲区:

byte array[] = new byte[1024];

ByteBuffer buffer = ByteBuffer.wrap(array);

本例使用了wrap() 方法将一个数组包装为缓冲区。一旦完成包装,底层数据就可以通过缓冲区或者直接访问。

缓冲区分片

slice() 方法根据现有的缓冲区创建一个子缓冲区。也就是它创建一个新的缓冲区,新缓冲区与原来的缓冲区的一部分共享数据。

首先创建一个长度为10 的ByteBuffer:

ByteBuffer buffer = ByteBuffer.allocate(10);

然后使用数据来填充这个缓冲区,在第n 个槽中放入数字n:

for (int i = 0; i < buffer.capacity(); i++) {

buffer.put((byte)i);

}

现在我们对这个缓冲区分片,以创建一个包含槽3 到槽6 的子缓冲区。在某种意义上,子缓冲区就像原来的缓冲区中的一个窗口。

窗口的起始和结束位置通过设置position 和limit 值来指定,然后调用Buffer 的slice() 方法:

buffer.position(3);

buffer.limit(7);

ByteBuffer slice = buffer.slice();

片是缓冲区的子缓冲区。不过,片段和缓冲区共享同一个底层数据数组。

缓冲区份片和数据共享

遍历子缓冲区,将每一个元素乘以11 来改变它。例如,5 会变成55。

for (int i = 0; i < slice.capacity(); i++) {

byte b = slice.get(i);

b *= 11;

slice.put(i, b);

}

原缓冲区中的内容:

buffer.position( 0 );

buffer.limit(buffer.capacity());

while (buffer.hasRemaining()) {

System.out.println(buffer.get());

}

结果表明只有在子缓冲区窗口中的元素被改变了:

java SliceBuffer

1

2

33

44

55

66

7

8

9

缓冲区片对于促进抽象非常有帮助。可以编写自己的函数处理整个缓冲区,而且如果想要将这个过程应用于子缓冲区上,只需取主缓冲区的一个片,并将它传递给您的函数。这比编写自己的函数来取额外的参数以指定要对缓冲区的哪一部分进行操作更容易。

只读缓冲区

只读缓冲区非常简单—可以读取它们,但是不能向它们写入。可以通过调用缓冲区的asReadOnlyBuffer() 方法,将任何常规缓冲区转换为只读缓冲区,这个方法返回一个与原缓冲区完全相同的缓冲区(并与其共享数据),只不过它是只读的。

只读缓冲区对于保护数据很有用。在将缓冲区传递给某个对象的方法时,您无法知道这个方法是否会修改缓冲区中的数据。创建一个只读的缓冲区可以保证该缓冲区不会被修改。

不能将只读的缓冲区转换为可写的缓冲区。

内存映射文件I/O

内存映射文件I/O 是一种读和写文件数据的方法,它可以比常规的基于流或者基于

通道的I/O 快得多。

内存映射文件I/O 是通过使文件中的数据神奇般地出现为内存数组的内容来完成的。这其初听起来似乎不过就是将整个文件读到内存中,但是事实上并不是这样。一般来说,只有文件中实际读取或者写入的部分才会送入(或者映射)到内存中。

内存映射并不真的神奇或者多么不寻常。现代操作系统一般根据需要将文件的部分映射为内存的部分,从而实现文件系统。Java 内存映射机制不过是在底层操作系统中可以采用这种机制时,提供了对该机制的访问。

尽管创建内存映射文件相当简单,但是向它写入可能是危险的。仅只是改变数组的单个元素这样的简单操作,就可能会直接修改磁盘上的文件。修改数据与将数据保存到磁盘是没有分开的。

将文件映射到内存

了解内存映射的最好方法是使用例子。在下面的例子中,要将一个FileChannel (它的全部或者部分)映射到内存中。为此将使用FileChannel.map() 方法。下面代码行将文件的前1024 个字节映射到内存中:

MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE, 0, 1024 );

map() 方法返回一个MappedByteBuffer,它是ByteBuffer 的子类。因此,可以像使用其他任何ByteBuffer 一样使用新映射的缓冲区,操作系统会在需要时负责执行行映射。

import java.io.RandomAccessFile;

import java.nio.MappedByteBuffer;

import java.nio.channels.FileChannel;

public class UseMappedFile {

private static final int start = 0;

private static final int size = 1024;

public static void main(String args[]) throws Exception {

RandomAccessFile raf = new RandomAccessFile("C:\\usemappedfile.txt", "rw");

FileChannel fc = raf.getChannel();

MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE, start, size);

mbb.put(0, (byte)97);

mbb.put(1023, (byte)122);

raf.close();

}

}

分散和聚集

分散/聚集I/O 是使用多个而不是单个缓冲区来保存数据的读写方法。

一个分散的读取就像一个常规通道读取,只不过它是将数据读到一个缓冲区数组中而不是读到单个缓冲区中。同样地,一个聚集写入是向缓冲区数组而不是向单个缓冲区写入数据。

分散/聚集I/O 对于将数据流划分为单独的部分很有用,这有助于实现复杂的数据格式。

分散/聚集I/O

通道可以有选择地实现两个新的接口:ScatteringByteChannel 和GatheringByteChannel。一个ScatteringByteChannel 是一个具有两个附加读方法的通道:

long read(ByteBuffer[] dsts);

long read(ByteBuffer[] dsts, int offset, int length);

这些long read() 方法很像标准的read 方法,只不过它们不是取单个缓冲区而是取一个缓冲区数组。

在分散读取中,通道依次填充每个缓冲区。填满一个缓冲区后,它就开始填充下一个。在某种意义上,缓冲区数组就像一个大缓冲区。

分散/聚集I/O 对于将数据划分为几个部分很有用。例如,您可能在编写一个使用消息对象的网络应用程序,每一个消息被划分为固定长度的头部和固定长度的正文。您可以创建一个刚好可以容纳头部的缓冲区和另一个刚好可以容难正文的缓冲区。当您将它们放入一个数组中并使用分散读取来向它们读入消息时,头部和正文将整齐地划分到这两个缓冲区中。

从缓冲区所得到的方便性对于缓冲区数组同样有效。因为每一个缓冲区都跟踪自己还可以接受多少数据,所以分散读取会自动找到有空间接受数据的第一个缓冲区。在这个缓冲区填满后,它就会移动到下一个缓冲区。

聚集写入

聚集写入类似于分散读取,只不过是用来写入。它也有接受缓冲区数组的方法:long write(ByteBuffer[] srcs);

long write(ByteBuffer[] srcs, int offset, int length);

聚集写对于把一组单独的缓冲区中组成单个数据流很有用。为了与上面的消息例子保持一致,您可以使用聚集写入来自动将网络消息的各个部分组装为单个数据流,以便跨越网络传输消息。

异步I/O

异步I/O 是一种没有阻塞地读写数据的方法。通常,在代码进行read() 调用时,代码会阻塞直至有可供读取的数据。同样,write() 调用将会阻塞直至数据能够写入。

另一方面,异步I/O 调用不会阻塞。相反,您将注册对特定I/O 事件的兴趣—可读的数据的到达、新的套接字连接,等等,而在发生这样的事件时,系统将会告诉您。

异步I/O 的一个优势在于,它允许您同时根据大量的输入和输出执行I/O。同步程序常常要求助于轮询,或者创建许许多多的线程以处理大量的连接。使用异步I/O,您可以监听任何数量的通道上的事件,不用轮询,也不用额外的线程。

异步I/O 中的核心对象名为Selector。Selector 就是您注册对各种I/O 事件的兴趣的地方,而且当那些事件发生时,就是这个对象告诉您所发生的事件。

创建一个Selector

Selector selector = Selector.open();

然后,将对不同的通道对象调用register() 方法,以便注册我们对这些对象中发生的I/O 事件的兴趣。register() 的第一个参数总是这个Selector。

打开一个ServerSocketChannel

为了接收连接,需要一个ServerSocketChannel。事实上,要监听的每一个端口都需要有一个ServerSocketChannel 。对于每一个端口,打开一个ServerSocketChannel,如下所示:

ServerSocketChannel ssc = ServerSocketChannel.open();

ssc.configureBlocking( false );

ServerSocket ss = ssc.socket();

InetSocketAddress address = new InetSocketAddress(ports[i]);

ss.bind( address );

第一行创建一个新的ServerSocketChannel,最后三行将它绑定到给定的端口。第二行将ServerSocketChannel 设置为非阻塞的。必须对每一个要使用的套接字通道调用这个方法,否则异步I/O 就不能工作。

选择键

下一步是将新打开的ServerSocketChannels 注册到Selector上。为此使用ServerSocketChannel.register() 方法,如下所示:

SelectionKey key = ssc.register(selector, SelectionKey.OP_ACCEPT);

register() 的第一个参数总是这个Selector。第二个参数是OP_ACCEPT,这里它指定我们想要监听accept 事件,也就是在新的连接建立时所发生的事件。这是适用于ServerSocketChannel 的唯一事件类型。

请注意对register() 的调用的返回值。SelectionKey 代表这个通道在此Selector 上的这个注册。当某个Selector 通知您某个传入事件时,它是通过提供对应于该事

件的SelectionKey 来进行的。SelectionKey 还可以用于取消通道的注册。

内部循环

现在已经注册了对一些I/O 事件的兴趣,下面将进入主循环。使用Selectors 的几乎每个程序都像下面这样使用内部循环:

int num = selector.select();

Set selectedKeys = selector.selectedKeys();

Iterator it = selectedKeys.iterator();

while (it.hasNext()) {

SelectionKey key = (SelectionKey)it.next();

// ... deal with I/O event ...

}

首先,调用Selector 的select() 方法。这个方法会阻塞,直到至少有一个已注册的事件发生。当一个或者更多的事件发生时,select() 方法将返回所发生的事件的数量。

接下来,调用Selector 的selectedKeys() 方法,它返回发生了事件的SelectionKey 对象的一个集合。

通过迭代SelectionKeys 并依次处理每个SelectionKey 来处理事件。对于每一个SelectionKey,必须确定发生的是什么I/O 事件,以及这个事件影响哪些I/O 对象。

监听新连接

程序执行到这里,仅注册了ServerSocketChannel,并且仅注册它们“接收”事件。为确认这一点,对SelectionKey 调用readyOps() 方法,并检查发生了什么类型的事件:

if(key.isAcceptable()) {

// Accept the new connection

}

可以肯定地说,readOps() 方法告诉我们该事件是新的连接。

接受新的连接

因为我们知道这个服务器套接字上有一个传入连接在等待,所以可以安全地接受它;也就是说,不用担心accept() 操作会阻塞:

ServerSocketChannel ssc = (ServerSocketChannel)key.channel(); SocketChannel sc = ssc.accept();

下一步是将新连接的SocketChannel 配置为非阻塞的。而且由于接受这个连接的目的是为了读取来自套接字的数据,所以我们还必须将SocketChannel 注册到Selector上,如下所示:

sc.configureBlocking(false);

SelectionKey newKey = sc.register(selector, SelectionKey.OP_READ);

注意使用register() 的OP_READ 参数,将SocketChannel 注册用于读取而不是接受新连接。

删除处理过的SelectionKey

在处理SelectionKey 之后,我们几乎可以返回主循环了。但是我们必须首先将处理过的SelectionKey 从选定的键集合中删除。如果我们没有删除处理过的键,那么它仍然会在主集合中以一个激活的键出现,这会导致我们尝试再次处理它。我们调用迭代器的remove() 方法来删除处理过的SelectionKey:

it.remove();

现在我们可以返回主循环并接受从一个套接字中传入的数据(或者一个传入的I/O 事件)了。

传入的I/O

当来自一个套接字的数据到达时,它会触发一个I/O 事件。这会导致在主循环中调用Selector.select(),并返回一个或者多个I/O 事件。这一次,SelectionKey 将被标记为OP_READ 事件,如下所示:

} else if (key.isReadable()) {

// Read the data

SocketChannel sc = (SocketChannel)key.channel();

}

与以前一样,我们取得发生I/O 事件的通道并处理它。

回到主循环

每次返回主循环,都要调用select 的Selector()方法,并取得一组SelectionKey。每个键代表一个I/O 事件。我们处理事件,从选定的键集中删除SelectionKey,然后返回主循环的顶部。

这个程序有点过于简单,因为它的目的只是展示异步I/O 所涉及的技术。在现实的应用程序中,您需要通过将通道从Selector 中删除来处理关闭的通道。而且您可能要使用多个线程。这个程序可以仅使用一个线程,因为它只是一个演示,但是在现实场景中,创建一个线程池来负责I/O 事件处理中的耗时部分会更有意义

感官动词和使役动词

感官动词和使役动词 默认分类2010-05-28 23:14:26 阅读46 评论0 字号:大中小订阅 使役动词,比如let make have就是3个比较重要的 have sb to do 没有这个用法的 只有have sb doing.听凭某人做某事 have sb do 让某人做某事 have sth done 让某事被完成(就是让别人做) 另外: 使役动词 1.使役动词是表示使、令、让、帮、叫等意义的不完全及物动词,主要有make(使,令), let(让), help(帮助), have(叫)等。 2.使役动词后接受词,再接原形不定词作受词补语。 He made me laugh. 他使我发笑。 I let him go. 我让他走开。 I helped him repair the car. 我帮他修理汽车。 Please have him come here. 请叫他到这里来。 3.使役动词还可以接过去分词作受词补语。 I have my hair cut every month. 我每个月理发。 4.使役动词的被动语态的受词补语用不定词,不用原形不定词。 (主)He made me laugh. 他使我笑了。 (被)I was made to laugh by him. 我被他逗笑了。 使役动词有以下用法: a. have somebody do sth让某人去做某事 ??i had him arrange for a car. b. have somebody doing sth.让某人持续做某事。 ??he had us laughing all through lunch. 注意:用于否定名时,表示“允许” i won't have you running around in the house. 我不允许你在家里到处乱跑。 ******** 小议“使役动词”的用法 1. have sb do 让某人干某事 e.g:What would you have me do? have sb/sth doing 让某人或某事处于某种状态,听任 e.g: I won't have women working in our company. The two cheats had the light burning all night long. have sth done 让别人干某事,遭受到 e.g:you 'd better have your teeth pulled out. He had his pocket picked. notes: "done"这个动作不是主语发出来的。 2.make sb do sth 让某人干某事 e.g:They made me repeat the story. What makes the grass grow?

The way常见用法

The way 的用法 Ⅰ常见用法: 1)the way+ that 2)the way + in which(最为正式的用法) 3)the way + 省略(最为自然的用法) 举例:I like the way in which he talks. I like the way that he talks. I like the way he talks. Ⅱ习惯用法: 在当代美国英语中,the way用作为副词的对格,“the way+ 从句”实际上相当于一个状语从句来修饰整个句子。 1)The way =as I am talking to you just the way I’d talk to my own child. He did not do it the way his friends did. Most fruits are naturally sweet and we can eat them just the way they are—all we have to do is to clean and peel them. 2)The way= according to the way/ judging from the way The way you answer the question, you are an excellent student. The way most people look at you, you’d think trash man is a monster. 3)The way =how/ how much No one can imagine the way he missed her. 4)The way =because

情态动词表推测用法总结(整理稿)

情态动词表推测用法总结 (一)情态动词表推测 能用于表推测的情态动词: 英语情态动词表推测的时态构成 (1)语气部分:(以下情态动词语气由强至弱) 肯定句:must、may、might(=could) 否定句:can’t(=couldn’t)、mayn’t、mightn’t 疑问句:can、could(语气更加委婉不确定) (2)时态部分: 一般现在或一般将来时间的推测:情态动词+be;情态动词+v. 对过去时间的推测:情态动词+have done 对正在进行的时态的推测:情态动词+be doing (二)表许可、请求 1、 can, could 2、may, might 3、must 4、shall 5、will, would 1. can, could 1) 用在疑问句中,表示一般的请求。两者不同在于:用could 要比用can更加委婉,特别是没有把握得到允许时。 Can I go with you? 我能和你一起去吗?Could I ask you something? 我能问你一个问题吗? 2) 用在陈述句中,表示许可:You can leave when you finish your work. 做完事情后你才可以走。 2. may, might 1) may用在疑问句中,也表示一般的请求。同can相比,may比较正式,常常表示尊敬之意。并且,may在疑问句中常用于第一人称,很少有May you…/they…这样的句型。Might比较少用在疑问句中,它表示请求的时候常用陈述句。 May I make a suggestion? 我可以提个建议? 2) 用在陈述句中,表示许可,此时与can, could相近。 You may have a rest before we set out again. 我们再次出发之前你可以先休息一下。 3. must 1) 表示说话人“不许”和“禁止”某人做某事,有很强的劝告语气。 Cars must not be parked here.此地不准停车。 2) Must的一般疑问句的回答有两种,表示肯定,用Yes, you must. 表示否定,用No, you needn’t. Must I post this letter tomorrow? 我明天必须得寄掉这封信吗? Yes, you must. 是的,你必须明天寄掉。

感官动词用法

感官动词用法 Prepared on 22 November 2020

“感官”动词用法小结 我们学过了五个与人的感觉有关的动词,它们是look,sound,smel l,taste,feel,我们可称之为“感官”动词。它们的用法有着许多相同点,但也有不同之处,现就此作一小结。 一、这五个动词均可作连系动词,后面接形容词作表语,说明主语所处的状态。其意思分别为“看/听/闻/尝/摸起来……”。除look 之外,其它几个动词的主语往往是物,而不是人。例如:These flowers smell very sweet. 这些花闻起来很香。 The tomatoes feel very soft. 这些西红柿摸起来很软。 The music sounds beautiful. 二、这些动词后面也可接介词like短语,like后面常用名词。例如: Her idea sounds like fun. 她的主意听起来很有趣。 He looks like his father. 三、这五个感官动词也可作实义动词,除look(当“看起来……”讲时)只能作不及物动词外,其余四个既可作及物动词也可作不及物动词,其主语通常是人。例如:

She smelt the meat. 她闻了闻那块肉。 I felt in my pocket for cigarettes. 我用手在口袋里摸香烟。 He tasted the soup and added some salt. Miss Wang asked us to look at the blackboard. 四、taste,smell作不及物动词时,可用于“taste / smell + of + 名词”结构,意为“有……味道 / 气味”。例如: The air in the room smells of earth. 房间里的空气有股泥土味。 The bread taste of sugar. 五、它们(sound除外)可以直接作名词,与have或take构成短语。例如: May I have a taste of the mooncakes 我可以尝一口这月饼吗 May I have a look at your photo 六、其中look,sound,feel还能构成“look / sound / feel + as if +从句”结构,意为“看起来/听起来/ 感觉好像……”。例如: It looks as if our class is going to win. 看来好像我们班要获胜了 It sounds as if the rain is very heavy.

感官动词的用法

感官动词 1.see, hear, listen to, watch, notice等词,后接宾语,再接省略to的动词不定式或ing形式。前者表全过程,后者表正在进行。句中有频率词时,以上的词也常跟动词原形。 注释:省略to的动词不定式--to do是动词不定式,省略了to,剩下do,其形式和动词原形是一样的,但说法不同。 see sb do sth 看到某人做了某事 see sb doing sth 看到某人在做某事 hear sb do sth 听到某人做了某事 hear sb doing sth 听到某人在做某事 以此类推... I heard someone knocking at the door when I fell asleep. (我入睡时有人正敲门,强调当时正在敲门) I heard someone knock at the door three times. (听到有人敲门的全过程) I often watch my classmates play volleyball after school. (此处有频率词often) (了解)若以上词用于被动语态,须将省略的to还原: see sb do sth----sb be seen to do sth hear sb do sth----sb be seen to do sth 以此类推... We saw him go into the restaurant. → He was seen to go into the restaurant. I hear the boy cry every day. → The boy is heard to cry every day. 2.感官动词look, sound, smell, taste, feel可当系动词,后接形容词。 He looks angry. His explanation sounds reasonable. The cakes smell nice.

The way的用法及其含义(二)

The way的用法及其含义(二) 二、the way在句中的语法作用 the way在句中可以作主语、宾语或表语: 1.作主语 The way you are doing it is completely crazy.你这个干法简直发疯。 The way she puts on that accent really irritates me. 她故意操那种口音的样子实在令我恼火。The way she behaved towards him was utterly ruthless. 她对待他真是无情至极。 Words are important, but the way a person stands, folds his or her arms or moves his or her hands can also give us information about his or her feelings. 言语固然重要,但人的站姿,抱臂的方式和手势也回告诉我们他(她)的情感。 2.作宾语 I hate the way she stared at me.我讨厌她盯我看的样子。 We like the way that her hair hangs down.我们喜欢她的头发笔直地垂下来。 You could tell she was foreign by the way she was dressed. 从她的穿著就可以看出她是外国人。 She could not hide her amusement at the way he was dancing. 她见他跳舞的姿势,忍俊不禁。 3.作表语 This is the way the accident happened.这就是事故如何发生的。 Believe it or not, that's the way it is. 信不信由你, 反正事情就是这样。 That's the way I look at it, too. 我也是这么想。 That was the way minority nationalities were treated in old China. 那就是少数民族在旧中

初中英语语法情态动词用法大全

情态动词 有can (could), may (might), must, have to, shall (should, will (would), dare (dared), need (needed), ought to等。情态动词无人称和数的变化;不能单独使用,必须与其后的动词原形构成谓语。 情态动词 句和疑问句中表示请求,允许,意为“能够” could 是can 的过去式,意为“能、会”,表示过去的水平在疑问句中表示委婉请求 may 表示请求、许可,意为“能够”表示推测,常用于肯定句中,意为“可能、也许” might 是may的过去式,表推测,常用于肯定句中,意为“可能、也许”must 表示主观看法,意为“必须、应该”表有把握的推测,用语肯定句dare 表示敢于,主要用于否定句和疑问句中 should 意为“应该”,表示要求和命令表示劝告、建议 had better 意为“最好”,表示建议 used to意为“过去常常,表示过去的动作、行为 考点一情态动词知识清单 情态动词有具体的词义,但也同助动词一样,需要与其他词语一起构成句子的谓语,另外情态动词没哟人称和数的变化,情态动词后必须跟动词原形。 1. can 的用法 (1)表示水平、许可、可能性。表示水平时一般译为“能、会”,即有种水平,尤其是生来具备的水平,此时may 和must 均不可代替它。(2)表示可能、能够。如:I can finish it in an hour. (3)表示许可,常在口语中。如:You can use my dictionary. (4)表示推测,意为“可能”,常用于否定句和疑问句中,此时can’t 译为“不可能”。 2.could的用法 (1)can的过去式,意为“能、会”,表示过去的水平。 (2)could 在疑问句中,表示委婉的语气,此时没有过去式的意思。 3.may的用法 (1)表示请求、许可,比can 正式, (2)表示推测,谈论可能性,意为“可能,或许”,一般用于肯定句中。 (3)may的过去式为might ,表示推测时。可能性低于may 。 4. must的用法 (1)must 表示主观看法,意为“必须、一定”。 (2)其否定形式mustn’t表示“一定不要”“千万别”“禁止, 不许”.(3)对must引导的疑问句,肯定回答为must,否定回答为needn’t或don’t have to . (4)must 表示有把握的推测,用于肯定句。当must 表示肯定的判断、推测时,其反意疑问句要用实际问句的助动词来构成。 She must have finished writing, hasn’t she? 5. need的用法 (1)need 表示需要、必须,主要用于否定句和疑问句中,其否定形式为needn’t,意为“没有必要,不必”。用need 提问时,肯定回答为must,否定回答为needn’t。如:----Need I stay here any longer? ----Yes, you must .-----No. you needn’t . (2) need 还能够作实义动词,此时有人称、数和时态的变化,后边多接动词不定式。 6. dare 的用法dare意为“敢、敢于”,用法近似于need,有两种词性: (1)dare 作为情态动词,多用于否定句、疑问句或条件句中,无第三人称单数形式,只有一般现在时和一般过去时。 (2)dare 作为实义动词,此时有人称、数即时态的变化。注意:在口语中,dare 的各种形式常与不带to 的不定式连用。Do you dare tell her what I said? 7. shall 的用法 (1)shall 表示征求对方意见(多用于第一、三人称), Shall we go out for a walk? (2)表示决心、警告、命令(多用于第二、三人称), No one shall bring your beepers or mobile phones in the exam. 8. should的用法 (1) should 意为“应该”,可表示劝告、建议、义务、责任等。We should protect the environment. (2) should (would)like to do sth. 表示“想要、愿意做某事”,常用于口语中。Would you like to go with me? 你想和我一起去吗? (3)Should have done 表示对过去动作的责备、批评。 You should have finished your homework. 9. will 的用法 will表示意愿、意志、打算,可用于多种人称。 I will help you if I’m free this afternoon. 10. had better 的用法 had better 意为“最好”,没有人称的变化,后面接不带to 的不定式,其否定形式为:had better not。 We had better go now. You had better not give the book to him. 考点二含有情态动词的疑问句 1. 由can、may、must构成的疑问句 (1)句式:Can/ May/ Must…+ 主语+动词原形+….?如:Can you repair the car? Could he be a good student? May I borrow your ruler?Must we clean the room now? (2)对may 引出的问句,能够有下列回答方式:Yes, of course. Yes, certainly.Sure.No, you mustn’t.No, you can’t. (3)对must引出的疑问句,回答为:Yes, …must.No,…needn’t/don’t have to. 2. will,would,shall 的用法 (1)will 在一般疑问句中表示客气的“请求、劝说”。would 是will 的过去式,语气更加客气、委婉。Would you show me your picture book? Will you please give me a call? (2)对will/ would you…的回答方式有以下几种:Yes, I will. (No, I won’t.)Sure . (I’m sorry , I can’t.)All right.Certainly. (No, thank you .) Yes, please. (3)shall引出的疑问句用于第一人称,表示征求对方意见或客气的请求。其回答方式有以下几种:Yes, please.All right. No, thank you. 考点三不同情态动词的否定意义也不同 1. (1)can’t可译为“不会”,如:I can’t play basketball. 我不会打篮球。(2)当句子表推测时,用can’t表达不可能,He can’t be ill. He is playing chess with Tom.(3)can’t还可用来回答“ May I …?”这样的问句。May I come in ?No, you mustn’t. / can’t.(4)can’t还可用于固定习语中。She can’t help crying. 2.may 的否定式为may not ,译成“可能不”,He may not be at home. 3.(1)mustn’t表示不许,不可。He mustn’t leave his room.

英语中感官动词的用法

英语中感官动词的用法 一、感官动词 1、感官动词(及物动词)有:see/notice/look at/watch/observe/listen to/hear/feel(Vt)/taste(Vt)/smell(Vt) 2、连缀动词(含感官不及物动词) be/get/become/feel/look/sound/smell/taste/keep/stay/seem/ appear/grow/turn/prove/remain/go/run 二、具体用法: 1、see, hear, smell, taste, feel,这五个动词均可作连系动词,后面接形容词作表语,说明主语所处的状态。其意思分别为"看/听/闻/尝/摸起来……"。除look之外,其它几个动词的主语往往是物,而不是人。 例如:These flowers smell very sweet.这些花闻起来很香。 The tomatoes feel very soft.这些西红柿摸起来很软。 2、这些动词后面也可接介词like短语,like后面常用名词。 例如:Her idea sounds like fun.她的主意听起来很有趣。 3、这五个感官动词也可作实义动词,除look(当"看起来……"讲时)只能作不及物动词外,其余四个既可作及物动词也可作不及物动词,此时作为实义动词讲时其主语一般为人。 例如:She smelt the meat.她闻了闻那块肉。 I felt in my pocket for cigarettes.我用手在口袋里摸香烟。 4、taste, smell作不及物动词时,可用于"t aste / smell + of +名词"结构,意为"有……味道/气味"。 例如:The air in the room smells of earth.房间里的空气有股泥土味。 5、它们(sound除外)可以直接作名词,与have或take构成短语。 例如:May I have a taste of the mooncakes?我可以尝一口这月饼吗?taste有品位、味道的意思。 例如:I don’t like the taste of the garlic.我不喜欢大蒜的味道。 She dresses in poor taste.她穿着没有品位。 look有外观,特色的意思,例:The place has a European look.此地具有欧洲特色。 feel有感觉,感受的意思,watch有手表,观察的意思。例:My watch is expensive.我的手表很贵。 6、其中look, sound, feel还能构成"look / sound / feel + as if +从句"结构,意为"看起来/听起来/感觉好像……"。 例如:It looks as if our class is going to win.看来我们班好像要获胜了。 7、感官动词+do与+doing的区别: see, watch, observe, notice, look at, hear, listen to, smell, taste, feel + do表示动作的完整性,真实性;+doing 表示动作的连续性,进行性。 I saw him work in the garden yesterday.昨天我看见他在花园里干活了。(强调"我看见了"

(完整版)the的用法

定冠词the的用法: 定冠词the与指示代词this ,that同源,有“那(这)个”的意思,但较弱,可以和一个名词连用,来表示某个或某些特定的人或东西. (1)特指双方都明白的人或物 Take the medicine.把药吃了. (2)上文提到过的人或事 He bought a house.他买了幢房子. I've been to the house.我去过那幢房子. (3)指世界上独一无二的事物 the sun ,the sky ,the moon, the earth (4)单数名词连用表示一类事物 the dollar 美元 the fox 狐狸 或与形容词或分词连用,表示一类人 the rich 富人 the living 生者 (5)用在序数词和形容词最高级,及形容词等前面 Where do you live?你住在哪? I live on the second floor.我住在二楼. That's the very thing I've been looking for.那正是我要找的东西. (6)与复数名词连用,指整个群体 They are the teachers of this school.(指全体教师) They are teachers of this school.(指部分教师) (7)表示所有,相当于物主代词,用在表示身体部位的名词前 She caught me by the arm.她抓住了我的手臂. (8)用在某些有普通名词构成的国家名称,机关团体,阶级等专有名词前 the People's Republic of China 中华人民共和国 the United States 美国 (9)用在表示乐器的名词前 She plays the piano.她会弹钢琴. (10)用在姓氏的复数名词之前,表示一家人 the Greens 格林一家人(或格林夫妇) (11)用在惯用语中 in the day, in the morning... the day before yesterday, the next morning... in the sky... in the dark... in the end... on the whole, by the way...

英语情态动词用法总结(完整)

英语情态动词用法总结(完整) 一、单项选择情态动词 1.--- Difficulties always go with me! --- Cheer up! If God closes door in front of you, there be a window opened for you. A.must B.would C.could D.can 【答案】A 【解析】 【详解】 考查情态动词辨析。句意:——困难总是伴随着我!——高兴点! 如果上帝在你面前关上了门,一定有一扇窗户为你打开。A. must必须;B. would将要;C. could能,会;D. can能,会。must表示对现在的状态推测时,意为“一定”,表示可能性很大的推测。符合语境。故选A。 【点睛】 1) must用在肯定句中表示较有把握的推测,意为"一定"。 2) must表对现在的状态或现在正发生的事情的推测时, must 后面通常接系动词be 的原形或行为动词的进行式。 3) must 表示对已发生的事情的推测时,must 要接完成式。 4) must表示对过去某时正发生的事情的推测,must 后面要接完成进行式。 5) 否定推测用can't。 本句中的。must表示对现在的状态推测时,意为一定,表示可能性很大的推测。符合第2点用法。 2.Paul did a great job in the speech contest. He many times last week. A.need have practised B.might practise C.must have practised D.could practise 【答案】C 【解析】 【详解】 考查情态动词。句意:保罗在演讲比赛中表现得很好。他上星期一定练习了很多次。must have done是对过去发生的动作最有把握的猜测,意思是“一定”。故C选项正确。 3.He is a bad-tempered fellow, but he ________ be quite charming when he wishes. A.shall B.should C.can D.must 【答案】C 【解析】 【详解】 考查情态动词辨析。句意:他是个脾气不好的家伙,但当他希望自己有魅力的时候,他可

感官动词的用法

1.感官动词用法之一:see, hear, listen to, watch, notice等词,后接宾语,再接动词原形或ing形式。前者表全过程,后者表正在进行。句中有频率词时,以上的词也常跟动词原形。 I heard someone knocking at the door when I fell asleep. (我入睡时有人正敲门) I heard someone knock at the door three times. (听的是全过程) I often watch my classmates play volleyball after school.(此处有频率词often) 若以上词用于被动语态,后面原有动词原形改为带to不定式: We saw him go into the restaurant. →He was seen to go into the restaurant. I hear the boy cry every day. →The boy is heard to cry every day. 2.感官动词用法之二:look, sound, smell, taste, feel可当系动词,后接形容词: He looks angry. It sounds good. The flowers smell beautiful. The sweets taste sweet. The silk feels soft. I felt tired. They all looked tired. 这些动词都不用于被动语态。如:The sweets are tasted sweet.是个病句。注意:如果加介词like,则后不可接形容词,而接名词或代词:

“the way+从句”结构的意义及用法

“theway+从句”结构的意义及用法 首先让我们来看下面这个句子: Read the followingpassageand talkabout it wi th your classmates.Try totell whatyou think of Tom and ofthe way the childrentreated him. 在这个句子中,the way是先行词,后面是省略了关系副词that或in which的定语从句。 下面我们将叙述“the way+从句”结构的用法。 1.the way之后,引导定语从句的关系词是that而不是how,因此,<<现代英语惯用法词典>>中所给出的下面两个句子是错误的:This is thewayhowithappened. This is the way how he always treats me. 2.在正式语体中,that可被in which所代替;在非正式语体中,that则往往省略。由此我们得到theway后接定语从句时的三种模式:1) the way+that-从句2)the way +in which-从句3) the way +从句 例如:The way(in which ,that) thesecomrade slookatproblems is wrong.这些同志看问题的方法

不对。 Theway(that ,in which)you’re doingit is comple tely crazy.你这么个干法,简直发疯。 Weadmired him for theway inwhich he facesdifficulties. Wallace and Darwingreed on the way inwhi ch different forms of life had begun.华莱士和达尔文对不同类型的生物是如何起源的持相同的观点。 This is the way(that) hedid it. I likedthe way(that) sheorganized the meeting. 3.theway(that)有时可以与how(作“如何”解)通用。例如: That’s the way(that) shespoke. = That’s how shespoke.

【英语】情态动词知识点(大全)

【英语】情态动词知识点(大全) 一、初中英语情态动词 1.—Look! The woman at the school gate ______be her headmaster. —No, it ______ be her. She is holding a meeting in the office now. A. must; can't B. must; mustn't C. can; needn't D. may; mustn't 【答案】 A 【解析】【分析】句意:——看!学校门口的那个妇女一定是她的校长。——不,不可能是她。第一空,must表示“一定”;空二,根据She is holding a meeting in the office now. 她现在正在办公室开会,可知,不可能是校长,用can't,表示不可能。故选A。 【点评】考查情态动词辨析。注意不同情态动词的用法,注意理解句意。 2.—I've bought all the food for the party tonight. —Thank you. Then I _______ go to the supermarket. A. can't B. mustn't C. shouldn't D. needn't 【答案】 D 【解析】【分析】句意:-今天晚上我买好了所有晚会的食物。-谢谢你。那么我就不必去超市了。A. can't不能;B. mustn't不准,不允许,禁止;C. shouldn't不应该;D. needn't 不必。你买好了,我就不必去买了。故选D。 【点评】考查情态动词,表示不必要应使用need的形式,要牢记不同的情态动词的意思。 3.Teenagers allowed to drive . A. should not be B. should be not C. not should be 【答案】A 【解析】【分析】句意:年轻人不应该被允许驾车。Should是情态动词,其否定表达一般在在后面加副词not,故选A。 【点评】此题考查含有情态动词的被动语态的否定形式。平时注意记忆情态动词的记忆和用法。 4.—Where is Mom now? —I'm not sure. She _________ be in the kitchen. A. shall B. may C. need D. must 【答案】 B 【解析】【分析】句意:—妈妈现在在哪里?—我不确定,她也许在厨房。A. shall 将要; B. may 可以,可能; C. need 需要; D. must必须,一定;根据I'm not sure可知是不确定;故选B。 【点评】此题考查情态动词表推测的用法。 5.—Who it be that is knocking at the door? —It be father, but I'm not sure.

(完整版)初中英语感官动词的用法

初中英语感官动词的用法 一、感官动词 1、感官动词(及物动词)有:see/notice/look at/watch/observe/listen to/hear/feel(Vt)/taste(Vt)/smell(Vt) 2、连缀动词(含感官不及物动词) : be/get/become/feel/look/sound/smell/taste/keep/stay/seem/ appear/grow/turn/prove/remain/go/run 二、具体用法: 1、see, hear, smell, taste, feel,这五个动词均可作连系动词,后面接形容词作表语,说明主语所处的状态。其意思分别为"看/听/闻/尝/摸起来……"。除look之外,其它几个动词的主语往往是物,而不是人。 例如:These flowers smell very sweet.这些花闻起来很香。 The tomatoes feel very soft.这些西红柿摸起来很软。 2、这些动词后面也可接介词like短语,like后面常用名词。 例如:Her idea sounds like fun.她的主意听起来很有趣。 3、这五个感官动词也可作实义动词,除look(当"看起来……"讲时)只能作不及物动词外,其余四个既可作及物动词也可作不及物动词,此时作为实义动词讲时其主语一般为人。 例如:She smelt the meat.她闻了闻那块肉。 I felt in my pocket for cigarettes.我用手在口袋里摸香烟。 4、taste, smell作不及物动词时,可用于"taste / smell + of +名词"结构,意为"有……味道/气味"。 例如:The air in the room smells of earth.房间里的空气有股泥土味。 5、它们(sound除外)可以直接作名词,与have或take构成短语。 例如:May I have a taste of the mooncakes?我可以尝一口这月饼吗?taste有品位、味道的意思。 例如:I don’t like the taste of the garlic. 我不喜欢大蒜的味道。 She dresses in poor taste.她穿着没有品位。 look有外观,特色的意思,例:The place has a European look.此地具有欧洲特色。 feel有感觉,感受的意思,watch有手表,观察的意思。例:My watch is expensive.我的手表很贵。 6、其中look, sound, feel还能构成"look / sound / feel + as if +从句"结构,意为"看起来/听起来/感觉好像……"。 例如:It looks as if our class is going to win.看来我们班好像要获胜了。 7、感官动词+do与+doing的区别: see, watch, observe, notice, look at, hear, listen to, smell, taste, feel + do 表示动作的完整性,真实性;+doing 表示动作的连续性,进行性。 I saw him work in the garden yesterday. 昨天我看见他在花园里干活了。(强调"我看见了"这个事实) I saw him working in the garden yesterday.昨天我见他正在花园里干活。(强调"我见他正干活"这个动作)

way 用法

表示“方式”、“方法”,注意以下用法: 1.表示用某种方法或按某种方式,通常用介词in(此介词有时可省略)。如: Do it (in) your own way. 按你自己的方法做吧。 Please do not talk (in) that way. 请不要那样说。 2.表示做某事的方式或方法,其后可接不定式或of doing sth。 如: It’s the best way of studying [to study] English. 这是学习英语的最好方法。 There are different ways to do [of doing] it. 做这事有不同的办法。 3.其后通常可直接跟一个定语从句(不用任何引导词),也可跟由that 或in which 引导的定语从句,但是其后的从句不能由how 来引导。如: 我不喜欢他说话的态度。 正:I don’t like the way he spoke. 正:I don’t like the way that he spoke. 正:I don’t like the way in which he spoke. 误:I don’t like the way how he spoke. 4.注意以下各句the way 的用法: That’s the way (=how) he spoke. 那就是他说话的方式。 Nobody else loves you the way(=as) I do. 没有人像我这样爱你。 The way (=According as) you are studying now, you won’tmake much progress. 根据你现在学习情况来看,你不会有多大的进步。 2007年陕西省高考英语中有这样一道单项填空题: ——I think he is taking an active part insocial work. ——I agree with you_____. A、in a way B、on the way C、by the way D、in the way 此题答案选A。要想弄清为什么选A,而不选其他几项,则要弄清选项中含way的四个短语的不同意义和用法,下面我们就对此作一归纳和小结。 一、in a way的用法 表示:在一定程度上,从某方面说。如: In a way he was right.在某种程度上他是对的。注:in a way也可说成in one way。 二、on the way的用法 1、表示:即将来(去),就要来(去)。如: Spring is on the way.春天快到了。 I'd better be on my way soon.我最好还是快点儿走。 Radio forecasts said a sixth-grade wind was on the way.无线电预报说将有六级大风。 2、表示:在路上,在行进中。如: He stopped for breakfast on the way.他中途停下吃早点。 We had some good laughs on the way.我们在路上好好笑了一阵子。 3、表示:(婴儿)尚未出生。如: She has two children with another one on the way.她有两个孩子,现在还怀着一个。 She's got five children,and another one is on the way.她已经有5个孩子了,另一个又快生了。 三、by the way的用法

相关文档
最新文档