精华内容
下载资源
问答
  • 动词是用来表示动作或状态的词。动词是英语中最重要的词汇,是句子的核心。...除单三人称的一般现在时,其它人称作主语,动词用原形。2.将来时态shall, will, should, would之后用动词原形。3.祈使...
    1f260f66da48a2290886f53f1729d7cc.gif

    f9e1d235083e24be2deaac477dcc7976.png

    动词是用来表示动作或状态的词。动词是英语中最重要的词汇,是句子的核心。几乎每个句子都必须有一个动词来担当谓语,说明主语是什么或做什么。因此,学好动词对提高自己的英语水平具有重要意义。今天我们一起来看一下吧~

    1动词原形及不定式的用法 动词原形的用法1.除单三人称的一般现在时,其它人称作主语,动词用原形。2.将来时态shall, will, should, would之后用动词原形。3.祈使句句子开头用动词原形。 4.助动词do, does, did之后用动词原形。 5.情态动词can、could、may, might, have/has to, must, need, dare ,ought to之后用动词原形。6.使役动词let、 make、have 之后用动词原形。 7.感官动词see、watch、notice、hear、 feel、find之后用动词原形(说明动作已经结束)。8.had better 之后用动词原形。9.why / why not 之后用动词原形。10.would rather dosth . than do sth . 11.prefer to dosth. rather than do sth./ prefer doing sth. to doing sth.  动名词的用法1.介词之后动词要用动名词形式(动词+ing) 2.部分动词之后的动词只能用动名词形式:enjoy, finish, practice, mind, spend,dislike, find , keep3.部分短语后省略了介词in: have fun/ problems/ difficulties/trouble /a good time doing  be busy doing, 4.be worth doing,  can’t help doing , feel like doing , do some doing sth.5.下面这些动词既可跟动名词又可跟不定式:like / love / hatedoing (doing表示习惯)(to do表示具体的动作) stop doing(表示停止)(doing表示开始做不定式的动作);remember , forget (不定式表示未做;动名词表示已做);try (doing表示试着做;to do表示努力做);  go on (doing继续做相同的事 to do继续做不同的事) begin , start (to do与doing区别不大) ; need (人作主语用to do ;物作主语用doing表示被动);mean(人作主语用to do表示“打算做”;事 / 物作主语用doing表示“意味着”);这些动词既可跟动词原形,又可跟ing形式:see,watch,hear.notice (用原形是指动作结束,ing表示动作正在进行)         动词不定式的用法1.ask/tell/want/order/teach/wish/wouldlike/invite/encourage sb. to do sth.2.ask/tell/want/order/teach/wish/wouldlike/invite/encourage sb. not to do sth. 3.Help...(to) dosth.  4.主系表 + 不定式(to do)5.主系表 +for sb + 不定式(to do)  6.部分动词既可跟动名词又可跟不定式:(同动名词 6)7.疑问词+不定式(to do)可以把复合句变为简单句,(to  = 主语+will/would/can) 2英语动词双写规则及常见动词 英语动词双写规则必须同时满足以下 4 个条件1) 该动词的发音以重读闭音节结尾; 重读闭音节就是指在一个音节中,元音字母不是发它本身的字母音,以辅音字母结尾,而且是重读音节的音节。比如apple划音节就应该是ap/ple前面那个ap是一个音节以辅音字母结尾就是闭音节。2)结尾闭音节符合“1 个辅音字母 + 1 个元音字母 + 1 个辅音字母”3)结尾的辅音字母不是"x";4)该动词的拼写规则没有例外;如:sit---sitting/begin---beginning(重读在gin这个音节上,相当与把gin改成双写的) 像travel这种重读不在的vel,可以为travelled,也可以是traveled.举两个很经典的例子:forbid---forbidding(重读闭音节,双写)prohibit---prohibiting(重读在第二音节,非重读闭音节,不双写)  情态助动词用法简述1.dare, need① dare作情态动词用时, 常用于疑问句、否定句和条件从句中, 过去式形式为dared。 例:How dare you say such horrible words to me?② need 作情态动词用时, 常用于疑问句、否定句,相当于肯定句中一般用must, have to, ought to, should。例:Need I finish the work today?Yes, you must. / No, you needn’t.③ dare和 need作实义动词用时,有人称、时态和数的变化,在肯定句中,dare后面常接带to的不定式,在疑问句和否定句中,dare后面可接带to或不带to的不定式,而need后面只能接带to的不定式。例 She doesn’t dare (to)answer.2.shall, should① shall 用于第一人称,征求对方的意见。例:What shall I do ?② shall 用于第二、三人称,表示说话人给对方的命令、警告、允诺或威胁。例:You shall be punished,you bad boy!3.will, would①表示请求、建议等,使用would使语气更加缓和。例:Would you give me a cup of coffee, please?②表示意志、愿望和决心。例:I will never do that again.③ would表示过去反复发生的动作或某种倾向。例:During that summer, he would visit me everyother day. ④表示估计和猜想。例:It would be about may when she come back toChina.4.should, ought to① should表示“应该”,ought to表示义务或责任,语气更严重。例:I should help her because she is introuble.②表示劝告、建议和命令,should, ought to可通用,但在疑问句中常用should。例:Should I open the window?③表示推测, should , ought to (客观推测), must(主观推测)。例She must pass the exam. (断定)  3能充当谓语的动词1.定义:能够充当句子谓语的动词就是主动词(main verb) 例:Reading makes a full man. (make在这句话里为主动词)2.类别:①连系动词:用来表示身份,状态,性质,特征,无法单独使用,和表语一起构成系表结构A 状态系动词:包括be动词,continue,keep,stay,remain,stand等例:The girl keeps crying.(持续的哭的状态)B 表象系动词:表示“看起来像”,包括 look,seem,appear等例:She looks like her mother.C 感官系动词:与人的五感有关,嗅觉,听觉,视觉,味觉,触觉,包括feel,look,sound,smell,taste例:It taste good.D 变化系动词:表示从一种状态变化至另一种状态,包括get,become,turn,dome,grow,fall等例:Yesterday's little girl becomes today's beautiful woman.②实义动词:及物动词和不及物动词例:I agree with you.(及物)The game begins.(不及物)* 实义动词又分为短暂性动词和持续性动词,短暂性动词一般不用while引导,可做状语表示一段时间,但持续性动词不可以。4常见主动表被动不定式作后置定语,放在被修饰词后面,不定式与前面被修饰的名词或代词有动宾关系,又在句子中与另一名词或代词有主谓关系,此时,不定式要用主动表被动含义。例如:I have much workto do. 我有许多要做的事情。(与work有动宾关系,与I有主谓关系)Jay is looking fora room to live in.  Jay在找一间住的房间。(与room有动宾关系,与Jay 有主谓关系)She has a familyto support.她要维持一个家庭。(与family有动宾关系,与she有主谓关系) 不定式修饰作表语和宾语补足语的形容词时如下difficult, easy,comfortable (舒适的、安逸的),convenient(便利的,方便的),hard, cheap,expensive, 等此时结构为:主语+系动词+形容词 + 不定式;动词+宾语+形容词+不定式。例如:The question isquite difficult to answer. 这个问题真的很难以回答。The work is easyto do. 这项工作很轻松。I found the buscomfortable to ride in. 我觉得这种公交车坐着很舒服。

     • END • 

    c27a2892313c3f9a2ce3d56d4dd53551.gif

    还没有关注笨笨口语视频号

    记得关注并点赞哦

    更多实用干货

    ☟ ☟ ☟ ☟ ☟ ☟

    b1160dbba33a73b6b002bf52a19dfcd7.gif

    可☟ 以☟ 点☟ 点☟ “在看”☟ 吗☟

    谢 ☟ 谢☟ 你☟

     Here☟

    ☟ ☟ ☟

    展开全文
  • 上一节已经分析了了在service方法下的事物创建过程以及其后续处理工作,当然还缺少真正创建事物的分析,本篇接续。先来回顾一下事物创建的代码片段: try { boolean newSynchronization = ...
    1.引

    上一节已经分析了了在单service单方法下的事物创建过程以及其后续处理工作,当然还缺少真正创建事物的分析,本篇接续。先来回顾一下事物创建的代码片段:

    try {
        boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
        // 创建DefaultTransactionStatus对象实例
        DefaultTransactionStatus status = newTransactionStatus(
                definition,
                transaction,
                true,
                newSynchronization,
                debugEnabled,
                suspendedResources);
        // 开启事物
        doBegin(transaction, definition);
        // 初始化事务同步。
        prepareSynchronization(status, definition);
        return status;
    }
    
    2.创建DefaultTransactionStatus对象
    /**
     * 创建DefaultTransactionStatus实例
     * Create a TransactionStatus instance for the given arguments.
     */
    protected DefaultTransactionStatus newTransactionStatus(
            TransactionDefinition definition,
            @Nullable Object transaction,
            boolean newTransaction,
            boolean newSynchronization,
            boolean debug,
            @Nullable Object suspendedResources) {
    
        boolean actualNewSynchronization = newSynchronization && !TransactionSynchronizationManager.isSynchronizationActive();
    
        return new DefaultTransactionStatus(
                transaction,
                newTransaction,
                actualNewSynchronization,
                definition.isReadOnly(),
                debug,
                suspendedResources);
    }
    
    //构造方法
    public DefaultTransactionStatus(
    			@Nullable Object transaction,
    			boolean newTransaction,
    			boolean newSynchronization,
    			boolean readOnly,
    			boolean debug,
    			@Nullable Object suspendedResources) {
    
        this.transaction = transaction;
        this.newTransaction = newTransaction;
        this.newSynchronization = newSynchronization;
        this.readOnly = readOnly;
        this.debug = debug;
        this.suspendedResources = suspendedResources;
    }
    
    3.开启事物

    针对不同的事物管理器会有不同的事物开启过程,本例我们只看DataSourceTransactionManager下的事物开启过程:

    protected void doBegin(Object transaction, TransactionDefinition definition) {
        DataSourceTransactionObject txObject = (DataSourceTransactionObject) transaction;
        Connection con = null;
    
        try {
            // ConnectionHolder简介:包装JDBC连接的资源容器。DataSourceTransactionManager将该类的实例绑定到特定数据源的线程。
            // 如果txObject没有ConnectionHolder或者connectionHolder并没有加同步锁,则为其设置ConnectionHolder并加同步锁
            if (!txObject.hasConnectionHolder() || txObject.getConnectionHolder().isSynchronizedWithTransaction()) {
                // 从数据源获取连接
                Connection newCon = obtainDataSource().getConnection();
                if (logger.isDebugEnabled()) {
                    logger.debug("Acquired Connection [" + newCon + "] for JDBC transaction");
                }
                // 设置DataSourceTransactionObject的ConnectionHolder对象
                txObject.setConnectionHolder(new ConnectionHolder(newCon), true);
            }
    
            // 设置同步锁标记
            txObject.getConnectionHolder().setSynchronizedWithTransaction(true);
    
            // 从ConnectionHolder对象中获取连接
            con = txObject.getConnectionHolder().getConnection();
    
            // 设置连接的只读属性和数据库事物隔离级别
            Integer previousIsolationLevel = DataSourceUtils.prepareConnectionForTransaction(con, definition);
            txObject.setPreviousIsolationLevel(previousIsolationLevel);
    
            // Switch to manual commit if necessary. This is very expensive in some JDBC drivers,
            // so we don't want to do it unnecessarily
            // (for example if we've explicitly configured the connection pool to set it already).
            // 如果需要,切换到手动提交。
            // 在某些JDBC驱动程序中,这是非常昂贵的,所以我们不想做不必要的事情
            // (例如,如果我们已经显式地配置了连接池来设置它)。
            // 所以:如果连接设置了自动提交,这里要将其转换为手动提交
            if (con.getAutoCommit()) {
                txObject.setMustRestoreAutoCommit(true);
                if (logger.isDebugEnabled()) {
                    logger.debug("Switching JDBC Connection [" + con + "] to manual commit");
                }
                con.setAutoCommit(false);
            }
    
            // 设置当前事物只读,如果定义了只读属性为true
            prepareTransactionalConnection(con, definition);
            // 设置当前事物为已激活
            txObject.getConnectionHolder().setTransactionActive(true);
    
            // 设置超时时间(如果超时时间不等于默认超时时间)
            int timeout = determineTimeout(definition);
            if (timeout != TransactionDefinition.TIMEOUT_DEFAULT) {
                txObject.getConnectionHolder().setTimeoutInSeconds(timeout);
            }
    
            // Bind the connection holder to the thread.
            // 绑定ConnectionHolder到当前线程
            if (txObject.isNewConnectionHolder()) {
                // 即TransactionSynchronizationManager类的resources对象:
                // 该对象保存每个事物线程对应的connection或session等类型的资源
                // private static final ThreadLocal<Map<Object, Object>> resources = new NamedThreadLocal<>("Transactional resources");
                TransactionSynchronizationManager.bindResource(obtainDataSource(), txObject.getConnectionHolder());
            }
        }
    
        // 异常处理
        catch (Throwable ex) {
            if (txObject.isNewConnectionHolder()) {
                DataSourceUtils.releaseConnection(con, obtainDataSource());
                txObject.setConnectionHolder(null, false);
            }
            throw new CannotCreateTransactionException("Could not open JDBC Connection for transaction", ex);
        }
    }
    

    该方法也比较简单,相信大家都能看懂,其中关于ConnectionHolder(前文没有讲解)对象,也已经在注释里做过介绍了。

    3.1 获取数据库连接以及DataSource初始化

    该过程分为两个部分,首先获取数据源,然后从数据源获取数据库连接。

    protected DataSource obtainDataSource() {
        // 获取数据源
        DataSource dataSource = getDataSource();
        Assert.state(dataSource != null, "No DataSource set");
        return dataSource;
    }
    

    那这里的数据源是如何被注入的呢?在配置文件中配置了DataSourceTransactionManager事物管理器,并为该事物管理器提供了dataSource属性,那么综合我们之前对IOC容器的分析,在该类中应该提供了DataSource的set方法。如下:

    public void setDataSource(@Nullable DataSource dataSource) {
        if (dataSource instanceof TransactionAwareDataSourceProxy) {
            this.dataSource = ((TransactionAwareDataSourceProxy) dataSource).getTargetDataSource();
        }
        else {
            this.dataSource = dataSource;
        }
    }
    

    这样IOC容器在初始化DataSourceTransactionManager的时候,就会注入dataSource的实例了。而具体的获取数据库连接的过程已经超出我们的分析范围了,感兴趣的同学可以自己跟踪代码。获取到数据库连接之后,紧接着就要为DataSourceTransactionObject设置ConnectionHolder。ConnectionHolder是包装了JDBC连接的资源容器。

    3.2 预设置数据库只读属性和数据库事物隔离级别
    public static Integer prepareConnectionForTransaction(Connection con, @Nullable TransactionDefinition definition) throws SQLException {
        Assert.notNull(con, "No Connection specified");
        // Set read-only flag.
        // 设置只读标记
        /**
         * 假如:@Transactional(propagation = Propagation.REQUIRED,readOnly = true)
         * 定义了开启事物,又将readOnly属性设置为true,则这里要将数据库连接的readOnly设置为true
         * 这样做可以减少数据库开销,只读数据库连接将占用更少的数据库开销
         */
        if (definition != null && definition.isReadOnly()) {
            try {
                if (logger.isDebugEnabled()) {
                    logger.debug("Setting JDBC Connection [" + con + "] read-only");
                }
                con.setReadOnly(true);
            } catch (SQLException | RuntimeException ex) {
                // 异常处理,这里可能会引发连接超时,直接抛出异常
                // 也有可能数据库不支持read-only属性,但是此种情况无需特殊处理,这里也只打印了一行日志而已
                Throwable exToCheck = ex;
                while (exToCheck != null) {
                    if (exToCheck.getClass().getSimpleName().contains("Timeout")) {
                        // Assume it's a connection timeout that would otherwise get lost: e.g. from JDBC 4.0
                        throw ex;
                    }
                    exToCheck = exToCheck.getCause();
                }
                // "read-only not supported" SQLException -> ignore, it's just a hint anyway
                logger.debug("Could not set JDBC Connection read-only", ex);
            }
        }
    
        // Apply specific isolation level, if any.
        // 如果指定了事物隔离级别,且该隔离级别不等于Spring事物数据库默认隔离级别,则在此设置
        // Spring事物数据库默认隔离级别为-1,即使用底层数据库的事物隔离级别
        Integer previousIsolationLevel = null;
        if (definition != null && definition.getIsolationLevel() != TransactionDefinition.ISOLATION_DEFAULT) {
            if (logger.isDebugEnabled()) {
                logger.debug("Changing isolation level of JDBC Connection [" + con + "] to " + definition.getIsolationLevel());
            }
            // 从当前数据库连接获取数据库事物隔离级别
            int currentIsolation = con.getTransactionIsolation();
            // 如果我们自己配置的数据库事物隔离级别与数据库连接获取的数据库事物隔离级别不相同,
            // 则更改连接的数据库事物隔离级别
            // 从这里也可以看出数据库连接资源的宝贵性啊...
            if (currentIsolation != definition.getIsolationLevel()) {
                previousIsolationLevel = currentIsolation;
                con.setTransactionIsolation(definition.getIsolationLevel());
            }
        }
    
        return previousIsolationLevel;
    }
    
    3.3 设置数据库的autoCommit属性为false
    if (con.getAutoCommit()) {
        txObject.setMustRestoreAutoCommit(true);
        if (logger.isDebugEnabled()) {
            logger.debug("Switching JDBC Connection [" + con + "] to manual commit");
        }
        con.setAutoCommit(false);
    }
    

    假如从数据源获取到的链接其autoCommit属性为true,则将其改为false。因为到这里我们已经要开启真正的事物,假如依然保持autoCommit属性为true,而恰巧在事物提交之后,业务方法就抛出了异常,那么回滚将变得很难。

    4.初始化事物同步
    /**
     * 根据需要初始化事务同步。
     * Initialize transaction synchronization as appropriate.
     */
    protected void prepareSynchronization(DefaultTransactionStatus status, TransactionDefinition definition) {
        if (status.isNewSynchronization()) {
            // 设置事物激活状态
            TransactionSynchronizationManager.setActualTransactionActive(status.hasTransaction());
            // 设置事物隔离级别
            TransactionSynchronizationManager.setCurrentTransactionIsolationLevel(
                    definition.getIsolationLevel() != TransactionDefinition.ISOLATION_DEFAULT ? definition.getIsolationLevel() : null);
            // 设置事物只读属性
            TransactionSynchronizationManager.setCurrentTransactionReadOnly(definition.isReadOnly());
            // 设置事物名称
            TransactionSynchronizationManager.setCurrentTransactionName(definition.getName());
            // 激活当前线程的事务同步。事务管理器在事务开始时调用。
            TransactionSynchronizationManager.initSynchronization();
        }
    }
    

    最后涉及到一个事物同步回调接口的概念:如果为当前事物设置了回调接口,那么事物管理器会在事物执行期间调用该接口。例如:为下面的业务方法注册了TransactionSynchronizationAdapter接口,那么事物管理器会在事物执行期间调用我们已经实现的TransactionSynchronizationAdapter接口的方法。

    @Override
    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = RuntimeException.class,readOnly = false)
    public void delete() throws RuntimeException {
        TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
            @Override
            public void beforeCommit(boolean readOnly) {
                System.out.println("==回调,事物提交之前");
                super.beforeCommit(readOnly);
            }
    
            @Override
            public void afterCommit() {
                System.out.println("==回调,事物提交之后");
                super.afterCommit();
            }
    
            @Override
            public void beforeCompletion() {
                super.beforeCompletion();
                System.out.println("==回调,事物完成之前");
            }
    
            @Override
            public void afterCompletion(int status) {
                super.afterCompletion(status);
                System.out.println("==回调,事物完成之后");
            }
        });
    
        System.out.println("==调用AccountService的dele方法\n");
        jdbcTemplate.update(insert_sql);
    }
    
    展开全文
  • oo第一单元总结

    2019-03-26 23:43:00
    第一次作业自己虽然很想向着面向对象的方向上写,但写出来还是很C语言的程序。从头到尾扫描字符串,扫到加减号便认为接下来是一项,再用正则表达式去分情况匹配出这一项。用Hashmap来存储数据,方便合并同类项。...

    第一次作业

    1. 第一次作业自己虽然很想向着面向对象的方向上写,但写出来还是很C语言式的程序。从头到尾扫描字符串,扫到加减号便认为接下来是一项,再用正则表达式去分情况匹配出这一项。用Hashmap来存储数据,方便合并同类项。最后套一个try-catch捕获没有考虑到的可能的异常。最后写了将近三百行,而我看见的代码基本就两百行解决了。关键在预处理上没有下功夫,导致扫字符串的时候要考虑的情况很多。

      (1)基于度量分析程序

      

       (2)方法复杂度分析  

       

      2.第一次作业总结

      (1)自己的bug:第一次的作业测试自己感觉还是已经做得很不错了(虽然强测爆了)。最后一天晚上还静态的看了一遍自己的代码。尽可能多地推理可能的情况,堵上了很多考虑不周的地方。WF的问题已经考虑得很好了。第一次互测我被找出了一个bug,但是就是这一个bug害得我强测被爆。所以我觉得静态的检查要和动态的输入输出检查结合起来才能让测试更充分。而且往往都是在边界问题上出现bug。

      (2)别人的bug:第一次感觉大家都在找WF的bug,我也没有很认真地去看别人的代码。只是找了几个大家都试过的WF式的代码。

     

    第二次作业

      1.第二次作业大概花了半天的时间构思,还是努力地想往面向对象上写。但是到最后还是只是为了第二次而写。丝毫没有考虑到程序的可扩展性。自定义了一个PolyNode类来存储产生的数据。同样是为了方便进行合并同类项。重写了PolyNode的Hashcode方法和equals方法。然后和第一次一样分情况用正则表达式来匹配。现在想起来当时完全可以把每一项切开来处理,可以使程序要简单不少。

      (1)基于度量的分析

      

      (2)方法复杂度

      

      2.第二次作业总结

      (1)自己的bug:很可惜这次强测还是有问题。在输出化简的时候很天真地直接把 “1*”化简掉,感觉很难受。

      (2)别人的bug:第二次有同学分享的自动对拍的程序。就变成了跑数据找不同了。还是没有静下心好好看别人的代码。感觉这点上做得很不好,只是为了找bug而找bug。

     

    第三次作业

      1.第三次作业从周六到周二,将近四天的时间我都在想怎样用oo的思想写出来这次的作业。说实话,这四天感觉自己每天大脑都处在高度紧张的状态下。但是最后我还是用栈来暴力解决。和面向对象差得有点远。最后感觉自己真的写不动了,最后截止时间延长了我也没有熬夜debug。直到昨天晚上才de完bug。

      (1)基于度量的分析

      

      (2)类复杂度

      

      2.第三次作业总结

      (1)无效作业1/5

      (2)有时候想得太多也不是一件好事,如果当初我想了一天之后硬着头皮写下去我想怎么也不会成为无效作业。但是我白白想了四天到头来还是一个无效作业。我佛了。  

     

    个人总结

      感觉只要不是太关注成绩,oo不至于过得很难受。虽然我花了那么大的时间的精力做第三次作业,成了无效作业不说,感觉自己的收获并不是太大。因为花了太大的精力在做题和成绩上,没有静下来去看优秀的代码,去在网上找资料,去总结自己这几周的得失。就连课上的PPT都没有好好的过一遍。oo还是得靠自己找方法,找途径了。

      至于不少人都在讨论oo这门课的好与坏,可能是自己的能力不够,感觉好像自己没有多余的精力来考虑这些。oo,os就已经很难受了,加上两门硬核的核心通识课。每周都忙地不亦乐乎。总之希望这学期的oo自己能学有所获。也不枉这一学期的煎熬。

    转载于:https://www.cnblogs.com/731338514-yin/p/10604753.html

    展开全文
  • 小简老师动词是用来表示动作或状态的词。动词是英语中最重要的词汇,是句子的核心。...除单三人称的一般现在时,其它人称作主语,动词用原形。2.将来时态shall, will, should, would之后用动词原...

    7c69015a5ca72792dda30455a151769c.gif

    小简老师

    动词是用来表示动作或状态的词。动词是英语中最重要的词汇,是句子的核心。几乎每个句子都必须有一个动词来担当谓语,说明主语是什么或做什么。因此,学好动词对提高自己的英语水平具有重要意义。今天和小简老师一起来看一下吧~

    动词原形及不定式的用法

     动词原形的用法1.除单三人称的一般现在时,其它人称作主语,动词用原形。2.将来时态shall, will, should, would之后用动词原形。3.祈使句句子开头用动词原形。 4.助动词do, does, did之后用动词原形。 5.情态动词can、could、may, might, have/has to, must, need, dare ,ought to之后用动词原形。6.使役动词let、 make、have 之后用动词原形。 7.感官动词see、watch、notice、hear、 feel、find之后用动词原形(说明动作已经结束)。8.had better 之后用动词原形。9.why / why not 之后用动词原形。10.would rather dosth . than do sth . 11.prefer to dosth. rather than do sth./ prefer doing sth. to doing sth.  动名词的用法1.介词之后动词要用动名词形式(动词+ing) 2.部分动词之后的动词只能用动名词形式:enjoy, finish, practice, mind, spend,dislike, find , keep3.部分短语后省略了介词in: have fun/ problems/ difficulties/trouble /a good time doing  be busy doing, 4.be worth doing,  can’t help doing , feel like doing , do some doing sth.5.下面这些动词既可跟动名词又可跟不定式:like / love / hatedoing (doing表示习惯)(to do表示具体的动作) stop doing(表示停止)(doing表示开始做不定式的动作);remember , forget (不定式表示未做;动名词表示已做);try (doing表示试着做;to do表示努力做);  go on (doing继续做相同的事 to do继续做不同的事) begin , start (to do与doing区别不大) ; need (人作主语用to do ;物作主语用doing表示被动);mean(人作主语用to do表示“打算做”;事 / 物作主语用doing表示“意味着”);这些动词既可跟动词原形,又可跟ing形式:see,watch,hear.notice (用原形是指动作结束,ing表示动作正在进行)         动词不定式的用法1.ask/tell/want/order/teach/wish/wouldlike/invite/encourage sb. to do sth.2.ask/tell/want/order/teach/wish/wouldlike/invite/encourage sb. not to do sth. 3.Help...(to) dosth.  4.主系表 + 不定式(to do)5.主系表 +for sb + 不定式(to do)  6.部分动词既可跟动名词又可跟不定式:(同动名词 6)7.疑问词+不定式(to do)可以把复合句变为简单句,(to  = 主语+will/would/can) 

    英语动词双写规则及常见动词

     英语动词双写规则必须同时满足以下 4 个条件1) 该动词的发音以重读闭音节结尾; 重读闭音节就是指在一个音节中,元音字母不是发它本身的字母音,以辅音字母结尾,而且是重读音节的音节。比如apple划音节就应该是ap/ple前面那个ap是一个音节以辅音字母结尾就是闭音节。2)结尾闭音节符合“1 个辅音字母 + 1 个元音字母 + 1 个辅音字母”3)结尾的辅音字母不是"x";4)该动词的拼写规则没有例外;如:sit---sitting/begin---beginning(重读在gin这个音节上,相当与把gin改成双写的) 像travel这种重读不在的vel,可以为travelled,也可以是traveled.举两个很经典的例子:forbid---forbidding(重读闭音节,双写)prohibit---prohibiting(重读在第二音节,非重读闭音节,不双写)  情态助动词用法简述1.dare, need① dare作情态动词用时, 常用于疑问句、否定句和条件从句中, 过去式形式为dared。 例How dare you say such horrible words to me?② need 作情态动词用时, 常用于疑问句、否定句,相当于肯定句中一般用must, have to, ought to, should。例 Need I finish the work today?Yes, you must. / No, you needn’t.③ dare和 need作实义动词用时,有人称、时态和数的变化,在肯定句中,dare后面常接带to的不定式,在疑问句和否定句中,dare后面可接带to或不带to的不定式,而need后面只能接带to的不定式。例 She doesn’t dare (to)answer.2.shall, should① shall 用于第一人称,征求对方的意见。例:What shall I do ?② shall 用于第二、三人称,表示说话人给对方的命令、警告、允诺或威胁。例:You shall be punished,you bad boy!3.will, would①表示请求、建议等,使用would使语气更加缓和。例Would you give me a cup of coffee, please?②表示意志、愿望和决心。例 I will never do that again.③ would表示过去反复发生的动作或某种倾向。例During that summer, he would visit me everyother day. ④表示估计和猜想。例It would be about may when she come back toChina.4.should, ought to① should表示“应该”,ought to表示义务或责任,语气更严重。例 I should help her because she is introuble.②表示劝告、建议和命令,should, ought to可通用,但在疑问句中常用should。例 Should I open the window?③表示推测, should , ought to (客观推测), must(主观推测)。例She must pass the exam. (断定)  

    能充当谓语的动词

    1.定义:能够充当句子谓语的动词就是主动词(main verb) 例 Reading makes a full man. (make在这句话里为主动词)2.类别:①连系动词:用来表示身份,状态,性质,特征,无法单独使用,和表语一起构成系表结构A 状态系动词:包括be动词,continue,keep,stay,remain,stand等例 The girl keeps crying.(持续的哭的状态)B 表象系动词:表示“看起来像”,包括 look,seem,appear等例 She looks like her mother.C 感官系动词:与人的五感有关,嗅觉,听觉,视觉,味觉,触觉,包括feel,look,sound,smell,taste例 It taste good.D 变化系动词:表示从一种状态变化至另一种状态,包括get,become,turn,dome,grow,fall等例Yesterday's little girl becomes today'sbeautiful woman.②实义动词:及物动词和不及物动词例I agree with you.(及物)The game begins.(不及物)* 实义动词又分为短暂性动词和持续性动词,短暂性动词一般不用while引导,可做状语表示一段时间,但持续性动词不可以。

    常见主动表被动

    不定式作后置定语,放在被修饰词后面,不定式与前面被修饰的名词或代词有动宾关系,又在句子中与另一名词或代词有主谓关系,此时,不定式要用主动表被动含义。例如:I have much workto do. 我有许多要做的事情。(与work有动宾关系,与I有主谓关系)Jay is looking fora room to live in.  Jay在找一间住的房间。(与room有动宾关系,与Jay 有主谓关系)She has a familyto support.她要维持一个家庭。(与family有动宾关系,与she有主谓关系) 不定式修饰作表语和宾语补足语的形容词时如下difficult, easy,comfortable (舒适的、安逸的),convenient(便利的,方便的),hard, cheap,expensive, 等此时结构为:主语+系动词+形容词 + 不定式;动词+宾语+形容词+不定式。例如:The question isquite difficult to answer. 这个问题真的很难以回答。The work is easyto do. 这项工作很轻松。I found the buscomfortable to ride in. 我觉得这种公交车坐着很舒服。

    b37a2ec42a1e962026dab98acf77afd7.gif

    高中英语人教版

    我们是专业服务于高中生及高中生家长的英语学习平台,这里为您提供全面的高中英语学习指导、新鲜的高考政策资讯、专业的报考指南,为你的高考保驾护航!b0dc007454c2a3eef5cff528dd544c7e.png

    关注这个号,你的英语会更优秀!

    1155b3af6c985ccebffd9351029bfdf3.gif

    ↓↓↓点击阅读原文关注各科公众号,领资料,提分快~
    展开全文
  • 二十种设计模式【PDF版】

    热门讨论 2011-05-30 14:13:49
    特别是中国传统建筑,那是很讲模式的,这些都是传统文化使然,比如京剧 一招一都有套路;中国画,也有套路,树应该怎么画 法?有几种画法?艺术大家通常是创造出自己的套路,比如明末清初,水墨画法开始成熟,这时画树就不用...
  • 全书分起步篇、提高篇和实例篇篇,共21章。起步篇为第1章~第10章,主要介绍认识Visual C#,C#语言基础,C#语句控制,数组、面向对象编程,熟悉WinForms应用程序,WinForms窗体介绍,WinForms应用程序开发常用控件...
  • 单元一主要是宏观的介绍,二十一世纪的程序执行,介绍了.NET,程执行等,之前的C#的学习中已经接触到了.NET,所以这个阶段的学习并不陌生。 单元二 单元二主要介绍了物件导向与类别设计,指的是我们所说的对象和...
  • 事务

    2021-03-04 13:50:46
    事务 事务是数据库操作追基本单元,是逻辑上一组的操作,要么都...事务添加到JavaEE层中的Service中 在Spring中进行事务管理操作(编程[代码]和声明[xml和注解]) 编程 try{ // 开启异常 // id1 少 money元
  • try-catch-finally 异常捕获 字符串方法 find index join lower replace split strip translate upper lambda函数 迭代器 生成器 装饰器 闭包 文件 打开文件 文件基本方法 文件内容迭代 常用标准库 ...
  • 8使用IDE了解注释段落打印引号注释多行引号python代码要严格对齐中文输入字符错误简单数学表达式代码风格种错误风格系统执行指令运行结果乱码交互编程绘图绘制线段与圆形改变颜色绘制奥运五环小结习题...
  • 20.3.2 计算工资的外部DSL 410 20.4 内部DSL与外部DSL:最后的思考 413 20.5 本章回顾与下一章提要 413 第21章 Scala工具和库 414 21.1 命令行工具 414 21.1.1 命令行工具:scalac 414 21.1.2 ...
  • 79 弹出(或上下文)菜单 80 使用全屏编辑器 81 使用调试窗口 82 完成程序编辑器 第八章 开始编程 83 从命令行运行编译器 84 创建源文件 85 main()函数 86 向程序中添加头文件 87 使用printf输出文件 88 “Hello,...
  • 79 弹出(或上下文)菜单 80 使用全屏编辑器 81 使用调试窗口 82 完成程序编辑器 第八章 开始编程 83 从命令行运行编译器 84 创建源文件 85 main()函数 86 向程序中添加头文件 87 使用printf输出文件 88 “Hello,...
  • 79 弹出(或上下文)菜单 80 使用全屏编辑器 81 使用调试窗口 82 完成程序编辑器 第八章 开始编程 83 从命令行运行编译器 84 创建源文件 85 main()函数 86 向程序中添加头文件 87 使用printf输出文件 88 “Hello,...
  • 4.8 让程序只启动一次——实例运行 184 4.9 实现系统托盘和热键呼出 185 4.10 进程与多线程的区别 190 4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何设置运行时窗体的起始位置 194 ...
  • 4.8 让程序只启动一次——实例运行 184 4.9 实现系统托盘和热键呼出 185 4.10 进程与多线程的区别 190 4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何设置运行时窗体的起始位置 194 ...
  • 4.8 让程序只启动一次——实例运行 184 4.9 实现系统托盘和热键呼出 185 4.10 进程与多线程的区别 190 4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何设置运行时窗体的起始位置 194 ...
  • 4.8 让程序只启动一次——实例运行 184 4.9 实现系统托盘和热键呼出 185 4.10 进程与多线程的区别 190 4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何设置运行时窗体的起始位置 194 ...
  • 零基础Java入门课程

    2020-12-06 18:54:17
    DecimalFormat System类、Scanner类 抽象类和接口 抽象类的规则及应用 接口的规则及应用 默认方法、静态方法、函数接口、Lambda表达式 异常 异常的定义 异常的处理:抓(try-catch-finally)、抛(throws) 异常的分类...
  • DecimalFormat System类、Scanner类 抽象类和接口 抽象类的规则及应用 接口的规则及应用 默认方法、静态方法、函数接口、Lambda表达式 异常 异常的定义 异常的处理:抓(try-catch-finally)、抛(throws) 异常的分类...
  • DecimalFormat System类、Scanner类 抽象类和接口 抽象类的规则及应用 接口的规则及应用 默认方法、静态方法、函数接口、Lambda表达式 异常 异常的定义 异常的处理:抓(try-catch-finally)、抛(throws) 异常的分类...
  • 403 使用CFrameWnd类:文档界面 404 使用CFrameWnd类:多文档界面 405 使用CSplitterWnd类 406 控件栏类 407 属性表类 408 使用对话框类 409 理解通用对话框类 410 理解属性页类 411 理解用户对话框类 412 理解...
  • 老男孩python 四期

    2015-06-25 16:36:28
    ※设定两个故事场景,场景可以穿插衔接,人物之间有关系和互动并且互相影响,根据 不同用户的玩法实现开放结局 第五天 1、Socket 介绍 2、Python socket 语法 3、简单的socket 交互程序 4、Socket Server的开发与...
  • 、进阶篇(进程保护,RootKit) 3.1应用层勾子 IAT HOOK InLine HOOK 3.2内核勾子 3.2.2 Shadow SSDT 3.2.3 InLine HOOK 3.2.3 object HOOK 3.2.4 IDT中断描述符表 3.2.5 IDT HOOK 四、高级篇--驱动逆向 4.1单机调试...
  • 个add*方法都是private方法,没有try catch块。当addAccountToClass方法抛错时,会在当前这个try catch块中被捕获,并抛出RuntimeException。但是,前面的两个add方法却没有回滚,谁知道是怎么回事? log日志...
  • Python核心编程第二版(中文)

    热门讨论 2015-04-23 16:40:13
    6.18.4 元素元组 6.18.5 字典的关键字 6.19 相关模块 6.20 *拷贝Python对象、浅拷贝和深拷贝 6.21 序列类型小结 6.22 练习 第7章 映像和集合类型 7.1 映射类型:字典 7.1.1 如何创建字典和给字典赋值 ...
  • java基础入门教程

    热门讨论 2009-04-29 21:36:10
    1991年 ,SUN MicroSystem 公 司 的 Jame Gosling、 Bill Joe等 人 , 为 在电视 、 控 制 烤 面 包箱 等 家 用 消 费 类 电 子 产 品 上 进 行 交 互 操 作 而 开 发 了 一 个 名为 Oak的 软 件 (即一 种 橡 树 的 ...

空空如也

空空如也

1 2 3 4 5
收藏数 97
精华内容 38
关键字:

try单三式