为什么 Java 相关的框架总会给人很重的感觉?


如果说是语法的问题,那C++ 也不比它语法简单啊
总看到有人调侃Java,有点不解,希望大大给解惑

java ssh struts

吉尔迦美什 10 years, 1 month ago

框架只是各种思想的简单表现形式,如果你上升到学习框架的思想,你会发现其实没多少,也其实巨多;至于重不重,也因其java语言本身的特点、使用表现形式、组织者==

☆夜D猫☆ answered 10 years, 1 month ago

Java注定有些代码是肯定要多写的,比如交换2个数, C++里可能就是
template
void swap(T &a, T &b){
T tmp = a;
a = b;
b = tmp;
}
Java是没法这么写的吧, python就是a,b = b, a
再比如不支持默认参数的写法。。。
所以在Java里各种模式会出现的非常的多。。。。语法方面的这些问题必然导致Java框架看起来更重些

雪之下雷光 answered 10 years, 1 month ago

考虑用一下maven管理你的依赖 只引用spring的一部分 貌似新版asm不是必须了?
因为功能太多 太全 所以依赖也多

这位G请自重 answered 10 years, 1 month ago

一个框架往往依赖很多jar包,看起来重也许是为了让你使用起来更加方便吧。

lplql answered 10 years, 1 month ago

语法可能是一方面~重不重还是要看用的是哪个框架。
SpringMVC用着挺爽的~

Gordius answered 10 years, 1 month ago

因为很多框架本来就重,不是因为语言,而是因为依赖。

SSH三大框架,大部分都得依赖上十几个乱七八糟的包。有些包4-5M大。
有些框架本身很简单,偏偏要用到asm.jar等等
有些还要用到commons-lang.jar,有些还不知足,commons-lang不够,还得加上commons-lang3。

=
除去这三大框架来看,
其实jfinal,nutz等等也都很轻量级,只要两个jar包就行了(比如mysql-connector.jar,jfinal.jar)。
每个jar包也都很小,轻量级的框架jfinal甚至不到1M就能实现SSH的功能。
有个不出名的nlf框架甚至不用mysql-connect.jar,自己独创了一个csvdb模式,就实现了数据库。

其实依赖log4j、连接池什么的倒还好了,
用别人多次测试的、性能优越的包倒还无可厚非。

SSH这种框架倒还可以理解,
本来就是抽象出来的东西,
为了应付各种各样的需求自己就得做的非常大,
特别高大全。

但是有些因为一个函数就要引用到一个jar包,
这就不轻量级了。

BAHLM answered 10 years, 1 month ago

Your Answer