浅谈.net中的静态类和java中的内部静态类

昨日看《Effective
Java》第二条:遇到多个构造器参数时要考虑用构造器。其中,演示通过Builder模式,构建复杂的对象。因为之前对java不是很了解的原因。很疑惑:static
class居然可以构建实例?之前,在.net中的静态类一直都是不能实例化的。

查了下资料,果然在java中只有内部静态类才能被实例化,通常称之为嵌套类。而顶级类,也就是没有被嵌套在另一个类的内部的类,不能被标记为static。这个和.net中有所不同,其实,我个人觉得两种语言都有各自的关注点。

从功能上来说,java的外部类不能被标记为static,在开发中并没有丝毫的不便。一般来讲无论是成员还是变量,被标记为static则为类所有,与类的实例无关。所以我觉得很少有需求,需要构建一个静态类。在.net中静态类,意味着其包含的所有成员都是静态的。所以出于这样的限制,.net中静态类通常用来作为工具类。但是,在java中,一个非静态类,里面包含的方法都为static,不能实现同样的功能吗?我觉得,在java中,并没有什么缺失所在。

但是,是不是.net这么做就白费功夫了吗?其实,.net也有它的考虑,但是不是功能上的。.net中一个类被标识为static,意味着这个类中所有的成员都必须为static的,这个在编译时会做静态检查,通过编译时的强制性,来约束程序员遵守规则。并且如果一个类被标识为static,那么在程序集被加载的时候该静态类就会被加载,直到程序集被卸载。并且据说CLR对其作了优化,我想可能JVM也是吧,暂时不太了解。

不过,java中的内部静态类可以构建实例,在我看来,理解起来挺别扭的。不过,如果把java中的内部类都当做其成员来理解,就容易多了。可以把内部静态类看成是外部类的一个static
类型,不属于外部类的实例。具体,关于内部静态类和外部类的关系等讲解,网上也不少,在此就只是比较一下两种语言的不同点而已。

原文发布时间为:2011-07-06

本文作者:vinoYang

时间: 2024-09-12 20:21:07

浅谈.net中的静态类和java中的内部静态类的相关文章

Android中如何在maiactivity.java中往布局中添加一个文本编辑框

问题描述 Android中如何在maiactivity.java中往布局中添加一个文本编辑框 怎么从maiactivity.java中往布局中添加一个文本编辑框 EditText et_miyue=new EditText(null); et_miyue.setHint("请输入密钥..."); et_miyue.setSingleLine(true); et_miyue.setAlpha(getWallpaperDesiredMinimumWidth()); et_miyue.set

关于cocos中的scrollview和java中的Instrumentation

问题描述 关于cocos中的scrollview和java中的Instrumentation 把cocos打包成android的apk 在最外层会有一层java继承了Cocos2dxActivity的 然后用java的Instrumentation模拟手指的滑动分别发送down---move事件去滑动cocos的中scrollview 结果只在那一层java中收到一个cancel消息给外层java添加一个TouchListener监听 然后返回一个false 让它把消息传递给scrollview

浅谈struts和依赖注入在项目中的应用

我喜欢struts,喜欢ibatis,喜欢spring,但我却喜欢.net,这实在是件很矛盾的事情..net很好用,但在做项目的过程,总觉得缺少了点什么,对了,是框架.在java的世界里,有着许多成熟优秀的框架,但.net的框架,可选择的实在很少.在盼星星盼月亮的漫长过程里,终于盼到了Asp.net MVC,恕我不才,看来看去,都觉得这Asp.net MVC用起来实在是麻烦.我还是喜欢使用struts,尽管我很烦恼那些配置文件,但配置文件确实给我们带来了很多的好处.能轻松的扩展,轻易的修改.不过

Core Data浅谈系列之十 : 关于数据模型中实体的属性

之前写了<Core Data浅谈系列汇总>,今天稍微回顾了下,做些补充. 在这个系列的第一篇<基础结构>中(2013年1月份的文章,时间过得好快啊!),有简单带过Entity的Attribute: 数据类型.布尔值统一用NSNumber来表示: 字符串类型用NSString表示: 时间类型用NSDate表示: 二进制数据类型用NSData表示: 非标准类型用Transformable来表示: 而Attribute还有其自身的Properties,比如Transient表示不用持久化

浅谈PHP 闭包特性在实际应用中的问题_php技巧

呃,其实大部分情况下是可以的,而有些方面还是令人非常的困扰,下面慢慢道来. 很多语言的都提供了非常优雅和漂亮的操作数组的方法.在下面的例子中,会使用 PHP5.3 以及其他语言提供的闭包功能,用于展示如何"客观的"操作迭代数组. 译注:原文作者比较火星,我不了解 Groovy 以及 Scala 语言,所以这里我加上 Javascript 的实现. 在开始之前先说明下,本例子仅仅是阐明观点,并没有考虑性能等其他方面的因素. "货比三家" 用个简单的例子开始,有下面个数

浅谈内链在企业网站优化中的重要性

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 有许多站长都认为网站优化就是不断地增加外链,而在这些外链数量后就开始对SEO产生无助,因为这些付出根本没有让网站关键词排名和权重有所提升. 那么一个企业网站优化到底要怎么进行才能看到效果呢?其实只要优化好关键词内链布局,不管什么类的企业网站最终都会有所变化,而且关键词排名也慢慢提升,下面就由星梦网络来谈下内链在企业网站优化中的重要性. 内链可

浅谈:Web2.0在个人网站中的价值

前一段时间写了一篇<一个合格的网站策划应该做到的>.好多网站站长向我咨询,由于时间和精力有限,所以没能一一回复,还请各位朋友鉴谅.我想就我对目前许多个人网站的现状和发展来谈谈个人网站发展的问题,以及web2.0理念对个人网站的影响. 目前大多数个人站长走的都是网站流量线路,把流量和网站排名看的比较重要,当然不乏其中还有一批以web2.0理念为发展的新网站,但是这种网站的发展还占少数,多数站长对什么是web2.0都不是很理解,更不用说彻底理解web2.0的理念. 一.目前个人网站的一般有以下几种

浅谈权重页在网站优化过程中的巨大作用

权重页的概念很简单,那就是在一个网站中权重相对来说比较高的页面,具有这样性质的网页就是网站的权重页.一般来说一个网站权重最高的页面是首页,但是权重页又不单单局限于首页,其他任何一个页面只要权重不错,都可以称的上是权重页. 关于权重页,其实没有太多的资料在讲这个知识点,可能是这个东西太浅显,很多人觉得不应该花一篇文章区介绍它吧.不过即使是再小的知识点,能够让更多新手SEO入门时去掌握,未尝不是一件乐事.虽然没有太多官方的介绍,但是通过一些SEO牛人操作的实例来看,还是有很多值得借鉴的. 我们先从首

浅谈如何从站点的流量数字中分析站点的粘度

数字围绕着我们的优化进程.而分析站点的数字可能是很多SEOer所头痛的一件事情之一,因为大多数SEOer都不喜欢面对一堆枯燥乏味的数字,但是只有我们深入分析这些数据,才能真正了解我们站点目前的粘度,找到改善的手段.那么我们可以从哪几方面入手分析呢?笔者今天就分享自己的三点分析站点粘度的心得. 一:从站点的新旧访客的的差值中分析站点粘度 作为SEOer我们每天都要查看站点流量统计信息中的IP及PV等信息,但是很多SEOer对于这些数字的分析只是停留在是否上升,而忽视这些数值的变化对比所反映出来的问