静态编程
‘壹’ c语言中static是做什么用的
有两种用法:
1、static修饰局部变量,成为一个局部静态变量。
static修饰局部变量(静态局部变量)与普通局部变量相比,它的优势在于:
①静态局部变量作用域与连接属性与普通局部变量一样;
②存储类:静态局部变量分配在data/bss段,普通局部变量在栈上;
③生命周期:因为存储类的不同,静态局部变量的生命周期得到延长了,直到程序结束。
2、static修饰全局变量与函数,成为静态全局变量与静态函数。
static修饰全局变量函数 与 普通全局变量普通函数相比,它的优势在于:
①存储类、生命周期、作用域都一样;
②差别在于static修饰全局变量函数连接属性是内连接,普通全局变量普通函数是外链接;
③就是说static修饰全局变量函数不能跨文件访问调用。
(1)静态编程扩展阅读:
在类内数据成员的声明前加上static关键字,该数据成员就是类内的静态数据成员。其特点如下:
静态数据成员存储在全局数据区,静态数据成员在定义时分配存储空间,所以不能在类声明中定义
静态数据成员是类的成员,无论定义了多少个类的对象,静态数据成员的拷贝只有一个,且对该类的所有对象可见。也就是说任一对象都可以对静态数据成员进行操作。而对于非静态数据成员,每个对象都有自己的一份拷贝。
由于上面的原因,静态数据成员不属于任何对象,在没有类的实例时其作用域就可见,在没有任何对象时,就可以进行操作
和普通数据成员一样,静态数据成员也遵从public, protected, private访问规则
静态数据成员的初始化格式:<数据类型><类名>::<静态数据成员名>=<值>
类的静态数据成员有两种访问方式:<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>
‘贰’ java静态方法编程
publicclassMathTest{
/**
*求最大公约岁首数
*@paramm
*@param尺举n
*@return
*/
publicstaticintGcd(intm,intn){
while(m%n!=0){
inttemp=m%n;乎困数
m=n;
n=temp;
}
returnn;
}
/**
*求a^b
*@paramm
*@paramn
*@return
*/
publicstaticdoublegetPow(doublea,doubleb){
doublenum=a;
for(inti=0;i<b;i++){
a*=num;
}
returna;
}
}
测试类:
publicclassTest{
publicstaticvoidmain(String[]args){
intnum1=MathTest.Gcd(12,8);
System.out.println(num1);
doublenum2=MathTest.getPow(2,3);
System.out.println(num2);
}
}
结果:
4
16.0
‘叁’ 如何判断一门编程语言是静态语言还是动态语言
可以根据其程序运行时的特点来进行判断。
所谓静态的,就是写程序,然后编译成可执行程序运行,在运行时不允许修改程序,或者说修改程序后不编译无法实现修改,因此在程序运行时,你的程序是处于静态状态,也就是无法改变状态。比如:c语言。
动态的,就是系统可以逐句执行你的程序,不用事先编译,也叫解释性语言,运行时逐句解释翻译你的指令为可执行代码。比如:vb、matlab
‘肆’ java中的静态方法能否进行切面编程
aop的事务代理机制最重要的放心是确定切入点,面,通知.具体看代码,下面是在spring中配置的我自己写的一个异常处理的aop作用类 ,该配置切入面在于在controller包下的所有类的所有注解为aspect的切面类,通知类型为表示在目标方法之前切入,切入点为controller包下的所有类所有方法.至于楼主所说的静态方法对于事务机制应该没什么区别吧,只要用within方法一样可以的
<!-- 定义共同处理组件 -->
<bean id="loggerBean"
class="org.te.cloudnote.aspect.LoggerBean">
</bean>
<!-- 将loggerBean组件切入到Controller方法上 -->
<aop:config>
<!-- 要切入哪个共同处理组件,ref指定共同组件id值 -->
<aop:aspect ref="loggerBean">
<!-- aop:before表示在目标方法之前切入,
method指定方法名;pointcut指定目标组件 -->
<aop:before method="logController"
pointcut="within(org.te.cloudnote.controller..*)"/>
</aop:aspect>
‘伍’ 为什么写爬虫都喜欢用python
python的脚本特性,python易于配置,对字符的处理也非常灵活,加上python有着丰富的网络抓取模块,所以两者经常联系在一起。
作为一门编程语言而言,python是纯粹的自由软件,以简洁清晰的语法和强制使用空白符进行语句缩进的特点从而深受程序员的喜爱。使用python来完成编程任务的话编写的代码量更少,代码简洁简短可读性更强,一个团队进行开发的时候读别人的代码会更快,开发效率会更高,使工作变得更加高效。
这是一门非常适合开发网络爬虫的编程语言,相比于其他静态编程语言,python抓取网页文档的接口更简洁;相比于其他动态脚本语言,python的urllib2包提供了较为完整的访问网页文档的API。此外,python中有优秀的第三方包可以高效实现网页抓取,并可用极短的代码完成网页的标签过滤功能。这也就是为什么python被叫作爬虫的原因。
‘陆’ 静态编程语言和动态编程语言的联系
静态和动态是针对变量的数据类型而言的,区主要有以下几个方面:
1、使用静态类型语言编写的代码中,要声明变量的数据类型,而且不同数据类型的变量不允许直接赋值,它的数据类型是编译期间进行检查的。
2、静态类型语言在使用变量之前,需要为它们分配好内存。
3、静态类型语言功能强大,但相对难以学习,而且灵活性差。
4、动态类型语言与静态语言刚好相反,它只在程序运行期间才去进行数据类型检查,不需要给变量指定数据类型,它会在第一次同仁给变量时,在内部记录数据类型。
5、动态类型语言虽然快速灵活,但在代码运行前很难找到bug,所以提升了开发速度,但失去程序的健壮性。
静态类型语言有:c、c++、c#、object-c、java等
动态类型语言有:python、ruby、php、javascript、erlang等
‘柒’ Java编程中的静态和动态是什么
你说的很不清楚,大概说一下吧
静态指的是类里面的静态函数和变量,一个类中同一个静态变量只存在一个,而不像其他变量一样归每个类的对象所有。
动态指多态,就是说一个函数可以识别输入的参数是哪个类型的,实现动态绑定。
如果具体说的话需要写很多,建议找基本JAVA的书来看吧