云南北大青鸟设计培训告诉你Java程序员需要掌握的Java基础知识?

Python018

云南北大青鸟设计培训告诉你Java程序员需要掌握的Java基础知识?,第1张

Java已经存在很长时间了,当你使用不同的软件模式,你要清楚自己的代码如何影响生产,任何问题都要考虑的全面一些。如果你给其他程序员提供API,请严格按照约定编写。请读一本关于在有限内存设备上编程的书。学习如何在小型设备上操纵像素。一旦你学会了这些,那你就可以在任何设备上工作了,因为这些设备相对来说,运行更快、内存更大。

新的开发者需要理解面向对象编程的好处语法,并确保对象容易理解。代码库能够帮助开发者上手。像Lynda和Dzone这样的网站提供了很多Java相关的资源,所以Java比任何其他语言都更容易入门。因为Java,Java很酷。聪明的开发者反复重申要少使用Java。Java提供了Java一样的功能,能够跨浏览器支持,所以用Java你能做任何事情,不用考虑浏览器兼容性。

记住要使用工具。它越来越好,但仍落后于其他平台。我对于容器化技术有很高的期望。基于云的开发工具正在不断完善。他们将预置到工作中使你的工作更简单。确保工具好用。开发者应该记住Java的静态类型检查是自动化测试的另一种形式。构建代码的时候应该更多的用静态类型检查而不是其他形式的自动化测试。具体来说,我们发现如果一个开发人员使用Java语言的时间比其他语言多的话,他们更倾向于花费时间构造代码来让编译器检查错误条件。通常这种努力比花在自动化测试上更好,自动化测试可能会产生更多的错误条件。

Java不一定是所有应用程序的最佳解决方案。例如,JVM比同等的C程序更消耗内存,科学计算和数值分析通常用Python来写,C#更适合异步编程。

然后试着学习理解某一领域的软件,如果你掌握的知识太广,那么你很难再取得进一步提升。你需要理解基础架构,不要因为需要花费太多时间学习就放弃某一语言。你对软件幕后工作原理了解的越多,你就会变得越有价值。知道事务如何运作的原理是基础,请保持不断学习。掌握完整的Java知识是一种良好的基本技能,这是开发者的关键投资。

很多企业都在寻找最聪明的工程师,他们很少关注特定的语言。往往要求们开发人员需要有很强的编码能力,熟悉计算机基础知识,了解真实世界的应用程序,知道如何编写Java应用服务器程序,理解如何调用API,理解计算机科学的核心和算法。企业需要基础扎实的开发人员。IT培训http://www.kmbdqn.cn/建议请在工作中实践核心算法和熟悉的数据结构。

在Java生态系统中寻找最简单的达到目标的方法,参与开源,从修改一行bug这种小时做起,不断进步。

我认为Java语言的10大问题是:

1、缺少闭包(closure):我想这个不需要解释了。函数式编程已经存在几十年了,但最近几年,它们获得了越来越多的关注,最主要的原因,是它可以自然地编写并行程序。我部分的同意Joshua Bloch强调在Java中引入闭包的问题需要再想一想(BGGA提议的方式真的很糟),至少闭包的缺失,使得在Java中做任何真正的函数式编程都是不可能的。

2、缺少一等函数:这个问题与前一个有些关联,但我认为它更糟糕。在Java里,要达到类似效果的唯一方式,是使用著名的、丑陋悲惨的单方法匿名内部类,但这看上去的确是一个拙劣的方法。甚至在C#中,也通过代理机制,提供了一个更好的实现。

3、原生类型(Primitive types):如果在Java中一切皆对象,那是多么完美啊,但他们偏偏不这样设计。因而,这一点导致了一些问题,比如,不能把一个int放到集合(Collection)里,这个在Java5中通过自动装箱特性得到了解决(下面会提到)。它也造成了传值与传引用上的困扰,原生类型数据是通过值传给方法的(复制一份拷贝,然后传给函数),而真正的对象是通过传递(译注:其实是复制对象地址再传递,因此应该也是传值方式,只是由于函数内部可通过这个对象地址访问对象,因此效果上类似传引用)。

4、自动装箱(Autoboxing)和自动拆箱(autounboxing):这个特性是为了解决因原生类型的存在所导致的问题,在Java5引入的。它允许静默地转换原生类型到相应的对象,但这常常导致其它的问题。比如Integer可以为null,但int不能,因此这时JVM只能抛出一个难以调试的空指针异常(NullPointerException)。此外,它还可能导致其它奇怪的行为,就像下面的例子,我们就很难理解,变量test为什么是false:

Intger a = new Integer(1024)

Intger b = new Integer(1024)

boolean test = a <b || a == b || a >b

5、缺少范型具类化:范型是Java5引入的一个很酷的特征,但是为了保持与旧版本Java的兼容性,导致缺失某些重要的特性,尤其是不能在运行时反省范型的类型。例如,你有一个方法,接受List参数,如果传进来一个List,你却不能知道运行里该范型的确切类型。同理,你也不能创建范型数组。这意味着,尽管下面的代码看起来很自然,但却不编译不了:

