虽然以前间或的也看了些书籍,但多是隔靴搔痒,上不了正席,绝不敢说自己懂Java。接触一门新的技术和初恋一样,都是第一次,但不同的是后者一般开始无比甜蜜,结局却很痛苦,而前者则往往开始很痛苦,越到后来却越是有味,简直是欲罢不能.现在我就正处于这个很痛苦的阶段,连一个最简单的Helloworld都运行不出来,总是提示Excepion in thread "main" java.lan.NoClassDefFoundError. 只好上网去查,去搜.记性又不好,所以搜出来赶紧保存下来,常备无患。

  一般来说安装完JDK之后,一定要按一下步骤配置,才可正确编译运行(假定jdk版本为1.4.0)。

  1.将jdk1.4.0-安装在自己机器的某个盘符的根目录下,如:可安装在C:\jdk下。

  ***(以下出现的c:\jdk改为你自己安装JDK的目录)***

  2.如果你的运行环境是win98,则在C盘根目录下,autoexec.bat文件中,加入下面两条语句:

  set Path=%PATH%;c:\jdk\bin
  set CLASSPATH=.;c:\jdk\lib\dt.jar;c:\jdk\lib\tools.jar保存后,重新启动机器,就完成了jdk1.4的安装。

  3.如果你的运行环境是win2000的话,则需在“控制面板”的“系统”下,“高级”选项的“环境变量”中,添加两个用户变量。

  其中一个用户变量的名称为“path”,值为“.;d:\j2sdk1.4.0_01\bin”,另一个用户变量的名称为"CLASSPATH",值为“.;d"\j2sdk1.4.0_01\lib\dt.jar;d:\j2sdk1.4.0_01\lib\tools.jar”,单击“确定”即可。即完成了jdk1.4.0的安装。

  至于这样做的意义何在,我想应该是让Java系统在编译字节代码(.java)的时候需要一个什么东东的支持,如果你不告诉它这个东东放在哪个地方的话,它就犯傻了?!

  看到屏幕上终于显示出Hello world对我来说意义重大.这是我近一年来写的第一个程序!再次踏上程序之路,简直有恍如隔世的感觉,已经快找不准我的位置了。还好原来学的一些关于C 和面向对象的皮毛没忘光光,所以费点周折熟悉了JDK的环境之后,接下来的事情就好办多了,心里也踏实多了。

  用String类直接定义字符串变量比起C中讨厌的指针,感觉确实好的多,用惯了Object Pascal的我,如果再回去数* *,真要疯掉不可。

  数组的定义和C,C 好像略有不同,记不清了,先记下来再说

  int[] number=new int[5]
  String[] message=new String[5]

  变量这一部分想起来要交待的也就这么多吧。虽然是菜鸟,但我也知道,总是如谭浩强般在语法上面死抠的人简直是白痴:大多数情况下,漂亮的程序根本不需要无谓的点缀,工工整整,思路清晰就可以了。

  倒是对于Java程序的框架我倒想备忘一下,一个简单的java程序好像是应该是这样的框架:

  class ProgramName
  {
  public static void main(String【】 args)
  {
  file&://程序的主体
  }

  public static int othermethod()
  {
  file&://其它方法
  }
  }

  整个程序在一个大的类中,这个类的概念应该就跟pascal里面的单元差不多的。同pascal一样,文件名也要与单元名-在这里是类名-一样.Java对大小写要求的非常严格,我语法错了好几次都是因为这个.

  Java程序就是由一个或者多个或者很多个方法在这样一个大类当中组成的.

  在如上的代码中,定义方法的参数表示的意思分别为:

  public表示此成员函数是公有的,可以被其他类直接调用 static表示main成员函数在ProgramName类的所有对象中是唯一的,Java将为其分配永久存储空间

  关于Static,我想再延伸一下。有时候我们创建一个类,希望这个类的所有实例都公用一个变量,也就是说,所有这个类的对象都只有实例变量的一个Copy.那么这样一个静态实例变量的内存就不能在创建类的实例的时候分配了,因为大家用的都是这么一个,不需要再重新分配.因此Java为其分配永久存储空间。

  比如:

  class Block{
  static int number=50
  }

  这样定义之后,所有Block类的实例,不管是Block1,还是Block2,它们都访问同一个number.这个number叫做类的变量,而不是实例变量.实际上静态变量又叫做类变量。

  继续深入:用Static定义的静态成员函数或者静态变量,可以通过其所属类名来直接调用.为什么可以这样?因为既然这个类的所有对象都是使用的这一个变量,那么理所当然我不需要去从其中的任何一个对象去引用它,而只是通过类名引用就可以了嘛.这样不是可以方便的实现一些全局函数和全局变量吗?把所有全局的函数或者全局的变量都定义在一个静态类中,调用的时候直接通过这一个类名就可以方便的访问所有的全局变量和全局函数了。

  定义所有程序都要访问的全局变量需要使用

  public final static

  另外碰到一个初学者经常会遇到的问题

  non-static variable mainframe cannot be referenced from a static context

  即在静态方法中不能引用非静态变量

  为什么?

  因为我们知道静态的方法可以在没有创建实例时使用,而申明为非静态的成员变量是一个对象属性,它只有在对象存在时引用,因此如果在对象未创建实例时我们在静态方法中调用了非静态成员方法自然是非法的,所以编译器会在这种时候给各错误.

  简单说来,静态方法可以不用创建对象就调用,非静态方法必须有了对象的实例才能调用.因此想在静态方法中引用非静态方法是不可能的,因为它究竟引用的是哪个对象的非静态方法呢?编译器不可能给出答案,因为没有对象啊,所以要报错.

  最后我们看看Think in Java里面的精辟阐述,这个问题我想就非常非常的清楚了

  static关键字

  通常,我们创建类时会指出那个类的对象的外观与行为。除非用new创建那个类的一个对象,否则实际上并未得到任何东西。只有执行了new后,才会正式生成数据存储空间,并可使用相应的方法。

  但在两种特殊的情形下,上述方法并不堪用。一种情形是只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。另一种情形是我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有创建对象,也需要一个能调用的方法。为满足这两方面的要求,可使用static(静态)关键字。一旦将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系到一起。所以尽管从未创建那个类的一个对象,仍能调用一个static方法,或访问一些static数据。而在这之前,对于非static数据和方法,我们必须创建一个对象,并用那个对象访问数据或方法。这是由于非static数据和方法必须知道它们操作的具体对象。当然,在正式使用前,由于static方法不需要创建任何对象,所以它们不可简单地调用其他那些成员,同时不引用一个已命名的对象,从而直接访问非static成员或方法(因为非static成员和方法必须同一个特定的对象关联到一起)。

  Whoops!现在应该回到主干上来了

  void 表示方法返回的值的类型为空。如果返回特定的类型的话,则该方法实际上就是函数,否则就是一个过程而已.

