java基础学习总结_第1页
java基础学习总结_第2页
java基础学习总结_第3页
java基础学习总结_第4页
java基础学习总结_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、java 基础学习总结java 基础学习总结】java 基础学习总结第一阶段任务:搭建环境,学习myeclipse 的使用,java 基础语法的掌握。从 10 月 28 日到公司,在技术总监为我安排明确每一阶段的学习任务后,我就进入相关知识的补充,现在将第一阶段的学习情况做一个总结汇报。之前接触java 较少,只是简单了解过,这几天主要对java 的语法知识进行了相关的学习,在学习中相对来说,由于之前系统的学习过 c+ 面向对象语言,因此学习起来并不觉得有多大困难,学习也是采用二者的不同点来进行参考学习,并且对于java 的特殊地方予以特别的注意。并且对于每一个知识点,都尝试写有实验代码,通过

2、补充理论知识与实际动手,希望能够快速的将其基本掌握。现在总结一些自己总结的知识点。java 与 c+ 不同点:(1)、 java 属于解释型语言,但是它还是需要编译,但它并不是将源代码编译成二进制代码,而是编译为字节码,然后解释执行字节码,因此具有很好的跨平台性。这与c+ 的编译型(编译成二进制代码)语言是不同的。(2)、在java中不区别定义与声明,C+中需要使用extern来声明一个已经定义过的变量。并且在java 中如果变量没有初始化,就直接使用的话,程序在编译时就会报错,而C+ 中只会在执行时给出一个随机值。(3)、在java 中 Const 成为保留关键字,并不使用它,在定义一个常量

3、的时候,java 中使用 final 。而 C+ 中可以使用Const 、 #define 、enum 来定义常量。final 修饰的表示只能够被赋值一次,赋值后便不可更改。(4)、在java中goto 也被作为保留关键字,当需要跳出循环时,可以使用break、Continue都可以用来带标签,而跳出当前循环体。而在 C+ 中 break 与 Continue 不具备此功能。(5)、在java中不能在嵌套的两个块中声明名字相同的变量与常量,而在 C+ 中不存在此限制,C+ 中会依据不同的块,给予变量不同的作用范围与生命周期。(6)、 java 中没有运算符重载的功能,但是我们在使用“ +”来连

4、接字符串的时候,这确实又体现了运算符的重载,可并不能因此就说它具有运算符重载的功能。而运算符重载是c+ 的一大特点与难点。(7)、java与c+的内联机制不同,C+中使用inline关键字来声明内联函数,而java 是否内联,是交由虚拟机来决定的。(8)、 java 中,一个构造器可调用另外一个构造器,使用this(.) 与super (.) C+中是不能够这样的。并且 java的垃圾回收是由java虚拟机来进行操作,因此它没有析构器。这与C+ 需要手动回收资源也是不同的。(9)、java与C+的继承也是有些不同,最大的区别是java不支持多继承,只能够单继承。java 中继承使用的关键字是e

5、xtends 代替了 C+ 中的 “: ”,并且 java 中的所有继承都是publiC 的,而 C+ 可以设置多种权限的继承。(10) 、 java 中一个类只能继承一个父类,但是可以实现多个接口,它提供了接口的概念,而C+ 中没有此概念,C+ 中使用纯虚基类实现了接口的功能。但是二者是有很大差别的。(11)、java中的数组与C+的数组也是不尽相同的。在 java中比如定义一个数组int a; 首先是在栈区分配了一段空间,名字为a,当再次使用a = new int10 ;的时候,它会在堆区分配10个位置,名字分别是 a0、a1这与C+中是有很大差别的,C+ 中一维数组分配的位置都在栈区,并

6、且可以通过a+这种方式来遍历数组,它定义数组也不需要new,可以直接给出数组的大小。(12) 、在参数传递方面,二者也略有不同,java 中都是值传递,而C+ 中有值传递与引用传递(指针传递实质上也是值传递,只不过传的是地址)。由于java中都是值传递,它具备以下几个特点:一个方法不能修改一个基本数据类型的参数(即数值型与布尔型);一个方法可以改变一个对象参数的状态,一个方法不能让对象参数引用一个新的对象。java 的特性:(1)、 java 具有两大类的数据类型,分别是:8 种基本数据类型,对象引用数据类型。其中java 将布尔类型,原来在C+ 中 false 就是0,true 就是 1 。

