疯狂Java

出版时间:2010-5  出版社:人民邮电出版社  作者:李刚  页数:454  字数:670000  
Tag标签:无  

前言

  Java语言的开发人群越来越大了,大量程序员已经进入或正打算进入Java编程领域。这当然和Java语言本身的优秀不无关系,却也和Java语言入门简单有关。一个毫无编程基础的初学者,只要有点数据库和SOL的基础,大概花不到一个月时间就可以学会编写.ISP页面,说不定这样就可以找到一份Java编程的工作了。如果他肯再多下点功夫,学习一下编写Struts Action类、配置Action,编写Spring:Bean类和配置Bean,他甚至可以自我感觉很不错了。  问题是:这种“快餐式”、“突击式”的程序员真的能满足要求吗?如果仅仅满足于这些简单的、重复式的开发,他们也许没有太多的问题,但他们可能很少有突破的机会。究其根本原因,很大程度上是因为他们的基本功不够扎实。对他们而言,与其说Java是一种面向对象的语言,不如说更像一种脚本;他们从源代码层次来看程序运行(甚至只会从Ecli:pse等集成开发环境中看程序运行),完全无法从底层内存分配的角度来看程序运行;他们天天在用.Java类库、用Struts、用Spring,但对这些东西的实现却知之甚少——这又如何突破自己、获得更好的提高呢?  鉴于此种现状,笔者在“疯狂Java实训营”的训练中,除了采用大量实际项目来驱动教学之外,往往会花很多时间、精力来培养学员的基本功。比如讲授Spring框架时,如果只关注如何编写Bean类、配置Bean,那么一天的时间就足够了。而笔者往往会深入Spring框架的底层实现,带领学生从工厂模式、策略模式、门面模式、代理模式、命令模式的角度来深度分析Spring框架实现,然后进行对比,总结Spring框架的优势到底在哪里?不使用Spring框架是否有替换解决方案?从而感受设计模式对实际开发的帮助。  上面这些内容,看似“高深”,但其实质依然离不开Java编程的基本功。也可以这样说:一旦读者真正把基本功打扎实了,将可以看得更高、更透彻。  在这样的背景下,偶然之间我获得了这样一个想法:把这些容易被Java程序员所忽视的内容整理成一本书,也许可以帮助这些需要突破基本功的准程序员、初级程序员。本书的写法对笔者来说,是一种新的尝试:笔者以前所写之书,通常都会围绕某方面知识“画一个圆”——把这个方面的相关知识,全面、详细地向读者介绍出来。本书并没有采用这种写法,本书的每课围绕一个相对独立的专题进行讲解,形式上有点类似于“针对性地补课”。当读者感觉自己在某些方面的基本功不够扎实时,可以直接选择相应的内容进行学习,完全无须从头到尾地按顺序阅读。

内容概要

  本书是著名Java领域研究专家、Java语言培训大师、“疯狂Java”创始人李刚老师的又一倾心力作。  在本书中,李刚老师一改枯燥的教学方式,专门面向Java初学者可能会遇到的各种学习问题,由点及面,详细讨论了Java内存管理、Java编程过程中常遇陷阱、常用数据结构的Java实现和Java程序开发的方法与经验等内容。  这些问题,看似“司空见惯”,实际上却是很多Java初学者在初学阶段都会遇到的问题和疑难。李刚老师在本书中,正是试图为读者们展现出这些疑点、难点的实质,让读者能在瞬息之间,彻底掌握住这门语言的“内功心法”。  这不是一本包容了所有技术细节的手册,而是一本Java前辈对于晚辈们的提点和教导。书中很多内容,是李刚老师和他的众多学子曾亲身体验过的桎梏,非常具有参考意义。本书承载了无数前辈的谆谆教导之言,向你展示着一个痛并快乐着的Java世界。

书籍目录