初学Java的备忘录的更多相关文章

  1. ios – 未捕获的异常:CALayer位置在执行动画时包含NaN

    我在iPad上运行时在应用程序中收到此错误:Uncaughtexception:CALayerpositioncontainsNaN相同的代码在iPhone上运行良好.我知道,分配的帧包含NaN值,我用CGRectEmpty函数检查了这个并将该帧设置为CGRectZero,但它不起作用.我从这里得到了这个工作代码,https://stackoverflow.com/a/7045916/160323

  2. Java中四种XML解析技术

    在平时工作中,难免会遇到把XML作为数据存储格式。在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历XML这块来测试,因为遍历XML是工作中使用最多的。DOM是以层次结构组织的节点或信息片断的集合。对于需要自己编写代码来处理XML文档的开发人员来说,选择DOM还是SAX解析模型是一个非常重要的设计决策。DOM采用建立树形结构的方式访问XML文档,而SAX采用的事件模型。

  3. 初学者入门:细述PHP4的核心Zend

    在一些特殊测试环境下,Zend的执行速度比PHP3及ASP快了几倍到几百倍之多,这也意味着网站的后端CGI界面的统一者非PHP4Zend莫属了。以这种潜力发展下去,VBA的终结者非Zend莫属。而微软只全力对付Linux,没有注意到来自PHP/Zend的威胁。Web服务器发觉是PHP的要求,需要PHP引擎解析,于是将它送到PHP4的Zend引擎上。而目前在网络上的流行,也为Zend引擎作了最佳的见证。在Zend的四大产品中,这是目前唯一成熟的产品。届时,可能会有PHP大战Java的情形。

  4. 轻松玩转Java配置的Classpath

    和Java类路径打交道的过程中,开发者偶尔会遇到麻烦。例如,大多数Servlet引擎使用定制的类装载器,动态地装入那些在classpath指定的目录内发生变化的类。这个工具要求指定一个Java类的名字,然后根据classpath的指引,找出类装载器即将装载的类所在位置的绝对路径。

  5. Java中关于XML的API

    简单介绍一下Java关于xml的API,这样大家看到了缩写就知道是干什么的了。这样你就可以直接地使用JAXM的API直接发送和接收SOAP消息。

  6. PHP+javascript模拟Matrix画面

    直接存为*.php文件运行即可。

  7. PHP中调用JAVA

    PHP与JAVAJAVA是个非常强大的编程利器,它的扩展库也是非常的有用,这篇教程,主要讲述怎样使用PHP调用功能强大的JAVA类库。为了方便你的学习,这篇教程将包括JAVA的安装及一些基本的例子。这一步是非常重要的,这样PHP才能正确的找到需调用的JAVA类。[java]extension=php_java.dlljava.library.path=c:\web\php4\extensions\java.class.path="c:\web\php4\extensions\jdk1.2.2\php_ja

  8. JAVA/JSP学习系列之二(Tomcat安装)

    Tomcat是Apache组织的产品,sun公司对它的支持也相当不错。从这个地址可以下载:http://jakarta.apache.org/builds/tomcat/release/,我下载的是Tomcat32b4版本。注意,对于Tomcat其他设置,如果没有必要,是可以不改的,我这里讲的都是最简单而可行的方法,如果对你的改动没有把握,还是建议不要改动。

  9. 利用Java实现zip压缩/解压缩

    Java1.1实现了I/O数据流与网络数据流的单一接口,因此数据的压缩、网络传输和解压缩的实现比较容易,下面介绍利用ZipEntry、ZipInputStream和ZipOutputStream三个Java类实现zip数据压缩方式的编程方法。zip压缩文件结构:一个zip文件由多个entry组成,每个entry有一个唯一的名称,entry的数据项存储压缩数据。与zip文件有关的几个Java类·类ZipEntrypublicZipEntry;name为指定的数据项名。·类ZipOutputStreamZip

  10. 如何迅速成为Java高手

    很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。要想学好Java,首先要知道Java的大致分类。J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail了。还有就是要经常上一些好的Java编程文章,有好的文章要Cut下来,有问题尽管问,只要问题不是太傻,一般高手都会回答你的。你一定会高兴地说,哈哈,原来

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部