java吧王者,膜拜!编程语言界它才是真王者

第一个回复的> .<

NO.1 你认为谁才是王者语言,说说理由!

JAVA,java毕竟出出现的时间比较长,拓展性强,几乎达到全平台兼容的特性~而GO语言虽然有较强的跨平台性,但是出现的时间较短~

NO.2 你觉得那种语言是吸金能力最强的,理由是!

个人认为JAVA是吸金能力最强的~毕竟本人JAVA工程师~

NO.3 分享下你所精通语言有哪些优缺点!

1.0优点Java为我们省去了这样的麻烦,或者说JAVA完整的限制了对内存的直接操作,让程序员能够安心去搞业务逻辑,而不用管自己后院的那堆内存有没有人来收拾.

1.1.平台无关性的真正意义在于程序的可移植性高,能够在多个平台平滑迁移。这点就特别适合网络应用。

1.0缺点JAVA并没有让程序员完全省心,他代办的事情也仅仅是内存罢了,其他资源的调用和释放都还是需要程序员自己来关心的,比如数据库,比如文件.当然了,我们不能指望什么都吃现成的,总有东西是要自己做的吧.

1.1当然首先就是内存操作限制带来安全的同时带来的副面效果了.....

1.2 其次呢,就是面对对象的一个很重要的特点所带来的——多态,这个东西是娘胎里带出来的,谁也没办法,而且这个因素的“后果很严重”(我等下会讲我们的JAVA小朋友自己跟别人学了一招来解决这个问题)。但是不对啊,C++不也声称自己面对对象的嘛,这个问题他也有,你干吗非说我呢?来自JAVA的声辩。哈哈,这你就不如人C++圆滑了吧,人家的多态是编译器编译和连接时实现的,可你是运行时实现的,效率问题可见一斑了吧。

JAVA小朋友想了很久,想了一招。。。我已经不记得他什么时候开始会这招了,但是他真的会,征对一些不会变化的程序,他就让大家可以用预编译来实现。其实这个事情也是C++真正做的。但是这样的一个解决方案就屏蔽了动态创建和连接的能力。这里还需要说明的是,这样的方法一般都运用在变化少而且对性能要求特别高的时候。毕竟如果不是面对大批量的处理和集中请求这样的问题,我们的硬件应该能满足这样的要求。

1.3平台无关性带来的。由于需要平台无关,所以JAVA是不能直接调用OS的API的,JAVA需要调用自己的API来隐式地调用OS的API,大家可想而知这样的效果。多一层调用,必然多一层代码需要加载到栈内了。不过这个问题目前也有解决方案了吧。。。这个方面我不是很在行,只是看到一些资料而已,接触太少。比如JNI(Java Native Interface)

2.逆向编译问题

确实是第一次听说这样的问题,天啊,没接触的东西还真的。这里就只能套书上的话了。

由于JAVA程序是动态连接的,从一个类到另外一个类的引用是符号化的。在静态连接的可执行程序中,类之间的只是直接的指针或者偏移量,。相反地,在java class文件中,指向另一个类的引用通过字符串清楚地标明了所指向的类的名字。如果引用指向一个字段的话,这个字段的名字和描述符会被详细说明。如果引用指向一个成员变量,这个成员变量的名字和描述符(方法的返回类型,方法参数的数量和类型)也会被详细说明。

这有什么关系哦。。。。不过据说这样就能通过逆向编译一下子就把我原来的代码给搞到了。。。那我写了那么久不是太亏了嘛。。。这样看来。。。产权问题咯(呼呼,上升到法律了。。。西西,我喜欢)

3 线程调度问题

关于线程调度,说老实话,我在学操作系统的时候,所有的线程问题都是在Linux下用C去做的,原因第一是linux的线程API比较清晰,而且我受不了Windows的那些API的名构造。第2就是因为我觉得Java虽然是一个总进程下的多线程,但是线程间的调度没有非常的清晰,相比较而言,还不如直接调用操作系统的线程支持呢(虽然linux对线程级别支持也不是特别好,但是毕竟不是有包支持的嘛),记得当初的哲学家饥饿问题我最后算是用JAVA调配出结果了,可是到最后我自己都晕了。这些都是我个人的看法,也很可能是一些偏见,至于别人书上专业的解释是:由于为了能够支持多种系统的不同的线程支持策略,JAVA只能采取这样笼统而又松散的线程规范。

其实优点和缺点是相对的,做过比较就知道,其实优点和缺点有时候正是同一个因素带来的.这也需要我们用唯物主义辨证原理来看待(我只是说唯物主义,没有国籍的那种).更多的时候我们需要在我们所需要的东西和我们为此需要付出的代价间作出正确的trade off.(操作系统老师最喜欢说的词).

NO.4 说说你最不看好那种语言,理由是!

最不看好的语言就是C/C#,因为任何一个学过C或者C++的人都知道指针的操作对于他们是很重要的,为什么,指针能够支持内存的直接操作,这样的直接操作能够带来的是效率上的提高.但是任何一个东西都是有副作用的,指针给程序员带了的混乱也是无可比拟的.对于一个不是很强劲的C程序员而言,指针是要命的(对我而言也是,我几乎不会写C代码).

PS:码了一上午字了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值