J2SE总结.docx
- 文档编号:9907680
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:27
- 大小:29.67KB
J2SE总结.docx
《J2SE总结.docx》由会员分享,可在线阅读,更多相关《J2SE总结.docx(27页珍藏版)》请在冰豆网上搜索。
J2SE总结
J2SE总结
1、基础部分
JDK(JavaDevelopmentKit):
JDK又叫做J2SE(Java2SDKStandardEdition),可以从Sun的Java网站上下载到,。
JDK的最重要命令行工具:
java:
启动JVM执行class
javac:
编译器
jar:
打包工具
javadoc:
文档生成器
环境变量:
PATHc:
\jdk1.6\bin
CLASSPATH.;c:
\jdk1.6\lin
1)、基本数据类型:
基本数据类型primitive和引用数据类型(复杂数据类型)reference:
数据类型所占位数数的范围
char160~65535
byte8-27~27-1
short16-2^15~2^15-1
int32-2^31~2^31-1
long64-2^63~2^63-1
float323.4e-038~3.4e+038
double641.7e-308~1.7e+308
声明类型变量如:
inta=0;或是inta;float和long声明时,变量后要用数据类型的第一个字母结束,如:
longa=10000L;或是floata=2.252F;
强制转换:
byteb;
bnta=20;
b=(byte)i;将int型强制转换成byte型。
Java语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。
<保留字>
具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字。
Java中变量的缺省初值都是确定的:
布尔变量的初值为:
false
整数变量的初值为:
0
浮点数变量的初值为:
0.0
引用(复合)变量的初值为:
null
<关键字>
具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reservedword)。
abstract
break
byte
boolean
catch
case
class
char
continue
default
double
do
else
extends
false
final
float
for
finally
if
import
implements
int
interface
instanceof
long
length
native
new
null
package
private
protected
public
final
return
switch
synchronized
short
static
super
try
true
this
throw
throws
transient
void
while
<变量作用域>
作用域(Scope):
决定了变量可使用的范围;
全局变量(Globalvariables):
变量可以在整个类中被访问;
局部变量(Localvariables):
变量只能在定义其的代码段中被访问。
作用域规则:
在一个代码段中定义的变量只能在该代码段或者该代码段的子代码段中可见。
注:
使用局部变量比使用全局变量更安全。
2)、基本语句:
流程控制语句if、switch;循环语句for、while、do...while;
Java中的条件语句格式如下:
if(condition)
statement;
如果圆括号中的条件成立,就执行statement语句指定的操作,条件不成立就接着执行statement之后的语句。
条件必须放在圆括号内。
if-else语句在条件表达式的值为false时执行else语句。
如果if表达式的值为true,那么else块的代码就不执行了。
if(condition)
{//条件成立时,执行的命令
Statement1;
Statement2;
......
}else
{//否则要执行的命令
Statement3;
Statement4
......
}
else部分是可选的,else总与离它最近的没有和其他else配对的if配对成组。
If语句可以单独出现,else语句不能单独出现。
switch语句的语法是:
switch(表达式)
{
case值1:
语句1;
break;
case值2:
语句2;
break;
default:
语句D;
}
switch语句是第一个不要求布尔计算的控制流语句。
switch根据语句中的表达式的值来传递控制给多个子语句中的一个。
switch将控制传给语句标志case后面的值与表达式的值相同的第一个语句,
否则switch将控制传给含有default标志的语句。
如果没有default标志,控制将被传给switch块后面的第一个语句。
switch经常使用break来结束switch的执行。
只要值与表达式匹配,程序就从这个点开始一直执行下去。
所以后面的语句全部会被执行。
break语句不是必须的,但不写尽管语法没错,可能会出现某些逻辑的错误。
switch表达式的值和case标记常量必须是整数类型的,可以是byte型、short型、char型或int型。
另外,在同一个switch块中不能有两个case标志使用相同的值。
If语句后可以是逻辑的值或值为逻辑的表达式,if语句可以嵌套使用,if语句后如果没有{}则该语句的有效范围为后面的第一个有效表达式,if可以与else或elseif搭配使用,if语句可以单独使用,但如果有else或elseif出现,一定有if存在。
Switch()括号中可以添入的数据类型有:
byte、short、int、char,switch中可以有多个case和一个default子句。
For语句的括号中至少有两个”;”,for中分成3个部分:
初始化、循环条件、增量。
While语句的括号中为循环条件,数据类型为布尔。
Do…while语句的括号中为循环条件,数据类型为布尔。
循环语句while(当型循环)
[initialization]//初始化条件
while(termination)//循环条件
{
body;//循环体
[iteration;]//迭代,变更循环条件
}
例:
intn=1,sum=0;
while(n<=10)
{
sum=sum+n;
n++;
}
循环语句do-while(直到型循环)
[initialization]//初始化条件
do
{
body;//循环体
[iteration;]//迭代,变更循环条件
}while(termination);//循环条件
例:
intn=1,sum=0;
do
{
sum+=n;
n++;
}while(n<=10);
循环语句for(另一种当型循环)
for(initialization;termination;iteration)
{
body;//循环体
}
例:
sum=0;
for(n=1;n<=10;n++)
{
sum+=n;
}
使用break语句终止循环的子语句块和switch语句。
break语句将控制传递给当前循环(while语句,do语句,for语句和switch语句)的下一行。
continue语句只出现在循环语句(while语句、do语句或for语句)的子语句块中。
使控制转移到循环语句的条件判定部分。
return语句跳出方法,将控制传递给方法的调用者。
如果return语句位于没有void声明的方法中,
那么它需要返回一个与方法声明返回的类型相同的值。
循环结束语句:
break跳出循环,continue结束本次循环,return方法返回
3)、基本的运算符号:
描述
运算符
高优先级
.[]()
一元运算符
+-~!
++--
倍运算符
*/%
加减运算符
+-
移位运算符
<<>>>>>
关系运算符
<<=>=>
等于运算符
==!
=
按位或运算符
|
条件与运算符
&&
条件或运算符
||
条件运算符
?
:
赋值运算符
=
赋值运算符:
=,及其扩展赋值运算符如+=,―=,*=,/=等。
intn;
n+=2;//n=n+2
“/”:
当两个整数运算时,就是整数除法,若是两个浮点数运算,就是浮点数除法。
“%”:
取余运算。
例如7%3得到1,7%4得到3。
这种操作得到第一个整数被第二个整数整除后的余数。
这种方式得到的结果永远都不会大于所给定的除数。
“++”、“--”:
递增1或递减1,递增和递减操字符只能对变量操作,不能对数字操作。
Java中关系运算符有:
>,<,>=,<=,==,!
=
上述运算符计算出的结果只能是布尔型值true或false。
Java中逻辑运算符有:
!
,&&,||
上述运算符计算出的结果只能是布尔型值true或false。
位运算符:
按位与:
&按位或:
|按位异或:
^
结论:
按位与,只有false
(1)false
(1)为1。
结论:
按位或,只有true(0)true(0)为0。
结论:
按位异或,只有true(0)false
(1)或false
(1)true(0)为1。
在Java中有3个移位运算符,如下所示:
左移:
<<
带符号右移:
>>
无符号右移:
>>>
移位运算符将数中的所有位向左或向右移动。
运算符左面是要移位的操作数,而右面的操作数是要移动的位数。
例如:
17<<2
数字17将被向左移动两位。
左移和无符号右移用零来填补空位。
有符号右移使用符号位来填补空位。
<条件运算符>
条件运算符是唯一的一个三元运算符,它有三个表达式操作数(不是典型的两个操作数),使用下面的格式:
表达式1?
表达式2:
表达式3
在这个语句中,表达式1必须产生一个布尔值。
如果表达式1的值为true,那么表达式2被计算。
如果表达式值为false,那么表达式3被计算,并且整个表达式的值是有条件的。
三元操作符与典型的if语句部分相似。
<表达式>
表达式是由操作数和运算符按一定的语法形式组成的符号序列。
一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;
表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。
num1+num2
a*(b+c)+d
3.14
x<=(y+z)
x&&y||z
4)、注释方式有3种:
单行注释//;多行注释/*…*/;文档注释/**…*/。
//单行注释,简单的解释语句含义.
/*……*/多行注释,用来说明更多的内容,包括算法等.
/**Java文档注释,可以通过javadoc生
*成类和接口的HTML格式的帮助文档.
*这种注释有其特殊的格式(参见相关文档)
*/
5)、数组:
声明方式:
int[]array或intarray[];intarray[][]或int[][]array或int[]array[]或
int[]array[];中括号中不允许放入数组大小
定义方法:
静态方式intarray[]={1,2,3,4,5,6,7};定义与赋值不允许分开,即:
Intarray[];array={1,2,3,4,5,6,7};这样是错误的
动态方法:
intarray[]=newint[10];或intarray[];array=newint[10];
获取数组的长度:
一维数组array.length;二维数组array.length行数,array[index].length列数。
<一维数组的定义方式为:
>
typearrayName[];type[]arrayName;
其中类型(type)可以为Java中任意的数据类型,包括简单类型和组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量。
例如:
intintArray[];int[]intArray;声明了一个整型数组,数组中的每个元素为整型数据
<静态初始化:
>
在定义数组的同时对数组元素进行初始化。
例如:
intintArray[]={1,2,3,4};//定义一个4个元素的int数组
<动态初始化:
>
使用运算符new为数组分配空间,对于简单类型的数组,其格式如下:
typearrayName[]=newtype[arraySize];
type[]arrayName=newtype[arraySize];
用new关键字为一个数组分配内存空间后,系统将为每个数组元素都赋予一个初值,这个初值取决于数组的类型。
所有数值型数组元素的初值为0,字符型数组元素的初值为一个不可见的ISO控制符('\u0000'),布尔型数组元素的初值为false,字符串数组和所有其他对象数组在创建时元素的初值为null。
当定义了一个数组,并用运算符new为它分配了内存空间后,就可以引用数组中的每一个元素了。
元素的引用方式为:
arrayName[index]
index为数组下标,可以是整型常数或表达式,如:
arrayName[1],arrayName[i],arrayName[6*i]等。
下标是0序的,即从0开始,一直到数组长度减1。
数组一旦创建之后,就不能再改变其长度。
每个数组都有一个属性length指明它的长度。
例如:
intArray.length指明数组intArray的长度。
<多维数组:
>
在Java中并不直接支持多维数组,所以,多维数组的声明是通过对一维数组的嵌套式声明来实现的,即用“数组的数组”来声明多维数组。
<二维数组声明的格式为:
>
typearrayName[][];
例如:
type[][]arrayName;
与一维数组一样,同样要使用运算符new来分配内存,然后才可以访问每个元素。
在使用运算符new来分配内存时,对于多维数组至少要给出最高维的大小。
二维数组的初始化也分为静态和动态两种:
<静态初始化:
>
在定义数组的同时为数组分配空间。
intintArray[][]={{1,2},{2,3},{3,4}};
不必指出数组每一维的大小,系统会根据初始化时给出的初始值的个数自动算出数组每一维的大小。
<动态初始化:
>
对高维数组来说,分配内存空间有下面两种方法:
1)直接为每一维分配空间,如:
typearrayName[][]=new
type[arraylength1][arraylength2]
例如:
inta[][]=newint[2][3];
<多维数组>
对二维数组中每个元素,引用方式为:
arrayName[index1][index2]
其中index1和index2为数组下标,为整型常数和表达式,都是0序的,从0开始到长度减1。
注意:
1)数组是用来表达一组同类型数据的数据结构的。
2)在Java中数组是定长的,数组的大小不会动态变化。
3)数组变量的值是数组对象实例的引用.是内存中的地址,所以不能通过数组对象的名字来直接输出所有数组元素。
2、数据库编程:
Sql语句:
创建表create,删除表drop,插入数据insert,查询数据select,更新数据update,删除数据delete,操作条件where;
ODBC微软出的一个数据库操作通用接口,ODBC对用户开放统一接口,对数据库用相应的驱动;
JDBC 用java写的操作接口
ODBC和JDBC只是用于帮助用户与数据库通讯、操作的工具,是不数据库;
3、基础其他部分
1)、数制:
二进制、八进制、十六进制、原码、补码、反码、移码
2)、常见的字符集:
ASCII字符集:
7位(bits)表示一个字符,共128字符。
特点:
它主要用于显示现代英语和其他西欧语言。
它是现今最通用的单字节编码系统,并等同于国际标准ISO646
ISO-8859-1字符集:
是国际标准化组织内ISO/IEC8859的第一个8位字符集。
GB2312字符集:
GB2312是中国国家标准的简体中文字符集。
它所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要。
在中国大陆和新加坡获广泛使用。
BIG5字符集:
Big5码的产生,是因为当时台湾不同厂商各自推出不同的编码,如倚天码、IBMPS55、王安码等,彼此不能兼容;另一方面,台湾政府当时尚未推出官方的汉字编码,而中国大陆的GB2312编码亦未有收录繁体中文字。
Unicode字符集:
支持现今世界各种不同语言的书面文本的交换、处理及显示。
3)、Java分类:
J2EE(企业级应用程序)、J2SE(桌面应用程序,java标准类库)、J2ME(嵌入试程序开发,如:
手机应用程序,MIDlet应用程序开发)。
JDK(JavaDevelopmentKit)是整个Java的核心,包括了Java运行环境JRE(JavaRuntimeEnvironment),一些Java工具和Java基础的类库(rt.jar)。
Java开发dos命令:
javac编译、java运行、javadoc文档生成,javap反编译
Eclipse:
免费的java开发工具,运行必须有jre的支持
标识符(方法名,变量名,类名…):
标示符正确的命名方式
关键字(保留字):
int,void,for,while,do,private…
4、面向对象
方法的定义:
[方法修饰字] 返回类型 方法名(参数列表) [异常修饰字][异常类型列表]
class(类)
【修饰字】class类名【extends父类】【implements接口列表】
{
}
要求:
类名第一个单词首字母大写
method(方法定义)
【修饰字】返回类型方法名称(参数列表)
{
return<数据>;
}
要求:
方法名称第二个单词首字母大写
construct构造方法(函数)
【修饰字】类名(参数列表)
{
}
构造方法的名字与类名相同,构造方法没有返回类型和返回值,构造方法只能用new使用(即获取对象)。
如果类中没有构造方法则系统会添加一个默认的,无参数,无方法体的空构造方法。
overload(方法重载)
方法名相同,参数列表不同的一组方法。
(参数列表不同指参数个数或参数类型或参数顺序)。
static静态的,表示该成员属于类的,叫静态成员、类成员,使用的时候,<用类名>.
方法覆盖
子类将父类方法重新实现叫方法覆盖(与父类的返回类型,方法名,参数列表相同)。
方法覆盖后不能将父类方法的访问控制级别降低,不可以增加而外的异常类型(后面讲解)。
extends(继承)
AextendsB
{
}
A子类,B父类、基类、超类。
继承只能是单继承(只能有一个父类)。
如果一个类没有直接显性的父类,则该类直接继承与Object类(默认)。
多态
用父类的功能,用子类的行为完成。
实现方式:
方法覆盖,方法重写。
多态的好处:
1、对外公开同一个类型,方法的实现使用子类来完成
2、隐藏了子类的实现方式
Static:
类成员:
用该类直接调用(引用)
类的修饰符
1、public公共的,所有类都可以使用(相同包或不同包)
2、default默认的,同一个包内的其他类可以使用
3、abstract抽象的,抽象类
4、final最终的,最终类,不可以被继承
访问控制修饰符
自己同一包不同包子类所有类
private★
(default)★★
protected★★★
public★★★★
1、private私有的,只能在自己的类内可以使用。
2、default默认的,自己可以使用,同一个包能的其他类可以使用。
3、protected受保护的,自己可以使用,同一个包能的其他类可以使用,不同包的子类可以使用。
4、public公共的,所有类可以使用。
final用法:
1、final修饰变量,该变量为常量,常量附值有两种方法:
1、直接附值;2、在构造方法里附值
2、final修饰方法,该方法不能被覆盖(重写),
3、final修饰类,该类不能被继承
扩展:
1、继承后,子类覆盖父类的方法时,不能将该方法的访问权限缩小
2、所有类的父类(直接或间接)都是Object
3、java.lang.*包为默认加载包
this的用法:
用于引用自己的成员this.<成员>(当局部变量与成员变量发生名字冲突的时候)。
调用其他的构造方法this(...)(必须放在构造方法中的第一行)。
super的使用:
用于引用父类可以访问的成员super.<成员>(当子类成员与父类成员成员发生名字冲突的时候)。
调用父类的构造方法super(...)(必须放在子类构造方法中的第一行)。
abstract(抽象的)
修饰类:
抽象类,该类只能被继承,不能直接实例化
修饰方法:
该方法只能声明不能实现(不能有大括号);该方法所在的类必须是抽象类或接口;该方法必须被子类实现,如子类没有实现则该类也必须是抽象类。
interface(接口)
是类似类的一种结构
接口中所有的方法是publicabstract
接口中所有的变量都是publiestaticfinal
接口可以继承多个接口,使用extends关键字
接口只能被其他类实现,使用implements关键字
接口的实现:
1、普通类实现接口(或叫继承接口),使用implements关键字
2、普通类实现接口后要实现直接接口或间接接口内所有定义的方法
3、如果实现接口的类没有实现接口内的某个方法,该类必须为抽象类
4、类可以实现多个接口,用“,”号分隔,即implements接口A,接口B
Package
打包,必须放在类的有效代码的最上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2SE 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)