灵魂腐蚀 发表于 2015-1-18 11:36:24

JAVA编程:Java 进修杂谈(一)仓酷云

C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,想来进修Java也有两个岁首了,永久不敢说何等精晓,但也想谈谈本人的感觉,写给软件学院的同仁们,匡助人人在手艺的路途上少一点弯路。说得巨大一点是但愿人人为软件学院争气,实在最次要的仍是人人本身的前进提拔——

1.关于静态加载机制——
进修Java比C++更简单了解OOP的头脑,究竟C++还夹杂了很多面向历程的成份。良多人都能背出来Java言语的特性,所谓的静态加载机制等等。固然观点常常是先记着尔后消化的,可有几人真正往体味过静态加载的机制,试图往寻觅过个中的细节呢?供应人人一个办法:
在命令行窗口运转Java程序的时分,加上这个很有效的参数:

java–verbose*.class

如许会明晰的打印出被加载的类文件,年夜部分是jdk本身运转必要的,最初几行会分明的看到本人用到的那几个类文件被加载出去的按次。即便你声了然一个类对象,不实例化也不会加载,申明只要真正用到谁人类的实例即对象的时分,才会实行加载。如许是否是人人略微能分明一点静态加载了呢?^_^

2.关于寻觅class文件道理——
倡议人人在进门的时分在命令行窗口编译和运转,不要借助JCreator大概Eclipse等IDE往匡助做那些事变。实验本人如许做:
javac-classpathyourpath*.java
java-classpathyourpath*.class
大概良多人都能看懂,设置classpath的目标就是告知编译器往那里寻觅你的class文件.不外最少笔者昔日才弄懂JVM往查询类的道理,编译器加载类要依托classloader,而classloader有3个级别,从高到低分离是BootClassLoader(名字大概禁绝确),ExtClassLoader,AppClassLoader.

这3个加载器分离对应着编译器往寻觅类文件的优先级别和分歧的路径:BootClassLoader对应jre/classes路径,是编译器最优先寻觅class的中央
ExtClassLoader对应jre/lib/ext路径,是编译器次优先寻觅class的中央
AppClassLoader对应该前路径,以是也是编译器默许找class的中央

实在人人能够本人写个程序复杂的测试,对任何class,比方A,
挪用newA().getClass().getClassLoader().toString()打印出来就能够看到,把class文件放在分歧的路径下再次实行,就会看到区分。出格注重的是假如打印出来是null就暗示到了第一流BootClassLoader,由于它是C++编写的,不存在Java对应的类加载器的名字。

寻觅的按次是一种向上迂回的头脑,即假如本级别找不到,就只能往本级别之上的找,不会向下寻觅。不外仿佛从Jdk1.4到Jdk1.6这一特性又有改动,没有找到具体材料。以是就不举例子了。告知人人计划这类系统的是Sun公司已经的手艺中心宫力师长教师,一个纯种华人哦!^_^

如许但愿人人不至于利诱为何总报错找不到类文件,不论是本人写的仍是导进的第三方的jar文件(J2ee中常常必要导进的)。

3.关于jdk和jre——
人人一定在安装JDK的时分会有选择是不是安装独自的jre,一样平常城市一同安装,我也倡议人人如许做。由于如许更能匡助人人弄分明它们的区分:

Jre是javaruntimeenvironment,是java程序的运转情况。既然是运转,固然要包括jvm,也就是人人熟习的假造机啦,另有一切java类库的class文件,都在lib目次下打包成了jar。人人能够本人考证。至于在windows上的假造机是哪一个文件呢?学过MFC的都晓得甚么是dll文件吧,那末人人看看jre/bin/client内里是否是有一个jvm.dll呢?那就是假造机。

Jdk是javadevelopmentkit,是java的开辟工具包,内里包括了各类类库和工具。固然也包含了别的一个Jre.那末为何要包含别的一个Jre呢?并且jdk/jre/bin同时有client和server两个文件夹下都包括一个jvm.dll。申明是有两个假造机的。这一点不晓得人人是不是注重到了呢?

