The following phrase was written by Meng Yan Zhai's "Java alternative to the possibility of C language," he said in the text: "Java is to ideologically-oriented enterprise application software development, a special emphasis on structure, stress design patterns, emphasizing standards, emphasizing orderly to emphasize high-profile, emphasized a luxurious palace temperament. In C, you eat is to eat or raise a bowl to drink, to lay down their chopsticks and BS-ing, grasping arm throw off meat, roll up sleeves and grease. while in Java, you often in order to do something, the first new one object, and then with this new object as a parameter to another object, this kind of repeat n times, been really need the object is to end call that object a method is like a meal incense face wash, mouthwash relieve myself gingerly, respectful. In C, a problem should be like desperadoes, like the rogue version of Cheng Yaojin, pipe you三七二十一, red up is a three string to his bow afraid split immortal tais. In Java, a problem should be like Duke Xiang of Song, to posting call to arms, to justifiably, to ceremonies, we should pull the shelf down and put their foot of the Puer placed . Java's slogan is, whether the death of split does not split, first you have to say boy touched. this cumbersome thing, for the basic software development is both unnecessary and difficult to habit. It should be explained that this is not Java language, in fact, Java itself is not so complex, so the Baroque. "On this statement I would say is one of the java, java as he said, as the reason why the so-called red tape, and this is precisely reflects the language java to express the idea of software engineering, java is a object-oriented, one of the principles of object-oriented interface-oriented programming, so in order to do something is still not like Meng Yan stated above, it should be so, first define a interface class, write an implementation class, write a factory class used to generate the interface in front of an instance of a class, rather than simply new, you are not already feel more fan, and Oh, there are so-called more fan of it, I no factory class, and I used an abstract factory class, give it a produce of this factory class defines an instance of the static method, get this factory class to generate an instance of re-use it in front of the interface class. so why do so ah? because of java in line for enterprise applications software development requirements, as business needs change rapidly, so interface, through factory pattern to create it, and if so, when demand after the changes I only need to modify or add new realization of class, and then change it create a class factory method, while the reference to the interface to the external or outer layer of code that you do not need to make any changes, you can see interface reference implementation, to create the various parts of the clear points, later code maintenance of natural easy, but also to adapt to changes in demand. Another case for the programmers to write code that can not think that much Oh, on the contrary, the use of design tools you draw a few class diagrams it will help you automatically generate interfaces, factory class, and You simply write in the IDE on the ok of the implementation class.
Machine instructions do not say to compile the c, c to c + +, c + + to java, scripting languages (lua, php, python, ruby) ... from left to right running speed is decreasing, while increasing the speed of software development. In short the programmer to write fewer, faster, but the compiler to do more (additional insert machine instructions will be more), design and development tools, IDE will do more, additional standard library, Standard Template Library For more packages, etc., as well as involved in all aspects of open source library is simply countless. as if the programmer easier, are even more tired, the entire software industry to the requirements of programmers even higher, but not necessarily, because The framework provides a large number of development portability, allowing the programmer will only need to reach the level of the application without having to know why they are. So, up the majority of programmers and inexpensive, the software appeared blue-collar, cheaper labor costs, which in turn is a Software developed by the size of the desired results. early MDA architecture theorists bluster MDA's ability to make the software code is automatically generated blue collar unemployment.
In fact, this "java or c fast speed," topic in the most "unjust" is java, because there are too many people, the evidence for how the java slower than c, how the consumption of memory. This is so because there are too many people do not know java, or even too many java programmers do not understand java, to write java program with the understanding of java are two different things.
Eclipse is a java software used to develop an IDE, is the IBM open source, sad thing has come, there are many java programmers do not know that the eclipse is written in java, they saw eclipse.exe they flew into the negative it is written in java, so there who think you put this machine JRE (JDK) to delete, see you can still start the eclipse. If you have questions, then you certainly do not know JNI (java native interface), JVM, but c / c + + written Oh, Oh, say it is not a little bit, "the same root" flavor, and now have to "struggle between what is too fast." Please look at the use of anti-compile tools are eclipse.exe did what had better take a look at JDK in the java.exe what they have done. In fact, they function much the same, they will load jvm.dll / jvm.so (in the JRE's bin directory), create a JVM instance, through the JNI load the main class, and call its main method. But the question has come, regardless of java, c / c + + programmers do not believe the eclipse may be written in such a window using java running program how could such a fast, can, and vb, Delphi, c / c + + to write programs comparable to the window. because in their impression of the GUI in java programs slow death, in fact, precisely because of the GUI slower java to java what to wear this top hat slow .
In this world, JVM (jdk, jre) is not a sun the company's proprietary material, IBM also has Oh, but we often are provided by the sun, it is a pity that it supports GUI-awt, swing wrapped in the original design was too abstract, making speed is not ideal, of course, has been changed now. but IBM provides a swt package of the GUI to support the java programming, eclipse is based on swt's, eclipse plugin plug-in programming there, eclipse plug-in system and in the GUI aspects of the accumulation and framework has been very mature, and there are many Unfortunately, very few people know, to Let's see it. Myeclipse is also the same token Oh, it not only integrates the eclipse, also built-in jdk. Some people say that java can not do system software, is ah, I would have said before, and each language has its areas of expertise.
However, it is necessary to mention the embedded programming, do not think that embedded software are system software, java share in this market, but high Oh, or else will be jealous of how Microsoft does. J2ME, J2EE, J2SE is the sun for different applications made by three sets of norms and API, including J2SE means jdk, J2ME is designed for micro device development, it is J2SE in a small subset of light-weight a lot. J2EE is a set of enterprise applications specifications in order to J2SE-based. Oh, look at the history of the development java bar, and it naturally is to TV, control, toaster and other appliances (consumer electronics) developed the interactive operation.
Finally mention JNI, it is the java scalability of the backbone, JNI is based on c / c + + interface provided in the form of language, c / c + + and JVM can communicate through it, that is, can interactive java, oh. I said earlier the JVM itself is to use c / c + + written, are jvm.dll / jvm.so in.
Besides the consumption of java memory, the hardware if the harsh conditions, is indeed a problem, but now the trend is the hardware has been price cuts, in improving the performance of the hardware. Previous c / c + + programmer, under the limitations in hardware in order to achieve performance on the best, write code is not very readable, which is incompatible with the software engineering theory, we are now in order to process future maintainable, reduce maintenance costs, we are ready to sacrifice some performance, but also maintenance procedures that can be Reading sex, not only so that we project development cycle in order to be able to be achieved within the stipulated time of completion of the largest degree, the choice of technology, the framework when we first consideration is the development of speed, followed by running speed. in the performance tuning regard, we take a look at "<c和指针>" how to speak, "improved algorithm is better than optimized code" page403, where the algorithm can be extended for the design, so do not superstition, the speed of a particular language or technology performance, if the design itself is very bad, then again superior technology, and then the language will not help quick. "In fact, in most cases, to improve system operating performance, increase the RAM than the CPU speed to improve the effect of better." Zhai's <<windows核心编程> "The first 13 s Windows memory structures page305. I think the designers of java will not be silly do not know even this bar!
Performance optimization is nothing but memory and CPU, space and time of the game.
Yesterday, I have heard that saying, "http over tcp slow" ... ... which my dear friend also came to talk about the availability of the network it, Ha ha!







