Java学习总结

新疆轻工职业技术学院

J

a

v

a

班级:

姓名:

一:java标识符 指用户自己定义的类别、变量名、方法名等。命名标识符应该遵从以下几点原则:

1.区分大小写,长度不限。

2.英文、数字、下划线、美元符号均可使用,但不能以数字开头。

3.不能使用Java关键字。

正:Abcde、abc12、_Hi、$abc、abc123abc

误:3abc、#abc、this、super(this、super是Java关键字)

二:java关键字 (1)基本数据类型 boolean、byte、char、short、int、long、float、double

(2)访问控制 private、protected、public

(3)与类有关的关键字 class、abstract、interface、extends、implements

(4)与对象有关的关键字 new、instanceof、this、super、null

(5)与方法有关的关键字 void、return

(6)控制语句 if、else、switch、case、default、for、do、while、break、

continue

(7)逻辑值 true、false

(8)异常处理 try、catch、finally、throw、throws

(9)其他 transient、volatile、package、import、synchronized、native、

final、static strictfp

(10)停用的关键字 goto、const

三:java变量与常量

变量是指在程序运行过程中可以改变的量;常量是指一经建立,在程序运行过程中其值保持不变的量。变量的声明格式如下:

[访问控制符] 数据结构 变量名1[[=变量初值],变量名2[=变量初值],.....] 例如:int a=10;

常量在程序中可以是具体的值,例如,123,12.3,‘c’。也可以用符号表示使用的常量, 称为符号常量。符号常量声明的基本格式如下:

final 数据类型 常量名=常量值

例如:final double PI=3.14159;

通常,变量和方法均已小写字母开头。类名以大写字母开头。

四:java数据类型

1:基本数据类型

A.逻辑型(Logical,也称布尔型) ----boolean(1 byte)

B.字符型 ----char(2 byte)

C.整型(Integral) ----byte(1 byte) short(2 byte) int(4 byte) long(8 byte)

D.实数型(Floating,也称浮点数) ----float(4 byte ) double(8 byte)

2.对象数据类型(Object Type)

注意::对于整型数据,把超过其表示范围为的大整数赋给了变量时程序会出现错误。在超过int型表达范围的整数后,一定要加上字母L(或小写的l)。整型常数有int型与long型之分,long型常数后,一定要加上字母L或小写的L.。如:

Int型常数:1,123,-12345,012,0x12

Long型常数:1L,2L,300L,0x12L

对于实数型如果想用float型小数,则要在小数后面添加上字母f或F。如:float a=1.23f

五:java类型转换

(1)自动类型转换 系统会自动地将两个字节型数据相加的结果转换成整型,这就是 Java中所谓的自动类型转换。如下:

x1 byte b1=1;

x2 byte b2=2;

x3 byte b3=b1+b2;

事实上当编译时会出现错误,就是因为Java中这种自动类型转换机制。x3应改为 int b3=b1+b2; 。

(2)强制类型转换 格式为:(int)x [与C++不同C++有两种形式:(int)x和int(x)]。 六:java运算符:

注意:优先级的高低(由高到低)

单目运算符-?算术运算符 -?位移运算符-?关系-?逻辑-?三目-?赋值运算符

(1)逻辑非(!) 经常用在条件语句中。

(2)位非运算符(~ ) 运算规则:逢0变1,逢1变0。

一个例题的疑问:byte a=7;

byte b=a;

System.out.println(b); //会输出-8?

很遗憾上面的代码会报错,原因在于我们把~a这个整型数赋给了一个字节型变量。改正为 byte b=( byte )~a;怎么回事呢?

(3)位移(shift)运算符(<<,>>,>>>)

“<<”将比特位左移一位,右端空位全部填0。

规律:每左移一位其值就增加1倍。

“>>”将比特位右移一位,被移动的若为正数,最左端填0;若为负数,其最左端填1。 规律:每右移1位,其值就减半。