第1课 数组与内存控制  1.1 数组初始化   1.1.1 Java数组是静态的   1.1.2 数组一定要初始化吗   1.1.3 基本类型数组的初始化   1.1.4 引用类型数组的初始化  1.2 使用数组   1.2.1 数组元素就是变量   1.2.2 没有多维数组  1.3 小结 第2课 对象与内存控制  2.1 实例变量和类变量   2.1.1 实例变量和类变量的属性   2.1.2 实例变量的初始化时机   2.1.3 类变量的初始化时机  2.2 父类构造器   2.2.1 隐式调用和显式调用   2.2.2 访问子类对象的实例变量   2.2.3 调用被子类重写的方法  2.3 父子实例的内存控制    2.3.1 继承成员变量和继承方法的区别   2.3.2 内存中子类实例   2.3.3 父、子类的类变量  2.4 final修饰符   2.4.1 final修饰的变量   2.4.2 执行“宏替换”的变量   2.4.3 final方法不能被重写   2.4.4 内部类中的局部变量  2.5 小结 第3课 常见Java集合的实现细节  3.1 Set和Map   3.1.1 Set和Map的关系   3.1.2 HashMap和HashSet   3.1.3 TreeMap和TreeSet  3.2 Map和List   3.2.1 Map的values()方法   3.2.2 Map和List的关系  3.3 ArrayList和LinkedList   3.3.1 Vector和ArrayList的区别   3.3.2 ArrayList和LinkedList的实现差异   3.3.3 ArrayList和LinkedList的性能分析和适用场景  3.4 Iterator迭代器  3.5 小结 第4课 Java的内存回收  4.1 Java引用的种类   4.1.1 对象在内存中状态   4.1.2 强引用   4.1.3 软引用   4.1.4 弱引用   4.1.5 虚引用  4.2 Java的内存泄漏  4.3 垃圾回收机制   4.3.1 垃圾回收的基本算法   4.3.2 堆内存的分代回收   4.3.3 与垃圾回收的附加选项   4.3.4 常见垃圾回收器  4.4 内存管理的小技巧   4.4.1 尽量使用直接量   4.4.2 使用StringBuilder和StringBuffer进行字符串连接   4.4.3 尽早释放无用对象的引用   4.4.4 尽量少用静态变量   4.4.5 避免在经常调用的方法、循环中创建Java对象   4.4.6 缓存经常使用的对象   4.4.7 尽量不要使用finalize方法   4.4.8 考虑使用SoftReference  4.5 小结 第5课 表达式中的陷阱 第6课 流程控制的陷阱 第7课 面向对象的陷阱 第8课 异常捕捉的陷阱 第9课 线性表 第10课 栈和队列 第11课 树和二叉树 第12课 常用的内部排序 第13课 程序开发 第14课 程序调试 第15课 使用IDE工具 第16课 软件测试 

章节摘录

  Java数组并不是什么很难的知识,如果单从用法的角度来看,数组的用法并不难,只是很多程序员虽然一直使用Java数组,但他们往往对Java数组的内存分配把握并不准确。本章正是为了弥补程序员的这部分基本功而做的深入探讨。  本课将会深入探讨Java数组的静态特征。使用Java数组之前必须先对数组对象进行初始化。当数组的所有元素都被分配了合适的内存空间,并指定了初始值时,数组初始化完成。程序以后将不能重新改变数组对象在内存中的位置和大小。从用法角度来看,数组元素相当于普通变量,程序既可把数组元素的值赋给普通变量,也可把普通变量的值赋给数组元素。  本课还将深入分析多维数组的实质,深入讲解多维数组和一维数组之间的关联,并通过程序示范如何将一维数组扩展成多维数组。  1.1数组初始化  数组是大多数编程语言都提供一种的复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组。Java语言的数组变量是引用类型的变量,因此具有Java独有的特性。  1.1.1 Java数组是静态的  Java语言是典型的静态语言,因此Java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的。Java程序中的数组必须经初始化才可使用。所谓初始化,就是为数组对象的元素分配内存空间,并为每个数组元素指定初始值。

