当前位置: 技术问答>java相关
java到底好在哪里?(100分)
来源: 互联网 发布时间:2015-07-20
本文导语: 我研究vc的时间并不长,觉得vc、vb、bcb等工具是实实在在的软件开发工具。我看了不少关于java的文章和介绍,都说它有这样那样的优点,尤其是在安全性方面等等,可是我现在所见过的java程序无非就是web上的一些appl...
我研究vc的时间并不长,觉得vc、vb、bcb等工具是实实在在的软件开发工具。我看了不少关于java的文章和介绍,都说它有这样那样的优点,尤其是在安全性方面等等,可是我现在所见过的java程序无非就是web上的一些applet,却从未见过一个真正象用vc、vb或delphi等做的软件,而那些applet,我认为就算没有java也可以用cgi、php或asp做,而且很可能会更简捷。我想知道java到底好在哪里,有没有发展前途,这里想和高手们研究一下这个问题,请大家赐教!
|
只要你不用JNI(Java Native Interface),你写的Java程序理论上来讲可以原封不动在许多平台上执行,而且相对而言,Java是门比C++比较乾净的OO语言,前途应该是很光明
|
我首先申明,我不会JAVA,我是搞C/C++的。
我的一位同事是搞JAVA的,从他身上,我就看到了JAVA的很多优点。
在我从事Windows开发时,时不时都要关切操作系统是如何运作的,考虑消息循环、继承的复杂性、何时用指针何时用引用等等,然后再保证自己的程序的合理性,但我的同事却从不要考虑,就能实现我的程序的功能。
如果换一个操作系统,我要去重新熟悉这个操作系统的机制再开始编程,而我的同事这时就可以把他从前的程序原封不动移过来——他可以在旁边喝茶了。
不过JAVA的速度虽然是个问题,但绝不是个大问题。
哈哈,当然,我还是喜欢C/C++,还想搞搞ASM.
我的一位同事是搞JAVA的,从他身上,我就看到了JAVA的很多优点。
在我从事Windows开发时,时不时都要关切操作系统是如何运作的,考虑消息循环、继承的复杂性、何时用指针何时用引用等等,然后再保证自己的程序的合理性,但我的同事却从不要考虑,就能实现我的程序的功能。
如果换一个操作系统,我要去重新熟悉这个操作系统的机制再开始编程,而我的同事这时就可以把他从前的程序原封不动移过来——他可以在旁边喝茶了。
不过JAVA的速度虽然是个问题,但绝不是个大问题。
哈哈,当然,我还是喜欢C/C++,还想搞搞ASM.
|
最大的好处就是跨平台性,要不微软怎么也弄出个C#来与它竞争呢?
当然还有一些其它的好处
安全的
高效的
中性的
健壮的
……
这些好处可以在JAVA“白皮书”上找到http://java.sun.com:80/doc/language_environment,若找不到就搜索吧
当然还有一些其它的好处
安全的
高效的
中性的
健壮的
……
这些好处可以在JAVA“白皮书”上找到http://java.sun.com:80/doc/language_environment,若找不到就搜索吧
|
用Java开发的应用程序巨慢。 这是他最大的缺点。
但只要你对速度的要求不是那么的苛刻, 也就是说可以容忍 Java 的速度的话, 相比而言, 他会大大减少开发的难度, 可以获得 C++ 1-1.5 倍的效率。
在我们公司的 40 人做了16个月的一个系统中(Java应用程序, 现在还没有做完), 选用Java 当然有许多的考虑, 例如 跨平台, 安全性, 但最大的原因则如上所述。
但只要你对速度的要求不是那么的苛刻, 也就是说可以容忍 Java 的速度的话, 相比而言, 他会大大减少开发的难度, 可以获得 C++ 1-1.5 倍的效率。
在我们公司的 40 人做了16个月的一个系统中(Java应用程序, 现在还没有做完), 选用Java 当然有许多的考虑, 例如 跨平台, 安全性, 但最大的原因则如上所述。
|
Java 只是一种精简化的 OO 语言,去掉了 OO 中的一些复杂的概念, 对面相对象的支持比不上 C++,更比不上 Small talk, Effel 等等比较纯的 OO 语言。
不过带来的好处是巨大的。
Java 所标榜的跨平台性, 但许多系统对 Java 虚拟机的支持并不好,
HP对 Java的支持很糟糕, 这是公司放弃最终软件在HP上运行的最大的原因。
不知道为什么, Windows 平台上的许多 Java 编译器
都有BUG, 包括 Sun 的一些冬冬。 可能是虚拟机的原因,我发现Windows平台下的纯Java应用程序有时候会莫名其妙的当掉。
工具是死的,什么方便适用用什么呗!犯不着为这个争吵。
|
以下是代碼連接:
try
{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String sourceURL=new String("jdbc:odbc:test");//test時資料來源
DBConn=DriverManager.getConnection(sourceURL);
statement=DBConn.createStatement();
statement.executQuery("select * from .....);
}
catch(ClassNotFoundException e)
{System.out.println(e);}
catch(SQLException e)
{System.out.println(e);}
}
在Jbuilder中可以直接用控件連接,代碼不用寫自己給出,
具體去看看Jbuilder中Help->Dataexpress Refrence中有例子,還有圖,非常清楚,自己看吧
try
{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String sourceURL=new String("jdbc:odbc:test");//test時資料來源
DBConn=DriverManager.getConnection(sourceURL);
statement=DBConn.createStatement();
statement.executQuery("select * from .....);
}
catch(ClassNotFoundException e)
{System.out.println(e);}
catch(SQLException e)
{System.out.println(e);}
}
在Jbuilder中可以直接用控件連接,代碼不用寫自己給出,
具體去看看Jbuilder中Help->Dataexpress Refrence中有例子,還有圖,非常清楚,自己看吧
|
用Java开发的应用程序巨慢。 这是他最大的缺点。
但只要你对速度的要求不是那么的苛刻, 也就是说可以容忍 Java 的速度的话, 相比而言, 他会大大减少开发的难度, 可以获得 C++ 1-1.5 倍的效率。
在我们公司的 40 人做了16个月的一个系统中(Java应用程序, 现在还没有做完), 选用Java 当然有许多的考虑, 例如 跨平台, 安全性, 但最大的原因则如上所述。
撑握java并不是排斥其他语言,现在是java的时代,所以我们学习java,但技术一下在发展,没有一门语言可以一直统冶开发,终有一天java也会被取代,所以在学习java的同时,我建议了解一下新出现的语言如:delphi的替代语言,及c#等,不要等时代抛弃你再去学。
只要你不用JNI(Java Native Interface),你写的Java程序理论上来讲可以原封不动在许多平台上执行,而且相对而言,Java是门比C++比较乾净的OO语言,前途应该是很光明
但只要你对速度的要求不是那么的苛刻, 也就是说可以容忍 Java 的速度的话, 相比而言, 他会大大减少开发的难度, 可以获得 C++ 1-1.5 倍的效率。
在我们公司的 40 人做了16个月的一个系统中(Java应用程序, 现在还没有做完), 选用Java 当然有许多的考虑, 例如 跨平台, 安全性, 但最大的原因则如上所述。
撑握java并不是排斥其他语言,现在是java的时代,所以我们学习java,但技术一下在发展,没有一门语言可以一直统冶开发,终有一天java也会被取代,所以在学习java的同时,我建议了解一下新出现的语言如:delphi的替代语言,及c#等,不要等时代抛弃你再去学。
只要你不用JNI(Java Native Interface),你写的Java程序理论上来讲可以原封不动在许多平台上执行,而且相对而言,Java是门比C++比较乾净的OO语言,前途应该是很光明
|
Java主要用在服务器方面。JAVA要是离开网络,它的应用并不是很多。JAVA的OO是最好的!!C++完全不能与之比较!!
我热爱JAVA,请大家可以讨论讨论..
lcjly@sina.com.cn
我热爱JAVA,请大家可以讨论讨论..
lcjly@sina.com.cn
|
Hi:
As the title said, the following is a piece of handout from one of Stanford U. Computer Science course
*************************************************************
CS193i, Stanford University Handout #30
Spring, 2000-01 Nick Parlante
Java Introduction
This is the outline for the Java section going over all the language basics in one session.
Java Qualities
Compiled to bytecode
Interpreted at runtime -- potentially slow
Interpreters are slower than compiled code, but they enable true portability
Modern systems are not true interpreters -- they use some form of Just-in-time- Compile to build native code at runtime. Sun's "hot spot" system does this in a sophisticated way at runtime.
Realistically, not as fast as C, but getting closer.
Java's dynamic features: safe pointers, garbage collection, etc. extract a penalty vs. C code.
Portable
Runs the same everywhere without even a re-compile. Very true for the core language. Less true for first GUI library, AWT, but the new GUI library Swing has fixed this.
Robust/Safe
Hard to crash, hard to write viruses
Structured -- typed
Java has a formal type system that must be obeyed at compile-time and run-time. This is helpful for larger projects, where the structure helps keep the various parts consistent. Contrast to Perl, which as more of a quick-n-dirty feel.
C/C++ Syntax
Fool the C/C++ programmers into thinking this is not much of a change
OOP
The best way to structure code
Official "Blessed" libraries for common problems
Common classes: String, Collection, Date ...
GUI libs (AWT, Swing)
Threaded
Supports multiple threads of control built in to the language
Dynamic
Types/behaviors are determined at run-time (most flexible, at the cost of some efficiency).
Automatic garbage collector takes care of memory management.
*************************************************************************
Point: Somewhat slow + portable + programmer efficiency features
**************************************************************************
Programmer Efficiency
Faster Development
Building an application in Java takes about 30% less time than in C or C++
Libraries
Code re-use at last -- String, ArrayList, ... (C++ can also do this to an extent)
Memory errors
Memory errors largely disappear because of the safe pointers and garbage collector. I suspect the lack of memory errors accounts for much of the increased programmer productivity.
Java Niche
CPU time vs. Programmer time tradeoff
Portability
Send code from one place to another Avoid vendor lock-in
Microsoft hates this feature (in any domain, it's natural for the largest vendor to dislike portability, while the small vendors and the customers like portability).
Applets
Java code, runs in the browser in a "sandbox" Did not work that well
Not well implemented the first time -- AWT not well done, in-the-browser
concept is fragile
Microsoft not helping
Custom server side applications
A good match for Java qualities -- robust/safe, programmer efficient, portable (e.g. develop on NT, deploy on Solaris, Linux, ...)
As the title said, the following is a piece of handout from one of Stanford U. Computer Science course
*************************************************************
CS193i, Stanford University Handout #30
Spring, 2000-01 Nick Parlante
Java Introduction
This is the outline for the Java section going over all the language basics in one session.
Java Qualities
Compiled to bytecode
Interpreted at runtime -- potentially slow
Interpreters are slower than compiled code, but they enable true portability
Modern systems are not true interpreters -- they use some form of Just-in-time- Compile to build native code at runtime. Sun's "hot spot" system does this in a sophisticated way at runtime.
Realistically, not as fast as C, but getting closer.
Java's dynamic features: safe pointers, garbage collection, etc. extract a penalty vs. C code.
Portable
Runs the same everywhere without even a re-compile. Very true for the core language. Less true for first GUI library, AWT, but the new GUI library Swing has fixed this.
Robust/Safe
Hard to crash, hard to write viruses
Structured -- typed
Java has a formal type system that must be obeyed at compile-time and run-time. This is helpful for larger projects, where the structure helps keep the various parts consistent. Contrast to Perl, which as more of a quick-n-dirty feel.
C/C++ Syntax
Fool the C/C++ programmers into thinking this is not much of a change
OOP
The best way to structure code
Official "Blessed" libraries for common problems
Common classes: String, Collection, Date ...
GUI libs (AWT, Swing)
Threaded
Supports multiple threads of control built in to the language
Dynamic
Types/behaviors are determined at run-time (most flexible, at the cost of some efficiency).
Automatic garbage collector takes care of memory management.
*************************************************************************
Point: Somewhat slow + portable + programmer efficiency features
**************************************************************************
Programmer Efficiency
Faster Development
Building an application in Java takes about 30% less time than in C or C++
Libraries
Code re-use at last -- String, ArrayList, ... (C++ can also do this to an extent)
Memory errors
Memory errors largely disappear because of the safe pointers and garbage collector. I suspect the lack of memory errors accounts for much of the increased programmer productivity.
Java Niche
CPU time vs. Programmer time tradeoff
Portability
Send code from one place to another Avoid vendor lock-in
Microsoft hates this feature (in any domain, it's natural for the largest vendor to dislike portability, while the small vendors and the customers like portability).
Applets
Java code, runs in the browser in a "sandbox" Did not work that well
Not well implemented the first time -- AWT not well done, in-the-browser
concept is fragile
Microsoft not helping
Custom server side applications
A good match for Java qualities -- robust/safe, programmer efficient, portable (e.g. develop on NT, deploy on Solaris, Linux, ...)
|
JAVA体贴又周到,有独有的竖式凹道,防止侧漏,用了都说好!!!
:)
:)