“>>>”表示右移1位,并且无论被移的是正数还是负数,其最左端均填0。所以,用“>>>”运算符操作负数后,将得到正整数。

注意:这些运算符操作的数据是原始数据的副本,所以,操作后的原始值不变。

(4)&&与||

A&&B:若A为false,则整个表达式即位假,与B的真假无关,所以运算时B并不被运算(即保持着原来的值)。

A ||B:一样。 运算时一定要注意。所以&&与||又被称为短路运算符。

(5)位运算符:位与(&)、位或(|)、位移或(^)

A&B:比较两个操作数的比特位,若都为1,则结果为1,否则为0。

如果a=3,b=10,则a&&b是2。

a —>1110

b —>1010

a&&b—>0010

A|B:对应比特位有一个是1,则结果是1,否则为0。

A^B:对应比特位如果不相同,则结果1,否则是0。

(6)三目运算符 (?:) 格式为:条件式?值1:值2

(6)赋值运算符

其中几个特殊的符号,如下:

“a|=10”等价于a=a|10,把a|10的值赋给变量a,a的值为9。

(7) 对象运算符 其结果值是boolean型。

如:A instanceof B:如果A是B的对象,则返回true,否则,返回false。

System.out.println(“abc”instanceof String);的结果是true.因为abc是String类的对象。

七:java基本结构

1, java程序由多个源文件(*.java)组成。

2, 每个源文件(*.java)由一个或多个类组成,一个项目程序必须有一个主函数,主函数

就是程序的入口。阅读源程序首先要找到主函数,根据主函数中的代码分析各个类和接口,从而实现阅读、分析所有的源代码。

3, Java程序的编写组成就是在写类、接口,

4,一个java基本类结构如下:

类的修饰符 class 类名

以上属性、方法、构造函数,根据程序的实际需要编写,并不一定都要写。

5,一个可以实现一定功能的java程序结构如下: [属性(变量)] [方法] [构造函数]

类的修饰符 class 类名

[属性(变量)] [方法] [构造函数] 主函数

主函数执行语句。

6,一个最简单的类:空类

Class 类名{}

空类,就是定义了一个类,类体为空,什么也干不了,在有些编译平台上是不允许的,编译是会出错。空类目的是先定义相关的类,等以后在具体实现其功能。

可以将多个类写到一个源文件中,也可以一个类写成一个源文件。作用是一样的。一般别写程序时,根据程序的功能划分,都是将一个类写成一个源文件。除非某个类是专门只为一个类服务的,才在一个源文件中写多个类。但是一般为了便于程序的维护,多采取一个类一个源文件的做法。

7,类的继承

子类继承父类的所有方法和属性,并且能够扩展属性和方法,子类比父类能实现更多的功能。 8,接口

<1>定义

(1)Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

(2) 接口定义的一般形式为:

[访问控制符]interface <接口名> {

类型标识符final 符号常量名n = 常数;

返回值类型 方法名([参数列表]);

}

<2>特点

1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔)

2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化

3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法

4、接口中没有构造方法,不能被实例化

5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口

6、Java接口必须通过类来实现它的抽象方法

7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类

8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例

9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.

<3>接口的用法

1、精简程序结构,免除重复定义

比如,有两个及上的的类拥有相同的方法,但是实现功能不一样,就可以定义一个接口,将这个方法提炼出来,在需要使用该方法的类中去实现,就免除了多个类定义系统方法的麻烦。

2、拓展程序功能,应对需求变化。

八:java包的使用

包是Java语言提供的一种区别类名字命名空间的机制,它是类的一种文件组织和管理方式、是一组功能相似或相关的类或接口的集合。Java package提供了访问权限和命名的管理机制,它是Java中很基础却又非常重要的一个概念。

<一>、包的作用

1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

2 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

3 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

<二>、包的定义