7、 java 中直接定义为false 与 true 。(2)、 java 中 string 的字符串为不可变字符串,stringbuffer 为可变字符串,也就是string 的值一旦被创建它就不可被修改。因为这个类前面使用了final 来修饰。(3)、在一个java 源文件中,只能有一个公有类(public ),但可以有任意数目的非公有类。如果在其中此时再定义接口,接口的属性也只能是默认,不能是public 。(4)、在类中的静态方法,没有this 指针,因为它是属于一个类的,而不是某个对象。在静态方法中不能直接访问非静态变量(可通过调用方法来访问变量),但是可以直接访问本类中的静态变量。非静

8、态方法可以直接访问静态变量。(5)、 java 中的 super 与 this 的区别:super 不是一个对象的引用,不能将 super 赋给另外一个对象的变量,它只是一个指示编译器调用父类方法的特有关键字。而this 是一个对象的引用,它指向它自身,同一个类不同对象拥有不同的this 。(6)、关于 final 的几个重点:final 定义的类,不能够被继承。如果在某个类中(非final 类)某个方法使用了final 来修饰,那么在子类中不能使用重写这个方法。final 类中所有方法自动地成为final 方法,但是其中的变量并不是final 的。(7)、在 java 中有一个关键字,ins

9、tanceof 来判断一个类b 是否属于类 a 的子类,常常用于在类型转换时,进行检查类的匹配问题。(8)、不能构造接口对象,但是可以声明接口变量;不能构造抽象类对象,但是可以声明抽象类变量。(9)、接口的修饰符只能为默认的default 或者 public ,它其中的所有方法都是抽象的,被自动设为public ,变量自动设为publicstatic final 。(10)、java中抽象类与接口的差别:抽象类用 class来修饰,接 口用interface来修饰,抽象类可以继承,接口也可以继承;一个 类可以实现多个接口,但是只能继承一个抽象类;抽象类可以有 非抽象的方法,继承它的子类可以对这

10、些方法重写;但是接口中的方法全部为抽象方法,实现这个接口的类,必须全部用重写接口中的方法;在抽象类中定义的方法,他们的修饰符可有这些选择:public protected default private 。而接口中的方法全部是public的;抽象类可以有构造函数,而接口没有构造器。(11) 、 java异常处理用trycatch 来扑捉,一般在catch 末尾 finally 来释放掉一些稀有资源,不管释放扑捉到异常,finally 中的语句一定会被执行的。一般来说,对于异常也可不出,某个方法有异常,在调用它的方法中继续用thows 继续抛出异常,让上一级处理。一般规定除 runtimeexc

11、eption 以外其他的异常,在程序中出现时,都必须处理。以上内容,是我这几天学习整理所得,由于初学,有些地方不准确、不严谨,希望刘老师给予指正与指导。很多更深入的java 知识,需要在实践中得到不断的补充,在后面实际工作中,希望得到刘老师刘总监帮助。何磊2013 年 10 月 31 日【篇二:java 基础部分学习心得】一java数据结构,链表1 java 简介java 核心机制:java 虚拟机 (实现了一处编程,到处运行),因为其运行过程是先编译成.class 字节码文件,然后在jvm ( java virtualmachines )运行,不同的操作系统有不同的虚拟机,所以实现了一处编程

12、,到处运行。垃圾收集机制(: 帮助解决了一些健壮性的问题,不像c/c+ 那样内存管理那样麻烦),在编程过程中,会创建许多对象,存储在堆空间里,占用内存,但是java 的垃圾回收机制,会不定时的自动回收在堆空间里没有任何引用指向的对象,所以在编程时应习惯性及时将不用的引用设置为null 。可以通过system.gc(); 来快速执行垃圾回收机制。j2sdk(jdk): java devleopment kit 软件开发包,开发需要 jdk (包含 jre ,编译运行开发工具)。jre : java runtime environment 运行环境,用户只需要jre (包含系统类库和jvm )。

13、软件格式:每一个类都对应一个class 文件如果一个源文件文件中包含public 类,则该文件名必须以该类命名,每个源文件中最多有一个public 类java 的执行入口是main() 方法,固定格式:public static voidmain (string args) 数|名字可以改变。区分大写小2 java 语言基础变量取名:标识符选取取名:一定要注意“见名知意”,但不能和java 语言的关键字重合字符常量 “ 字符串常量”变量使用:先声明,再赋值,才可以使用变量基本类型:4 类 8 种 ;boolean 类型 :逻辑运算,用于程序流程控制,只能取true ,falsechar 类型

