除了Java语言本身,您还必须学习java框架。除了语言(C#/ VB)之外,您还必须学习.net框架。
了解unix有多重要?或者更确切地说,应该关注哪些unix领域?
看到很多人在unix盒子上运行基于java的应用程序(桌面/网络),你需要什么样的unix技能?我们只是在谈论基本目录遍历,创建文件等,还是还有更多内容?
答案 0 :(得分:11)
从Sun营销材料中读到的答案是Java是跨平台的,所以你没有。
实际的答案是,您需要了解足够的知识,以便在您计划使用它的平台上启动并运行自己的应用程序。了解Apache或Tomcat配置有助于您进行Web开发,知道如何使用基本网络分析工具也是如此 - ifconfig
,netstat
和traceroute
命令是一切都很有用文件权限工具也是使系统正常工作的必要条件 - 查看chmod
和chown
以及这些命令的工作方式。
桌面系统让它变得更容易,因为大多数窗口系统都非常擅长跨平台工作,但您仍需要了解一下文件系统和权限的结构。
答案 1 :(得分:8)
实际上,您不需要直接使用unix技能来编写基于java的应用程序。但是,如果你想在unix盒子上开发基于java的应用程序并在那里进行部署,你需要对如何操作和管理unix盒有一个很好的理解。
但对于您提到的区域(目录遍历,创建文件),您将使用仅偶尔触及特定于Unix的Java API(“\ n”vs vs“\ r \ n”,源自“/的目录”) “等等)信息。当他们触摸时,这不是你需要以编程的方式知道的东西,这是你需要以用户/管理员的方式知道的东西。
答案 2 :(得分:3)
对于自己的语言并不重要。
你可以很好地学习java,而且从来没有触及过unix盒。
如果你想在unix服务器上部署,你应该只知道基础知识。
文件路径,新行,权限等,但在终端输入几个小时后,可以获取所需的知识。
大多数os细节从一开始就被抽象为语言。那些无法抽象的东西(例如cron)被遗忘。
答案 3 :(得分:2)
你真的不需要Unix技能来使用Java,但是如果你这样做,你将拥有一个与任何类型的开发相关的好工具箱。我当然感谢能够为文件grep我的整个源代码树,使用Perl进行代码生成等等。在仅GUI的世界中,即使是计算所有源代码行的简单问题也很难。了解基本的Unix命令行工具将使您成为更好的开发人员。
答案 4 :(得分:0)
我认为你的比喻意味着除了语言本身之外你还应该学习Java库。
当然知道UNIX会有所帮助,因为它会增加你的常识,但我认为它根本不与Java直接相关。
答案 5 :(得分:0)
除了知道如何遍历目录外,还需要能够编辑和grep文件。您还需要知道如何进行一些基本的流程管理。但是您需要的详细程度取决于您希望在unix系统上执行的操作。例如。 Web开发要求您运行诸如tomcat之类的Web容器。您可能希望学习所选系统的包管理器。
答案 6 :(得分:0)
这取决于您的操作系统。您可以在Windows上进行Java开发,在这种情况下不需要Unix / Linux知识。也就是说,即使在Windows上,GNU / Cygwin实用程序也会有所帮助。
答案 7 :(得分:0)
我认为你在谈论学习而不是开发一个全面的项目。 由于JVM,它可以为程序员提供统一的API,无论底层系统如何,Java程序都应该以不特定于底层系统的方式编写(直到现在使用JNI等')。
这意味着作为小型学习计划的作者, 你对底层系统的了解应该是最小的。
如果您不使用IDE,至少应该知道如何从命令行运行'javac','java',并测试您的程序。
如果您正在使用类似Eclipse的IDE,那么从IDE运行的角度来看,您应该期待几乎与下面的系统隔离的体验。
但请记住,这是愿景,并且始终建议至少了解一下您自己系统上发生的事情。
答案 8 :(得分:0)
您不需要知道* NIX来开发Java应用程序,也许如果您要在* NIX机器上运行它,或者如果它使用非常附加到* NIX的东西,那么如果你知道它会很好例如,关于文件名和权限的基础。
需要了解* NIX需要在* NIX服务器上部署应用程序。如果是这种情况,如果您对系统变量(例如设置JAVA_HOME),* NIX机器的tipicall目录结构以及基本用途(创建文件,目录,删除,符号链接等)有所了解,那将是件好事。 )。
我认为知道一些脚本(bash,csh,sh)是非常好的。例如,根据部署的复杂程度,这可以为您的老板提供额外点。