在一个.java文件中可以一个public类和多个非public类,如果要将这些类组织在一个包当中,则在.java文件中除注释以外的第一行使用关键字package即可实现。当需要调用此包中的类时,就可以使用关键字import进行导入。在定义包的时候,应该注意几点: 1 为了尽量使包名保持唯一性,包名通常采用小写、按倒写互联网址的形式进行定义。如:com.hank.www表示包文件放置的文件路径为com/hank/www。

2 在进行命名包时,应该避免使用与系统发生冲突的名字,如java.lang、java.swing等。 <三>、java包创建和使用步骤

步骤1在C盘根目录下创建java文件夹,其下放置有源文件HelloWorld.java和

MyTest.java。编写包源文件代码HelloWorld.java和测试源文件代码MyTest.java。如下: //HelloWorld.java

package com.hank.www;

public class HelloWorld

{

public HelloWorld(){System.out.println("Hello,World !");}

public void display(){System.out.println("Welcome to the java programming world !");}

}

//MyTest.java

import com.hank.www.HelloWorld;

public class MyTest

{

public static void main(String[] args)

{

HelloWorld hw=new HelloWorld();

hw.display();

}

}

步骤2在c:/java文件夹下创建目录文件夹以存储包,路径为:c:/java/com/hank/www,此例中将HelloWorld.class存放在c:/java/com/hank/www文件夹下。

步骤3 编译源文件HelloWorld.java,首先应该进入源文件夹,即为cd c:/java->javac –d c:/java HelloWorld.java,产生的HelloWorld.class便存放在c:/java/com/hank/www文件夹下。

步骤4 编译测试文件MyTest.java,即为javac MyTest.java,运行java MyTest即实现了包的创建和导入。

[注]:在使用命令javac –d <directionary>之前,必须在c:/java中先创建好包路径c:/java/com/hank/www,因为该命令不会自动创建文件夹。

 

第二篇:写这个java学习总结

Java学习总结

JAVA一直是很多人喜爱的一种编程语言,学习JAVA需要多看SUN公司提供我们的资料信息,了解常用类的属性和方法。我们在用常用类的时候,经常会把类里面的方法和自定义的方法搞混。记得有一位老师说过“学习要抱有一种钻研的态度”。我对这句话的理解是当我们学习到一个新的知识点的时候,需要不断理解和消化。这可能是一个长期的过程,不能抱有一种急于求成的态度。以下内容是这个学期以来我总结的java基础知识点。

一、SDK和JDK的区别 SDK是软件开发工具包,JDK是SDK的一种,其实它是JAVA SDK。JDK在早期的版本中也是叫SDK,在1.2版本以后才叫JDK。

二、J2EE、J2SE、J2ME区别

J2EE:JAVA2平台的企业版,主要应用于WEB和大型企业的开发。

J2SE:JAVA2平台的标准版,学习和一般的开发。它包含于J2EE。

J2ME:JAVA2平台的微缩版,主要应用于电子设备(手机)方面,它包含有J2SE的核心部分之外,还有一个专业的类。

三、JVM的运行机制类加载→类校验→类执行

四、JAVA、JAVAC、JAVADOC的用法

JAVA:JAVA解释器用于执行JAVA字节码。它所执行的是一个类并不是一个文件,所以后面类的名字区分大小写。

JAVAC:JAVAC解释器用于将JAVA源代码编译字节码。

JAVADOC:JAVADOC用于从程序源代码中抽取类、方法等注释形成一个和源代码配套的API文档。它执行的也是一个以.JAVA为扩展名的源文件,所以后面的文件名不区分大小写。

五、JAVA标识符

1、标识符由数字、字母下划线“_”或“$”符号组成。

2、标识符必须以字母、下划线“_”或“$”符号开头。

3、不能使用JAVA关键字。

4、字母区分大小写

六、数据类型

1 原始数据类型

2 数值类型

l BYTE

l 整型:SHORT、INT、INT

l 浮点:FLOAT、DOUBLE

