八年级语文说课稿

八年级语文说课稿,第1张

作为一名默默奉献的教育工作者,常常要写一份优秀的说课稿,借助说课稿可以更好地提高教师理论素养和驾驭教材的能力。那么说课稿应该怎么写才合适呢?以下是我为大家整理的八年级语文说课稿5篇,欢迎阅读,希望大家能够喜欢。

八年级语文说课稿 篇1

教材分析

一、教材所处的地位及作用

本教材为人民教育出版社出版的八年级上册的《语文》课本,这是根据教育部制定的《全日制义务教育语文课程标准》(实验稿)编写的。这套教材体现了语文课程的整体性和阶段性。

二、课文所处的位置及作用

《湖心亭看雪》位于八年级上册的第六单元,第六单元全是古代诗文,都是描绘自然山水的优秀诗文。阅读这类诗文,可以激发灵性、陶冶情 *** 、丰富文化积累。

三、教学目标

1、知识与能力目标:

⑴ 了解作者和写作背景;

⑵ 把握文章运用的白描手法。

2、过程和方法目标:

⑴ 了解雪后西湖的奇景和游湖人的雅趣

⑵ 赏析课文融叙事、写景、抒情于一炉的写作特色

3、情感态度和价值观目标:

本文展示了作者遗世独立的高洁情怀和不随流俗的生活态度,但又流露出消极避世的意绪,应引导学生批判地对待、历史地分析。

四、教学重难点

俄罗斯作家契诃夫在谈创作体会时说过这样一句话:“简洁是才力的姊妹,写得有才华就是写得短。”这篇《湖心亭看雪》就是最好的证明。全文不过一百六十多个字,却把湖心亭的夜间雪景写得气象混茫、恍惚迷离,把作者拥毳围炉、深夜观雪的孤高性格和落寞情怀显现得栩栩如生,所以我把了解雪后西湖的奇景和作者游湖的雅趣定为这篇文章的重难点。

教学方法

1、朗读法:

《语文课程标准》(实验稿)中要求:“指导学生正确地理解和运用祖国语文,丰富语言的积累,培养语感,发展思维”,所以朗读是必不可少的。

2、赏析法:

《语文课程标准》(实验稿)中要求:“诵读古代诗词,有意识地在积累、感悟和运用中,提高自己的欣赏品位和审美情趣”,“欣赏文学作品,能有自己的情感体验,初步领悟作品的内涵,从中获得对自然、社会、人生的有益启示”,所以带领学生赏析文章是本堂课的重要方法。

教学手段

使用多媒体教学辅助手段,使课堂讲解显得思路清晰、提示到位,起到事半功倍的作用。

八年级语文说课稿 篇2

一、说教材

《陋室铭》是人教版八年级语文上册第五单元的一篇教读课文,它是我国古代文苑中的一朵奇葩,千百年来熠熠生辉。文章采用托物言志的写法,通过对陋室的描写,极力形容“陋室不陋”,表达了作者高洁傲岸的节 *** 和安贫乐道的情趣。文章短小精美,对偶工整,虚实相生,言志如诗,韵味如歌。学习这篇文章不仅能培养学生的文言阅读能力,而且有助于学生树立正确的人生观和世界观。

二、说学情

八年级的学生经过初一文言文的学习,对文言文的阅读和学习掌握了一定的方法,并且经过以往的朗读训练,容易获得学习文言文的喜悦与成就。但由于本单元文言文首次采用集中编排方式,且所有的课文都有背诵要求,为避免学生学习起来枯燥乏味,因此不断激发学习兴趣及成就成为必要。

三、说教学目标

1、知识与能力:借助注解了解课文大意,理解课文的思想内容。

2、过程与方法:通过自主、合作、探究的学习过程,学生能大致理解文章内涵。

3、情感态度与价值观:理解作者安贫乐道的精神,提高审美情趣和鉴赏能力。

四、说教学重难点

该文为脍炙人口的骈体文,句式整齐而变化有致,音韵和谐,节奏明快,读来琅琅上口,是体现朗读音乐美的绝佳材料。

因此,我把该文教学重点确定为:有感情的朗读课文,能疏通文意。

但是古诗文及其讲究铸字、炼句。

因此,我把该文教学难点确定为:在疏通文意的基础上,找出自己最喜欢或认为用得最精妙、传神的词、句细加品析并作简要批注。

五、说教学方法

同时,为了达到既定教学目标,突出重点,解决难点。为了更好的上好这堂文言课,不至于枯燥,我选择通过以“读”为核心而创设了情境教学法、圈点批注法、自主合作探究相结合的教学方法。整堂课利用多种教学方法能够使课堂更加生动不至于烦闷,才能让学生更加体会到古文的美至而爱上古文。

六、说教学过程

1、新课导入。

上课之前,请大家先来做个选择题:A、假设有一栋富丽堂皇的大厦,要得到它,必须说一辈子违背良心话,做尽伤天害理的事;B、有一间简陋的屋子,那里风景迷人,有知音相伴。如果是你选择哪个呢

很好,你的选择与一位诗人一样,他是唐代刘禹锡。他的一篇文章《陋室铭》很出名。下面我们来看一看他的《陋室铭》吧!(板书题目)

2、整体感知

通读课文,本文来自四川教师招聘网xx此程序的设计是要学生养成反复诵读文言文的良好习惯。

学生四人一组讨论,互译课文。男生一句,女生一句,主动发言讲解课文,其他同学的问题可由发言同学解决,老师适时适当点评。调动学生自主学习的主动性和积极性。

八年级语文说课稿 篇3

各位评委,各位老师:

你们好!

今天我说课的内容是人教版八年级上册《老王》。下面我将从教材、教法、学法和教学程序四个方面进行说课。

一、说教材

《老王》是人教版八年级上册第二单元的课文,这个单元的课文都是以“爱”为主题的课文,其中几篇课文讲诉的都是对普通人,尤其是对弱者的关爱。《老王》讲述的就是一个普通车夫的故事。这个单元的教学目的是让学生能从课文中感悟到“爱”这种博大的感情,从而陶冶情 *** 。八年级学生的特点是思想活跃,敢想,善于模仿,外界的任何新鲜事都令他们感兴趣,他们大多都是独生子女。因此,许多同学只知道一味的接受“爱”,而不懂得如何感谢“爱”,更别说去回报“爱”了。像老王这类生活在社会底层的弱者,他们不了解,更别说去关心了。我认为,语文教学不仅要让学生学到文学知识,更重要的还要让学生体会文中的情感,从而树立正确的价值观和人生观。因此,根据教学大纲的要求和本文的特点以及学生的状况,我制定了本课的教学目标及教学的重点和难点。

〖教学目标

1、整体把握文章内容及思想情感。

2、揣摩语言,深入领会语句的意味。

3、体会作者的善良,引导学生关爱弱者。

〖教学重点

1、全面把握课文,领会作者与人物的思想感情。

2、激发学生的同情心和爱心。

〖教学难点

领会从文章语言及人物刻画中渗透出的爱的博大

