`

Java程序员的学习目标:破坏源程序

阅读更多

当你看到这个标题的时候肯定回以为是不是作者写错了标题,告诉你没有,学习java语言就是要有创新精神,你只有不断突破前人的你才会有进步。

  Java作为一门编程语言,最好的学习方法就是写代码。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。举个例子,我们都编过Hello World这个程序。

public class HelloWorld {
  public static void main(String[] args) {
  System.out.println("Hello World");
  }
  }

  很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?包括我刚学习Java的时候也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么main方法是这样定义的了。

  此外,我对于static,public,private,Exception,try{ }catch {}finally{}等等一开始都不是很懂,都是把参考书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。其中特别值得一提的是JDK有一个非常棒的调试功能-verbose。

  java -verbose

  javac -verbose 以及其它很多JDK工具都有这个选项

  -verbose 可以显示在命令执行的过程中,JVM都依次加载哪里Class,通过这些宝贵的调试信息,可以帮助我们分析出JVM在执行的过程中都干了些什么。另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的保存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个代码库了。遇到类似的问题,到代码库里面 Copy & Paste ,Search & Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好,那么可复用性就更强了。

  所以我觉得其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的代码不放心的话,我强烈推荐你看看JDK基础类库的Java源代码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java源代码,你可以参考一下Sun是怎么写Java程序的,规范是什么样子的。

  我自己在学习Java的类库的时候,当有些地方理解的不是很清楚的时候,或者想更加清晰的理解运作的细节的时候,往往会打开相应的类的源代码,通过看源代码,所有的问题都会一扫而空。

分享到:
评论

相关推荐

    第一章java概述ppt.zip

    Java概述是学习Java编程语言的基础,它涵盖了Java的历史、特性、平台、应用领域以及环境配置等方面的知识。在这一章中,我们将会深入了解Java的核心概念,为后续深入学习打下坚实的基础。 1. Java的起源与历史: ...

    java语言基础培训教程

    - 源代码可移植性:Java程序在任何平台上编译都将产生相同的结果。 - CPU可移植性:Java编译后的字节码是针对Java虚拟机(JVM)而非特定CPU的,因此能在任何支持JVM的设备上运行。 - 操作系统可移植性:Java...

    Java入门教程[参考].pdf

    Java的设计目标是提供一种易学、健壮且可移植的语言,克服了C++中如指针操作和内存管理等可能带来的问题。Java强调面向对象编程,其语法接近C++,但语义更接近Smalltalk。 Java语言的主要特点包括: 1. **跨平台性*...

    8.轻松学习JAVA语言[借鉴].pdf

    Java程序的运行过程大致如下:源代码(.java文件)经过javac编译器生成字节码(.class文件)。然后,JVM装载字节码并进行安全校验,接着解释执行或通过JIT编译器优化为本地机器代码运行。 遵循良好的编码规范是提高...

    java:Java发现

    它的设计目标是实现“一次编写,到处运行”,这得益于Java虚拟机(JVM)的存在,它允许Java程序在任何支持Java的平台上运行。Java的特点包括面向对象、跨平台、安全性强、可移植性好以及性能优越。 1. **面向对象**...

    Java基本概念与环境配置(42页).ppt

    Java是一种广泛使用的高级编程语言,由James Gosling于1995年在Sun Microsystems公司创建。Java以其“一次编写,到处运行”的跨平台特性而闻名,其...正确配置和理解Java的基本概念与环境是每个Java程序员的必修课。

    第01讲 Java概述.ppt

    Java是一种广泛使用的高级编程语言,由Sun Microsystems在1991年开发,其设计目标是简单、可移植、面向对象且具有分布式计算能力。自发布以来,Java经历了多个版本的迭代,从最初的Java 1.0到Java 2 Standard ...

    java课件(jvm),学好java你绝对需要它!

    程序员编写的是Java源代码(.java文件),这是一种高级语言,易于人类理解和编写。然而,JVM并不直接理解这种语言,所以需要将.java文件通过Java编译器编译成.class文件,也就是字节码。字节码是一种中间语言,它...

    Java课件介绍.ppt

    Java的设计目标是成为一种纯面向对象、平台无关的语言,适合于互联网应用程序的开发。自1995年发布以来,Java已经发展成为一个庞大的技术体系,包括Java Standard Edition (SE)、Enterprise Edition (EE) 和 Micro ...

    java实战视频教程.rar

    - **IO与NIO**:学习文件操作、网络通信以及非阻塞IO模型。 - **多线程编程**:掌握线程的创建、同步和通信。 - **数据库编程**:了解JDBC,实现数据库的连接、查询、增删改查操作。 - **GUI编程**:使用Swing或...

    The Java Language Environment

    - **简单性:** Java的设计目标之一是尽可能地简化语法,减少复杂性,使得程序员能够更加专注于解决问题而不是语言本身。 - **面向对象:** Java是一种完全的面向对象编程语言,支持封装、继承和多态等核心特性。 - ...

    Java的主要特点.zip

    3. **自动内存管理**:Java使用垃圾回收机制进行内存管理,程序员无需手动释放内存,减少了内存泄漏和程序崩溃的风险。垃圾回收器会在不再使用的对象占用的内存上自动进行清理。 4. **安全性**:Java提供了一套安全...

    java安全手册指南

    - **目标读者**:中级水平的Java程序员,具备编写基本Java应用程序和小程序的能力。 - **前提条件**:读者需要熟悉Java语言基础,并对加密学有一定的好奇心。 #### 二、Java安全编程概念(Java security ...

    JAVA语言概述课件

    例如,以下是一个简单的Java程序: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } ``` 程序调试通常包括编译(检查语法错误)、运行...

    Java 与 jni 部分函数Hook项目.zip

    JNI的核心在于为Java程序员提供了与本地代码交互的接口。它定义了一组头文件和库,使得Java虚拟机(JVM)可以调用本地方法,同时本地代码也可以调用Java对象和方法。JNI的关键概念包括JNIEnv指针、本地方法声明、...

    Java基础知识面试必备

    - **实现**: 开发者只需编写一次Java程序,然后在目标操作系统上安装相应的JVM即可运行该程序,无需针对不同平台进行额外修改。 - **优点**: 极大地简化了软件部署工作,降低了维护成本。 **1.2 面向对象** - **...

    java总结java总结java总结

    Java源代码经过编译后会生成字节码文件(.class文件),这些字节码文件可以在任何安装了JVM的平台上运行。 ### Java 的垃圾回收机制 Java提供了自动管理内存的功能,通过垃圾回收机制(Garbage Collection, GC)来...

    java开发基于SQLmap的SQL注入工具源码.zip

    本项目以开源的Python工具SQLmap为灵感,采用Java语言重新实现了其核心功能,旨在提供一个平台,让开发者尤其是Java程序员更好地理解和应对这类安全问题。 在Java开发环境中,源码通常分为多个部分,例如`src`目录...

    期末冲刺复习题.docx

    【Java语言基础知识】 Java是一种广泛使用的面向对象的编程语言,具有以下主要特点: 1. **健壮性**:Java的设计目标之一就是提供一种强类型、垃圾...学习和掌握这些知识点对于成为一名合格的Java程序员至关重要。

    Java经典入门教程pdf完整版

    开发后的Java程序也是部署在Java平台上的,这个尤其在后面学习JEE(Java的企业版) 的时候,体现更为明显 :Java能干什么 JaⅦa能做的事情很多,涉及到编程领域的各个方面。 1:桌面级应用:尤其是需要跨平台的桌面级应用...

Global site tag (gtag.js) - Google Analytics