2 BOOLEAN类型

1 引用数据类型

2 数组

2 类

2 接口

七、变量

变量可分为类变量、局部变量、方法变量。

类变量在定义时就有默认值,数值类型的默认为0,CAHR的默认a,BOOLEAN默认FALSE。

方法变量中没有默认值,需要赋值才能使用。

八、类和对象的区别

类是对象的模板,对象是类的特例

类是抽象的,客观上并不存在的

对象是具体的,是客观存的

九、类的构造方法

构造方法具有和类相同的名字,它是一个没有返回值的方法。有隐式构造方法和自定义构造方法两种。JVM在没有自定义造构方法时提供一个没有参数也没有方法主体的默认构造方法。但是如果有自定义的构造方法时,JVM不再提供默认的构造方法。如果在类的实例化是需要用默认构造方法时,必须显示的定义。

十、方法的重载

可以对构造方法或者自定义的方法进行重载,对方法的重载必须满足以下三个条件:

1、参数个数不同

2、参数类型不同

3、参数顺序不同

十一、面向对象的特性

1、封装

2、继承

3、多态

十二、继承的特性

继承允许重用现有的类来构造新类的机制。在继承中具有如下特性:

1、默认继承Object

2、单继承,只能有一个父类

3、子类继承父类除private以外的全部成员和方法。

十三、方法的重写

构成方法重写的条件:

1、两个继承关系的类里

2、方法名、返回值、参数必须一致。

十四、静态(变量、方法、块)

静态类型的变量或方法都是属于类的,并不是属某个具体对象的。所以也称类变量和类方 法,所有对象共享一份类变量。定义类变量或类方法的关键字是static。静态块是在类第一次 加载时执行。它的作用是初始化类变量成员。 十五、抽象类

抽象类是具体抽象方法的、不可以实例化对象的类。构成抽象类的条件: a) 具有一个以上的抽象方法。

b) 继承一个抽象类,但没有实现全部的抽象方法。

c) 继承一个接口,没有实现全部的抽象方法。

十六、异常

Error:内部错误,不期望用户捕获的一种错误。

try语句:try句子里面主要是放置要监控的程序句子

catch:以合理的方式捕获和处理异常,主有try语句出错才会执行。 finally:释放资源,不管try里面的语句是否出错都要执行。

throw:手动引发异常

throws:由方法引发的异常

多层捕获:异常子类一定要位于异常父类之前。最后一个catch块要用Exception捕获,以便捕获到所有异常。执行其中一条catch语句之后,其它的catch将被忽略。

以上的内容不包括JAVA界面方面的知识,JAVA界面的开发需要用JBUILDER和一些专用的类,这些类在SUN公司帮助里都可以查到详细的说明。总的来说,经过以上几点的理解会更加深刻了,对以前看书感到迷惑的知识点现在可以帮助消化吸收。

java语言产生于C++语言之后,是完全的面向对象的编程语言,充分吸取了C++语言的优点,采用了程序员所熟悉的C和C++语言的许多语法,同时又去掉了C语言中指针、内存申请和释放等影响程序健壮性的部分,可以说java语言是站在C++语言这个"巨人的肩膀上"前进的。

java采用的是相对简单的面向对象技术,去掉了运算符重载、多继承的复杂概念,而采用了单一继承、类强制转换、多线程、引用(非指针)等方式。

在java程序中不能采用地址计算的方法通过指针访问内存单元,大大减少了错误发生的可能性;而且java的数组并非用指针实现,这样就可以在检查中避免数组越界的发生。无用内存自动回收机制也增加了java的鲁棒性。

JAVA执行过程 :

1.java程序的编辑可以使用任何一种文本编辑器,例如UltraEdit、Notepad、Wordpad甚至word,然后只要把编辑好的文件存成.java文件。当然也可以用一些集成开发环境,例如Borland公司的JBuilder,IBM公司的Visualage for Java,此外还有cafe、kawa等其它集成开发环境。下面两幅图分别是用UltraEdit和JBuilder编辑Property.java文件的情况。