List[] listsOfStrings = new List[3]

6、不可避免的范型警告:你有发现过自己陷入不可能去掉的关于范型的警告么?如果你像我一样大量使用范型,我打赌你碰到过。事实上,是这个问题的规模化症状,让他们认为需要引入一个特定的注解(@SuppressWarnings("unchecked"))来处理这种情况,我觉得,范型应该可能被设计的更好。

7、不能传void给方法调用:我得承认,这种给方法传递void的需求,乍一看有些怪异。我喜欢DSL,当我实现自己的DSL库(lambdaj)的一个特定特性时,我不得不需要一个方法声明成这样的签名:void doSomething(Object parameter),这里为这个方法传进来的参数parameter,是另一个方法调用的结果,它唯一的目的,是注册调用(的对象)自身,以可以在以后执行它。让我吃惊的是,即使println方法返回void,看上去也并没有一个好理由,不允许我把代码写成这样,:

doSomething(System.out.println("test"))

8、没有原生的代理机制:代理是一种非常有效和应用广泛的模式,但Java提供的代理机制,只针对接口,而不是具体类。这是为什么象cblib这样提供这种机制的库,被如此多的主流框架,如Spring和Hibernate,采用的原因。此外,由于cglib通过运行时创建被代理类的子类来实现的,因此这些种方式有一个众所周知的限制——不能代理final类,比如String。

9、差劲的Switch...case语句:Java规定,switch...case只能选择int和enum(Java5开始)。这一点如果跟更现代的语言如Scala相比,看起来简直太弱了。

10、受检查异常(Checked exception):类似原生类型,受检查异常也已经成为Java的一个罪孽之源。它迫使程序员必须做下面两件极其糟糕讨厌的事情中的一个:让你的代码里充斥大量的、糟糕难读的、容易出错的try...catch语句,而这样做的最大意义,只是将捕获的异常,包装成运行时异常,然后再重新抛出;或者是让大量的抛出声明子句污染你的API,让接口缺少灵活性和可扩展性。

真正的问题是,这里我提到的这几大主要问题,唯一的解决办法,是要做一个痛苦的决择,定义一套新的语言规范,放下当前版本的向后兼容性。我猜他们永远也不会这么做,虽然我相信,如果编写一个能够自动转换旧Java源码的程序,让它们与假设的新版本兼容,并不是很困难。最后,这就是我决定开始寻找一个更好的JVM兼容语言的原因。

哥们我这有很多网站,应该至少有一个适合你的

所属论坛: JAVA论坛

正文内容:

java方面的:

it人资讯交流网

http://www.it315.org

这个网站是我最近才发现的,虽然内容不多,但是提供的相关java工具挺齐全。还有就是里面提供了java教学视频录象的免费下载,好像一两周更换一段。个人觉得挺适合初学者的,尤其是那个classpath的设置,讲的很透彻,大家有空可以看一看。

java官方站点(英文)

http://java.sun.com

要想了解最新的java动态,下载最新的java相关,比如j2se、j2ee、j2se的最新jdk版本就来这里吧。

java中文站

http://www.java-cn.com

这个可能大家都知道,不用说了,他提供的java资源是最丰富的。注册论坛是免费的,还送积分,用积分可以下载软件和电子书等,如果积分用完了,就需要自己发表一些文章来赚新的积分。

中文java网站

http://www.cn-java.com

跟上面站点类似的一个站,宗旨就是:为java爱好者服务。值得一看!

锋网

http://www.ijsp.net/tech/book/index.jsp

综合性的java网站,内含“下载中心”、“教程教学”等栏目。

java动力

http://eww.cn

网站的内容可以,但是最为出色的是它所运用的flash技术,我就不在这里多说了,大家去看看就知道了,一个字“酷”!!!

vc方面的:

vc知识库

http://www.vckbase.com

这个网站就不用多说了,学习vc必去之地。网站专门提供了免费的ftp下载,好东东巨多!

vc之路

http://www.vcroad.com

综合软件开发网站,以vc为主。“资源中心”有许多值得下载的东东。

visual c++/mfc开发指南

http://www.vchelp.net

以讲述windows开发为主的站点,提供了最新的源代码,开发工具,开发资料,开发教程和对好的开发站点,开发工具,图书做介绍,同时为从事开发的朋友提供发布自己开发的软件,代码和工具场所。

c维拥?

http://www.c-view.org/root/index.htm

最近发现的vc好站,书籍、软件、代码下载一应具全!!!

游戏开发:

风云工作室

http://member.netease.com/~cloudwu/2000/index.html

标点游戏制作

http://makegame.myetang.com/

未来开发者

http://www.fdev.net/

综合的:

中国软件网

http://www.csdn.net

中国最大的开发者网络,他之所以著名就是因为他的论坛,大家有空可以去看看,能下到很多不错的东东,另外也是交流学习的好地方。

电子书籍的:

http://www.itebook.net

最后公布一个巨好的,狂多的电子书下载

http://www.pdown.net

还有巨好的

http://www.codestudy.net/default.asp