二、说教法

新课改要求教师转变角色,变知识的传授者为学生学习的引导者、参与者、合作者,注重培养学生的独立性和自主性,根据这一指导思想,我在本课教学时,采取合作探究法、板书辅助法、质疑法、诵读法、点拨法、表演法等,使学生在轻松的氛围中学到知识。

三、说学法

1、学生充分预习:

我认为培养学生养成良好的课前预习习惯很重要,如果每一课都能把课前预习落实好,课堂效果就会事半功倍。要想达到这种效果,就要把预习要求明确,让学生知道怎样预习。因此我设计了以下的预习题:

⑴ 利用工具书疏通生字词。

⑵ 熟读课文。

⑶ 对课文质疑。

让学生学会质疑,这是一个最重要的环节。因为“提出一个问题比回答一个问题更难得”。我们也知道,学生能对教材提出有价值的质疑,是学好语文的第一步。同时还要注重培养学生养成圈点勾画的读书习惯,碰到不理解的地方就圈记出来,以便课堂交流。做好了这些预习,就可以进入到高层次的师生平等对话了。

2、自主学习,合作探究。

四、教学程序

本课安排一个课时,为了很好地完成教学目标,有效帮助学生突破重点难点,我把这堂课分为:悬念导入、作者简介、检查预习、学生质疑、合作探究、拓展延伸六大版块。

八年级语文说课稿 篇4

教学目标

1学习通过叙述故事、刻画人物反映社会现实、表达思想感情的写作方法。

2学习通过写景、定物抒发感情的写作方法。

3认识战乱给人民带来的严重灾难,体会自然风光、名胜佳处各具独特美景。

教材分析

概述《石壕吏》这首叙事诗,叙述官吏夤夜捉人,老妇啼诉语言和她的被捉 ,表现出老妇一家的悲惨遭遇,反映了安史之乱给人民造成的严重灾难,体现了诗人对苦难人民的深刻同情

重点

难点差吏夤夜捉人的凶残,老妇形象的凄苦,她家遭遇的悲惨,诗篇社会意义的深刻,诗人对苦难人民的同情。

教具

录音机、投影仪

教学法

设计朗读法、引导法

教学过程

1由教学过的赞美古代巾帼英雄的《木兰诗》,引出将教学的反映战乱中人民苦难的《石壕吏》(板书诗题)。

2结合注释①简介这首诗的创作背景和诗人情况。

这首诗创作于唐肃宗乾元年(759)。当时唐军60万在邺城被叛军打败,&127;唐王朝为了补充兵力,便在四处大肆抓人当兵,人民苦不堪言。杜甫在安史之乱爆发以后,曾被叛军俘虏,夹在难民当中奔走,和人民一起负荷着时代的痛苦,思想感情和人民贴得更紧。这一年,他从华州往洛阳探视,在返回华州途中亲见差吏将老人、少年、结婚才一天的青年,都统统抓去当兵,心情沉痛激愤,就创作出了《三吏》、《三别》。这组诗篇镜子般地反映了当时的战乱社会现实,《石壕吏》是《三吏》中的一篇。

3要求学生参看注释,理解词义、句意、全诗大意。

4指定学生一人朗读全诗。

要求读音准确,读出节奏。

5引导学生分析这首诗。

(1)指定学生朗读第1段后,引导学生分析这一段。

①第1段第一句在诗篇中起着什么作用?

学生回答,教师明确:

“暮投石壕村”,由诗人投宿地点,点明故事发生的地点,表明诗人目击耳闻了故事的始末(板书:目击耳闻)。

②哪一句是关键句?具有什么样的表现力量?

学生回答,教师明确:

“有吏夜捉人”是诗篇的关键句。是“捉人”,而不是“征兵”、“招兵”,已经表明差吏强抓老百姓当兵;前面又加上一个“夜”字,更表明差吏时常抓人,以致白天难以抓到,就趁夜深人睡来搞突然袭击,凶狠残酷。这一句揭开了故事的序幕,故事也循此而展开(板书:凶残夜捉 揭开故事序幕)。

③三、四句表明了什么情况?

学生回答,教师明确:

“老翁逾墙走,老妇出门看”,表明差吏夜间抓人,连老翁也一样抓走,已经屡见不鲜;所以老翁夜间一闻捶门声音,就顾不得年迈体衰、腿脚不灵,赶紧爬墙逃走,而由老妇出门应付。这深刻地揭示出战祸连绵、差吏残酷抓人、人民睡卧不得安宁的情景,揭示了老妇一家悲惨遭遇的社会环境。

(2)指定学生朗读2、3段后,引导学生分析这两段。

①第2段两句诗的用词具有什么样的表现力量?体现了诗人什么样的感情?&127;在这两段中起着什么作用?

学生回答,教师明确:

“吏呼一何怒,妇啼一何苦”:一“怒”,一“苦”,形成了鲜明的对照;两个“一何”,加强了感情色彩:既表现出“吏呼”咆哮如雷,“妇啼”悲伤凄苦,又体现了诗人强烈憎恶差吏、深刻同情老妇的感情。这两句诗统领着第3&127;段老妇苦啼申诉的记叙(板书:苦啼申诉)。课本编者把这两句诗独立成段,也是意在强调吏之怒、妇啼之苦和统领后文的作用。

②第3段只是叙述了老妇的苦啼申诉。&127;差吏是在一直静听老妇的苦啼申诉而没有怒呼咆哮吗?这是一种什么写法?

学生回答,教师明确:

差吏决不是一直静听老妇的苦啼申诉而没有怒呼咆哮。这里是实写老妇的苦啼申诉,虚写差吏的怒呼咆哮,以实现虚,在老妇苦啼申诉的几层意思之 间暗含着差吏的怒呼咆哮。

③老妇的苦啼申诉包含几层意思?从中体现着什么样的进程?

学生回答,教师明确:

老妇的苦啼申诉包含三层意思,从中体现着老妇不断苦啼申诉,差吏不断怒呼咆哮的进程。

④第一层申诉具有什么样的表现力量?

学生回答,教师明确:

“三男邺城戍,一男附书至,二男新战死。存者且偷生,死者长已矣”,表明老妇的三个儿子都上了战场,两个儿子已经战死,她家已为那场战争作出巨大牺牲,论理论情都不应再到她家捉人了。“且偷生”,表明“存者”也生命毫无保障,更无生趣;“长已矣”,表露了对死去亲人的无限哀思。老妇沉痛地申诉这些,意在唤起差吏的恻隐之心,高抬贵手。但是差吏不为所动,继续怒呼,逼着要人,逼出老妇进一步的苦啼申诉。

⑤第二层申诉具有什么样的表现力量?

学生回答,教师明确:

“室中更无人,惟有乳下孙,有孙母未去,出入无完裙”,表明老妇家中只有个吃奶的小孙子一个孤儿,和因乳孙而未去的衣服破烂的一个寡媳,家庭情况倍极凄惨(板书:家庭凄惨)。老妇申诉这些,意在唤起差吏的怜悯之情,网开一面。但是凶狠差吏仍然不为所动,继续怒呼,逼着要人,甚至要捉走寡媳,逼得老妇说出下面的话。