14、: 字符类型eg: char echar= 中 , unicode 编码(每个字符对应有一个编码)每个字符占两个字节,无论中午,英语,数字,每个字符都是占两个字节。整数类型:byte 占一个字节-128-127short 2 个字节int 4 个字节 对应包装类integerlong8 个字节浮点类型flaot 4 个字节double 8 个字节对应包装类double格式 很重要1. 大括号对齐2. 遇到 用 tab or shift+tab3. 程序块之间加空行4. 运算符两侧加空格有特定的条件5. 并排语句之间加空格6. 前面有空格7. 成对编程异或八相异为true逻辑和逻辑| 无论结果如

15、何,后面的表达式一定会计算短路和短路| 第一个表达式已经可以得到结果了,后面的不算了分支循环语句if 语句ifelse ifelse ifelse ifelse 当只有一句语句要执行的时候,可以省略大括号 但是目前无论是否可以省略,都写上循环语句for 循环, for (表达式1 ;表达式2;表达式3) 语句;.; while 循环 while (逻辑表达式)语句;.; do while 循环 do (语句;.;)while (逻辑表达式);注意,do while 循环 while (逻辑表达式);的分号if 语句后面注意不要加分号,不容易被查错continue 语句,用在循环中,终止当前循环

16、中下面的语句,到下一次循环switch ()case xx:语句;case xx :语句;default :语句;这里注意case 和 break 的搭配使用,如果没有break ,则程序会一直向下执行。方法 public ( static ) 返回值类型方法名称(形式参数;.) 方法体; java 语句; return 返回值当出现return 时,立即返回。无返回值时,类型为voidstatic 是静态方法,直接使用类名调用,非静态方法,需要使用对象调用。方法只有当调用的时候,才会执行,方法中涉及的局部变量,在方法被调用时,出现在栈空间,一旦方法结束,所占用内存消失。.method (实参

17、;.) /调用(面试)递归三面向对象面向对象编程:运用人类正常思维方式构造系统,常使用的原则和思想方法:抽象,继承,分类,聚合,多态1. 使用人类自然语言,描述这个业务的需求2. 根据业务需求寻找涉及的事物类-对象3. 数据模型设计:利用数据描述对象,以及对象之间的关系,将对象数据化。4. 概要设计类的设计(概要设计):定义类的属性数据如何初始化:构造器,工厂方法。详细设计5. 利用分析数据6. 根据数据设计算法实现功能7. 逐一实现算法8. 实现用户响应9. 界面状态管理用面向对象考虑问题时,不应该考虑第一步,第二部要做什么,1.首先考虑的是,这个问题涉及哪些类和对象,2.考虑这些类和对象,

18、每一种应该具有哪些行为和属性3.每类和类之间具备了什么关系。类是一类事物的一个抽象对象这个类具体的一个实例类和对象多为关系:关联关系继承关系:一般和特殊的关系,eg:游泳运动员是运动员的一种,足球运动员是球类运动员的一种。聚合关系:整体和部分的关系,eg: 队长和队员是球队的一部分,是聚集关系,头和手是身体的一部分,是组合关系。实现关系:多态:成员变量可以不初始化,java 默认会初始化对象的创建和使用:使用 new 关键词来创建对象对象 .成员变量来调用对象的成员变量(引用)对象 .方法 来调用对象的方法(引用)同一类的每个对象有不用的存储空间同一类的每个对象共享该类的方法构造方法:构造方法

19、的名字和类名要完全一样,和new 一起使用来创建新对象,对对象进行初始化的。在类中用来初始化对象的一个方法(函数)eg : public class person / 创建一个person 类int id ;int age = 20 ;/定义成员变量person ( int _id , int _age ) /定义一个构造方法,方法名必须与类名完全一样id = _id;age = _age;public static void main (string args) person tom = new person ( 1 , 20);/创建一个对象tom, 利用构造方法进行了初始化没有指定构造方