2.Sun公司为全世界的java程序员提供了一个免费的java程序开发包(Java Develop Kit,简称JDK),其中包括了java编译器命令"javac",以及java执行命令"java",还有帮助文档生成器命令"javadoc"等等。所有这些命令都可以在命令行下运行,例如我们要编译上述java文件Property.java,如果是在windows中进行开发,就可以在"命令提示符"下进行编译,在命令行中敲入"javac Property.java"

3.当编译结束以后,在java源文件中的每一个类都会生成相应的 .class 文件,例如上图中就会生成一个Property.class文件,而java程序在执行时调用的是.class 文件。Java application的执行是在命令行下进行的,如果是在windows系统中,就可以"命令提示符"下敲入"java Propery"进行执行,该"java"命令会启动java虚拟机,并读入Property.class文件进行执行。

J2SE的知识和技巧

1. 只有创建了对象,它才能分配到内存,方法也才能用。作用是分配内存。

2. 方法equals(),比较对象的内容而不是reference.

3. 对于前置递增和前置递减,(也就是++a和——a),操作过程是会先计算再返回。

4. 对于后置递增和后置递减,(也就是a++和a——),操作步骤是先返回再计算。

5. 比较两个对象的实际内容,使用每一个类都有的equals()方法。

6. 如果你创建了自己的类,再使用equals()方法的缺省行为是比较reference.所以,在新类里覆写(override)equals()方法。

7. 将float或double转换成整数的时候,它总是将其后面的小数截去。

8. Math.random()会生成0.0,用数学术语,它的值域是[0,1)(方括号表示包括,而括号表示“不包括”)

9. 如果你写了一个没有构造函数的类,那么编译器会自动为你创建一个默认的构造函数。

10. 只要定义了构造函数(不管带不带参数),编译器就不会再自动合成默认的构造函数了。

11. 变量的初始化会先于任何方法,甚至是构造函数的调用。

12. 编译单元里只能有一个public类。没有public修饰,它是package权限了,只能用于package内部。

13. 取得当前工作目录,是文件系统中的java命令被调用的位置String curDir = System.getProperty("user.dir");

14. static成员只会在需要的时候初始化。第一次访问static成员的时候被初始化。

15. 每一个编译单元(文件)只能有一个public类,只能一个公开的接口。 根据需要文件里添加任意多个提供辅助功能的package权限的类。两个以上public类,编译器会报错。

Java语言学习的要点

1. 学习的目的是为了将来进行应用程序的开发,而不是进行语言理论研究

2. 将来的应用开发是在成熟的平台上展开,而不是自己从底层开发平台

一、掌握静态方法和属性

静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。Java中大量应用了静态方法和属性,这是一个通常的技巧。但是这种技巧在很多语言中不被频繁地使用。理解静态方法和属性对于理解类与对象的关系是十分有帮助的,在大量的Java规范中,静态方法和属性被频繁使用。因此学习者应该理解静态方法和属性。Java在方法和属性的调用上是一致的,区别只表现在声明的时候,这和c++是不同的。

二、重视接口

在面向对象早期的应用中大量使用了类继承。随着软件工程理论的不断发展,人们开始意识到了继承的众多缺点,开始努力用聚合代替继承。软件工程解决扩展性的重要原则就是抽象描述,直接使用的工具就是接口。接口近年来逐渐成为Java编程方法的核心。另一方面,就应用而言,大部分开发是建立在规范基础之上的,不需要自己建立复杂的继承关系和庞大的类。因此读懂规范和用好规范已经成为应用程序开发人员的首要任务,Java各项规范的主要描述手段就是接口。

三、学好集合框架