媒体关注与评论

  李刚老师的著作原汁原味,语言严谨朴实,章节排列由浅入深,案例代码可调试,学习成本低,每本著作中融入了作者越来越多的思想总结,逐渐形成一套疯狂Java的套路,不论是初学者还是开发者,都可以借鉴作者的思想和精益求精的态度。  ——网易 李乐  我曾师从李刚老师,他为人正直,以学生为本。他循进渐进、案例详尽、化抽象为通俗、生动灵活的授课方式深受我们喜欢。  ——21CN 袁火青  赴美留学前曾进入李刚老师的疯狂JaVa实训营进行强化学习。给我留下最深刻印象的是他对技术的极度偏执和务实、求真的教学风格。三个多月的强化训练巩固了我的编程基础,更让我懂得了作为一个一线开发人员应有的思维方式和对技术的执着。  ——Actuate Corporation(NASDAQ:ACTU)臧青  跟李刚老师学习的时候,他对每个知识点都能深入浅出地讲解,让学生能从原理上掌握并应用它们,这一点给我毕业时的面试很大帮助。同样地,李刚老师的书也继承了这些优点,书中所有内容的组织非常有条理性,可以让学习者容易地理艇核心,从中受益。  ——阿里软件 李现杭  我认为一本好的计算机工具书本来就不一定要有多么精彩的文笔,或是多么巧妙的构思,或是多么独到的观点。我需要的是可以在最短的时间内掌握从没有接触过的知识,在我遇到问题时能最快地找出解决方法,这些方面李刚老师的书确实做到了。  ——电信盈科 陈杰超  李刚老师是“疯狂Java”的代名词,他就是一部活字典,不仅能让你全方位体验Java,他讲课的激情更是让人感受到学习的乐趣与疯狂,他是我遇到过最杰出的传道授业解惑的名师。  ——汇丰软件 陈健进  李老师善于从学生所提出的问题中发现相关知识点,然后利用其丰富的知识扩展学生的问题,引导着学生面对问题时举一反三。李老师的书同样具有这样特点,总能带给人简单明了的感觉,这是由于他站得更高的缘故。  ——忆阳 罗文强  李老师的图书对知识点的把握全面透彻、言简意赅、深入浅出,所举的例子易懂且具有典型性,让人容易举一反三。给我印象最深的是他授课时对EJB的讲解,既让初学者茅塞顿开,又让想深入提高者豁然开朗。  ——普信 郭彬

编辑推荐

  你是否在求职时被鄙视“基本功不扎实”而万分惭愧?《疯狂Java:突破程序员基本功的16课》能检验你的基本功,并让你弥补不足。《疯狂Java:突破程序员基本功的16课》归纳了Java学习者、工作者在学习、工作过程中最欠缺的技术短板。形成内存管理、常见的陷阱、数据结构、程序调试、软件测试等16堂必须课!你是否深入研究过它们,是否深入掌握它们?谨以此书献给打算以编程为职业,并愿意为之疯狂的人。

图书封面

图书标签Tags

评论、评分、阅读与下载


    疯狂Java PDF格式下载


用户评论 (总计19条)

 
 

  •   学习java忽略了很多东西。这本书深入的讲了概念的深层问题 值得学习。
    但是不知道是不是面试真的都会考这些细节问题??
  •   对于JAVA初学者,可以锻炼不错的基本功
  •   因为买的2本j2ee,java都是老沉的大部头,所以一开始对这本书没报多大希望
    但是没想到这本书这么好
    讲到了java中很多不为人知的细节
    适合反复阅读
    感觉很适合刚毕业或刚入职的朋友
  •   这本书非常值得有一定java基础但是基本功不扎实的朋友来阅读~
  •   建议把JAVA用熟练后再看!!初学者不推荐!!!
  •   非常好的一本书,讲的很到位,物有所值啊,对程序员来说,是难得的好书,很多东西讲的明白透彻,易懂~推荐购买,李刚的书一直都很赞
  •   还没有看完,不过李刚的书怎能错过呢~~~~~~
  •   不错,反正我是菜鸟级别的。看着蛮好的,面试过几次,被鄙视了几次,要好好看看这书了。扎实基础
  •   牛书。。。。。
  •   需要反复多看几遍
  •   我给同学买的,他说当工具书用
  •   内容不错,对提高代码能力有很大的帮助
    文笔尚欠, 有些句子读起来很绕口,不如分成两句或者更多
    里面写的一些地方,比如第2章,帮助理解内幕是好的,但是要说清楚这些是编码时应该避免的地方。有些示例代码是为了讲清楚问题的,编码时绝对不要那样写。书里面如果这样提示一下就好了。
    一家之言,说的不对请见谅
  •   内容还行,就是里面有印刷错误,该粗体的没用粗体,还有些字啊什么错误!
  •   质量不错,注重实例的讲解!
  •   还行,作为参考书看。有些东西也是需要了才看的。
  •   内容还不错了,就是编排有问题,到现在还没改过来
  •   要是全部自习弄明白,应届生找个好工作还是很容易的
  •   实践后回归一下理论很有用.
  •   都还行,还有几页都没开页,这都没啥,物流搞得太慢了
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7