20、法时,编译器自动指定一个空的,一旦自己定义了,编译器就不定义了,构造方法前面没有返回值类名首字母大写,方法名变量名小写,后面的每一个单词的首字母都要大写方法一旦执行完毕,为这个方法所分配的局部变量的存储空间将消失方法重载,构造方法的重载:方法名相同,类型相同,但是参数变量类型不同的,可以构成重载,构成多个方法,调用时会根据不同的参数选择相应的方法构造方法与普通方法一样,可以进行重载关键字:this在那个对象,this 就指向那个对象,指向对象本身自己的引用static : 在类中用static 声明的成员变量是静态成员变量,分布在data seg 内存空间里,在第一次使用时被初始化并且只有一份

21、,整个类的所有对象都可以使用,可以用类名.静态成员变量,来直接调用。用 static 声明的方法叫静态方法,动态方法通过某一个对象来调用,静态方法没有对象照样可以使用,eg :类名.静态方法,来调用,不用写对象名字,所以在static 方法里不能访问非static 的成员static 里不会隐式传递this 关键字,即调用不了对象属性所以当一个方法只和参数相关,则使用static 方法,如果和成员变量相关,则不使用。静态的方法不针对某个对象调用,非静态成员专属于某个对象,所以静态方法,不能访问,可以通过对象引用,或者类名来访问静态成员static 块:在类加载期间就被执行的语句块,软件运行时,

22、会先在jvm 上加载类,则static 块可以用来加载许多初始化资源。包: package 和 import 、【篇三:java 入门基础知识总结学习教程大全【必看经典】第一讲 java 语言入门一 有一种学习叫无论你身处何地,都可以来看java 现场直播其实别看我说的头头是道的,其实在我刚准备学java 的时候,也老迷茫了,当然有时候迷茫是因为才华配不上梦想,身边的朋友总是叨叨那谁谁做java 工资多么多么的高,整的我心里痒痒的羡慕妒忌恨,所以就找了很多学习java 的机构,后来在我们济南这边选择了一家学习,学了半年,就学了一些不着调的基础知识,勉强的能编点小程序,其实啥实战能力也没有,老师

23、教学的时候他自己讲的都云里雾里的,让我们这小新入行的小白更是摸不着头脑了。我一看,这样下去,我的java 梦也就蔫吧了。后来我一哥们在网上给我说了一个地方让我去学习,他们那里每天晚上都有公开课,老师现场讲的,于是我就抱着玩的态度,去听了几天他们的公开课,听的我是豁然开朗,老师讲的是通俗易懂,把抽象的 java ,讲解的形象生动,我就觉得和讲故事似的,这才是我想要的课程,从那时候开始,我就每天晚上去学习,如果各位小伙伴也想去学习的话,你们可以加一下他们这个群就可以去学习了,前面的第一组数字是:一四三,中间的第二组数字是:五一零,结束的一组数字是:一六八。按照顺序组合就可以了,反正我通过自己的经历

24、发现一个道理,选择不对,努力白费。1.1 java 的特点1.1.1 面向对象:? 与 c+ 相比, java 是纯的面向对象的语言C+为了向下兼容c,保留了很多c里面的特性,而c,众所周知是面向过程的语言,这就使c+ 成为一个混血儿。而java 语法中取消了 c 里为兼容c 所保留的特性,如取消了头文件、指针算法、结构、单元等。1.1.2 可移植(平台无关性):? 生成中间字节码指令与其他编程语言不同,java 并不生成可执行文件(.exe 文件),而是生成一种中间字节码文件(.class 文件)。任何操作系统,只要装有 java 虚拟机(jvm ),就可以解释并执行这个中间字节码文件。这正

25、是 java 实现可移植的机制。? 原始数据类型存储方法固定,避开移植时的问题java 的原始数据类型的大小是固定的。比如,在任何机器上,整型都是 32 位,而 c+ 里整型是依赖于目标机器的,对16 位处理器(比如 8086 ),整数用两个字节表示;在像sun sparc 这样的 32位处理器中,整数用4 个字节表示。在intel pentium 处理器上,整数类型由具体的操作系统决定:对于dos 和 win32 来说,整数是2个字节;对于windows 9x 、 nt 和 2000 ,整数是4 个字节。当然,使整数类型平台无关之后,性能必然有所下降,但就java 来说,这个代价是值得的。j