Java描述复杂数据结构的主要方式是集合框架。Java没有指针,而是通过强大的集合框架描述数组、对象数组等复杂的数据结构。学好这些数据结构的描述方法对于应用程序编写,特别是涉及到服务器方、3层结构编程至关重要。程序员在这个时候不能再用诸如数据库结果集之类的结构描述数据了。

由于很多语言没有这么强大的集合框架体系,很多初学者不知所措,更不知道拿来做什么用,因此应该引起足够的重视。

四、例外捕捉

Java对例外捕捉的强调是空前的,它强迫程序员用显著的与逻辑方法完全不同的

方式描述例外捕捉,对于程序描述的完整性和严谨性有很大的意义。c++也有类似的机制,但是我们看到很多c++程序员并不习惯使用这些机制。

Java的初学者应该充分学习好这种例外捕捉机制,养成良好的编程习惯。

五、多线程需要理解机理

很多Java程序员热衷于多线程程序编写,认为是对逻辑能力的挑战。其实在大量应用中根本就不需要编写多线程程序,或者说大多数编写应用程序的程序员不会去写多线程程序。这是因为多线程机制都内置到基础平台当中了。

程序员应该了解的是多线程原理和多线程安全,这对于今后准确地把握程序是至关重要的。

例如JSP中编写到不同的位置对于多个用户环境的安全影响完全不同,又如著名的Super Servlet是每一个访问作为一个进程,但是每一个页面是一个线程,和Servlet正好相反,对程序的性能和安全的影响有天壤之别。

六、了解java网络编程

Java号称是最强的网络编程语言,但是大多数应用程序开发人员是从来不会自己开发什么底层的网络程序的。

需要做只是了解原理就够了。网络机制的实现是靠平台实现的,除非自己开发平台,否则是不需要知道socket怎么实现,怎么监听访问的。因此在这方面花太多的功夫就偏离了“将来的应用开发是在成熟的平台上展开,而不是自己从底层开发平台”这一假设

1.欲速则不达,初学者请不要被新技术迷惑,先把基础学扎实。 JAVA2入门教材完全是适合初学者的,配合有视频讲解,大家可以免费索取,并不是它说了多少知识,多少api.它只说了更多的“基础知识”

2.要扎扎实实,一步一个脚印的逐步学习,不要想着一步登天。给自己定一个学习流程,按照流程学习。不要看到大家都在学J2EE了,就去学J2EE发现大家又在讨论JSP,又放下J2EE去学JSP.浮躁的人永远学不到什么东西。

3.多查API,它是Java编程的基本方法,也是编程过程中所不断利用的资源。Java的学习过程不仅仅是基本语法的学习,更多的是去学习和掌握它所提供的API类库。对于所接触到的类,方法,都去仔细去阅读文档的说明,再用自己编写的实例去此时一下。

4.看再多的书是学不全脚本的,要多实践 ,学习脚本最好的方法之一就是多练习; 不要只看不练,一定要把书上的例子亲手敲到电脑上实践,千万不要照抄,更不要复制粘贴; 看得懂代码,不代表会写代码。学编程语言不仅仅是从理论上的学习,更重要的是要利用这门语言为你的思想服务。理解这门语言是首要的,但是要达到心领神会、融会贯通就必须勤动手,多去时间,多编一些例子。计算机科学是注重实践的学科,成功的软件开发人员无不经过大量的上机锻炼,只有理论和实践相结合才能真正掌握只是和技能。

5.看得懂的书,请仔细看;看不懂的书,请硬着头皮看; 书读百遍,其义自现。第一遍书看不懂就看第二遍、第三遍。

6.遇到问题,先自己想办法解决,查查文档,不要什么都不看就发帖子问。举个例子:关于JDK的环境变量的配置,在百度、Google搜一搜一堆的答案,可是就是这几天还有人在论坛里问JDK环境变量的配置。考试大很怀疑这个人有没有在网上搜一搜,既然有时间提问,难道就没想到自己找找答案?!自己在网上搜应该比等答案快的多。

相关推荐