-
2022-05-08 21:24:09
做投资,大家都知道基本面和技术面,有人根据基本面的消息操作行情,有人根据技术面的分析操作行情,但更多的人选择是基本面与技术面一起分析,那么什么是基本面和技术面呢,这二者之间的关系是什么,又该如何一起进行分析呢?
首先我们介绍一下两者。技术面,是指反映价格变化的技术指标、走势形态以及K线组合等。技术分析有三个前提假设:(1)市场行为包容一切信息;(2)价格变化有一定的趋势或规律;(3)历史会重演。基本面是行业地位、经营水平、财务状况、核心竞争力、公司治理结构等等。基本面就是公司的内在价值,技术面就是市场价值。技术面那些图标和技术指标所反映的市场信息。
股票的基本面、政策面和技术面是做股票不可忽视的三大要素。基本面市值个股收益、股价、流通盘、收益率、净资产、未分利润、利润增长率、现金流等;政策面是指个股所处的行业是否符合国家政策扶持范畴;技术面是指个股走势趋势、以及各项技术指标等。三者如能有机统一起来是最理想的投资选择标的股。基本面和技术面之间的关系
首先,基本面是先知先觉者的掩护体,之所以会这么讲,是因为每次价格在重大的转折时,都很容易出现一些不好的消息,举个例子,在股票重要的底部位置,当时一定有消息产生,并且一定是利空的消息多于利多的消息,这会给我们产生一种错觉,价格还会继续下跌。
其次来讲基本面是技术面的催化剂,简单来讲,就是基本面会让行情的变化速度加快,假如现在行情是上涨趋势,但是价格运行的速度缓慢,那么一旦出现利多的消息,价格就会快速的上涨,而如果价格在下跌,那么就会加速下跌。
最后则是技术走势为主导,基本面消息做配合,关于这点大家都能理解,但是具体的应用却是一个问题,接下来我们一起看这二者是如何结合分析的。
基本面和技术面之间的结合分析
这二者的结合分析,我们可以根据价格的走势进行划分,分为四个结合方式。
趋势的始末:在趋势的开始和结束阶段,基本面消息出来后,价格多为反向走势,起到诱多诱空的作用,并且这一类的消息会比较集中。
趋势中期:消息出来后,正反都有,主要看消息公布出来后,价格所在的位置。
趋势中后期:正面的消息居多,目的主要是配合价格进行加速,起到催化的作用。
阻力区消息:当价格在阻力区出现消息后,价格就会朝着阻力最小的方向去运行。
这是根据价格的走势和阻力进行划分的内容,如果有兴趣深入了解具体的分析方法,可以联系下方客服尽心沟通。
更多相关内容 -
天线的E面和H面,theta和phi理解
2022-05-14 23:36:541,天线的E面和H面: E平面也叫电面,是指平行于电场方向的方向平面xoz平面或者yoz平面。 H平面:也叫磁面,是指平行于磁场方向的方向平面,指xoy平面,任意一个天线都是如此,同一个天线水平垂直面和水平面不变。 E...1,天线的E面和H面:
E平面也叫电面,是指平行于电场方向的方向平面xoz平面或者yoz平面。
H平面:也叫磁面,是指平行于磁场方向的方向平面,指xoy平面,任意一个天线都是如此,同一个天线水平垂直面和水平面不变。
E平面常指phi=0°截面,而H平面指phi=90°截面
2,天线的theta和phi理解:
(1)theta是俯仰面(竖直面)内的角度,范围0~180度,符号θ
(2)phi是方位面(水平面)内的角度,范围0~360度,φ就是空间极坐标系中的两个参数,和类比直角坐标系里的xyz
-
Spring-AOP 切点/切面类型和创建切面
2017-08-15 12:05:11概述 静态方法匹配器 动态方法匹配器 六种切点类型 静态方法切点StaticMethodMatcherPointcut 动态方法切点DynamicMethodMatcher 注解切点AnnotationMatchingPointcut 表达式切点...三种切面类型一般切面Ad概述
前面的博文介绍增强的时候,我们发现一个问题:增强被织入到了目标类的所有方法中.
如果我们希望有选择的织入目标类的某些特定方法中呢? ——–这个时候就需要使用切点进行目标连接点的定位。
描述连接点是进行AOP编程最主要的工作,我们来说下Spring AOP如何定位连接点。
增强提供了连接点方位信息,如织入到方法前面、后面等,而切点进一步描述了织入哪些类的哪些方法上
Spring通过org.springframework.aop.Pointcut接口描述切点,Pointcut由ClassFilter和MethodMatcher构成,它
- 通过ClassFilter定位到某个特定的类上,
- 通过MethodMatcher定位到某些特定方法上。
这样Pointcut就拥有了某些类的某些特定方法的能力。
ClassFilter中定义了唯一的方法
boolean matches(Class<?> clazz);
入参为一个被检测的类,该方法判断被检测的类是否匹配过滤条件。
Spring支持两种方法匹配器
静态方法匹配器
所谓静态方法匹配器,仅对方法名签名(包括方法名和入参类型及顺序)进行匹配。
动态方法匹配器
动态方法匹配器会在运行期方法检查入参的值。 静态匹配仅会判断一次,而动态匹配因为每次调用方法的入参可能不一样,所以每次调用方法都必须判断。
因此,动态匹配对性能的影响很大,一般情况下,动态匹配器不常用。 方法匹配器的类型由MethodMatcher接口的isRuntime方法的返回值决定, 返回false标识静态方法匹配器,true标识位动态方法匹配器。
六种切点类型
静态方法切点StaticMethodMatcherPointcut
org.springframework.aop.support.StaticMethodMatcherPointcut是静态方法切点的抽象基类,默认情况下匹配所有的类。
最常用的两个子类如上所示,分别是 NameMatchMethodPointcut 和 AbstractRegexpMethodPointcut , 前者提供简单字符串匹配方法签名,后者使用正则表达式匹配方法签名。
动态方法切点DynamicMethodMatcher
org.springframework.aop.support.DynamicMethodMatcher是动态方法切点的抽象基类,默认情况下匹配所有的类
注解切点AnnotationMatchingPointcut
org.springframework.aop.support.annotation.AnnotationMatchingPointcut实现类标识注解切点。 使用AnnotationMatchingPointcut支持在Bean中直接通过Java5.0注解标签定义切点
表达式切点ExpressionPointcut
org.springframework.aop.support.ExpressionPointcut接口主要是为了支持AspectJ切点表达式语法而定义的接口
流程切点ControlFlowPointcut
org.springframework.aop.support.ControlFlowPointcut实现类标识控制流程切点。 ControlFlowPointcut是一种特殊的切点,它根据程序执行堆栈的信息查看目标方法是否由某一个方法直接或间接发起调用,以此判断是否为匹配的连接点。
复合切点ComposablePointcut
org.springframework.aop.support.ComposablePointcut实现类是为了创建多个切点而提供的方便操作类。 它所有的方法都返回ComposablePointcut类,这样就可以使用链接表达式对切点进行操作,形如
Pointcut pc = new ComposalbePointcut().union(classFilter).intersection(methodMatcher).intersection(pointcut);
三种切面类型
由于增强包括横切代码,又包含部分连接点信息(方法前、方法后主方位信息),所以可以仅通过增强类生成一个切面。 但切点仅仅代表目标类连接点的部分信息(类和方法的定位),所以仅有切点无法制作出一个切面,必须结合增强才能制作出切面。
Spring使用org.springframework.aop.Advisor接口标识切面概念,一个切面同时包含横切代码和连接点信息。
切面可以分为3类:一般切面、切点切面、引介切面
我们来看下切面继承关系
一般切面Advisor
org.springframework.aop.Advisor代表一般切面,仅包含一个Advice
因为Advice包含了横切代码和连接点信息,所以Advice本身一个简单的切面,只不过它代表的横切的连接点是所有目标类的所有方法,因为这个横切面太宽泛,所以一般不会直接使用。
切点切面PointcutAdvisor
org.springframework.aop.PointcutAdvisor ,代表具有切点的切面,包括Advice和Pointcut两个类,这样就可以通过类、方法名以及方位等信息灵活的定义切面的连接点,提供更具实用性的切面。
PointcutAdvisor接口实现类
PointcutAdvisor主要有6个具体的实现类:
DefaultPointcutAdvisor
最常用的切面类型,它可以通过任意Pointcut和Advice定义一个切面,唯一不支持的就是引介的切面类型,一般可以通过扩展该类实现自定义的切面
NameMatchMethodPointcutAdvisor
通过该类可以定义按方法名定义切点的切面
RegexpMethodPointcutAdvisor
对于按照正则表达式匹配的方法名进行切点定义的切面,可以扩展该实现类进行操作。
AspectJExpressionPointcutAdvisor
用于AspectJ切点表达式定义切点的切面
StaticMethodMatcherPointcutAdvisor
静态方法匹配器切点定义的切面,默认情况下匹配所有的的目标类。
AspectJPointcutAdvisor
用于AspectJ语法定义切点的切面
这些Advisor的实现类都可以在Pointcut中找到对应物,实际上,他们都是通过扩展对应的Pintcut实现类并实现PointcutAdvisor接口进行定义的。
比如StaticMethodMatcherPointcutAdvisor
public abstract class StaticMethodMatcherPointcutAdvisor extends StaticMethodMatcherPointcut implements PointcutAdvisor, Ordered, Serializable
扩展了StaticMethodMatcherPointcut类并实现了PointcutAdvisor接口。
此外Advisor都实现了org.springframework.core.Ordered接口,Spring将根据Advisor定义的顺序决定织入切面的顺序。
引介切面IntroductionAdvisor
org.springframework.aop.IntroductionAdvisor代表引介切面, 引介切面是对应引介增强的特殊的切面,它应用于类层上面,所以引介切点使用ClassFilter进行定义。
静态普通方法名匹配切面
详情见另外一篇博文 Spring-AOP 静态普通方法名匹配切面
静态正则表达式方法匹配切面
详情见另外一篇博文 Spring-AOP 静态正则表达式方法匹配切面
动态切面
详情见另外一篇博文 Spring-AOP 动态切面
流程切面
详情见另外一篇博文 Spring-AOP 流程切面
复合切点切面
详情见另外一篇博文 Spring-AOP 复合切点切面
引介切面
详情见另外一篇博文 Spring-AOP 引介切面
-
【spring】自定义AOP切面
2022-04-06 11:21:33切面需要实现PointcutAdvisor接口,一个切面必须包含切点和通知。 package com.morris.spring.advisor; import org.aopalliance.aop.Advice; import org.springframework.aop.Pointcut; import org.springframework...在Spring中,实现AOP增强不仅可以使用@Aspect注解来实现,还可以通过自定义切面来实现。
下面来看看怎么自定义切面。
切面
切面需要实现PointcutAdvisor接口,一个切面必须包含切点和通知。
package com.morris.spring.advisor; import org.aopalliance.aop.Advice; import org.springframework.aop.Pointcut; import org.springframework.aop.support.AbstractPointcutAdvisor; /** * 自定义Advisor */ public class CustomAdvisor extends AbstractPointcutAdvisor { @Override public Advice getAdvice() { return new CustomAdvice(); } @Override public Pointcut getPointcut() { return new CustomPointcut(); } }
切点
切点需要实现Pointcut接口,里面要实现对类的匹配和方法的匹配。
这里不对类进行校验,所以使用Spring内部的ClassFilter.TRUE。
对方法的匹配需要实现MethodMatcher,所以CustomPointcut同时实现了MethodMatcher和Pointcut。
package com.morris.spring.advisor; import org.springframework.aop.ClassFilter; import org.springframework.aop.MethodMatcher; import org.springframework.aop.Pointcut; import java.lang.reflect.Method; public class CustomPointcut implements MethodMatcher, Pointcut { // implement from MethodMatcher @Override public boolean matches(Method method, Class<?> targetClass) { if(method.getName().startsWith("insert")) { return true; } return false; } @Override public boolean isRuntime() { return true; } // 如果isRuntime返回true,则会在运行时调用此方法 @Override public boolean matches(Method method, Class<?> targetClass, Object... args) { if(null != args && null != args[0] && "morris".equals(args[0])) { System.out.println("matches args"); return true; } return false; } // implement from Pointcut @Override public ClassFilter getClassFilter() { return ClassFilter.TRUE; } @Override public MethodMatcher getMethodMatcher() { return this; } }
通知
通知主要是对目标方法的增强,这里只是打印。
package com.morris.spring.advisor; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; public class CustomAdvice implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation) throws Throwable { System.out.println(invocation.getMethod().getName()+"-------------------------"); return invocation.proceed(); } }
测试类
package com.morris.spring.demo.aop; import com.morris.spring.advisor.CustomAdvisor; import com.morris.spring.service.UserService; import com.morris.spring.service.UserServiceImpl; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; /** * 自定义Advisor的使用 */ @Configuration @EnableAspectJAutoProxy // 开启AOP public class CustomAspectDemo { public static void main(String[] args) { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(); applicationContext.register(UserServiceImpl.class); applicationContext.register(CustomAdvisor.class); // 自定义切面 applicationContext.register(CustomAspectDemo.class); // 开启AOP applicationContext.refresh(); UserService userService = applicationContext.getBean(UserService.class); userService.insert("morris"); } }
运行结果如下:
matches args insert------------------------- UserServiceImpl insert morris
发现通知中的增强代码执行了。
尝试获得目标方法上的注解信息
UserServiceImpl.insert()方法上面加上@Entity注解。
com.morris.spring.service.UserServiceImpl#insert
@Entity @Override public void insert(String name) { System.out.println("UserServiceImpl insert " + name); }
com.morris.spring.advisor.CustomPointcut#matches
@Override public boolean matches(Method method, Class<?> targetClass) { if(method.isAnnotationPresent(Entity.class)) { return true; } return false; }
运行结果会发现通知中的增强代码并没有被执行,这是为什么呢?目标方法insert()上面明明有@Entity注解,为什么获取不到呢?
在matches()方法中打上断点,会发现这个方法会被调用两次,第一次会返回true,第二次返回false,为什么两次结果会不一样呢?
先来看一下这两次调用的调用时机:
-
第一次调用时,匹配方法,如果匹配上了就会生成代理对象,Method所在的类为com.morris.spring.service.UserServiceImpl。
-
第二次调用时,调用代理对象的方法时会再次匹配,因为有的方法不需要代理,Method所在的类为com.morris.spring.service.UserService。
第二次调用时Method是来自于UserService接口,而接口上面的方法是没有注解的,这点也可以从动态代理生成的类中看出:
static { try { ... m3 = Class.forName("com.morris.spring.service.UserService").getMethod("insert", Class.forName("java.lang.String")); ... } catch (NoSuchMethodException var2) { throw new NoSuchMethodError(var2.getMessage()); } catch (ClassNotFoundException var3) { throw new NoClassDefFoundError(var3.getMessage()); } }
而UserService.insert()方法上面并没有@Entity注解,那么要怎么样才能获得注解的信息呢?Spring提供了下面的工具类:
com.morris.spring.advisor.CustomPointcut#matches
public boolean matches(Method method, Class<?> targetClass) { Method specificMethod = AopUtils.getMostSpecificMethod(method, targetClass); if(specificMethod.isAnnotationPresent(Entity.class)) { return true; } return false; }
方法参数级别更细粒度的匹配
MethodMatcher还有两个方法:
boolean isRuntime(); boolean matches(Method method, Class<?> targetClass, Object... args);
这两个方法配合使用能在运行时对参数的值进行匹配。
public boolean isRuntime() { return true; } public boolean matches(Method method, Class<?> targetClass, Object... args) { if(null != args && null != args[0] && "morris".equals(args[0])) { System.out.println("matches args"); return true; } return false; }
需要满足两个条件这个带方法参数的matches()才会执行(这个方法只会执行一次,真正调用时才会知道参数的具体值):
- 不带方法参数的matches()返回true。
- isRuntime()返回true。
-
-
E面波导和H面波导的问题
2019-07-16 20:19:00我感觉与窄壁平行是E面,反之为H面。通常E面(窄面)是指与电场方向平行的方向图切面(窄面);H面(宽面)是指与磁场方向平行的方向图切面(宽面)。E面的意思是... ElevationH面的意思是... Horizontal 转载于... -
SpringBoot AOP切面实现
2022-04-27 09:53:10文章目录一、AOP简介二、AOP体系与概念三、AOP实例1、创建SpringBoot工程2、添加依赖3、AOP相关注解3.1、@Aspect3.2、@...AOP(Aspect Oriented Programming),面向切面思想,是Spring的三大核心思想之一(其余两 -
抛物面椭圆抛物面.ppt
2021-04-29 05:20:21抛物面椭圆抛物面* * x z y 0 截痕法 用z = a截曲面 用y = b截曲面 用x = c截曲面 §4.6 抛物面 一、椭圆抛物面 x z y 0 截痕法 用z = a截曲面 用y = b截曲面 用x = c截曲面 . §4.6 抛物面 一、椭圆抛物面 ( 与 ... -
NB-IOT技术 UP模式 和CP模式,用户面和控制面,数据面
2019-07-02 18:16:00第一条,UE,基站,MME,SCEF,应用服务器,这个是CP模式,也叫控制面,也叫信令无线承载面,也叫控制面承载,叫法多多。其次这个路径是专门为NB-IOT搞得。因为把用户数据放到控制数据(具体是NAS层)里面一起发的,... -
腾讯一面+二面+三面+HR面
2020-04-22 09:38:43服务器端分层,网络层我用的陈硕大佬的Muduo库(封装性强的Reactor模型,以后一定看看这个源码),网络层和服务层回调解耦,服务层主要实现的功能登录、注册、一对一聊天、离线消息存储、查询好友,添加好友,创建... -
【字节跳动】-复盘-一面+二面+三面+hr面+交叉面
2021-02-08 09:58:17三面 2月2日 (1个小时) 自我介绍 项目 酷跑游戏如何使得用户感受到跑道无穷无尽 游戏引擎和体感传感器可以连起来的原理 实习 发现了哪些漏洞,大概分为几类 (原本以为我的项目和实习没什么好问的,但是深挖得... -
spring mvc AOP 切面方法未执行的一种情况的分析和处理
2019-02-27 14:59:54spring mvc AOP 在service里面,嵌套调用一个触发切面方法,然而并没有触发切面方法执行,但在controller里面直接调用这个方法,就可以触发切面方法。在springmvc里面,使用到AOP--面向切面编程,在切面做一些统一的... -
四棱锥和三棱锥重叠求面数
2019-10-05 18:07:47下午和小小在小房间看书,期间看到一道很有意思的题目。...有一个等边三棱锥和等边四棱锥,将它们的一个面重合后形成一个新的立体图形,问新的立体图形一共有几个面。 过程如下: 新的图形如下:... -
知三维空间中任意旋转抛物面的顶点和焦点坐标,建立该旋转抛物面方程
2021-11-30 19:12:41建立三维空间旋转抛物线方程的前提,首先需要确定三维空间直角坐标系的 位置,然后确定焦点和抛物面顶点的坐标,再利用焦点和抛物面顶点的坐标求出准面方程(我们这里把准面定义为是准线绕着焦点与抛物面顶点形成的... -
贝叶斯决策之判别函数和决策面
2018-10-12 16:27:47一、判别函数: 1.1 公式: gi(x)=f(p(wi|x)) 其中 f():单调递增函数 ...二、决策面(Decision Surfaces) 2.1 概念 如果输入的数据是一个LL维空间特征,考虑一个MM分类问题,那么分类器将会... -
Spring AOP注解和切面表达式详解
2019-04-05 23:34:28AOP设计的初衷 DRY:Don’t Repeat Yourself,减少重复...切面分离:功能性需求与非功能性需求分离; 使用AOP的好处 集中处理某一关注点/横切逻辑 可以很方便的添加/删除关注点 侵入性少,增强代码可读性以... -
ArcGIS教程:表面坡度的工作原理
2015-12-30 12:02:37表面坡度可创建一个输出面要素类,该要素类包含用于按坡度分类输入 TIN 或 terrain 数据集的面。坡度是表面和水平面之间的倾角,可以使用度作为单位或以百分比形式对坡度进行分析。 -
阿里面经总结:阿里三面+交叉面+hr面试
2020-12-11 19:12:44前面的几面,就不写了。最近太忙+身体状态一直不好,没怎么及时的总结,因为最近面试的太多了,觉得都是差不多的吧。(除了笔试,中间还经历了两次在线编程,一面+二面,都需要在线编程。) 阿里三面:(35分钟左右... -
网络安全之暴露面、攻击面、脆弱性
2022-01-10 10:44:07暴露面 暴露在攻击者视线范围内,可以被利用进行入侵的系统、设备、...攻击面:是一个给定的计算机或网络系统,可以被黑客访问和利用的漏洞总和。 攻击面包含: 操作系统、中间件、应用程序、承载网络中存在的软件漏洞 -
经过笔试和多轮技术面试我居然败给了HR面?
2021-04-01 20:46:24相信有很多小伙伴在春招或者秋招的时候很期待的就是HR面,而且HR面也是作为压轴的面试。经过了哈希表、动态规划、二叉树、Linux…等重重技术考核,HR面不得好好准备一下?总不能最终因为HR说这个人不符合公司的企业... -
Spring事务注解@Transactional失效和切面失效问题
2018-12-01 13:04:28这样,临终前他就可以自豪地说:“我已经把自己整个生命和全部精力都献给了世界上最壮丽的事业——为人类的解放而奋斗。”——《钢铁是怎样炼成的》 1、引言 最近在开发采用Spring框架的项目中,在A方法上使用了@... -
WGS-84引力模型和大地水准面模型
2020-05-27 16:50:17本文通过简介世界大地测量系统(WGS-84)中的EGM96引力模型和大地水准面模型,最粗略地告诉大家:这个二十多年前成功设计、实现、并在全球得到广泛应用的系统,是如何定义和实现一个世界大地水准面的?... -
量化投资学习-7:图解股市的基本面、技术面、市场环境面的关系
2020-07-12 15:52:10用图解的方式,展现股市的基本面、技术面、市场环境面的关系。 -
【转】详解冠状面_水平面_矢状面_窗宽_窗位
2021-03-10 11:16:24在接触人工智能医疗方面时,单是学习算法和代码原理还不够,需要一定的医学影像知识储备。 B超、CT、MR等都算是医疗影像,在现实生活中,从医院检查身体后拿到的胶片是处理过后的二维图像。这些医疗影像其实是三维的... -
趋势面分析法
2020-12-21 10:16:29一、趋势面分析法(2007-03-0614:45:57)转载下面将就趋势面分析、克里金、形函数法三种算法作简单介绍,以后将进一步整理一些资料,介绍更多优秀的实用算法。一、趋势面分析法趋势面分析法是针对大量离散点信息,从... -
中兴技面+综面+面试技巧
2019-07-06 09:43:301 自我介绍 2 讲项目: 根据项目中的知识点来提问 ... 10亿大单和你父母病危你怎么选择?然后就是给你100万你要做一个什么创新项目?你的市场份额有多 大?你能做到什么程度?你的创新点在哪里? -
随机响应面法
2021-04-02 19:34:03文章目录随机响应面法随机多项式高维Hermite随机多项式的推导随机多项式系数的计算输入参数的配点方法输出响应量统计特征的估计未完待续 随机响应面法 随机响应面法同神经网络法、Kriging法、响应面法、支持向量机等... -
百度一面二面三面 总结
2020-08-01 21:53:207.30 三面 综合面 感觉比较像hr面,论文项目,然后自己比较成功的和压力大的时候,有没有参加什么活动,如何学习一门新知识。最后做了一道智力题,轮流拿小球,每次拿1-5个,100个先手如何保证能拿到最后一个,先拿... -
一碗牛肉面的成本是多少钱?
2020-12-14 20:04:04图片中的牛肉面为本人制作,个人主页有详细视频教程和配方的分享,感兴趣的可以去看下 一碗牛肉面的成本如何计算,要从这几方面来分析 要想知道一碗牛肉面的成本,首先就要知道一碗牛肉面的组成,在中国有很多具有... -
AutoCAD Civil 3D-纵断面-纵断面与纵断面图
2019-07-18 16:08:32注意纵断面和纵断面图的区别(当然是有区别的^_^),纵断面是必须的,而纵断面图是因需要将创建的一个或一批纵断面以一定样式绘出的断面图。 今天给大家讲讲有关civil3d中的纵断面图和纵断面,本节中主要包括一下... -
随机粗糙面建模
2020-12-31 09:48:501第一章随机粗糙面建模1.1随机粗糙面相关基本知识实际的自然背景,如地面、海面、雪地和沙漠以及各类人造表面等,均可以看成是二维随机粗糙面模型。对于一个给定的二维随机粗糙面,对光波来说可能呈现很粗糙,而对...