信任人人都晓得jdk的bin下有各类java程序必要用到的命令,与jre的bin目次最分明的区分就是jdk下才有javac,这一点很好了解,由于jre只是一个运转情况罢了。与开辟有关,正由于云云,具有开辟功效的jdk本人的jre下才会同时有client性子的jvm和server性子的jvm,而仅仅作为运转情况的jre下只必要client性子的jvm.dll就够了。

记得在情况变量path中设置jdk/bin路径麽?这应当是人人进修Java的第一步吧,先生会告知人人不设置的话javac和java是用不了的。的确jdk/bin目次下包括了一切的命令。但是有无人想过我们用的java命令并非jdk/bin目次下的而是jre/bin目次下的呢?不信能够做一个实行,人人能够把jdk/bin目次下的java.exe剪切到其余中央再运转java程序,发明了甚么?统统OK!

那末有人会问了?我明显没有设置jre/bin目次到情况变量中啊?

试想一下假如java为了供应给年夜多半人利用,他们是不必要jdk做开辟的,只必要jre能让java程序跑起来就能够了,那末每一个客户还必要手动往设置情况变量多贫苦啊?以是安装jre的时分安装程序主动帮你把jre的java.exe增加到了体系变量中,考证的办法很复杂,人人看到了体系情况变量的path最后面有“%SystemRoot%system32;%SystemRoot%;”如许的设置,那末再往Windows/system32上面往看看吧,发明了甚么?有一个java.exe。

假如强行可以把jdk/bin挪到system32变量后面,固然也能够迫使利用jdk/jre内里的java,不外除非有需要,我不倡议人人这么做。利用独自的jre跑java程序也算是客户情况下的一种测试。

这下人人应当更分明jdk和jre外部的一些接洽和区分了吧?

PS:实在另有满多感受能够总结的,一次写多了怕人人扔砖头砸逝世我,怪我太干脆。人人应当加倍扎实加倍务虚的往做一些研讨并相互分享心得,小气向和太前沿的手艺会商是需要的但最好不要太多,究竟本人基本都还没打好,甚么都讲最新版本实际上是前进的一年夜停滞!
来自:http://topic.csdn.net/u/20070924/21/18482496-082f-4907-8751-b80ab5d56622.html?seed=1386683868

ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。

深爱那片海 发表于 2015-1-21 10:55:41

是一种语言,用以产生「小应用程序(Applet(s))

爱飞 发表于 2015-1-30 16:07:01

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

莫相离 发表于 2015-2-2 11:49:14

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

精灵巫婆 发表于 2015-2-7 19:26:33

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

再现理想 发表于 2015-2-23 05:59:28

是一种语言,用以产生「小应用程序(Applet(s))

飘飘悠悠 发表于 2015-2-26 00:31:22

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

第二个灵魂 发表于 2015-3-6 11:29:26

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

不帅 发表于 2015-3-13 00:09:47

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

小妖女 发表于 2015-3-17 09:08:59

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

透明 发表于 2015-3-24 04:33:36

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

小女巫 发表于 2015-4-3 18:11:04

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

只想知道 发表于 2015-4-7 16:17:31

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

活着的死人 发表于 2015-4-12 03:50:26

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

简单生活 发表于 2015-4-16 21:25:48

是一种为 Internet发展的计算机语言

若相依 发表于 2015-4-21 14:42:30

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

灵魂腐蚀 发表于 2015-4-22 03:55:10

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

冷月葬花魂 发表于 2015-6-8 13:51:06

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

若天明 发表于 2015-6-16 01:38:55

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

再见西城 发表于 2015-6-19 07:30:32

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
页: [1]
查看完整版本: JAVA编程:Java 进修杂谈(一)仓酷云