? ? 2012六月末,我在蓝杰报名学习Java这种计算机编程语言,应熊哥等哥哥级老师的要求,也为系统的梳理学习内容,注册ITeye技术网站,开始撰写我的技术博客,以期日后自己回忆起来时,能找到自己钻研技术时的一些领悟和感触,当然也是一种大学时光的见证。因此,我将努力写好这段Java学习之旅的收获与感悟。
? ? 在博客的撰写过程中,我将以问题的形式来书写。
? ? 第一个问题:何为Java?它是干什么的?它...
? ??简而言之,Java是一种计算机编程语言,这种语言因为具备“跨平台”和“免费开源”的优点在短短十几年的时间内获得了极大的发展,当然还包括了“面向对象”的编程方法和“简单易用(舍弃了C语言中麻烦的指针操作)”等优点,在编程语言的使用上也一度占据第一的宝座。
? ? Java源程序的后缀是.java;Java编译后的文件是.class;Java的编译器是Javac(反正在DOS环境下是这样调用的)。
? ? 因为Java支持跨平台操作,所以在不同的操作系统下我们要配置不同的运行环境(JRE),内含Java虚拟机(JVM)。Java开发工具包(JDK)包含了Java运行环境和Java编译器,所以我们要安装JDK。 ? ? Java的集成开发工具(IDE)有Eclipse,Jcreater等。 ? ? 第二个问题:Java中的基本数据类型等概念的理解? ? ? Java中的基本数据类型有8种,它们是 ? ? byte ? ? ? ?int ? ? ? short ? ? long ? ? ? ?float ? ? double ? ? char ? ? ? ?boolean ? ? String虽然不是8中基本类型,它是Java中的一个类,但是它的使用方法确是跟基本数据类型很相近,而且遵守值传递的规则。 ? ? 第三个问题:什么是类?什么是对象?它们在内存中是如何存放和引用的? ? ? 类从字面上就能理解,就是一类东西,它们具备一些相同的特征和行为。而对象则可以这样理解,它是一个具体的东西,不是抽象起来的一类东西,而是这些具有相同特征和行为的一个具体的个体。 ? ? 类用类名定义一个对象名,用new关键字来实例化一个对象,定义的过程中并不给分配内存空间,只有在实例化的时候才给分配一个空间,昨天晚上,其实应该叫今天凌晨,也就是两三个小时前,室友给我跟另一位室友分析了一下new在实例化对象时的内存分配情况。但new后的对象会在实际的内存中分配一定的空间。定义后的一个名称存放在高速缓存区,里面存放了它所指向的元素或者对象的地址。举个例子,生了一个小孩,给他起了名字,名字是放在一个地方的,他只是一个代号,代表了他所代表的小孩,而这个小孩是真正的一个对象。 ? ? 第四个问题:什么是值传递?什么是引用传递? ? ? 这两个概念是这样区分的:值传递就是在内存中重新分配了一块内存,并把这块新内存的地址赋给了新的变量。引用传递就是把内存中存在的这个元素的地址直接传给了变量,并没有在内存中重新分配一块空间,所以美其名曰引用传递。但是,在值传递中还有一个特殊的String,它也是值传递,至于为什么就不深究了,记住就好了。 ? ? 第五个问题:什么是构造器or构造函数?什么是重载?以及一些其他的东东... ? ? 构造器是这样的一个东西,它主要的作用是在实例化对象时传入参数值。书写方式是public + 类名(传入的参数){}。构造器又名曰构造函数。但它不能有任何返回值,而且必须与类名相同,在实例化对象的过程中它只被调用一次。 ? ? 函数的重载,是这样一种东西,它允许你给定一个函数名(方法),这个函数同名,但是参数类型不同,数量不同抑或参数的次序不同。这样的话方便了开发人员,不用搞很多其他的函数名称在里面,容易搞晕。 ? ? 函数的重载(overLoad)和函数的重写(overWrite)是有很大不同的,具体体现在overLoad是表现在同一个类下对同一函数名的重复书写,当然后面传入的参数是不同的;而overWrite是继承或者实现类中的一个概念,它修改了父类或者接口中的某些方法,当然后面的参数格式是必须相同的。 ? ? 第六个问题:this关键字的用法? ? ? this关键字一般是用来在类中指代当前对象的,当传入的参数名称与类中参数名称相同时加以区分。另外一种用法是放在构造器中调用其他构造器,也可以调用方法。需要注意的是,在构造器中通过this调用另一个构造器时,调用的代码必须是第一行,且只能调用一次。并且,在一般方法中不能够用this调用构造器。 ? ? 一般这样用 ?this.name = name; ? ? ? ? 我的第一篇技术学习博客就写这么多,下一篇将会将我对继承,接口等内容的理解写下来。?
?
?
?