26、ava 的字符串,则采用标准的unicode 格式保存。可以说,没有这个特性,java 的可移植性也不可能实现。1.1.3 简单? java在语法上与c+类似java的语法与C+很接近,有过c或者C + +编程经验的程序员很容易就可以学会java 语法;? 取消了 c+ 的一些复杂而低效的特性比如:用接口技术代替了c+ 的多重继承。c 中,一个类允许有多个超类,这个特性叫做多重继承,多重继承使得编译器非常复杂且效率不高;java 的类只允许有一个超类,而用接口( interface )技术实现与c 的多继承相类似的功能其它被取消的特性包括:虚拟基础类、运算符过载等? java 的基本解释器和类

27、支持模块大概仅40k即使加入基本的标准库和支持线程的模块,也才220k 左右。与gui(图形用户界面)相比,明显小很多1.1.4 健壮? 取消了指针算法c 的最关键的一个特性是它的强大指针算法,比如可以用指针访问字符串、数组甚至文件,很容易产生指针溢出,意外地改写内存和损毁数据。java 里有一个指针模型,对于普通的任务,如访问字符串、数组,根本不用指针,而一旦需要,比如访问对象、文件时,也可以获得指针的强大能力,但java 同时有高度的指针安全保障,用户永远不可能访问一个坏掉的指针、不可能造成内存分配错误,也用不着专门提防可能出现的内存漏洞。1.1.5 多线程? 强大的多线程能力多线程可以使

28、程序有更好的交互性和实时性,并可以最大限度地利用多处理器系统。java 有着强大的多线程处理能力,因为各主流操作系统平台在线程的实施方面有重大的差异,所以java 为不同的操作系统实现了专门的多线程机制。在这点上来说,java 没有做到平台无关。1.2 java 简史? 首次亮相-1995 年 5 月java 技术起先是作为小型的计算机语言,用于消费类设备,比如有线电视交换盒等。因为这些设备的功能和内存均不足以运行大程序,所以程序要尽可能小;另外,由于不同的厂商可能选用不同的cpu ,所以要求这种语言不能受限于任何一种独立的体系结构。1995 年 5月 23 日召开的sunworld 95大会

29、上,一种全新的浏览器(今天的hotjava 的前身)亮相,标志着 java 的诞生。? 开始流行-1996 年 1 月那时网景公司决定在netscape2.0 加入对 java 的支持,netscape2.0 在 1996 年 1 月发布,从这一版本开始,所有netscape 浏览器均支持java 。注册了java 使用许可证的还有ibm 、symantec 、 inprise 和其他许多公司。就连微软,也加入了这一行列(尽管他们支持的java 和标准的java 稍有不同)。? sun 的第一个java 版本 -1996 年初sun 公司于 1996 年初发布了java 1.02 ,遗憾的是,

30、java1.02 还未摆脱其小型语言的影子,只适合用来做诸如网页上一个随机移动的文字之类的工作,并不适合用来做正规的程序开发。java1.02 作为一种正规的编程语言,可以说,准备得很不充分。? 成熟 -1998 年1998 年 12 月, java1.2 问世了。它是一个功能全面的、具有高度扩展能力的新版本。3 天后, java1.2 被改进成java2 ,向一次编写,到处运行的目标前进了一大步。? 现状现在最新的java 版本是 jdk1.4 ,它是一个测试版,稳定的正式版是jdk1.3 。用户可以到 免费下载。微软在它的最新浏览器ie6.0中不再支持java ,为java的发展带来阴影。

31、1.3 jdk 的安装与编程环境的设定1.3.1 java 程序的开发过程经典的 java 工具包是jdk 。尽管可以用任何文本编辑器,如记事本,都可以直接编写java 程序然后用jdk 的命令编译和运行,为了调试方便,也为了初学者容易上手,本教程课件将使用一个叫jpadpro的 java 编写工具来调用jdk 的工具。用户可以到下载这个工具。1.3.2 jdk 的安装1.3.3 安装运行之后,应该首先设置jdk 工具包所在的路径。菜单栏的jdk- select jdk directory- 选择刚才安装的jdk 路径 -ok 。1.3.4 新建一个project菜单栏的file-new projects- 选择路径, 输入 project 的名字。1.4 两个简单的程序示例1.4.1 java 应用程序:hello.java? 编写新建一个.java 文件。 file- new- java file- 输入一个名字:hello- 点 creat file. 出现了一个空的j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论