⑥第三层申诉具有什么样的表现力量?

学生回答,教师明确:

“老妪力虽衰,请从吏夜归,急应河阳役,犹得备晨炊”,表现出老妇为了避免年迈丈夫、乳孙寡媳被捉,被逼得只能挺身而出,自请应役了(板书:被逼自请应役)。

(3)指定学生朗读第4段后,引导学生分析这一段。

①这一段前两句的遣词造句具有什么样的表现力量?

学生回答,教师明确:

“夜久语声绝,如闻泣幽咽”,从寡媳低微悲苦的哭泣声,暗示出老妇已被捉走(板书:老妇被捉)。“夜久”,反映出差吏不满足于捉走老妇,百般威逼,老妇再三啼请自己应役的漫长过程,“如闻”,表现出诗人一直在关切倾听幕惨剧的发展,彻夜未能入睡。

②后两句的遣词造句具有什么样的表现力量?

学生回答,教师明确:

“天明登前途,独与老翁别”,呼应开篇的“暮投”,一个“独”字,表明昨暮投宿,老翁老妇双双接待,今晨登程,只有老翁一个相送,老妇已被去承担那根本不应由她承担的徭役了。相送者、被送者的凄惨心情都无法表述。言简意深,凄情绵绵无尽(板书:惨别老翁 凄情绵绵无尽)。

