首页 Java java教程 菜鸟初学Java的备忘录(一)

菜鸟初学Java的备忘录(一)

Dec 20, 2016 pm 01:44 PM
java


虽然以前间或的也看了些书籍,但多是隔靴搔痒,上不了正席,绝不敢说自己懂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:jdkin
set CLASSPATH=.;c:jdklibdt.jar;c:jdklib ools.jar
保存后,重新启动机器,就完成了jdk1.4的安装。
3.假如你的运行环境是win2000的话,则需在“控制面板”的“系统”下,“高级”选项的“环境变量”中,添加两个用户变量。
其中一个用户变量的名称为“path”,值为“.;d:j2sdk1.4.0_01in”,
另一个用户变量的名称为"CLASSPATH",值为“.;d"j2sdk1.4.0_01libdt.jar;d:j2sdk1.4.0_01lib ools.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将为其分配永久存储空间

(1月17日)关于Static,我想再延伸一下。有时候我们创建一个类,希望这个类的所有实例都公用一个变量,也就是说,所有这个类的对象都只有实例变量的一个Copy.那么这样一个静态实例变量的内存就不能在创建类的实例的时候分配了,因为大家用的都是这么一个,不需要再重新分配.因此Java为其分配永久存储空间。
比如:
class Block{
static int number=50
}
这样定义之后,所有Block类的实例,不管是Block1,还是Block2,它们都访问同一个number.这个number叫做类的变量,而不是实例变量.实际上静态变量又叫做类变量。

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

(1月20日)定义所有程序都要访问的全局变量需要使用
public final static

另外碰到一个初学者经常会碰到的问题
non-static variable mainframe cannot be referenced from a static context 
即在静态方法中不能引用非静态变量
为什么?
因为我们知道静态的方法可以在没有创建实例时使用,而申明为非静态的成员变量是一个对象属性,它只有在对象存在时引用,因此假如在对象未创建实例时我们在静态方法中调用了非静态成员方法自然是非法的,所以编译器会在这种时候给各错误.

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

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

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

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

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

我不知道这些东西是不是老的掉了牙,大家要是想砸就砸吧.还有我问高手一个问题,为什么jdk的编译速度这么慢啊? 

 以上就是菜鸟初学Java的备忘录(一)的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java 中的史密斯数 Java 中的史密斯数 Aug 30, 2024 pm 04:28 PM

Java 史密斯数指南。这里我们讨论定义,如何在Java中检查史密斯号?带有代码实现的示例。

Java Spring 面试题 Java Spring 面试题 Aug 30, 2024 pm 04:29 PM

在本文中,我们保留了最常被问到的 Java Spring 面试问题及其详细答案。这样你就可以顺利通过面试。

突破或从Java 8流返回? 突破或从Java 8流返回? Feb 07, 2025 pm 12:09 PM

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处

Java 中的时间戳至今 Java 中的时间戳至今 Aug 30, 2024 pm 04:28 PM

Java 中的时间戳到日期指南。这里我们还结合示例讨论了介绍以及如何在java中将时间戳转换为日期。

Java程序查找胶囊的体积 Java程序查找胶囊的体积 Feb 07, 2025 am 11:37 AM

胶囊是一种三维几何图形,由一个圆柱体和两端各一个半球体组成。胶囊的体积可以通过将圆柱体的体积和两端半球体的体积相加来计算。本教程将讨论如何使用不同的方法在Java中计算给定胶囊的体积。 胶囊体积公式 胶囊体积的公式如下: 胶囊体积 = 圆柱体体积 两个半球体体积 其中, r: 半球体的半径。 h: 圆柱体的高度(不包括半球体)。 例子 1 输入 半径 = 5 单位 高度 = 10 单位 输出 体积 = 1570.8 立方单位 解释 使用公式计算体积: 体积 = π × r2 × h (4

PHP与Python:了解差异 PHP与Python:了解差异 Apr 11, 2025 am 12:15 AM

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP:网络开发的关键语言 PHP:网络开发的关键语言 Apr 13, 2025 am 12:08 AM

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

创造未来:面向零基础的 Java 编程 创造未来:面向零基础的 Java 编程 Oct 13, 2024 pm 01:32 PM

Java是热门编程语言,适合初学者和经验丰富的开发者学习。本教程从基础概念出发,逐步深入讲解高级主题。安装Java开发工具包后,可通过创建简单的“Hello,World!”程序实践编程。理解代码后,使用命令提示符编译并运行程序,控制台上将输出“Hello,World!”。学习Java开启了编程之旅,随着掌握程度加深,可创建更复杂的应用程序。

See all articles