精华内容
下载资源
问答
  • 植物化感作用及其研究进展,包海银,陈达,植物化感作用是一个既古老又新兴的研究课题。本文从植物化感作用的概念的转变以及其研究进展方面做了一些论述,并对其在农业生产
  • 化感作用在赤潮调控中的意义及前景,杨小茹,苏建强,简要概述了化感作用的定义,化感物质的种类及其作用机理,描述了化感物质在在赤潮控制中的作用;集中综述了水生植物、微藻和细菌
  • 脂肪酸类物质化感作用的研究进展,焦晓林,高微微,植物与微生物释放的脂肪酸进入环境后能够产生化感作用,近年来植物化感理论和技术的发展推动了对此类生物分子的研究。本文就近年
  • 无瓣海桑和互花米草土壤化感作用比较研究,李静,田广红,为揭示土壤在无瓣海桑控制互花米草中的作用,利用化感生物测定的方法,选用黑麦草为受体,对比分析红树林无瓣海桑群落、互花米草
  • 核桃叶水提取物对黑大豆种子萌发的化感作用研究,赵超,贾俊杰,【目的】研究核桃叶水提取物对黑大豆种子萌发的化感作用。【方法】采用蒸馏的方法提取核桃叶化感物质,以黑大豆种子为受体,进行
  • 为了优化管理,可以使用含有咖啡因含量的咖啡浸液残留物,该物质对某些植物具有化感作用。 因此,目的是评估在咖啡芽前和芽后产品剂量,采集和施用季节下咖啡渣对Urochloa brizantha的出芽和生长的化感作用。 实验...
  • 柠条枝叶水提液对紫花苜蓿种子萌发的化感作用研究,秦树高,吴斌,本文研究了柠条(Caragana spp.)枝叶水提液对紫花苜蓿种子萌发的化感作用。结果发现,紫花苜蓿种子经过浓度被1 g/mL,2 g/mL,10 g/mL的柠�
  • 入侵植物喜旱莲子草对铜绿微囊藻的化感作用研究,张震,,为了探究控制微囊藻爆发及喜旱莲子草综合利用的方法,本文以喜旱莲子草(Alternanthera philoxeroides)为供体,铜绿微囊藻(Microcystis aeruginosa
  • 水葫芦组织浸提液中不同极性物质的化感作用,王海斌,吴良展,以水葫芦为材料,分别采用不同极性树脂处理水葫芦不同组织的水浸提液,并以莴苣、白菜、稗草为受体,通过生物测试法探讨水葫芦组
  • 大葱根系分泌物对黄瓜和枯萎病原菌的化感作用及其GC/MS分析,徐宁,王超,采用连续根系分泌物收集系统(CRETS)收集大葱根系分泌物,研究了分泌物对黄瓜及其枯萎病原菌的化感作用,并利用气相色谱-质谱技术
  • 本文已尝试积累和阐明有关药用植物的化感作用潜力及其在开发生物除草剂以保护生态多样性的杂草以保护生物多样性和生态平衡方面的作用的文献。 这篇综述文件是通过对世界文献中各种已发表的研究文章,书籍和论文集...
  • 谷物黑麦(Secale graine L.)由于其化感作用和抑制杂草的功效而被广泛用作覆盖作物。 在美国东南部,黑麦传统上是在休眠的百慕大草牧场上放牧,以供冬季放牧,在这里,紫花苜蓿(Medicago sativa L.)越来越多地...
  • 大葱根系分泌物组分及其对黄瓜和枯萎病病原菌的化感作用,徐宁,魏珉,利用连续根系分泌物收集系统(CRETS)收集大葱根系分泌物,采用不同极性的有机溶剂提取,研究了不同提取组分对黄瓜及其枯萎病病原�
  • 不同株塔玛亚历山大藻复合种的化感作用、毒素产生以及遗传多样性的研究,陈健,杨维东,塔玛亚历山大藻复合种(Alexandrium tamarense complex)是一种常见的有毒赤潮藻,可以产生化感物质和麻痹性贝毒。研究发现,...
  • 它们是谷物植物中具有化感作用的天然吲哚生物碱的潜在分解产物。 通过对微藻小球藻的抗藻活性,大麦,黑麦,小麦,燕麦和玉米物种的杂草小黑麦草,种子发芽种子和幼苗生物量的重量来评估植物毒性。 通过RP-HPLC方法...
  • 入侵植物南美蟛蜞菊根水提取物对3种植物病原菌的化感作用研究,王莉莉,孙见凡,采用生长速率法和载玻片上萌发法测定了南美蟛蜞菊根水提取物对3 种植物病原菌的抑制效果。结果表明:南美蟛蜞菊根水提取物对香蕉�
  • 这项研究旨在评估两种桉树遗传材料的年轻和成熟叶片提取物对小米种子生理性能的可能的化感作用。 该实验以5×2×2析因排列的完全随机设计进行[五个浓度的提取物(0%,25%,50%,75%和100%)×两种遗传物质(1-...
  • radikula)的植物液氮获得的提取物对玉米萌发和幼苗生长的化感作用。无菌燕麦。 实验分为六组,分别用萝卜植物的根,茎和根茎混合提取物(Antep和小萝卜)进行。 我们基于液氮破碎原理开发的一种新方法用于提取。 ...
  • 植物化感抑藻作用及机理研究进展 ,曹林荣,李洁明,水体富营养化引起的水华是当前世界各国所面临的环境问题。利用植物化感作用控制藻类生长、治理藻华污染具有安全、高效、生态风险
  • OsMYB调控化感水稻酚酸类物质合成及其抑草作用研究,沈荔花,李碧凉,基因表达调控是水稻化感作用形成的重要基础。本研究对化感水稻PI312777(Oryza sativa L.)的OsMYB(CT829537)基因分别进行过表达(overexpression, ...
  • 电磁感应作用下介质中电子的量子行为,张涛,,在法拉第电磁感应作用下电子云上等效生电流可能是量子的。与等效生电流对应的能量取某些分立的值。
  • 薄荷化感物质的作用

    千次阅读 2005-04-17 13:42:00
    林鑫 吴双 王征 程珊 靳晶 摘 要 以小麦(Triticumaestivum)和萝卜(Raphanussativus)2种作物为受体,对薄荷(Menthahaplocalyx)化感物质的作用进行了研究.结果表明:薄荷地上部分挥发物显著抑制萝卜幼苗和幼根的生长。...
    林鑫 吴双 王征 程珊 靳晶 
    摘 要  以小麦(Triticumaestivum)和萝卜(Raphanussativus)2种作物为受体,对薄荷(Menthahaplocalyx)化感物质的作用进行了研究.结果表明:薄荷地上部分挥发物显著抑制萝卜幼苗和幼根的生长。薄荷地上部分水浸液显著抑制萝卜的种子萌发和幼苗、幼根的生长,对小麦的作用不明显;萝卜比小麦更敏感。薄荷根分泌物显著抑制萝卜幼苗的生长,而促进其幼根的生长,对小麦幼苗的生长无显著影响。随着化感物质浓度的降低,抑制作用逐渐减弱、消失,甚至转变为促进作用.
    关键词 薄荷;化感作用;生物测定;化感物质
    Effects of Mint Allelolochemicals
    LIN Xin, WU Shuang, WANG Zheng, CHENG Shan, JIN Jing
    Abstract The effects of mint (Menthahaplocalyx) allelolochemicals were studied on two crops :wheat(Triticumaestivum),and radish(Raphanussativus).The volatileness from aerial part of mint significantly inhibited the growth of seedling and root of radish. The aqueous extract from aerial part of mint significantly inhibited both the germination of seed and growth of seedling and root of radish, no significant inhibiting to wheat; radish is more sensitive than wheat. The exudates of mint root showed obvious effects on inhibiting the growth of seedling but stimulating that of root of radish; less obvious in the growth of seedling of wheat. Radish was more sensitive to the allelopathic effect than wheat. The suppression gradually decreased, disappeared and even changed into stimulative effect when the concentration of extract declined.
    Keywords  Menthahaplocalyx  allelopathy

    一、实验目的

              初步学习怎样通过实验方法来研究植物化感作用的存在;

              认识植物的化感作用及其对生态系统结构和功能的重要影响,并从中了解从分子水平研究生物与环境相互作用机理的重要性;

              初步了解化感作用的研究现状和发展动态。

    二、实验原理

    1、化感作用

      一种植物(包括微生物)通过向环境释放化学物质而对另一种植物(包括微生物)所产生的任何直接或间接的有害作用。植物化感作用是生态系统中种间相互作用的重要途径,在植物群落的组成和分布、生态系统演替过程和物种替代机制、外来种的生态入侵等方面起着重要作用。

    2、化感物质

    ①植物体中的存在部位

      化感物质大多是植物的次生代谢物质,不参与有机体的主要代谢过程。植物的各种器官都可能产生和释放化感物质。茎、叶组织是大量化感物质的来源。

    ②化感物质的释放途径

           茎叶淋溶                 

           茎叶挥发                 重要

           根系分泌                 的途径

           植物残体降解

           种子萌发

           花粉传播

    3、薄荷化感作用

    薄荷别名蕃荷菜、菝等,为唇形科薄荷属多年生宿根性草本植物,具有强烈的挥发性。

    其挥发物,地上部分及根部的浸出液对小麦、萝卜等作物均有强烈的化感作用。

    三、实验步骤

    1、叶子挥发物化感作用的生物测定     

       六个干燥器分别编号。1-3号放薄荷,4-6号对照。干燥器中央放一1000ml大烧杯,实验组分别种有3株薄荷,情况见表:

    1

    2

    3

    平均株高(cm)

    27.6

    27.4

    27.9

    平均叶片数

    12.6

    12.9

    13.2

    鲜重(g)

    19.45

    18.72

    20.07

    对照组不放薄荷,但是放同样大小的烧杯,内装同体积的蛭石和等量的营养液。围绕大烧杯码放5100ml的小烧杯,每个杯子植入8株等高的萝卜幼苗。一次性浇足水后,密封干燥器。每天中午轮盆,6个干燥器逆时针旋转,每个再各自自转90度,保证日照均匀。封闭7天后取出,测量实验结果。

    2地上部分水浸液化感作用的生物测定萌发试验

    取新鲜的薄荷地上部分,剪成1cm长的小段,5倍重量的蒸馏水,在室温下浸泡48h后过滤,滤液为供试母液,浓度记为1: 5,存于冰箱4℃待用.实验时用蒸馏水将水浸液稀释至1 :10,1 :151 :20三个浓度(均为质量比m:m)

    在分别装有40粒均一饱满的萝卜和小麦种子的培养皿中定量加入不同浓度的薄荷地上部分水浸液,对照组用蒸馏水,并置于25℃恒温箱中萌发.24h添加一次培养液.3d后测定幼苗总长。(每个浓度平行做3组)。

    3根分泌物溶液的化感作用

    ①薄荷根分泌物及对照组溶液的收集

      3只大小型号相同的塑料盆,分别放入等量的石英砂,前两个盆分别种上长势相同的薄荷,对照组不种薄荷,倒入等量的蒸馏水。以后每天向3个盆加同量的水,共两周。将种有薄荷的两盆浸出液过滤混匀,对照组同样过滤,存于冰箱4℃待用.

    根分泌物溶液化感作用的生物测定

    在装有20粒受体植物种子的培养皿中定量加入薄荷根分泌物溶液,并置于光照培养箱中培养.温度25℃。对照组用石英砂浸出液培养。每24h更换一次薄荷根分泌物溶液及对照组浸出液.4天后测定出芽率、苗高和根长。

    四、实验结果及分析
    1、叶子挥发物化感作用的生物测定
    实验结果:
    苗高
    根长
    叶片数
    结果分析

    整体来说,实验结果差距十分显著,不管是苗高、根长和叶片数,薄荷对萝卜均有较为明显的抑制作用。

       对照组平均数比较吻合,差异不大;而实验组23组差异较大,分析原因,很可能是由于个别干燥器内压力较大,自己顶开盖子,致使部分叶片挥发物散发到空气之中的缘故。

    2地上部分水浸液化感作用的生物测定萌发试验
    实验结果      

    ①对萝卜萌发率的影响

    ②对小麦萌发率的影响

    结果分析

              对萝卜萌发率的影响

    薄荷地上部分浸出液对萝卜萌发率具有非常显著的影响。随着浓度的升高,抑制的作用越发显著。在24小时后就可见明显的区别。(右图为第一天三个浓度及对照组的照片)

    以下四图分别为:3天后110浓度;115浓度;120浓度;以及四浓度对照  

              对小麦萌发率的影响

    薄荷地上部分浸出液对小麦萌发率也有影响,但不是非常显著,且与    浓度关系不大。

    结果证明,薄荷对小麦的化感作用不如对萝卜的强烈,萝卜比小麦更加敏感。

    3根分泌物溶液的化感作用
    实验结果   

    ①根浸出萝卜

    苗高

    根长

    ②根浸出小麦

    苗高

    结果分析

    实验结果证明:薄荷根的浸出液对萝卜的苗高具有抑制作用,而对其根长具有显著的促进作用。薄荷根的浸出液对小麦的苗高具有不显著的抑制作用。由于是最后一个实验,时间较为紧促,没有做预实验,用培养皿做的萌发实验,结果小麦的对照组312略有差距。

     反思:今后再做苗高和根长的实验,应该用小烧杯而不是培养皿。

    五、讨论

    薄荷可以通过淋洗和根系分泌等途径释放化感物质,对小麦和萝卜等作物的种子萌发和幼苗、幼根生长发育产生不同的影响.本研究中无论是薄荷根系分泌物还是地上部分水浸物都显示了对不同受体植物或对同一受体植物的不同部位(如幼苗和幼根)完全不同的化感作用(促进、抑制或无显著影响). 就薄荷地上部分挥发物对植物的作用而言,显著抑制萝卜幼苗和幼根的生长。就薄荷地上部分水浸液对植物种子萌发和幼苗、幼根生长的抑制作用而言,显著抑制萝卜的种子萌发和幼苗、幼根的生长,对小麦的作用无显著影响;萝卜比小麦更敏感。薄荷根分泌物显著抑制萝卜幼苗的生长,而促进其幼根的生长,对小麦幼苗的生长无显著影响。值得注意的是相同的化感物质促进幼根生长,抑制幼苗生长(如薄荷根分泌物对萝卜的作用),这种相反作用的综合效应如何呢?除挥发性物质外,大多数化感物质是通过影响根系及其环境来影响受体植物的,此时根的反应不灵敏,而对苗的生长有影响。可能是由于薄荷根分泌物经萝卜根的吸收,对幼苗产生毒害,使得植株矮小,而根得到了对照所没有的营养物质,反而长得好。到底是何种原因,尚需深入研究。化感物质的浓度效应是化感作用研究的一个重要内容。常见的现象是:随着浓度的降低,化感物质的抑制或促进作用会逐渐减弱、消失.但值得注意的是:在本研究中,浓度的降低甚至能使化感物质的抑制作用转变为促进作用。还有很多内容需要进一步的研究。

    六、参考文献

    1.孔垂华.植物化感作用研究中应注意问题〔J〕.应用生态学报,1998,9(3):332-336.

    2.赵大芹. 特色绿叶蔬菜——薄荷(C) . 贵州农业科学 2000,28(5):55

    3.张远莉 陈建群   卫春 张纪林:薄荷化感物质的作用及其初步分离.   应用与环境生物学报 2003,9(6):611615

    4.王国勇: 薄荷高产栽培技术.   《中国农技推广》      2003年第1

                                                                                                           林鑫

                                                                                                           1020800036

    实验体会

    历时两个月的植物化感试验,终于有了结果。实验验证了某些事实,也有创新,但也由于文献所的结论不符之处,尚有很多问题待进一步的研究。总的来说,不论是对植物化感作用,还是对实验中的操作,都有了更深入的了解,对什么是科研的问题,也有了新的认识。
        首先总结一下实验操作中的种种不当。

    1.不习惯于用托盘乘容器或药品。这是一个习惯问题,也是方不方便的问题。而且在托盘上放东西要保证其稳定性,否则可能会打碎某些容器或药品。

    2.洗干净,烘干的玻璃棒等物品应放在托盘中,而不是桌子上。这是实验仔细与否的问题。放在桌子上可将物品再度污染,洗和烘的工夫可就白费了。

    3.用完的东西要物归原处,否则下次就找不到了,给别的人也会带来不便。

    4.要按时进行实验,这是实验准确度的问题,否则数据很有可能不准确。

    5.要提前于老师约定时间,否则将耽误试验,后果,很可能很严重。

    6.在挑种子的时候,要挑均一饱满的。在烧杯中种小麦时,注意将平整的一面朝上。

    7.在把实验材料装入干燥器后,要密闭干燥器,除了用凡士林密封外,还应用胶布粘牢,以防内部的高温将盖子顶开,保证结果的准确性。

    8.在从装有蛭石,并种有萝卜的烧杯中,取萝卜测量时,应避免其根的人为损伤。

    其次对本试验的设计而言,有很多问题,很多现实问题的无法满足,导致改变了最初的设想,从芦苇到萝卜和小麦的全面出击。这是考虑问题不周,不实事求是的结果。好在后来实事求是了,才有了结果。即使是后来的设计方案也有很多值得商榷的地方。

    1.缺少预试验。这一步应该说是很关键的,不论是选种,出苗时长,选择适当的容器,还是对浓度的选择,都会有相当大的帮助,对后续试验的灵活性的提高,益处颇多。

    2.实际的意义不是很大。仅仅只是证实了薄荷对两种植物的化感作用的存在,并在不同的条件下进行了比较。但是实际中的价值究竟如何,不明确。

    再次对结果的分析而言,个人感觉很粗略。但我没有什么好的解决办法,由于时间太紧,不可能查阅大量的资料,仔细分析数据。以后我应该注意这样的时间安排,将数据的处理,分析,实验各现象的分析,在每结束一阶段时就做一部分的,最后只用汇总就行了。在一大队的数据,现象面前,单凭人的观察和简单的比较是远远不够的,借助计算机是很好的选择。

    从整个实验过程来说,科研并没有想象中的那么神秘,其实就是尊重事实,按照科学研究的方法进行就可以了,在实际中将问题尽量考虑全面,多查阅一些资料,在前人的研究基础上,有自己的创新。科学素养并不是经过一次试验就能得到的,在以后的实验中还需磨练。

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                       林鑫

                                                                                                       1020800036

    实验体会

    历时两个月的植物化感试验,终于有了结果。实验验证了某些事实,也有创新,但也由于文献所的结论不符之处,尚有很多问题待进一步的研究。总的来说,不论是对植物化感作用,还是对实验中的操作,都有了更深入的了解,对什么是科研的问题,也有了新的认识。
        首先总结一下实验操作中的种种不当。

    1.不习惯于用托盘乘容器或药品。这是一个习惯问题,也是方不方便的问题。而且在托盘上放东西要保证其稳定性,否则可能会打碎某些容器或药品。

    2.洗干净,烘干的玻璃棒等物品应放在托盘中,而不是桌子上。这是实验仔细与否的问题。放在桌子上可将物品再度污染,洗和烘的工夫可就白费了。

    3.用完的东西要物归原处,否则下次就找不到了,给别的人也会带来不便。

    4.要按时进行实验,这是实验准确度的问题,否则数据很有可能不准确。

    5.要提前于老师约定时间,否则将耽误试验,后果,很可能很严重。

    6.在挑种子的时候,要挑均一饱满的。在烧杯中种小麦时,注意将平整的一面朝上。

    7.在把实验材料装入干燥器后,要密闭干燥器,除了用凡士林密封外,还应用胶布粘牢,以防内部的高温将盖子顶开,保证结果的准确性。

    8.在从装有蛭石,并种有萝卜的烧杯中,取萝卜测量时,应避免其根的人为损伤。

    其次对本试验的设计而言,有很多问题,很多现实问题的无法满足,导致改变了最初的设想,从芦苇到萝卜和小麦的全面出击。这是考虑问题不周,不实事求是的结果。好在后来实事求是了,才有了结果。即使是后来的设计方案也有很多值得商榷的地方。

    1.缺少预试验。这一步应该说是很关键的,不论是选种,出苗时长,选择适当的容器,还是对浓度的选择,都会有相当大的帮助,对后续试验的灵活性的提高,益处颇多。

    2.实际的意义不是很大。仅仅只是证实了薄荷对两种植物的化感作用的存在,并在不同的条件下进行了比较。但是实际中的价值究竟如何,不明确。

    再次对结果的分析而言,个人感觉很粗略。但我没有什么好的解决办法,由于时间太紧,不可能查阅大量的资料,仔细分析数据。以后我应该注意这样的时间安排,将数据的处理,分析,实验各现象的分析,在每结束一阶段时就做一部分的,最后只用汇总就行了。在一大队的数据,现象面前,单凭人的观察和简单的比较是远远不够的,借助计算机是很好的选择。

    从整个实验过程来说,科研并没有想象中的那么神秘,其实就是尊重事实,按照科学研究的方法进行就可以了,在实际中将问题尽量考虑全面,多查阅一些资料,在前人的研究基础上,有自己的创新。科学素养并不是经过一次试验就能得到的,在以后的实验中还需磨练。

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                           林鑫

                                                                                                           1020800036

    实验体会

    历时两个月的植物化感试验,终于有了结果。实验验证了某些事实,也有创新,但也由于文献所的结论不符之处,尚有很多问题待进一步的研究。总的来说,不论是对植物化感作用,还是对实验中的操作,都有了更深入的了解,对什么是科研的问题,也有了新的认识。
        首先总结一下实验操作中的种种不当。

    1.不习惯于用托盘乘容器或药品。这是一个习惯问题,也是方不方便的问题。而且在托盘上放东西要保证其稳定性,否则可能会打碎某些容器或药品。

    2.洗干净,烘干的玻璃棒等物品应放在托盘中,而不是桌子上。这是实验仔细与否的问题。放在桌子上可将物品再度污染,洗和烘的工夫可就白费了。

    3.用完的东西要物归原处,否则下次就找不到了,给别的人也会带来不便。

    4.要按时进行实验,这是实验准确度的问题,否则数据很有可能不准确。

    5.要提前于老师约定时间,否则将耽误试验,后果,很可能很严重。

    6.在挑种子的时候,要挑均一饱满的。在烧杯中种小麦时,注意将平整的一面朝上。

    7.在把实验材料装入干燥器后,要密闭干燥器,除了用凡士林密封外,还应用胶布粘牢,以防内部的高温将盖子顶开,保证结果的准确性。

    8.在从装有蛭石,并种有萝卜的烧杯中,取萝卜测量时,应避免其根的人为损伤。

    其次对本试验的设计而言,有很多问题,很多现实问题的无法满足,导致改变了最初的设想,从芦苇到萝卜和小麦的全面出击。这是考虑问题不周,不实事求是的结果。好在后来实事求是了,才有了结果。即使是后来的设计方案也有很多值得商榷的地方。

    1.缺少预试验。这一步应该说是很关键的,不论是选种,出苗时长,选择适当的容器,还是对浓度的选择,都会有相当大的帮助,对后续试验的灵活性的提高,益处颇多。

    2.实际的意义不是很大。仅仅只是证实了薄荷对两种植物的化感作用的存在,并在不同的条件下进行了比较。但是实际中的价值究竟如何,不明确。

    再次对结果的分析而言,个人感觉很粗略。但我没有什么好的解决办法,由于时间太紧,不可能查阅大量的资料,仔细分析数据。以后我应该注意这样的时间安排,将数据的处理,分析,实验各现象的分析,在每结束一阶段时就做一部分的,最后只用汇总就行了。在一大队的数据,现象面前,单凭人的观察和简单的比较是远远不够的,借助计算机是很好的选择。

    从整个实验过程来说,科研并没有想象中的那么神秘,其实就是尊重事实,按照科学研究的方法进行就可以了,在实际中将问题尽量考虑全面,多查阅一些资料,在前人的研究基础上,有自己的创新。科学素养并不是经过一次试验就能得到的,在以后的实验中还需磨练。

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                       林鑫

                                                                                                       1020800036

    实验体会

    历时两个月的植物化感试验,终于有了结果。实验验证了某些事实,也有创新,但也由于文献所的结论不符之处,尚有很多问题待进一步的研究。总的来说,不论是对植物化感作用,还是对实验中的操作,都有了更深入的了解,对什么是科研的问题,也有了新的认识。
        首先总结一下实验操作中的种种不当。

    1.不习惯于用托盘乘容器或药品。这是一个习惯问题,也是方不方便的问题。而且在托盘上放东西要保证其稳定性,否则可能会打碎某些容器或药品。

    2.洗干净,烘干的玻璃棒等物品应放在托盘中,而不是桌子上。这是实验仔细与否的问题。放在桌子上可将物品再度污染,洗和烘的工夫可就白费了。

    3.用完的东西要物归原处,否则下次就找不到了,给别的人也会带来不便。

    4.要按时进行实验,这是实验准确度的问题,否则数据很有可能不准确。

    5.要提前于老师约定时间,否则将耽误试验,后果,很可能很严重。

    6.在挑种子的时候,要挑均一饱满的。在烧杯中种小麦时,注意将平整的一面朝上。

    7.在把实验材料装入干燥器后,要密闭干燥器,除了用凡士林密封外,还应用胶布粘牢,以防内部的高温将盖子顶开,保证结果的准确性。

    8.在从装有蛭石,并种有萝卜的烧杯中,取萝卜测量时,应避免其根的人为损伤。

    其次对本试验的设计而言,有很多问题,很多现实问题的无法满足,导致改变了最初的设想,从芦苇到萝卜和小麦的全面出击。这是考虑问题不周,不实事求是的结果。好在后来实事求是了,才有了结果。即使是后来的设计方案也有很多值得商榷的地方。

    1.缺少预试验。这一步应该说是很关键的,不论是选种,出苗时长,选择适当的容器,还是对浓度的选择,都会有相当大的帮助,对后续试验的灵活性的提高,益处颇多。

    2.实际的意义不是很大。仅仅只是证实了薄荷对两种植物的化感作用的存在,并在不同的条件下进行了比较。但是实际中的价值究竟如何,不明确。

    再次对结果的分析而言,个人感觉很粗略。但我没有什么好的解决办法,由于时间太紧,不可能查阅大量的资料,仔细分析数据。以后我应该注意这样的时间安排,将数据的处理,分析,实验各现象的分析,在每结束一阶段时就做一部分的,最后只用汇总就行了。在一大队的数据,现象面前,单凭人的观察和简单的比较是远远不够的,借助计算机是很好的选择。

    从整个实验过程来说,科研并没有想象中的那么神秘,其实就是尊重事实,按照科学研究的方法进行就可以了,在实际中将问题尽量考虑全面,多查阅一些资料,在前人的研究基础上,有自己的创新。科学素养并不是经过一次试验就能得到的,在以后的实验中还需磨练。

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                       林鑫

                                                                                                       1020800036

    以下四图分别为:3天后110浓度;115浓度;120浓度;以及四浓度对照  

              对小麦萌发率的影响

    薄荷地上部分浸出液对小麦萌发率也有影响,但不是非常显著,且与    浓度关系不大。

    结果证明,薄荷对小麦的化感作用不如对萝卜的强烈,萝卜比小麦更加敏感。

    3根分泌物溶液的化感作用
    实验结果   

    ①根浸出萝卜

    苗高

    根长

    ②根浸出小麦

    苗高

    结果分析

    实验结果证明:薄荷根的浸出液对萝卜的苗高具有抑制作用,而对其根长具有显著的促进作用。薄荷根的浸出液对小麦的苗高具有不显著的抑制作用。由于是最后一个实验,时间较为紧促,没有做预实验,用培养皿做的萌发实验,结果小麦的对照组312略有差距。

     反思:今后再做苗高和根长的实验,应该用小烧杯而不是培养皿。

    五、讨论

    薄荷可以通过淋洗和根系分泌等途径释放化感物质,对小麦和萝卜等作物的种子萌发和幼苗、幼根生长发育产生不同的影响.本研究中无论是薄荷根系分泌物还是地上部分水浸物都显示了对不同受体植物或对同一受体植物的不同部位(如幼苗和幼根)完全不同的化感作用(促进、抑制或无显著影响). 就薄荷地上部分挥发物对植物的作用而言,显著抑制萝卜幼苗和幼根的生长。就薄荷地上部分水浸液对植物种子萌发和幼苗、幼根生长的抑制作用而言,显著抑制萝卜的种子萌发和幼苗、幼根的生长,对小麦的作用无显著影响;萝卜比小麦更敏感。薄荷根分泌物显著抑制萝卜幼苗的生长,而促进其幼根的生长,对小麦幼苗的生长无显著影响。值得注意的是相同的化感物质促进幼根生长,抑制幼苗生长(如薄荷根分泌物对萝卜的作用),这种相反作用的综合效应如何呢?除挥发性物质外,大多数化感物质是通过影响根系及其环境来影响受体植物的,此时根的反应不灵敏,而对苗的生长有影响。可能是由于薄荷根分泌物经萝卜根的吸收,对幼苗产生毒害,使得植株矮小,而根得到了对照所没有的营养物质,反而长得好。到底是何种原因,尚需深入研究。化感物质的浓度效应是化感作用研究的一个重要内容。常见的现象是:随着浓度的降低,化感物质的抑制或促进作用会逐渐减弱、消失.但值得注意的是:在本研究中,浓度的降低甚至能使化感物质的抑制作用转变为促进作用。还有很多内容需要进一步的研究。

    六、参考文献

    1.孔垂华.植物化感作用研究中应注意问题〔J〕.应用生态学报,1998,9(3):332-336.

    2.赵大芹. 特色绿叶蔬菜——薄荷(C) . 贵州农业科学 2000,28(5):55

    3.张远莉 陈建群   卫春 张纪林:薄荷化感物质的作用及其初步分离.   应用与环境生物学报 2003,9(6):611615

    4.王国勇: 薄荷高产栽培技术.   《中国农技推广》      2003年第1

                                                                                                           林鑫

                                                                                                           1020800036

    实验体会

    历时两个月的植物化感试验,终于有了结果。实验验证了某些事实,也有创新,但也由于文献所的结论不符之处,尚有很多问题待进一步的研究。总的来说,不论是对植物化感作用,还是对实验中的操作,都有了更深入的了解,对什么是科研的问题,也有了新的认识。
        首先总结一下实验操作中的种种不当。

    1.不习惯于用托盘乘容器或药品。这是一个习惯问题,也是方不方便的问题。而且在托盘上放东西要保证其稳定性,否则可能会打碎某些容器或药品。

    2.洗干净,烘干的玻璃棒等物品应放在托盘中,而不是桌子上。这是实验仔细与否的问题。放在桌子上可将物品再度污染,洗和烘的工夫可就白费了。

    3.用完的东西要物归原处,否则下次就找不到了,给别的人也会带来不便。

    4.要按时进行实验,这是实验准确度的问题,否则数据很有可能不准确。

    5.要提前于老师约定时间,否则将耽误试验,后果,很可能很严重。

    6.在挑种子的时候,要挑均一饱满的。在烧杯中种小麦时,注意将平整的一面朝上。

    7.在把实验材料装入干燥器后,要密闭干燥器,除了用凡士林密封外,还应用胶布粘牢,以防内部的高温将盖子顶开,保证结果的准确性。

    8.在从装有蛭石,并种有萝卜的烧杯中,取萝卜测量时,应避免其根的人为损伤。

    其次对本试验的设计而言,有很多问题,很多现实问题的无法满足,导致改变了最初的设想,从芦苇到萝卜和小麦的全面出击。这是考虑问题不周,不实事求是的结果。好在后来实事求是了,才有了结果。即使是后来的设计方案也有很多值得商榷的地方。

    1.缺少预试验。这一步应该说是很关键的,不论是选种,出苗时长,选择适当的容器,还是对浓度的选择,都会有相当大的帮助,对后续试验的灵活性的提高,益处颇多。

    2.实际的意义不是很大。仅仅只是证实了薄荷对两种植物的化感作用的存在,并在不同的条件下进行了比较。但是实际中的价值究竟如何,不明确。

    再次对结果的分析而言,个人感觉很粗略。但我没有什么好的解决办法,由于时间太紧,不可能查阅大量的资料,仔细分析数据。以后我应该注意这样的时间安排,将数据的处理,分析,实验各现象的分析,在每结束一阶段时就做一部分的,最后只用汇总就行了。在一大队的数据,现象面前,单凭人的观察和简单的比较是远远不够的,借助计算机是很好的选择。

    从整个实验过程来说,科研并没有想象中的那么神秘,其实就是尊重事实,按照科学研究的方法进行就可以了,在实际中将问题尽量考虑全面,多查阅一些资料,在前人的研究基础上,有自己的创新。科学素养并不是经过一次试验就能得到的,在以后的实验中还需磨练。

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                       林鑫

                                                                                                       1020800036

    实验体会

    历时两个月的植物化感试验,终于有了结果。实验验证了某些事实,也有创新,但也由于文献所的结论不符之处,尚有很多问题待进一步的研究。总的来说,不论是对植物化感作用,还是对实验中的操作,都有了更深入的了解,对什么是科研的问题,也有了新的认识。
        首先总结一下实验操作中的种种不当。

    1.不习惯于用托盘乘容器或药品。这是一个习惯问题,也是方不方便的问题。而且在托盘上放东西要保证其稳定性,否则可能会打碎某些容器或药品。

    2.洗干净,烘干的玻璃棒等物品应放在托盘中,而不是桌子上。这是实验仔细与否的问题。放在桌子上可将物品再度污染,洗和烘的工夫可就白费了。

    3.用完的东西要物归原处,否则下次就找不到了,给别的人也会带来不便。

    4.要按时进行实验,这是实验准确度的问题,否则数据很有可能不准确。

    5.要提前于老师约定时间,否则将耽误试验,后果,很可能很严重。

    6.在挑种子的时候,要挑均一饱满的。在烧杯中种小麦时,注意将平整的一面朝上。

    7.在把实验材料装入干燥器后,要密闭干燥器,除了用凡士林密封外,还应用胶布粘牢,以防内部的高温将盖子顶开,保证结果的准确性。

    8.在从装有蛭石,并种有萝卜的烧杯中,取萝卜测量时,应避免其根的人为损伤。

    其次对本试验的设计而言,有很多问题,很多现实问题的无法满足,导致改变了最初的设想,从芦苇到萝卜和小麦的全面出击。这是考虑问题不周,不实事求是的结果。好在后来实事求是了,才有了结果。即使是后来的设计方案也有很多值得商榷的地方。

    1.缺少预试验。这一步应该说是很关键的,不论是选种,出苗时长,选择适当的容器,还是对浓度的选择,都会有相当大的帮助,对后续试验的灵活性的提高,益处颇多。

    2.实际的意义不是很大。仅仅只是证实了薄荷对两种植物的化感作用的存在,并在不同的条件下进行了比较。但是实际中的价值究竟如何,不明确。

    再次对结果的分析而言,个人感觉很粗略。但我没有什么好的解决办法,由于时间太紧,不可能查阅大量的资料,仔细分析数据。以后我应该注意这样的时间安排,将数据的处理,分析,实验各现象的分析,在每结束一阶段时就做一部分的,最后只用汇总就行了。在一大队的数据,现象面前,单凭人的观察和简单的比较是远远不够的,借助计算机是很好的选择。

    从整个实验过程来说,科研并没有想象中的那么神秘,其实就是尊重事实,按照科学研究的方法进行就可以了,在实际中将问题尽量考虑全面,多查阅一些资料,在前人的研究基础上,有自己的创新。科学素养并不是经过一次试验就能得到的,在以后的实验中还需磨练。

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                           林鑫

                                                                                                           1020800036

    实验体会

    历时两个月的植物化感试验,终于有了结果。实验验证了某些事实,也有创新,但也由于文献所的结论不符之处,尚有很多问题待进一步的研究。总的来说,不论是对植物化感作用,还是对实验中的操作,都有了更深入的了解,对什么是科研的问题,也有了新的认识。
        首先总结一下实验操作中的种种不当。

    1.不习惯于用托盘乘容器或药品。这是一个习惯问题,也是方不方便的问题。而且在托盘上放东西要保证其稳定性,否则可能会打碎某些容器或药品。

    2.洗干净,烘干的玻璃棒等物品应放在托盘中,而不是桌子上。这是实验仔细与否的问题。放在桌子上可将物品再度污染,洗和烘的工夫可就白费了。

    3.用完的东西要物归原处,否则下次就找不到了,给别的人也会带来不便。

    4.要按时进行实验,这是实验准确度的问题,否则数据很有可能不准确。

    5.要提前于老师约定时间,否则将耽误试验,后果,很可能很严重。

    6.在挑种子的时候,要挑均一饱满的。在烧杯中种小麦时,注意将平整的一面朝上。

    7.在把实验材料装入干燥器后,要密闭干燥器,除了用凡士林密封外,还应用胶布粘牢,以防内部的高温将盖子顶开,保证结果的准确性。

    8.在从装有蛭石,并种有萝卜的烧杯中,取萝卜测量时,应避免其根的人为损伤。

    其次对本试验的设计而言,有很多问题,很多现实问题的无法满足,导致改变了最初的设想,从芦苇到萝卜和小麦的全面出击。这是考虑问题不周,不实事求是的结果。好在后来实事求是了,才有了结果。即使是后来的设计方案也有很多值得商榷的地方。

    1.缺少预试验。这一步应该说是很关键的,不论是选种,出苗时长,选择适当的容器,还是对浓度的选择,都会有相当大的帮助,对后续试验的灵活性的提高,益处颇多。

    2.实际的意义不是很大。仅仅只是证实了薄荷对两种植物的化感作用的存在,并在不同的条件下进行了比较。但是实际中的价值究竟如何,不明确。

    再次对结果的分析而言,个人感觉很粗略。但我没有什么好的解决办法,由于时间太紧,不可能查阅大量的资料,仔细分析数据。以后我应该注意这样的时间安排,将数据的处理,分析,实验各现象的分析,在每结束一阶段时就做一部分的,最后只用汇总就行了。在一大队的数据,现象面前,单凭人的观察和简单的比较是远远不够的,借助计算机是很好的选择。

    从整个实验过程来说,科研并没有想象中的那么神秘,其实就是尊重事实,按照科学研究的方法进行就可以了,在实际中将问题尽量考虑全面,多查阅一些资料,在前人的研究基础上,有自己的创新。科学素养并不是经过一次试验就能得到的,在以后的实验中还需磨练。

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                       林鑫

                                                                                                       1020800036

    实验体会

    历时两个月的植物化感试验,终于有了结果。实验验证了某些事实,也有创新,但也由于文献所的结论不符之处,尚有很多问题待进一步的研究。总的来说,不论是对植物化感作用,还是对实验中的操作,都有了更深入的了解,对什么是科研的问题,也有了新的认识。
        首先总结一下实验操作中的种种不当。

    1.不习惯于用托盘乘容器或药品。这是一个习惯问题,也是方不方便的问题。而且在托盘上放东西要保证其稳定性,否则可能会打碎某些容器或药品。

    2.洗干净,烘干的玻璃棒等物品应放在托盘中,而不是桌子上。这是实验仔细与否的问题。放在桌子上可将物品再度污染,洗和烘的工夫可就白费了。

    3.用完的东西要物归原处,否则下次就找不到了,给别的人也会带来不便。

    4.要按时进行实验,这是实验准确度的问题,否则数据很有可能不准确。

    5.要提前于老师约定时间,否则将耽误试验,后果,很可能很严重。

    6.在挑种子的时候,要挑均一饱满的。在烧杯中种小麦时,注意将平整的一面朝上。

    7.在把实验材料装入干燥器后,要密闭干燥器,除了用凡士林密封外,还应用胶布粘牢,以防内部的高温将盖子顶开,保证结果的准确性。

    8.在从装有蛭石,并种有萝卜的烧杯中,取萝卜测量时,应避免其根的人为损伤。

    其次对本试验的设计而言,有很多问题,很多现实问题的无法满足,导致改变了最初的设想,从芦苇到萝卜和小麦的全面出击。这是考虑问题不周,不实事求是的结果。好在后来实事求是了,才有了结果。即使是后来的设计方案也有很多值得商榷的地方。

    1.缺少预试验。这一步应该说是很关键的,不论是选种,出苗时长,选择适当的容器,还是对浓度的选择,都会有相当大的帮助,对后续试验的灵活性的提高,益处颇多。

    2.实际的意义不是很大。仅仅只是证实了薄荷对两种植物的化感作用的存在,并在不同的条件下进行了比较。但是实际中的价值究竟如何,不明确。

    再次对结果的分析而言,个人感觉很粗略。但我没有什么好的解决办法,由于时间太紧,不可能查阅大量的资料,仔细分析数据。以后我应该注意这样的时间安排,将数据的处理,分析,实验各现象的分析,在每结束一阶段时就做一部分的,最后只用汇总就行了。在一大队的数据,现象面前,单凭人的观察和简单的比较是远远不够的,借助计算机是很好的选择。

    从整个实验过程来说,科研并没有想象中的那么神秘,其实就是尊重事实,按照科学研究的方法进行就可以了,在实际中将问题尽量考虑全面,多查阅一些资料,在前人的研究基础上,有自己的创新。科学素养并不是经过一次试验就能得到的,在以后的实验中还需磨练。

                                                                                                       林鑫

                                                                                                       1020800036

                                                                                                       林鑫

                                                                                                       1020800036

    展开全文
  • 引种地桉树化感对生物多样性的影响,汪金刚,张健,桉树人工林生物多样性减少引起广泛的讨论,本文就桉树的化感作用对生物多样性的影响进行了深入广泛的介绍,从引种地桉树人工林的
  • 水提物的化感势。

    2020-06-05 05:43:01
    这些植物合成了大量化学上不同的化合物,这些化合物以决定性的方式排放到环境中,形成了农业生态系统的物种动态被称为化感作用。 这项研究的目的是评估芜菁水提取物对豆类和玉米种子的化感作用。 实验设计通过五种...
  • 黄花蒿化感物质对小麦体内酶活性影响的研究,吴根土,张静,本文以小麦为受体植物,测定了黄花蒿提取物对受体小麦体内几种酶的活性影响,研究了黄花蒿浸提液对受体小麦的化感作用机理。结果
  • 邻羟基苯甲酸对不同化感型杉木无性系内源激素含量的化感效应,杨梅,曹光球,自毒作用是导致杉木林连栽地力衰退、生产力下降的主要原因之一,邻羟基苯甲酸是杉木酚酸类主要自毒物质之一。以筛选的自毒物质忍
  • 邻羟基苯甲酸对不同化感型杉木无性系抗氧化酶活性的化感效应,曹光球,林思祖,自毒作用是导致杉木林连栽地力衰退、生产力下降的主要原因之一,邻羟基苯甲酸是杉木酚酸类主要自毒物质之一。以筛选的自毒物质忍
  • 估计了镰刀菌根腐病与4种化感物质在芦笋幼苗中的相互作用,以阐明芦笋下降中生物和非生物因子之间的关系。 尖孢镰刀菌的体外培养 sp。 使用Czapec-Dox培养基添加或不添加4种化感药(咖啡酸,阿魏酸,槲皮素,苹果酸...
  • 如果对Java序列化感兴趣的同学可以研究一下。 一.Java序列化的作用 有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从一个字节流中恢复一个Java对象。例如,有的时候我们想要 把一个...

    Java序列化的几种方式以及序列化的作用

    本文着重讲解一下Java序列化的相关内容。

    如果对Java序列化感兴趣的同学可以研究一下。

    一.Java序列化的作用

       有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从一个字节流中恢复一个Java对象。例如,有的时候我们想要

    把一个Java对象写入到硬盘或者传输到网路上面的其它计算机,这时我们就需要自己去通过java把相应的对象写成转换成字节流。对于这种通用

    的操作,我们为什么不使用统一的格式呢?没错,这里就出现了java的序列化的概念。在Java的OutputStream类下面的子类ObjectOutput-

    Stream类就有对应的WriteObject(Object object) 其中要求对应的object实现了java的序列化的接口。

      为了更好的理解java序列化的应用,我举两个自己在开发项目中遇到的例子:

      1)在使用tomcat开发JavaEE相关项目的时候,我们关闭tomcat后,相应的session中的对象就存储在了硬盘上,如果我们想要在tomcat重启的

    时候能够从tomcat上面读取对应session中的内容,那么保存在session中的内容就必须实现相关的序列化操作。

      2)如果我们使用的java对象要在分布式中使用或者在rmi远程调用的网络中使用的话,那么相关的对象必须实现java序列化接口。

      亲爱的小伙伴,大概你已经了解了java序列化相关的作用,接下来们来看看如何实现java的序列化吧。~

      二.实现java对象的序列化和反序列化。

               Java对象的序列化有两种方式。

               a.是相应的对象实现了序列化接口Serializable,这个使用的比较多,对于序列化接口Serializable接口是一个空的接口,它的主要作用就是

                 标识这个对象时可序列化的,jre对象在传输对象的时候会进行相关的封装。这里就不做过多的介绍了。

                 下面是一个实现序列化接口的Java序列化的例子:非常简单

                

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    package com.shop.domain;
     
    import java.util.Date;
     
     
    public class Article implements java.io.Serializable {
        private static final long serialVersionUID = 1L;
        private Integer id;  
        private String title;  //文章标题
        private String content;  // 文章内容
        private String faceIcon;//表情图标
        private Date postTime; //文章发表的时间
        private String ipAddr;  //用户的ip
         
        private User author;  //回复的用户
         
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public String getContent() {
            return content;
        }
        public void setContent(String content) {
            this.content = content;
        }
        public String getFaceIcon() {
            return faceIcon;
        }
        public void setFaceIcon(String faceIcon) {
            this.faceIcon = faceIcon;
        }
        public Date getPostTime() {
            return postTime;
        }
        public void setPostTime(Date postTime) {
            this.postTime = postTime;
        }
        public User getAuthor() {
            return author;
        }
        public void setAuthor(User author) {
            this.author = author;
        }
        public String getIpAddr() {
            return ipAddr;
        }
        public void setIpAddr(String ipAddr) {
            this.ipAddr = ipAddr;
        }
         
         
    }

     

      b.实现序列化的第二种方式为实现接口Externalizable,Externlizable的部分源代码如下:

          

    1
    2
    3
    4
    5
    6
    7
    8
    @see java.io.ObjectInput
     @see java.io.Serializable
     @since   JDK1.1
     */
    public interface Externalizable extends java.io.Serializable {
        /**
         * The object implements the writeExternal method to save its contents
         * by calling the methods of DataOutput for its primitive values or

          没错,Externlizable接口继承了java的序列化接口,并增加了两个方法:

         void writeExternal(ObjectOutput out) throws IOException;

         void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;

         首先,我们在序列化对象的时候,由于这个类实现了Externalizable 接口,在writeExternal()方法里定义了哪些属性可以序列化,

    哪些不可以序列化,所以,对象在经过这里就把规定能被序列化的序列化保存文件,不能序列化的不处理,然后在反序列的时候自动调

    用readExternal()方法,根据序列顺序挨个读取进行反序列,并自动封装成对象返回,然后在测试类接收,就完成了反序列。

         所以说Exterinable的是Serializable的一个扩展。

         为了更好的理解相关内容,请看下面的例子:

       

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    package com.xiaohao.test;
     
    import java.io.Externalizable;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutput;
    import java.io.ObjectOutputStream;
    import java.text.SimpleDateFormat;
    import java.util.Date;
     
     
    /**
     * 测试实体类
     * @author 小浩
     * @创建日期 2015-3-12
     */
    class Person implements Externalizable{
            private static final long serialVersionUID = 1L;<br>    String userName;
        String password;
        String age;
         
       
        public Person(String userName, String password, String age) {
            super();
            this.userName = userName;
            this.password = password;
            this.age = age;
        }
         
         
        public Person() {
            super();
        }
     
     
        public String getAge() {
            return age;
        }
        public void setAge(String age) {
            this.age = age;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
         
        /**
         * 序列化操作的扩展类
         */
        @Override
        public void writeExternal(ObjectOutput out) throws IOException {
            //增加一个新的对象
            Date date=new Date();
            out.writeObject(userName);
            out.writeObject(password);
            out.writeObject(date);
        }
         
        /**
         * 反序列化的扩展类
         */
        @Override
        public void readExternal(ObjectInput in) throws IOException,
                ClassNotFoundException {
            //注意这里的接受顺序是有限制的哦,否则的话会出错的
            // 例如上面先write的是A对象的话,那么下面先接受的也一定是A对象...
            userName=(String) in.readObject();
            password=(String) in.readObject();
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            Date date=(Date)in.readObject();        
            System.out.println("反序列化后的日期为:"+sdf.format(date));
             
        }
        @Override
        public String toString() {
            //注意这里的年龄是不会被序列化的,所以在反序列化的时候是读取不到数据的
            return "用户名:"+userName+"密 码:"+password+"年龄:"+age;
        }
    }
     
     
    /**
     * 序列化和反序列化的相关操作类
     * @author 小浩
     * @创建日期 2015-3-12
     */
    class Operate{
        /**
         * 序列化方法
         * @throws IOException 
         * @throws FileNotFoundException 
         */
        public void serializable(Person person) throws FileNotFoundException, IOException{
            ObjectOutputStream outputStream=new ObjectOutputStream(new FileOutputStream("a.txt"));
            outputStream.writeObject(person);       
        }
         
        /**
         * 反序列化的方法
         * @throws IOException 
         * @throws FileNotFoundException 
         * @throws ClassNotFoundException 
         */
        public Person deSerializable() throws FileNotFoundException, IOException, ClassNotFoundException{
            ObjectInputStream ois=new ObjectInputStream(new FileInputStream("a.txt"));
            return (Person) ois.readObject();
        }
         
     
         
    }
    /**
     * 测试实体主类
     * @author 小浩
     * @创建日期 2015-3-12
     */
    public class Test{
        public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
           Operate operate=new Operate();
           Person person=new Person("小浩","123456","20");
           System.out.println("为序列化之前的相关数据如下:\n"+person.toString());
           operate.serializable(person);
           Person newPerson=operate.deSerializable();
           System.out.println("-------------------------------------------------------");
           System.out.println("序列化之后的相关数据如下:\n"+newPerson.toString());
        }
         
         
    }

             

      首先,我们在序列化UserInfo对象的时候,由于这个类实现了Externalizable 接口,在writeExternal()方法里定义了哪些属性可

    以序列化,哪些不可以序列化,所以,对象在经过这里就把规定能被序列化的序列化保存文件,不能序列化的不处理,然后在反序列

    的时候自动调用readExternal()方法,根据序列顺序挨个读取进行反序列,并自动封装成对象返回,然后在测试类接收,就完成了反

    序列。

      

         ***对于实现Java的序列化接口需要注意一下几点:

               1.java中的序列化时transient变量(这个关键字的作用就是告知JAVA我不可以被序列化)和静态变量不会被序列

                  化(下面是一个测试的例子)

               

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    import java.io.*;
     
    class Student1 implements Serializable {
        private static final long serialVersionUID = 1L;
        private String name;
        private transient String password;
        private static int count = 0;
     
        public Student1(String name, String password) {
            System.out.println("调用Student的带参的构造方法");
            this.name = name;
            this.password = password;
            count++;
        }
     
        public String toString() {
            return "人数: " + count + " 姓名: " + name + " 密码: " + password;
        }
    }
     
    public class ObjectSerTest1 {
        public static void main(String args[]) {
            try {
                FileOutputStream fos = new FileOutputStream("test.obj");
                ObjectOutputStream oos = new ObjectOutputStream(fos);
                Student1 s1 = new Student1("张三""12345");
                Student1 s2 = new Student1("王五""54321");
                oos.writeObject(s1);
                oos.writeObject(s2);
                oos.close();
                FileInputStream fis = new FileInputStream("test.obj");
                ObjectInputStream ois = new ObjectInputStream(fis);
                Student1 s3 = (Student1) ois.readObject();
                Student1 s4 = (Student1) ois.readObject();
                System.out.println(s3);
                System.out.println(s4);
                ois.close();
            catch (IOException e) {
                e.printStackTrace();
            catch (ClassNotFoundException e1) {
                e1.printStackTrace();
            }
        }
    }

     

      

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
     
    public class Test{
     
     
         
        public static void main(String args[]){
             
            try {
     
                FileInputStream fis = new FileInputStream("test.obj");
                ObjectInputStream ois = new ObjectInputStream(fis);
     
                Student1 s3 = (Student1) ois.readObject();
                Student1 s4 = (Student1) ois.readObject();
     
                System.out.println(s3);
                System.out.println(s4);
     
                ois.close();
            catch (IOException e) {
                e.printStackTrace();
            catch (ClassNotFoundException e1) {
                e1.printStackTrace();
            }
        }
         
         
         
    }

      

                    2.也是最应该注意的,如果你先序列化对象A后序列化B,那么在反序列化的时候一定记着JAVA规定先读到的对象

                       是先被序列化的对象,不要先接收对象B,那样会报错.尤其在使用上面的Externalizable的时候一定要注意读取

                       的先后顺序。

                    3.实现序列化接口的对象并不强制声明唯一的serialVersionUID,是否声明serialVersionUID对于对象序列化的向

                      上向下的兼容性有很大的影响。我们来做个测试:

    思路一

    把User中的serialVersionUID去掉,序列化保存。反序列化的时候,增加或减少个字段,看是否成功。

    Java代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class User implements Serializable{
     
    private String name;
     
     private int age; 
     
    private long phone; 
     
    private List<UserVo> friends; 
     
    ...<br>}

      

    保存到文件中:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Java代码
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    ObjectOutputStream os = new ObjectOutputStream(bos);
    os.writeObject(src);
    os.flush();
    os.close();
    byte[] b = bos.toByteArray();
    bos.close();
    FileOutputStream fos = new FileOutputStream(dataFile);
    fos.write(b);
    fos.close();

     

    增加或者减少字段后,从文件中读出来,反序列化:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Java代码
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    ObjectOutputStream os = new ObjectOutputStream(bos);
    os.writeObject(src);
    os.flush();
    os.close();
    byte[] b = bos.toByteArray();
    bos.close();
    FileOutputStream fos = new FileOutputStream(dataFile);
    fos.write(b);
    fos.close();

      

    结果:抛出异常信息

    Java代码

    1
    2
    3
    4
    5
    6
    7
    8
    Exception in thread "main" java.io.InvalidClassException: serialize.obj.UserVo; local class incompatible: stream classdesc serialVersionUID = 3305402508581390189, local class serialVersionUID = 7174371419787432394 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:560
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
    at serialize.obj.ObjectSerialize.read(ObjectSerialize.java:74)
    at serialize.obj.ObjectSerialize.main(ObjectSerialize.java:27

      

     
    思路二

    eclipse指定生成一个serialVersionUID,序列化保存,修改字段后反序列化

    略去代码

    结果:反序列化成功

    结论

    如果没有明确指定serialVersionUID,序列化的时候会根据字段和特定的算法生成一个serialVersionUID,当属性有变化时这个id发生了变化,所以反序列化的时候

    就会失败。抛出“本地classd的唯一id和流中class的唯一id不匹配”。

    jdk文档关于serialVersionUID的描述:

    写道

    如果可序列化类未显式声明 serialVersionUID,则序列化运行时将基于该类的各个方面计算该类的默认 serialVersionUID 值,如“Java(TM) 对象序列化规范”中所述。不过,强烈建议 所有可序列化类都显式声明 serialVersionUID 值,原因是计算默认的 serialVersionUID 对类的详细信息具有较高的敏感性,根据编译器实现的不同可能千差万别,这样在反序列化过程中可能会导致意外的 InvalidClassException。因此,为保证 serialVersionUID 值跨不同 java 编译器实现的一致性,序列化类必须声明一个明确的 serialVersionUID 值。还强烈建议使用 private 修饰符显示声明 serialVersionUID(如果可能),原因是这种声明仅应用于直接声明类 -- serialVersionUID 字段作为继承成员没有用处。数组类不能声明一个明确的 serialVersionUID,因此它们总是具有默认的计算值,但是数组类没有匹配 serialVersionUID 值的要求。

     

      三.实现序列化的其它方式  (这是一个扩展内容,感兴趣的可以扩展一下)     

           1)是把对象包装成JSON字符串传输。

             这里采用JSON格式同时使用采用Google的gson-2.2.2.jar 进行转义

          2)采用谷歌的ProtoBuf

             随着Google工具protoBuf的开源,protobuf也是个不错的选择。对JSON,Object Serialize(Java的序列化和反序列化),

             ProtoBuf 做个对比。

             定义一个通用的待传输的对象UserVo:

     

     

     
    1
    2
    3
    4
    5
    6
    7
    8
    public class User
    <span style="white-space: pre;">private static final long serialVersionUID = -5726374138698742258L;</span>
    private String name;
      private int age; 
      private long phone; 
      private List<User> friends;
     ...set和get方法
     }

     

      初始化User的实例src:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Java代码
    User user1 = new UserVo();
    user1 .setName("user1 ");
     user1 .setAge(30); 
     user1 .setPhone(13789126278L);
     UserVo f1 = new UserVo();
     f1.setName("tmac"); 
     f1.setAge(32); 
     f1.setPhone(123L); 
     User user2 = new User();
     user2 .setName("user2 "); 
     user2 .setAge(29); 
     user2 .setPhone(123L); <br> List<User> friends = new ArrayList<User>(); 
     friends.add(user1 ); 
     friends.add(user2 );
     user1 .setFriends(friends); 

      1.首先使用JOSN来实现序列化。

    1
    2
    Java代码
    Gson gson = new Gson();<br>String json = gson.toJson(src);

      

       得到的字符串:

    1
    2
    3
    Js代码
     
    {"name":"user1 ","age":30,"phone":123,"friends":[{"name":"user1 ","age":32,"phone":123},{"name":"user2 ","age":29,"phone":123}]} 

     

    字节数为153

    Json的优点:明文结构一目了然,可以跨语言,属性的增加减少对解析端影响较小。缺点:字节数过多,依赖于不同的第三方类库。

     

    Object Serialize(Java的序列化和反序列化)

    UserVo实现Serializalbe接口,提供唯一的版本号:

    序列化方法:

    Java代码
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    ObjectOutputStream os = new ObjectOutputStream(bos);
    os.writeObject(src);
    os.flush();
    os.close();
    byte[] b = bos.toByteArray();
    bos.close();
     

    字节数是238

     

    反序列化:

    Java代码
    ObjectInputStream ois = new ObjectInputStream(fis);
    vo = (UserVo) ois.readObject();
    ois.close();
    fis.close();

    Object Serializalbe 优点:java原生支持,不需要提供第三方的类库,使用比较简单。

    缺点:无法跨语言,字节数占用比较大,某些情况下对于对象属性的变化比较敏感。

    对象在进行序列化和反序列化的时候,必须实现Serializable接口,但并不强制声明唯一的serialVersionUID

    是否声明serialVersionUID对于对象序列化的向上向下的兼容性有很大的影响。

     

    Google ProtoBuf

    protocol buffers 是google内部得一种传输协议,目前项目已经开源(http://code.google.com/p/protobuf/)。

    它定义了一种紧凑得可扩展得二进制协议格式,适合网络传输,并且针对多个语言有不同得版本可供选择。

    以protobuf-2.5.0rc1为例,准备工作:

    下载源码,解压,编译,安装

    Shell代码
    tar zxvf protobuf-2.5.0rc1.tar.gz ./configure ./make ./make install

    测试:

    Shell代码
    MacBook-Air:~ ming$ protoc --version libprotoc 2.5.0

    安装成功!

    进入源码得java目录,用mvn工具编译生成所需得jar包,protobuf-java-2.5.0rc1.jar

     

    1、编写.proto文件,命名UserVo.proto

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Text代码
     
    package serialize;
    option java_package = "serialize";
    option java_outer_classname="UserVoProtos";
    message User{
    optional string name = 1
    optional int32 age = 2;
    optional int64 phone = 3;
    repeated serialize.UserVo friends = 4
     

      

    2、在命令行利用protoc 工具生成builder类

    Shell代码
    protoc -IPATH=.proto文件所在得目录 --java_out=java文件的输出路径  .proto的名称

    得到UserProtos类

     

    3、编写序列化代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Java代码
     
    UserVoProtos.User.Builder builder = UserVoProtos.User.newBuilder();
    builder.setName("Yaoming"); builder.setAge(30);
    builder.setPhone(13789878978L);
    UserVoProtos.UserVo.Builder builder1 = UserVoProtos.UserVo.newBuilder();
    builder1.setName("tmac"); builder1.setAge(32); builder1.setPhone(138999898989L);
    UserVoProtos.UserVo.Builder builder2 = UserVoProtos.UserVo.newBuilder();
    builder2.setName("liuwei"); builder2.setAge(29); builder2.setPhone(138999899989L);
    builder.addFriends(builder1);
    builder.addFriends(builder2); 
    UserVoProtos.UserVo vo = builder.build();  byte[] v = vo.toByteArray(); 

      

    字节数53

     反序列化

    1
    2
    3
    Java代码
    UserVoProtos.UserVo uvo = UserVoProtos.UserVo.parseFrom(dstb);
    System.out.println(uvo.getFriends(0).getName());

     

    结果:tmac,反序列化成功

    google protobuf 优点:字节数很小,适合网络传输节省io,跨语言 。

    缺点:需要依赖于工具生成代码。

     

    工作机制

    proto文件是对数据的一个描述,包括字段名称,类型,字节中的位置。protoc工具读取proto文件生成对应builder代码的类库。protoc xxxxx  --java_out=xxxxxx 生成java类库。builder类根据自己的算法把数据序列化成字节流,或者把字节流根据反射的原理反序列化成对象。官方的示例:https://developers.google.com/protocol-buffers/docs/javatutorial。

    proto文件中的字段类型和java中的对应关系:

    详见:https://developers.google.com/protocol-buffers/docs/proto

    .proto Type java Type c++ Type
    double double double
    float float float
    int32 int int32
    int64 long int64
    uint32 int uint32
    unint64 long uint64
    sint32 int int32
    sint64 long int64
    fixed32 int uint32
    fixed64 long uint64
    sfixed32 int int32
    sfixed64 long int64
    bool boolean bool
    string String string
    bytes byte string
    字段属性的描述:
    写道
    required: a well-formed message must have exactly one of this field. optional: a well-formed message can have zero or one of this field (but not more than one). repeated: this field can be repeated any number of times (including zero) in a well-formed message. The order of the repeated values will be preserved.
    protobuf 在序列化和反序列化的时候,是依赖于.proto文件生成的builder类完成,字段的变化如果不表现在.proto文件中就不会影响反序列化,比较适合字段变化的情况。
    做个测试:把UserVo序列化到文件中:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Java代码
    UserProtos.User vo = builder.build();
    byte[] v = vo.toByteArray();
    FileOutputStream fos = new FileOutputStream(dataFile);
    fos.write(vo.toByteArray());
    fos.close();
      
     
    为User增加字段,对应的.proto文件:
     
    Text代码
     
    package serialize;
    option java_package = "serialize";
    option java_outer_classname="UserVoProtos";
    message User{
    optional string name = 1
    optional int32 age = 2
    optional int64 phone = 3
    repeated serialize.UserVo friends = 4
    optional string address = 5; } 
     
       
     
    从文件中反序列化回来:
     
    Java代码
    FileInputStream fis = new FileInputStream(dataFile);
    byte[] dstb = new byte[fis.available()];
    for(int i=0;i<dstb.length;i++){ dstb[i] = (byte)fis.read(); } 
    fis.close(); UserProtos.User uvo = UserProtos.User.parseFrom(dstb); 
    System.out.println(uvo.getFriends(0).getName()); 

      成功得到结果。

    三种方式对比传输同样的数据,google protobuf只有53个字节是最少的。结论:
     
    方式 优点 缺点
    JSON

    跨语言、格式清晰一目了然

    字节数比较大,需要第三方类库
    Object Serialize java原生方法不依赖外部类库 字节数比较大,不能跨语言
    Google protobuf

    跨语言、字节数比较少

    编写.proto配置用protoc工具生成对应的代码
     

    转载于:https://www.cnblogs.com/diegodu/p/5949983.html

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,001
精华内容 400
热门标签
关键字:

化感作用