(4)引导学生分析这首诗的`写作特点,社会意义。

诗人怎亲以目击耳闻者的身份写出这首诗?产生着什么样的艺术效果?

学生回答,教师明确:

开篇句“暮投石壕村”,为以目击耳闻者身份叙述故事作好了铺垫;结尾段“夜久语声绝,如闻泣幽咽”,表明一直在关切倾听故事的发展:表明了诗人确是故事 的目击耳闻者。除中间主体部分用两个“一何”表达憎恶差吏、同情老妇的强烈感情以外,通篇都只是平实地叙述故事情节、人物语言,再没有什么议论抒情的诗句。通过故事情节、人物语言,展现出老妇一家的悲惨遭遇,塑造出老妇的凄苦形象,控诉了官府捉人的凶狠残酷,反映了黑暗渗淡的战乱现实,表现了对苦难人民的深刻同情(板书:反映战乱现实 同情苦难人民)。

6指定学生一人朗读全诗。

要求缓急得当,读出沉痛凝重的感情。

布置作业

背诵这首诗,进一步品味平实叙述当中的深刻内涵。

板书设计

石壕吏

目击耳闻 凶残夜捉 揭开故事序幕

苦啼申诉 家庭凄惨 被逼自请应役

老妇被捉 惨别老翁 凄情绵绵无尽

反映战乱现实 同情苦难人民

八年级语文说课稿 篇5

各位专家、各位老师,今天我主备的课文是朱自清先生的散文《绿》,下面我从教材、学生、考点、教学过程与策略几个方面阐述,供大家讨论。

一、教材分析

本单元是要让学生通过学习掌握圈点阅读法,本课是第一课,所以要通过本课的学习让学生了解并初步掌握圈点阅读法。本文特点是,构思精巧缜密、语言优美明快,极具典型性,同时它又篇幅短小,适合在课堂鉴赏。

二、学生分析

随着年龄的增长,学生对生活的认知也不断加深,并且在初一、初二以及初三前段时间,他们已经学习了一定数量的散文,对散文的基本特点具有了一定的感性认识,具备了一定的知识基础和能力基础。

三、考点分析

20xx年至20xx年五年中考中,都考查了散文,出现频率之高值得我们关注。20xx年中考考试说明中,对散文提出了如下的要求:

1、理解文句、文段、文章的意思和内涵,能进行适当的欣赏、评价和迁移等。

2、能品位重要词语和句子在语言环境中的内涵和作用,能找出并正确理解文中的关键语句,能用简明的语言概括文段、文章的主要意思。

3、了解五种表达方式、八种修辞方法,并能初步体会运用上述方式、方法对于文章意思与情感表达的作用,初步感悟作品中的重点内容的内涵,从中获得一定的启示。

4、能结合自己的实际,以简明的语言表达出自己的体验。能对作品中的景物、人物、语言、思想感情作出自己的评价和初步的赏析。

鉴于以上的要求,我对本课教学做了如下的安排。

(一)、教学目标

1、通过本课要让学生在赏析中体会写景的生动含情及表现手法的别致多样。

2、《绿》这篇课文中洋溢着积极向上的情感,因此应当引导学生体会作者热爱自然热爱生活的激情。

3、在培养学生的读写听说能力同时,也要培养学生的思维能力和文学鉴赏能力。

(二)、教学重难点。

我认为语文教学应抓住最突出的特色,精研细思,从而积累知识,培养能力,鉴于本文语言优美、情感丰富的特点,我把文章的语句的赏析和体会作者的情感作为本课的教学重点。

(三)教法。

我在教学中将采用圈点阅读法,自主探究法。同时为创设教学氛围,强化教学效果,提高教学效率,本课采用多媒体教学设备。

(四)、教学过程。

鉴于以上分析,本课在进行必要的背景介绍和字词教学后,集中精力研读,重点学会赏析文中的语句、理解作者的思想感情。

1、学生运用圈点读书法阅读,按照课本上给出的示范,圈出文中的生字词、描写绿的语句、表明作者思想感情的语句以及自己难以理解的语句。在此环节要让学生理解文意,知道作者写的是什么。20xx年淮安市中考试卷以及20xx年金湖课改区试卷均考查了对文本内容掌握情况。

2、在听录音、教师范读的基础上,指导学生对已经划出的有关绿的语句进行反复诵读,充分体会作者的思想感情、努力读出自己感情。在此环节要指导学生朗读时要注意朗读的节奏、重点字词的轻重音。20xx年中考试卷考查了对作者的思想感情领会情况

3、指导学生通过文中已经画出的描写绿的语句分析绿的特点。

一、感知课文

1、导入新课:在临水骋怀单元我们感知了小石潭水的清澈见底,领略了黄果树瀑布巨大的声响和惊心动魄的气势,今天我们一同来欣赏朱先生对水的全新演绎。课件显示课题

2、熟悉课文

学生带着问题自读课文标段序。

课件显示问题:

1、建立我 的字词库和同学交流。

2、请从课文中找出能概括全文内容的句子 。

3、请找出两个能概括梅雨谭绿的特征的词语 。

二、研读课文

1、课件显示问题

课文中有一个从写梅雨瀑过渡到写梅雨潭的句子,请找出来。并分析这一句在行文中有什么作用?

2、解决问题

瀑布在襟袖之间;但我的心中早已没有瀑布了

(1)从写开始追捉过渡到写步步追捉;

(2)明确关键句是点明上段写梅雨瀑的目的,在于衬托美的令人惊诧的梅雨潭的绿。

3、能力训练

1、学习作者是如何选用恰当的动词来点染感情的波澜,从而达到情随景生,移情于景的。

课件显示文中几个重要动词分析解决问题

梅雨潭闪闪的绿色招引(吸引)着我们;

--招引紧扣闪闪的绿,似乎它本身用闪闪的绿光在主动招呼诱引游人,动态感强。这正是惊诧的原因之一。反衬了我急于赏绿的迫切心情。吸引则显得一般。

我们开始追捉(追逐)她那离合的神光了。

--追捉含有欲捕捉那闪闪的绿的意思,点点闪光如星星萤火虫,似伸手可捉。追逐则没有这层含义。

揪着草,攀着乱石,小心探身(弯)下去,

--探身与小心相呼应,准确的描写了向下走时脚试探性的朝下伸的样子。

例词还有镶、踞、展、浮、送、钻、扯、揪、攀、裁、挹、拍、抚摩、掬、吻

2、问:对梅雨潭的绿,作者运用了哪些修辞手法?写出了绿的哪些特点?

明确:

比喻:仿佛一张极大的荷叶铺着,满是奇异的绿,厚积着的绿;

她松松的皱缬着,像**拖着的裙幅;

她轻轻的摆弄着,像跳动的初恋的处女的心;

她滑滑的明亮着,像涂了明油一般,有鸡蛋清那样软,样嫩;

她又不杂些儿尘滓,宛然一块温润的碧玉,

拟人:我想张开两臂抱住她;我用手拍着你,抚摩着你。

-

写出了绿的迷人可爱。

对比:绿杨太淡了,绿壁太浓了,西湖的波太明了,秦淮河太暗了。写绿的明暗适度、浓淡相宜。

想象和联想:裁你为带,赠给那轻盈的舞女,她必能临风飘举

挹你为眼,赠给那善歌的盲妹,她必能明眸善睐

3、课文结构

(1)第二段为第三段铺垫和蓄势,强有力地衬托出绿的令人

惊诧的美。

(2)开头与结尾首尾呼应,强化了感情的力量

三、主题升华

1、通过课件小组交流单元使学生加深对文章主旨的理解,学习如何以情驭景,借景抒情,情景交融。

全文以热情的笔调对梅雨潭的景色进行了细致的描写,抒发了对绿的由衷喜爱,那么,作者为什么如此热情的讴歌绿色呢?

2、通过课件我的收获单元接收学生对所学知识的反馈。进行有的放矢的指导。

四、拓展延伸

通过展示让学生再次感受绿色之美。培养热爱大自然,珍惜绿色,珍惜环境的美好情怀进一步增强环保意识。

五、布置作业

摘抄文中所有比喻句,并写出比喻句的作用,背诵课文第三自然。

群策群力——快速解决问题与提升执行力的流程

群策群力(Work Out)源于世界最成功的企业之一通用电气公司(GE)。20世纪80年代末,通用电气公司提出:业务部门必须在行业竞争中达到行业数一数二的标准,凡是不符合此标准的部门将面临“整顿、关闭或出售”的结局。在如此重大的战略转变和机构改革之时,CEO杰克·韦尔奇采用了一种叫作“群策群力”的深入人心的内在流程。这套流程可以简单迅速地提出与解决问题,并决定最后谁来执行决策。从短期来看,“群策群力”可以帮助人们快速解决问题;从长期来讲,“群策群力”培养了组织的一种高效执行的文化,使GE公司成为当时盈利能力全球第一的世界级大公司。

“群策群力”会议程序

单纯从 *** 作形式上来看,“群策群力”可以说是跨部门会议沟通与会议成果的执行。几个跨部门或跨级别的经理和员工组成小组,一起讨论他们发现的问题,或者是高管关注的问题,通过对过去惯常的做法进行反思、讨论,再逐步提出建议,并在最后的决策会议上把这些建议提交给高管。高管召集整组人对这些建议展开讨论,并当场决定是否通过。然后,将那些能对组织产生影响的建议或新措施交给自愿负责执行并将其完成的“认领者”(owner),由他们一直做到有结果为止。“群策群力”程序如图2-13所示:

              图2-13 “群策群力”的程序

“群策群力”会议流程

杰克·韦尔奇发现,当时GE公司的管理层只重分析,单纯依赖命令与控制来管理,而不是让员工参与,也不会对员工充分授权。为此,他邀请了30多位管理专家进行讨论。于是,“群策群力”促动会的轮廓诞生了:大批分属不同阶层与职位的员工共同参与讨论组织中存在的各种问题,形成小组来研究简化工作的方法,高管必须在最后的“决策会议”上接受或者拒绝这些建议。这是为了强迫当时那些喜欢命令与控制员工的管理者参与到讨论中,听取员工的建议跟想法并与员工对话。

实行“群策群力”的好处多多:首先,可以快速找到组织存在的棘手问题,研究出解决方案,并有效执行落实;其次,可以在组织内部营造出一个全员平等、坦诚交流的环境,汲取组织的智慧;再次,可以快速解决企业中跨部门的扯皮推诿问题;最后,可以使问题的解决不再单纯依赖领导者,而是依靠各个部门与该问题直接相关人员的参与和贡献。一次“群策群力”会议的流程一般如图2-14所示:

          图2-14 “群策群力”会议的流程

“群策群力”的过程能让参与者发出自己的声音,这让每个人的想法都能被倾听和关注,并且能被记录下来。这样的过程唤起了人们的参与感,过去被动接受任务的局面完全被颠覆,取而代之的是人们的积极参与,并对自己贡献了想法的措施给予足够的关注,接着自动自发地将责任承担起来。这也无疑是当今企业最想达到的成效。群策群力解决问题的特点主要如图2-15所示:

      图2-15 “群策群力”解决问题的主要特点

杰克·韦尔奇曾经风趣地说道:“有一种办法可以证明‘群策群力’已经成功了,那就是在公司里再也不用容忍我的领导风格了。”就本质来说,“群策群力”的观念其实非常简单:最接近工作的人必然最了解工作,不管这些人在工作中担任什么样的职务,处在什么样的岗位,当他们的想法能够当场激发出来并转化为具体的行动时,整个组织将充满活力、创造力与执行力。GE公司举办过几十万场群策群力会议,现场激发出来的点子不计其数,这使GE公司得以取用地球上不会枯竭的资源——人们的想象力与活力。这也是GE公司效益一路攀升的秘诀所在。

“群策群力”的步骤

“群策群力”的步骤也并不复杂,主要包括以下几个方面(如表2-4所示)。

1.聚焦问题

其中,在聚焦问题的过程中,要注意:

找出目前存在的问题,进行关键词提炼,明确群策群力的主题。

找出业绩与业务计划、预算或主要的业绩评估手段之间的差距。

明确客户对服务的预期及找到提高服务质量的方法。

同其他领域的经理会面,以检查那些跨部门工作的进展情况。

同竞争对手相比较的基准业绩水平。

召集全体人员,问他们是什么限制了业绩水平。基于这些问题,明确群策群力的主题。

在明确参与者的过程中,需要注意:

谁是此问题的重要利益相关者?

是否需要特别的信息和专家知识?

是否应该考虑用户、股东和客户的观点?

谁将是潜在的建议实施者?

谁有可能参加了这个过程后从反对者变为支持者?

2.障碍分析

在障碍分析过程,可以通过以下方式来描述典型问题,如:

项目开发周期低于要求的50%。

废品率大于要求的1%。

客户满意度低于要求的2%。

可以用以下方式描述问题现象,如:

项目开发周期低于要求的50%。

设计周期比同行慢3个月。

手续报批比同行慢5个月。

确定产品标准比同行慢1个月。

变更相关事宜比同行慢6个月。

销售比同行慢2个月。

施工图慢15个月。

当需要确定目标时,可参考SMART原则(如图2-16所示):

                  图2-16 SMART原则

3.厘清目标

在启动“群策群力”会议前,促动师可以参考表2-5来清晰表述团队主题、目标、参与者和启动问题:

表2-5 “群策群力”会议前的准备

4.城镇会议

“城镇会议”是“群策群力”最关键的部分,也是特征最鲜明的部分之一。其目的是,让每个组都能把它的建议和行动计划提交给发起人,而且要让发起人在现场作出决策。

“城镇会议”发生在“群策群力”会议快结束的时候。在“城镇会议”期间,每个小组首先介绍在接下来的几周中可能要实施的行动。介绍的内容包括要解决的问题、具体的建议、追踪和衡量结果的方法及实施建议的行动计划——包括小组中自愿负责该工作的成员姓名。在提问和回答的环节完成之后,发起人需要现场拍板“行或不行”,并给予相关支持、协助。

在“城镇会议”之前的准备时间里,参与者在小组当中的工作是仔细思考并补充挑选出来想法的细节,以及为“城镇会议”的陈述做准备。将陈述的形式标准化是很有用的(给模板)——但每个小组如何做、谁来做,以及按照什么样的顺序做,则取决于他们自己。促动师在会议开始的时候就应该检查参与者的报告形式,以便每个人都知道他们需要达到的最终目的是什么。

促动师还应该让每个小组了解“城镇会议”上会发生什么事情,包括:谁将出席,分配给每个小组的时间,提问和回答的程序及规则,讨论和制定决策的过程。

在“城镇会议”中注意需要注意“要做”和“不要做”两大类问题:

要做(DO):

激励小组对所提建议的边界进行思考。比如:“为什么是5000美元的限制,而不是5万美元?为什么要修改报告而不是取消报告?”

接受一定程度的风险。比如:“我们不知道确切的成本是多少,但它的收益明显很大而且很快——我们要实施它,以后再算成本。”

问其他没有真正在小组中提过建议的人对建议有什么想法。比如:“小李——这将影响到你的业务领域,你怎么想?还有人有进一步改进的想法吗?”

对建议表现出热情,并对员工表示认同。比如:“这是个了不起的想法——大家作为一线员工,今天的提议让我意识到,如果更换一部分而不是清洁它们会节约大量时间。”

说“不”时指出明确的原因。比如:“这是一个很棒的点子,但现在的管理环境很难使它得到所有的批准。”

在接受、拒绝或修改建议时要征求其他经理的意见。比如:“老刘,这真的会影响到你的分销成本,你怎么想?我们应该实施吗?”

对于每个有争议的建议,坚决要得到在座的相关经理明确的回应。比如:“这个建议显然有一定的风险,而且激起了强烈的讨论——有赞成的也有反对的。为了作出决策,我希望对与此事有关的经理进行一下调查。如果是你,你会说行还是不行?”

当在座的其他经理对建议提出异议时,向他们发起挑战。比如:“我明白取消这道检查会增加信贷风险,但是这个风险真的存在吗?我知道放弃头等舱旅行对某些人来说是困难了点,但我们需要大幅度减少一半管理费用的开支,而且我们的管理团队应该在这方面起一些带头作用。”

确保在需要批准建议时有一名管理层的发起人。比如:“老王,你愿意帮助小崔的小组前进吗?”

不要做(DON'T):

半途离开去参加其他会议,或者打电话。

诋毁员工所做的介绍。比如“这价值不高”“我们几年前就这样考虑过了,但是没有做的原因是……”“这不是一个新的想法”。

锻炼个人的决断能力,而不是接受其他经理的观点。比如:“我同意这样做”隐含的意思是“我不关心其他任何人说什么”。

过分延缓,进一步的研究。比如:“这个建议看上去很好,但是我们还需要些数字来测试它,我会再通知你的。”

过分防御的行动,特别是当涉及个人的批评时。比如:“好,我知道你想我在决策上多听一下意见,但是我没有太多的时间做这个事情,而且无论如何,你也说我们现在已经开了太多的会了不是吗?”

接受建议时很冷淡,没什么反应。比如:说“我同意”,而不是“哇!太棒了!我们就这么干吧!”

在“群策群力”进行过程中,参与者容易出现自信和情绪的低点。在这个过程中,需要促动师通过有效的促动技术,使学员心智与行为模式发生改变,自动自发地完成目标(如图2-17所示)。

图2-17 通过促动技术改变学员的心智与行为模式

初级程序员考试:考试科目1:计算机硬软件基础知识

1 计算机科学基础

11 数制及其转换

二进制、十进制和十六进制等常用数制及其相互转换

12 数据的表示

数的表示(原码、反码、补码表示,整数和实数的机内表示方法,精度和溢出)

非数值表示(字符和汉字的机内表示、声音和图像的机内表示)

校验方法和校验码(奇偶校验码、海明校验码)

13 算术运算和逻辑运算

计算机中二进制数的运算方法

逻辑代数的基本运算和逻辑表达式的化简

14 数学应用

常用数值计算(矩阵、方程的近似求解、插值)

排列组合、应用统计(数据的统计分析)

15 常用数据结构

数组(表态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树)、图的定义、存储和 *** 作

16 常用算法

常用的排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法

算法与数据结构的关系,算法效率,算法设计,算法描述(流程图、伪代码、决策表)

2. 计算机系统基础知识

21 硬件基础知识

211 计算机系统的组成,硬件系统、软件系统及层次结构

212 计算机类型和特点

微机、工作站、服务器、大型计算机、巨型计算机

213 中央处理器CPU

运算器和控制器的组成,常用的寄存器、指令系统、寻址方式、指令执行控制、处理机性能

214 主存和辅存

存储器系统

存储介质(半导体、硬盘、光盘、闪存、软盘、磁带等)

主存储器的组成、性能及基本原理

Cache的概念、虚拟存储的概念

辅存设备的类型、特性、性能和容量计算

215 I/O接口、I/O设备和通信设备

I/O接口(总线、DMA、通道、SCSI、并行口、RS232C、USB、IEEE1394)

I/O设备的类型和特性(键盘、鼠标、显示器、打印机、扫描仪、摄像头,以及各种辅存设备)

I/O设备控制方式(中断控制、DMA)

通信设备的类型和特性(Modem、集线器、交换机、中继器、路由器、网桥、网关)及其连接方法和连接介质(串行连接、并行连接,传输介质的类型和特性)

22 软件基础知识

221 *** 作系统基础知识

*** 作系统的类型和功能

*** 作系统的内核(中断控制)和进程概念

处理机管理、存储管理、设备管理、文件管理、作业管理

汉字处理

图形用户界面及其 *** 作方法

222 程序设计语言和语言处理程序基础知识

汇编、编译、解释系统的基础知识

程序设计语言的基本成分(数据、运算、控制和传输)

过程(函数)调用

23 网络基础知识

网络的功能、分类、组成和拓扑结构

网络体系结构与协议(OSI/RM,TCP/IP)

常用网络设备与网络通信设备,网络 *** 作系统基础知识和使用

Client/Server结构、Browser/Server结构

LAN基础知识

Internet基础知识

24 数据库基础知识

数据库管理系统的主要功能和特征

数据库模型(概念模式、外模式、内模式)

数据模型,ER图

数据 *** 作(关系运算)

数据库语言(SQL)

数据库的主要控制功能

25 多媒体基础知识

多媒体基础概念,常用多媒体设备性能特征,常用多媒体文件格式类型

简单图形的绘制,图像文件的基本处理方法

音频和视频信息的应用

简单多媒体应用制作方法

26 系统性能指标

响应时间、吞吐量、周转时间等概念

可靠性、可维护性、可扩充性、可移植性、可用性、可重用性、安全性等概念

27 计算机应用基础知识和常用办公软件的 *** 作方法

信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等概念

文字处理基础知识和常用 *** 作方法

电子表格处理基础知识和常用 *** 作方法

演示文稿制作方法

电子邮件处理 *** 作方法

网页制作方法

3. 软件开发和运行维护基础知识

31 软件工程和项目管理基础知识

软件工程基本概念

软件开发各阶段的目标和任务

软件过程基本知识

软件工程项目管理基本知识

面向对象开发方法基础知识

软件开发工具与环境基础知识(CASE)

软件质量管理基础知识

32 软件需求分析、需求定义及软件基础知识

结构化分析概念(数据流图(DFD)、实体关系图(ER))

面向对象设计、结构化设计基础知识

模拟设计、代码设计、人机界面设计要点

33 程序设计基础知识

结构设计程序设计,程序流程图,NS图,PAD图

程序设计风格

面向对象设计基础知识、可视化程序设计基础知识

34 程序测试基础知识

黑盒测试、白盒测试、灰盒测试基础知识

测试工作流程

35 软件开发文档基础知识

36 软件运行和维护基础知识

软件运行基础知识

软件维护基础知识

4. 安全性基础知识

安全性基本概念

计算机病毒的防治,计算机犯罪的防范

访问控制

加密与解密基础知识

5. 标准化基础知识

标准化基本概念

国际标准、国家标准、行业标准、企业标准基础知识

代码标准、文件格式标准、安全标准、软件开发规范和文档标准基础知识

标准化机构

6. 信息化基本知识

信息化基本概念

全球信息化趋势,国家信息化战略,企业信息化战略和策略常识

有关的法律、法规要点

过程教育、电子商务、电子政务等常识

企业信息资源管理常识

7. 计算机专业英语

掌握计算机技术的基本词汇

能正确阅读和理解本领域的简单英文资料

考试科目2:程序设计

1 内部设计

11 理解外部设计

12 功能划分和确定结构

数据流图、结构图

13 物理数据设计

确定数据组织方式、存储介质,设计记录格式和处理方式

14 详细输入输出设计

界面设计、报表设计

15 内部设计文档

对程序接口、程序功能、人机界面、输入输出、测试计划的描述

16 内部设计文档

2. 程序设计

21 模拟划分(原则、方法、标准)

22 编写程序设计文档

模块规格说明书(程序处理逻辑的描述、输入输出数据格式的描述)

测试要求说明书(测试类型和目标、测试用例、测试方法)

23 程序设计评审

3. 程序实现

31 编程

编程方法和标准

程序设计语言的使用

人工检查

程序文档化

32 程序测试

准备测试环境和测试工具

准备测试数据

写出测试报告

4程序设计语言(C语言为必选,其他语言可以任选一种)

41 C程序设计语言(ANSI C标准)

程序结构,语法,数据类型说明,可执行语句,函数调用,标准库函数,指针

42 C++程序设计语言(ANSI C++标准)

C++和面向对象程序设计,语法和程序结构,类、成员、构造函数、析构函数、模板、继承、多态

43 Java程序设计(Java 2)

Java和面向对象程序设计

语言机制(程序结构和语法,类、成员、构造函数、析构函数、继承、接口)

44 Visual Basic程序设计(Visual Basic 60)

用户界面设计

程序结构和语法

文件系统对象

访问数据库

职场不需要眼泪:你要么出众,要么出局

在职场,从来不看苦劳,只看功劳。不要渴望公司会给你温暖,我想说,老板付给你工资本身就是温暖了。职场的本质,就是创造价值的地方,当你工作没有做好,被领导骂的时候,请收起你的委屈,收起你所谓的自尊心。不要把脆弱当成一张王牌,更不要拿自己笨来说事,否则,它们将会变成你前进路上永远的绊脚石。说说我的表哥吧,他是一家游戏公司的程序猿。由于工作性质的特殊性,每天加班到很晚已经司空见惯了,晚上十一点以前是从没回过家的。有一次,赶上公司产品版本更新上线,那几日他没日没夜的加班,好几次到凌晨。当有人问起他难道从来都不觉得辛苦时,他只说了一句话。“因为我是在为自己工作呀,我喜欢这份工作。哪里谈得上辛苦呢?”是啊,任何时候,要知道你不是在为公司打工,你是在为自己打工。不忘初心,方得始终。职场不是学校,没有人会教你,更没有人会手把手给你在课本上划重点,你只有通过自己的努力,去完成你的目标。在遇到问题时,没人会怜悯你。眼泪,不是最佳的解决问题的办法,最好的处理就是,以一个更酷的姿态把所有的委屈都咽回肚子里,变成自己前进的动力。职场不相信眼泪,要么出众,要么出局。

现在码农因工作压力大导致的心里行为问题比较多,所以需要心理疏导和安抚。程序员鼓励师是有市场需求的。程序员鼓励师对程序员真的有用。

可是好的程序员鼓励师可遇不可求,毕竟是新职业,这样的专业大学里也没有。作为优秀的程序员鼓励师,那可不是只要颜值高就可以,如果不懂点技术知识,跟程序员就没有多少话题可聊;如果不懂点心理学等相关知识,那也无法对症下药;先不提颜值高、身材好,但至少要情商高、性格好。

程序员需要的是鼓励,绝对不是妹子,而是需要减轻心理压力,要给出能行的通的可行的计划、能实现的目标,帮他们解决技术障碍。这些,可不是不懂技术的妹子能做到的,不懂产品的妹子那也是做不到。

所以,程序员需要的鼓励师,那是要比程序员懂技术,比程序员更懂需求,还要更会沟通,更具备大格局,而且还要能拍板。这才能切实帮程序员减压,鼓励他完成工作。

最后,附程序员鼓励师任职要求:1、长相清新,声线甜美,微笑常在,人见人爱;2、善于倾听,善不善沟通不重要,能忍受IT工程师死宅无法交流的性格;3、耍不耍脾气不重要,要善于发现每一个程序暖男的天性,成功驯服;4、了解互联网,懂科技,不然聊起来云里雾里,工程师会更受打击。

作者 | 沉默王二

来源 | CSDN博客

头图 | 付费下载自视觉中国

出品 | CSDN(ID:CSDNnews)

想学习,永远都不晚,尤其是针对 Java 8 里面的好东西,Optional 就是其中之一,该类提供了一种用于表示可选值而非空引用的类级别解决方案。作为一名 Java 程序员,我真的是烦透了 NullPointerException(NPE),尽管和它熟得就像一位老朋友,知道它也是迫不得已——程序正在使用一个对象却发现这个对象的值为 null,于是 Java 虚拟机就怒发冲冠地把它抛了出来当做替罪羊。

当然了,我们程序员是富有责任心的,不会坐视不管,于是就有了大量的 null 值检查。尽管有时候这种检查完全没有必要,但我们已经习惯了例行公事。终于,Java 8 看不下去了,就引入了 Optional,以便我们编写的代码不再那么刻薄呆板。

没有 Optional 会有什么问题

我们来模拟一个实际的应用场景。小王第一天上班,领导老马就给他安排了一个任务,要他从数据库中根据会员 ID 拉取一个会员的姓名,然后将姓名打印到控制台。虽然是新来的,但这个任务难不倒小王,于是他花了 10 分钟写下了这段代码:

1public class WithoutOptionalDemo {

2 class Member {

3 private String name;

4

5 public String getName() {

6 return name;

7 }

8

9 public void setName(String name) {

10 thisname = name;

11 }

12 }

13

14 public static void main(String[] args) {

15 Member mem = getMemberByIdFromDB();

16 if (mem != null) {

17 Systemoutprintln(memgetName());

18 }

19 }

20

21 public static Member getMemberByIdFromDB() {

22 // 当前 ID 的会员不存在

23 return null;

24 }

25}

由于当前 ID 的会员不存在,所以 getMemberByIdFromDB() 方法返回了 null 来作为没有获取到该会员的结果,那就意味着在打印会员姓名的时候要先对 mem 判空,否则就会抛出 NPE 异常,不信?让小王把 if (mem != null) 去掉试试,控制台立马打印错误堆栈给你颜色看看。

1Exception in thread "main" javalangNullPointerException

2 at comcmowerdzoneoptionalWithoutOptionalDemomain(WithoutOptionalDemojava:24)

Optional 是如何解决这个问题的

小王把代码提交后,就兴高采烈地去找老马要新的任务了。本着虚心学习的态度,小王请求老马看一下自己的代码,于是老王就告诉他应该尝试一下 Optional,可以避免没有必要的 null 值检查。现在,让我们来看看小王是如何通过 Optional 来解决上述问题的。

1public class OptionalDemo {

2 public static void main(String[] args) {

3 Optional optional = getMemberByIdFromDB();

4 optionalifPresent(mem -> {

5 Systemoutprintln("会员姓名是:" + memgetName());

6 });

7 }

8

9 public static Optional getMemberByIdFromDB() {

10 boolean hasName = true;

11 if (hasName) {

12 return Optionalof(new Member("沉默王二"));

13 }

14 return Optionalempty();

15 }

16}

17class Member {

18 private String name;

19

20 public String getName() {

21 return name;

22 }

23

24 // getter / setter

25}

getMemberByIdFromDB() 方法返回了 Optional 作为结果,这样就表明 Member 可能存在,也可能不存在,这时候就可以在 Optional 的 ifPresent() 方法中使用 Lambda 表达式来直接打印结果。

Optional 之所以可以解决 NPE 的问题,是因为它明确的告诉我们,不需要对它进行判空。它就好像十字路口的路标,明确地告诉你该往哪走。

创建 Optional 对象

1)可以使用静态方法 empty() 创建一个空的 Optional 对象

1Optional empty = Optionalempty();

2Systemoutprintln(empty); // 输出:Optionalempty

2)可以使用静态方法 of() 创建一个非空的 Optional 对象

1Optional opt = Optionalof("沉默王二");

2Systemoutprintln(opt); // 输出:Optional[沉默王二]

当然了,传递给 of() 方法的参数必须是非空的,也就是说不能为 null,否则仍然会抛出 NullPointerException。

1String name = null;

2Optional optnull = Optionalof(name);

3)可以使用静态方法 ofNullable() 创建一个即可空又可非空的 Optional 对象

1String name = null;

2Optional optOrNull = OptionalofNullable(name);

3Systemoutprintln(optOrNull); // 输出:Optionalempty

ofNullable() 方法内部有一个三元表达式,如果为参数为 null,则返回私有常量 EMPTY;否则使用 new 关键字创建了一个新的 Optional 对象——不会再抛出 NPE 异常了。

判断值是否存在

可以通过方法 isPresent() 判断一个 Optional 对象是否存在,如果存在,该方法返回 true,否则返回 false——取代了 obj != null 的判断。

1Optional opt = Optionalof("沉默王二");

2Systemoutprintln(optisPresent()); // 输出:true

3

4Optional optOrNull = OptionalofNullable(null);

5Systemoutprintln(optisPresent()); // 输出:false

Java 11 后还可以通过方法 isEmpty() 判断与 isPresent() 相反的结果。

1Optional opt = Optionalof("沉默王二");

2Systemoutprintln(optisPresent()); // 输出:false

3

4Optional optOrNull = OptionalofNullable(null);

5Systemoutprintln(optisPresent()); // 输出:true

非空表达式

Optional 类有一个非常现代化的方法——ifPresent(),允许我们使用函数式编程的方式执行一些代码,因此,我把它称为非空表达式。如果没有该方法的话,我们通常需要先通过 isPresent() 方法对 Optional 对象进行判空后再执行相应的代码:

1Optional optOrNull = OptionalofNullable(null);

2if (optOrNullisPresent()) {

3 Systemoutprintln(optOrNullget()length());

4}

有了 ifPresent() 之后,情况就完全不同了,可以直接将 Lambda 表达式传递给该方法,代码更加简洁,更加直观。

1Optional opt = Optionalof("沉默王二");

2optifPresent(str -> Systemoutprintln(strlength()));

Java 9 后还可以通过方法 ifPresentOrElse(action, emptyAction) 执行两种结果,非空时执行 action,空时执行 emptyAction。

1Optional opt = Optionalof("沉默王二");

2optifPresentOrElse(str -> Systemoutprintln(strlength()), () -> Systemoutprintln("为空"));

设置(获取)默认值

有时候,我们在创建(获取) Optional 对象的时候,需要一个默认值,orElse() 和 orElseGet() 方法就派上用场了。

orElse() 方法用于返回包裹在 Optional 对象中的值,如果该值不为 null,则返回;否则返回默认值。该方法的参数类型和值得类型一致。

1String nullName = null;

2String name = OptionalofNullable(nullName)orElse("沉默王二");

3Systemoutprintln(name); // 输出:沉默王二

orElseGet() 方法与 orElse() 方法类似,但参数类型不同。如果 Optional 对象中的值为 null,则执行参数中的函数。

1String nullName = null;

2String name = OptionalofNullable(nullName)orElseGet(()->"沉默王二");

3Systemoutprintln(name); // 输出:沉默王二

从输出结果以及代码的形式上来看,这两个方法极其相似,这不免引起我们的怀疑,Java 类库的设计者有必要这样做吗?

假设现在有这样一个获取默认值的方法,很传统的方式。

1public static String getDefaultValue() {

2 Systemoutprintln("getDefaultValue");

3 return "沉默王二";

4}

然后,通过 orElse() 方法和 orElseGet() 方法分别调用 getDefaultValue() 方法返回默认值。

1public static void main(String[] args) {

2 String name = null;

3 Systemoutprintln("orElse");

4 String name2 = OptionalofNullable(name)orElse(getDefaultValue());

5

6 Systemoutprintln("orElseGet");

7 String name3 = OptionalofNullable(name)orElseGet(OrElseOptionalDemo::getDefaultValue);

8}

注:类名 :: 方法名是 Java 8 引入的语法,方法名后面是没有 () 的,表明该方法并不一定会被调用。

输出结果如下所示:

1orElse

2getDefaultValue

3

4orElseGet

5getDefaultValue

输出结果是相似的,没什么太大的不同,这是在 Optional 对象的值为 null 的情况下。假如 Optional 对象的值不为 null 呢?

1public static void main(String[] args) {

2 String name = "沉默王三";

3 Systemoutprintln("orElse");

4 String name2 = OptionalofNullable(name)orElse(getDefaultValue());

5

6 Systemoutprintln("orElseGet");

7 String name3 = OptionalofNullable(name)orElseGet(OrElseOptionalDemo::getDefaultValue);

8}

输出结果如下所示:

1orElse

2getDefaultValue

3orElseGet

咦,orElseGet() 没有去调用 getDefaultValue()。哪个方法的性能更佳,你明白了吧?

获取值

直观从语义上来看,get() 方法才是最正宗的获取 Optional 对象值的方法,但很遗憾,该方法是有缺陷的,因为假如 Optional 对象的值为 null,该方法会抛出 NoSuchElementException 异常。这完全与我们使用 Optional 类的初衷相悖。

1public class GetOptionalDemo {

2 public static void main(String[] args) {

3 String name = null;

4 Optional optOrNull = OptionalofNullable(name);

5 Systemoutprintln(optOrNullget());

6 }

7}

这段程序在运行时会抛出异常:

1Exception in thread "main" javautilNoSuchElementException: No value present

2 at javabase/javautilOptionalget(Optionaljava:141)

3 at comcmowerdzoneoptionalGetOptionalDemomain(GetOptionalDemojava:9)

尽管抛出的异常是 NoSuchElementException 而不是 NPE,但在我们看来,显然是在“五十步笑百步”。建议 orElseGet() 方法获取 Optional 对象的值。

过滤值

小王通过 Optional 类对之前的代码进行了升级,完成后又兴高采烈地跑去找老马要任务了。老马觉得这小伙子不错,头脑灵活,又干活积极,很值得培养,就又交给了小王一个新的任务:用户注册时对密码的长度进行检查。

小王拿到任务后,乐开了花,因为他刚要学习 Optional 类的 filter() 方法,这就派上了用场。

1public class FilterOptionalDemo {

2 public static void main(String[] args) {

3 String password = "12345";

4 Optional opt = OptionalofNullable(password);

5 Systemoutprintln(optfilter(pwd -> pwdlength() > 6)isPresent());

6 }

7}

filter() 方法的参数类型为 Predicate(Java 8 新增的一个函数式接口),也就是说可以将一个 Lambda 表达式传递给该方法作为条件,如果表达式的结果为 false,则返回一个 EMPTY 的 Optional 对象,否则返回过滤后的 Optional 对象。

在上例中,由于 password 的长度为 5 ,所以程序输出的结果为 false。假设密码的长度要求在 6 到 10 位之间,那么还可以再追加一个条件。来看小王增加难度后的代码。

1Predicate len6 = pwd -> pwdlength() > 6;

2Predicate len10 = pwd -> pwdlength() < 10;

3

4password = "1234567";

5opt = OptionalofNullable(password);

6boolean result = optfilter(len6and(len10))isPresent();

7Systemoutprintln(result);

这次程序输出的结果为 true,因为密码变成了 7 位,在 6 到 10 位之间。想象一下,假如小王使用 if-else 来完成这个任务,代码该有多冗长。

转换值

小王检查完了密码的长度,仍然觉得不够尽兴,觉得要对密码的强度也进行检查,比如说密码不能是“password”,这样的密码太弱了。于是他又开始研究起了 map() 方法,该方法可以按照一定的规则将原有 Optional 对象转换为一个新的 Optional 对象,原有的 Optional 对象不会更改。

先来看小王写的一个简单的例子:

1public class OptionalMapDemo {

2 public static void main(String[] args) {

3 String name = "沉默王二";

4 Optional nameOptional = Optionalof(name);

5 Optional intOpt = nameOptional

6 map(String::length);

7

8 Systemoutprintln( intOptorElse(0));

9 }

10}

在上面这个例子中,map() 方法的参数 String::length,意味着要 将原有的字符串类型的 Optional 按照字符串长度重新生成一个新的 Optional 对象,类型为 Integer。

搞清楚了 map() 方法的基本用法后,小王决定把 map() 方法与 filter() 方法结合起来用,前者用于将密码转化为小写,后者用于判断长度以及是否是“password”。

1public class OptionalMapFilterDemo {

2 public static void main(String[] args) {

3 String password = "password";

4 Optional opt = OptionalofNullable(password);

5

6 Predicate len6 = pwd -> pwdlength() > 6;

7 Predicate len10 = pwd -> pwdlength() < 10;

8 Predicate eq = pwd -> pwdequals("password");

9

10 boolean result = optmap(String::toLowerCase)filter(len6and(len10 )and(eq))isPresent();

11 Systemoutprintln(result);

12 }

13}

好了,我亲爱的读者朋友,以上就是本文的全部内容了——可以说是史上最佳 Optional 指南了,能看到这里的都是最优秀的程序员,二哥必须要伸出大拇指为你点个赞。

>

以上就是关于八年级语文说课稿全部的内容,包括:八年级语文说课稿、群策群力 | 快速解决问题与提升执行力的流程、软考程序员要看哪些书等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9357748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存