当前位置:文档之家› java基础知识点

java基础知识点

java基础知识点
java基础知识点

第一天课程(2012-7-10)

JAVA常用的名词

JVM java 虚拟机

Application 应用程序必须有一个入口的方法叫做public static void main(String[] args){}

Applet 小应用程序该程序必须要内嵌在一个容器中运行,它有自己的生命周期

https://www.doczj.com/doc/83173506.html,

重点:JAVA的开发环境

JDK: java 开发工具集

JDK版本问题1.4不支持泛型 5.0 泛型6.0 枚举

默认安装路径C:\Program Files\Java\

JRE: JAVA运行时环境

环境变量的配置

(1)Path:window寻找可执行应用程序的一个查找路径不同的路径之间使用;来分隔

配置一个路径C:\Program Files\Java\jdk1.6.0_26\bin

(2)CLASSPATH 告诉系统到那些目录下面去查找对应的要执行的文件

.;D:\3020\j2se\cx\chapter1

.表示当前目录

预习作业:

常用的DOS命令

切换目录查询文件拷贝文件重命名移动文件

*表示通配符*.java *.*

常用java命令

Javac 编译命令主要将以.java结尾的Java文件编译生成以.Class结尾的二进制字节码文件。Javac java文件名.java

Java 运行命令java 类名

Javadoc 生成帮助文档命令javadoc java文件

面向对象的基本概念

类(属性方法构造方法)

对象对象创建传递销毁

面向对象的三大基本特性:封装、继承、多态OOP AOP

是由客观事物经过大脑抽象而形成概念,是对一类事物的描述

使用class 关键字来描述类

类中有属性和方法:

属性对应的是事物的静态特性(可以叫做成员变量)

方法对应的是事物的动态特性

对象:是类的一个具体的实例化

创建对象对象的方法:

类名对象名= new 类名(); 调用类的构造方法来创建对象

构造方法是特殊的方法:方法名=类名

注意:类中属性和方法必须在创建对象之后才能使用

对象.属性对象.方法.表示引用

第二天课程(2012-7-11)

JAVA语言描述

类的声明

语法格式:

[< modifiers>] class < class_name> {

[]

[]

[]

}

修饰词class 类名{

属性定义部分<可选>

构造方法<可选>

普通方法<可选>

}

用于修饰class的关键字有两种:(1) public 公共的(2)缺省不写表示当前类只能在同一个包中使用

注意点:(1)一个java文件中最多只能有一个类被public 修饰,并且要求使用public修饰这个类的类名来作为该java文件的文件名。

(2)要求将来大家写代码的时候一个java文件一个类,并且该类用public修饰,类名

与文件名相同

类名//规范一:类名要求首字母大写使用名词性词组(不能使用关键字)

//要求编写代码统一对齐,要求整个java类中采用统一的缩进方式(2,4)

声明属性:

[< modifiers>] type < attr_name> [=defaultValue] ;

修饰词数据类型属性名称[=默认初值];

属性的修饰词四种: public 公共的private 私有的default(默认) protected受保护的

数据类型主要分成两大类:

基本数据类型: 整型

浮点型

布尔型

字符型

引用数据类型:

属性名称命名规范:要求首字母小写,从第二单词开始的首字母大写一般使用名词性词组

方法的声明:

[< modifiers>] ([< argu_list>]) {

[< statements>]

Return ;

}

修饰词返回值类型方法名称(参数列表…){

语句块;

}

方法的修饰词四种: public 公共的private 私有的default(默认) protected受保护的

返回值类型主要分成两大类:

基本数据类型: 整型

浮点型

布尔型

字符型

引用数据类型:

注意: (1) 如果没有返回值的话则使用void来声明

(2) 方法的返回值只有一个

方法名称命名规范:要求首字母小写,从第二单词开始的首字母大写一般使动词性词组注: 在一个java类中允许出现多个同名的方法,但要求形参列表必须不一致(指的是参数的个数或参数的类型不一致)

形参列表: 数据类型1 参数名称1, 数据类型2 参数名称2, 数据类型3 参数名称3,…

备注:JDK1.5之后java语言支持可变参数列表

重点:

构造方法: 是一类特殊的方法

功能:创建其所属类型的一个新的对象。

[< modifiers>] ([< argu_list>]) {

[< statements>]

}

修饰词类名(形参列表){

语句块;

}

特殊点: (1)构造方法可以用于创建对象,可以直接使用,不需要通过对象来调用。

(2)在构造方法中需要完成对属性的初始化赋值。

(3)在一个类允许出现多个构造方法

(4)每个类必须至少拥有一个构造方法

该规则由JVM来保证:

如果你编写的类没有写构造方法的话,则在该java文件编译的时候由编译器自动的为该类添加一个空的方法体的构造方法

如果你编写的类自带了构造方法的话,则在编译的时候,编译器不会再为你添加任何的构造方法

实战开发建议: (1)当前类中如果没有构造方法的话,你就不要管了,如果写了构造方法的话,则要求把空的方法体的构造方法手动加上。

(2) 类体中书写规范

属性

构造方法

关于属性的操作方法放在前面

普通

信息的封装和隐藏

使用private 关键来修饰属性或方法以达到隐藏属性或方法的目的;

注:private修饰的属性和方法只能在当前类中使用,其他所有的类都不能访问

实际开发过程中类的属性要求全部使用private来修饰,同时必须要暴露一组public公共的方法来进行操作

封装暴露一组public公共的方法对本类的私有属性进行操作的过程。

作业: (1) 第2章PPT中的练习

(3)在昨天编写的类的基础上,使用封装和隐藏去进一步完善

第三天课程(2012-7-12)

Java 基础语法

注释: 三种// /**/ /** */

标识符: 关键字不能做标识符

由字母、数字、_、$ 组成,不能以数字开头

$开头的一般表示为内嵌也可以表示成临时

数据类型:

基本类型

整型:byte 8 short 16 int 32 long 64 默认int

浮点型: float 32 double 64 默认double float f = 3.14f;

字符型: char

关于字符的概念

字符编码:ASCII编码Unicode编码

字符集:采用相同编码形式存放的字符的集合。

常用的字符集:中文GB2312GBK GB18030

拉丁italic

Utf-8字符集

ISO-8859-1

常用转义字符:\n 换行\r回车\t tab键\\ \”\’

布尔型: Boolean 两种值true false

引用类型

作业: (1)引用类型的用法例子,去测试一把

(2) 将值传递的例子测试

(3) 标准输入/输出自己完成

对象构造和初始化

注:类中的成员变量初始化由三步:

(1)根据数据类型进行默认值的初始化要求掌握8种基本类及引用类型的默认值(2)根据default后的值来赋值,如果类的属性没有default值的话,则跳过该步骤(3)根据构造方法来赋值,如果没有构造方法的话,则跳过

方法:

类的动态属性

类中方法存放在JVM内部的全局代码区

注:(1)方法通常通过对象来调用,调用时必须注意实参列表与形参列表的个数、顺序、类型都必须一致。

(2)每个方法最后都会有return语句。

<1>如果该方法定义了返回值类型,则在方法体中肯定有return 语句,不能缺省,并且return返回的数据类型与返回值类型必须一致。

<2> 用void修饰的不需要返回值类型的方法,在JVM编译的时候自动会添加return ;语句,所以不要自己写return 。

<3>特殊的构造方法,默认返回的就是本身的对象,所以也不需要写return语句,由jvm自动处理.

变量

局部变量: 写在方法或语句块内部的变量方法的形参作为局部变量来看待。

注: 要使用的话,必须要先声明和赋初值之后才能使用

形参除外,原因在形参在方法被调用时也会根据传递进来的实参进行默认的初始化赋值

成员变量: 也叫类的属性写在类的内部,在方法的外部的变量

只要声明后就可以使用,原因在于成员变量在对象创建的时候会根据数据类型进行自动默认初始化赋值。

变量的作用范围:解决重名问题的规则:就近原则

第四天课程(2012-7-13)

输入与输入

Scanner 类的用法了解

System.out.println() 用于向控制台输出任意类型的数据以后该语句只允许出现main() 方法中。在实际中主要用于调试

System.out.printf(“%10.2f”,) //了解

关键字this 重点

有四种用法

(1) 调用类的属性this.属性

在构造方法中使用,给类的属性赋值,解决命名冲突问题。

(2) 调用类的普通方法this.方法名()

(3)调用构造方法this(参数列表..)

注意: (1) this()该语句必须放在构造方法的第一条指令。

(2) 使用this()来调用构造方法的话,在本类中必须至少有一个不包含this调用的构造方法作为退出构造来使用

(4) 表示当前对象this ===

运算符:

Infinity 在java语言中表示无穷大-

NaN 表示not a number 不是一个数字

负数的二进制->负十进制的转换

(1)-1 (2)取反(3)转换为十进制(4)*-1

负十进制的转换- > 负数的二进制

(1)取绝对值(2)转为二进制(3)取反(4)+1

作业: 八种基本类型的数据之间的转换

第五天课程(2012-7-16)

分支语句

单路分支:if(条件){语句块}

双路分支:if(条件1){

语句块1

}else{

语句块2

}

多路分支:if (条件1){

语句块1

}else if (条件2)

语句块2

}else if(条件3){

语句块3

}else{

语句块4

}

Switch(){

Case :

Break;

Case :

}

题目:

(1)接收键盘输入的学生的成绩输出该成绩所属的等级

90~100 优秀80~90 良70~80 中等60~70及格<60 不及格

(2)接收键盘输入的三个数字,输出其中的最大值

要求求三个数的最大值要编写一个方法

(3)接收键盘输入的数字0星期日~ 6星期六输出对应的星期几

(4)接收键盘输入的年份,输出是否为闰年

要求专门编写一个方法来判断是否为闰年

(5)接收键盘输入的年份和月份,输出该月有多少天

循环语句

For(初始化部分; 循环条件部分; 迭代部分){

循环体部分;

}

素数: 除1和它本身之外,不能被其他任何数整除

备注: 一般情况下循环最多只能使用两层嵌套

重点:break; continue;

Break 标签名;

指的是跳出标签名所指向的那一层循环

题目:

(1)求1~10的积

(2)打印如下乘法口诀表

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

….

1*9=9 …. 9*9=81

(3) 输出200~300之间的素数,要求每8个一行(注:不允许使用continue 标签)

(4) 从键盘循环接收数据,求输入数据的和当接收到Y字符时退出退出时输出累计的和

(6)打印出一个指定层数的菱形

(6) 打印出一个指定层数的空心菱形(思考题)

第六天课程(2012-7-17)

作业:

编写程序,采用适当的循环和流控制语句实

现下述功能:打印输出0~200之间能被7整除

但不能被4整除的所有整数;要求每行显示6 个数据;

递归:

必须满足的两个条件:

1、递推公式

2、终止条件

正态分布

数组:

熟练一维数组的定义、创建、赋值、取值、遍历、修改

掌握二维数组

了解多维数组

数组中的每个元素相当于该对象的成员变量,也就意味着,数组创建的时候,每一个值首先会根据数据类型赋初值。

数组已经创建则长度固定,定长的,且存放数据的内存单元之间是连续的

练习:

打牌定义一个数组用于存放4种花色的52张牌,完成初始化,并且输出内容。Arrays.sort()方法要求掌握

第七天课程(2012-7-18)

包: 使用package 来描述一个包

声明包的语法规则:package 包名;

该指令必须是类的第一条指令

包名的命名规则:公司对应的域名.总的项目名称.模块名称.子模块名称.自己开发的模块名

注意:带包名的java 类必须要使用如下的格式去进行编译

Javac -d . java文件名-d表示要带包编译生成java类.表示在当前目录下生成包

结构

Java 包名.类名来运行该类

每个类都必须隶属一个包,并且对应一个根目录。

命名空间,一个类如果没有定义包的话,则编译后会放置到默认的命名空间中去defaultpackage

使用包的过程应该注意:

(1)如果导入的不同的包中有同名的类的话,使用的时候为了区分开来,则必须在类名前带上包名一起使用。

(2) 如果要导入一个包下的所有的类,可以使用*来描述。不用担心效率问题

(3) 缺省导入https://www.doczj.com/doc/83173506.html,ng 包

重点:继承extends

在其他人编写的类的基础之上进行利用和扩展

(1)其他人所编写的类中的属性和方法你可以通过继承的方法直接拿来就用

(2)在其他人开的功能的基础上添加属于你自己的新功能

用法:(1)代码重用.

Class A extends B

A : 子类, 派生类

B: 父类

Object类是所有Java类的最高层父类(超类) ,主要是由于该类通过方法来描述了类的定义和表示、以及对对象的管理(声明,克隆)

存在缺点:单继承, java语言为什么只能单继承

作业:

普通人(姓名,性别,年龄,居住地址,吃饭、睡觉、行走、)

教师( 教学年龄,教师资格,教学、备课)

学生( 所在班级,学号,上课、预习)

访问控制权限:见表格

方法的重写(覆盖)和重载

重写:发生在子类和父类之间,也就是说必须要要有继承关系才会有重写

子类去重写父类中同名的方法,以达到方法覆盖的目的。Override

规则:重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值

类型;

重写方法不能使用比被重写方法更严格的访问权限;

重写方法不允许声明抛出比被重写方法范围更大的异常类型。

重载:在同一个类中的同名的方法,只是参数列表不同overload

属性的重写有规则:属性名要求一致,但类型可以不一致

重载无

Super 关键字必须在子类中使用

用法:

(1)Super.方法()表示要调用父类中的方法

(2)Super.属性表示访问父类属性

(3)Super() 表示调用父类的构造方法必须要放在子类的构造方法中的第一句语句。

在子类对象创建之前父类对象必须要先被创建出来。

第八天课程(2012-7-19)

比较this和super

重点:多态

多态:多种状态

发生子类和父类之间,必须要在继承(或实现)的基础上才能产生多态。

多态的描述:

(1)子类对象可以替代父类对象来使用

子类是在父类的基础之上进行功能点扩充。

具体用法:

//定义变量的多态

Animal a = new Person();

//形参的多态

public void xs(Animal o){}

Person p = new Person();

Xs(p);

//返回值的多态

public Animal getA(){

Person p = new Person();

Return p;

}

虚方法的调用:指的编译时候认为是父类中的方法,而实际运行时是运行的子类中的方法。

造型:

//要进行转换

if(o!=null && o instanceof Person){ //instanceof 表示判断当前对象的真实类型Person person = (Person)o;//强制转换造型只能表示从子类强制转换成父类且必须在多态的情况下才能进行

person.display();//虚方法的调用//不能调用子类新增的属性和方法}

两个重要的关键字:static final

Static 静态的共享的

使用注意点: (1) 只能用于修饰类的属性、方法、语句块、内部类

(2)使用static来修饰属性或方法时,该关键字应放在修饰词与类型(或返回值之

间)

Public static String a;

Public static void a(){}

(3)加static 修饰的属性、方法、语句块、内部类表示整个类共享,

也就是说:在当前类装载(classlaod)的时候,这些属性或方法就已经创建出来

可以直接使用类名.来访问。

(4)Static修饰的静态方法中不允许调用非静态的属性(普通属性)和非静态的方法

(普通方法)。(构造方法除外)

普通属性和普通方法是必须要通过创建对象才能来调用的。

关于构造方法的说明:

(1)方法名为类名

(2)该方法可以带参数,这些用于给该类的属性赋值

(3)返回的是创建出来的对象,在该方法中不能写return语句。

(4)该方法前面可以使用的修饰词:public private

(5)Static、final都不允许用来修饰构造方法

(6)构造方法不允许继承

(7)如果使用private 来修饰构造方法,则构成单例设计

重点:单例设计:(1) 该类的构造方法私有

(3)该类中一定存在一个属于自身类型的属性该属性一定是static,根据封装特性,要

求使用private来修饰

(4)该类中一定存在一个公开的方法,并且是static 的,以便其他人可以直接使用类名.

该方法名的方式来调用,最终能获取到该类的对象。

(5)单例也就是单个实例

作业:

(1)编写一个符合单例设计模式的类Single

(2)使用Static 来实现一个能统计该类已经产生了多少个对象的方法

Final 关键字

final标记的类不能被继承。

final标记的方法不能被子类重写。

final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。

final标记的成员变量必须在声明的同时或在每个构造方法中显式赋值,然后才能使用。

final不允许用于修饰构造方法、抽象类以及抽象方法。

第九天课程(2012-7-20)

IDE集成开发工具的使用

(1)eclipse IBM免费贡献使用频率较高

(2)MyEclipse 收费在eclipse的基础上添加一些有用,比较常用的插件,以方便开

发人员开发推荐使用6.5

(3)NetBeans sun公司不免费

使用IDE过程:

(1)创建workspace 工作平台

(2)配置installed JRE

(3)新建JAVA工程

抽象类使用abstract来修饰的class.

抽象方法: 不包含方法体的方法,同时要使用关键字abstract来修饰。

包含抽象方法的类必须声明为抽象类。

抽象类的使用:

(1)抽象类不一定要包含抽象方法。

(2)抽象类中可以包含普通属性和普通方法

(3)抽象类不能被实例化。(不能创建对象)

(4)抽象只能通过其实现子类来起作用

(5)子类继承抽象的父类的话,必须实现其所有的抽象方法,否则,子类自身也必须声明为抽象类。

(6)abstract关键字不能和final,static关键字一起使用

(7)abstract不能修饰构造方法和属性

(8)abstract修饰的抽象类虽然不能被实例化,但是它有构造方法,该构造为子类对象的创建提供服务。

接口(interface) 标准实现不相关类的相同行为

USB接口PS-2接口RS232串口

是一种特殊的类,里面只包含抽象方法和全局常量。

接口不能被实例化,必须通过其实现类来起作用。

声明一个语法:修饰词interface 接口名{

}

多态特性的第二种用法:

实现类和接口之间也具有多态性,接口可以使用实现类的对象来替代。

实现implements

一个类去实现一个接口,也就意味着要实现接口中所有的抽象方法,否则该类必须声明为抽象类。

[< modifier>] class < name> [extends < superclass>]

[implements < interface> [,< interface>]* ] {declarations>*}

类、接口之间的关系:

(1) 类与类之间只能是继承关系,并且是单继承

(2) 类与接口之间只能是实现关系,并且可以支持多重实现

(3) 接口与接口之间只能是继承关系,并且支持多重继承

子接口对象可以替代父接口对象来使用。

多态的表现形式:

类的多态:

(1)子类可以替代父类使用具有继承关系的子类和父类之间的多态

(2)现实类可以替代接口使用实现类和接口之间的多态

属性的多态

属性的重写

方法的多态

方法的重载

常用的设计模式

实战过程中的运用:

(1)抽象类的用法:模板设计

假设有一个人类姓名性别年龄说话()

教师类

学生类

工人类

(2)接口用法

USB接口

第十天课程(2012-7-23)

(3)抽象和接口的混合使用

适配器设计模式

(4)接口作为标准的用法

工厂设计降低代码的耦合度

由于天气比较热,所以最好要有水果吃

让大家定义吃水果的接口

有一个吃的方法

然后编写苹果、西瓜、橘子三个实现类

编写一个测试类去吃苹果、西瓜、橘子

代理设计

假设你吃水果了没有付钱就走了,过了几天,我去找你要钱,结果你死不承认,你要赖账,我回来心里很不平衡,我找到讨债公司替我去要钱。讨债公司准备道具,买了手枪,硫酸,匕首, 你害怕了,之后就还钱,讨债公司替我要到了钱,最后销毁道具。

实际:

项目经理布置,你去查找一下这项目在那些环节会存在瓶颈问题。

动态代理

作业:

假设要在淘宝网站开店有一个仓库

买鞋子、衣服、裤子、手枪

abstract抽象和interface接口的总结

嵌套类

嵌套在某一个类内部的类。

内部类:要求掌握匿名类

内部类写在一个类的内部,其所有的语法规范和之前讲过的相同。

访问方式不同

实战过程中运用:

使用内部类来定义数据结构

使用指针结构来完成的链表

思考题: 在理解链表的基础上去完成双向链表

第十一天课程(2012-7-24)

异常处理

(1)了解异常的类型

(2)掌握捕捉异常的方法

(3)学会自己定义异常

异常(exception) 违例指的程序运行过程中发生的违例与编译无关

常见的异常

NullPointerException 空指针异常说明肯定有一个引用类型的变量没有被赋值而直接使用。

ArrayIndexOutOfBoundsException 数组下标越界异常说明访问的下表超过了数组的最大长度。

IndexOutOfBoundsException 下标越界

https://www.doczj.com/doc/83173506.html,ng.ArithmeticException 算术运算异常说明算术表达式中存在问题

自己捕捉异常的方法

Try{

可能出现异常的语句块;

}catch(异常的类型1){ //匹配类型

出现异常之后需要执行的代码;

}catch(异常类型2){

}finally{ //最终语句块

最后需要执行的语句块;

}

Try{

}catch(){

}

Try{}catch()()finally{}这是一个整体

注意点:

1、catch部分捕捉的是由系统抛出的异常对象

2、如果存在多个catch的时候,必须要把小范围的异常写在前面,大范围的异常捕捉在

3、Finally表示的是最终一定会执行的语句块,一般情况下不要缺省,实际开发过程中用

于关闭第三方资源。

4、Try{}catch(){}finally{}可以支持无限层次嵌套,备注:日常开发过程中不建议使用

5、Throws 异常的类型

6、打印输出异常的对象 e. printStackTrace()方法使用单独的线程去打印栈的轨迹

6、人工手动抛出异常

Throw 异常的对象

7、自定义异常类通过extend 系统预定义异常类来实现

Throw 自定义异常类的对象

UUID 唯一标识符(ID) 在java语言中用来标记唯一的一个类,将来的由这个类生成的对象如果需要在网络上进行传输的话,一定要求有唯一标记。

Assert 断言了解

作业:

把PPT上关于trycatch的用法的例子自己调试

栈的轨迹的打印

自定异常并捕捉异常处理

第十二天课程(2012-7-25)

常用的JAVA类

掌握Object 类toString equals clone wait notify

熟练掌握(1) 字符串、数字、日期三者之间的相互转换

(2) 国际化相关的类国家、语言、时区、时间

Object类

hashCode() 用于返回一个哈希码返回的是int 类实际过程中用于描述内存单元的地址需要十六进制 int => 十六进制 Integer.toHexString(int i) toString() 该方法以字符串的形式来描述一个类

equals() 该方法用于比较两个对象是否相等实际过程:比较两个对象是否相等, 对象排序问题在排序中使用了比较对象的规则,所以将来对对象进行排序要求同时改变比较规则,应该使两者的规则保持一致。

finalize() 该方法表示在对象销毁的时候必须要调用的方法该方法不是由你去调用的的,而是由垃圾回收线程来调用的。

clone() 克隆方法该方法用于复制一个对象注意点:如果本类要能进行克隆,必须要求该类去实现Cloneable接口

分类: 浅层克隆深层克隆

实战过程:比较基本数据类型使用== 对值进行比较

比较引用类型的话必须要使用equals()这个方法

Equals()方法使用要注意:如果存在常量字符串的话,必须要把常量字符串写在之前例如“常量字符串”.equals(对象名称)

Token 令牌技术

字符串相关的类

String 表示的是长度不可修改的字符串, 在进行字符串连接操作的时候最起码需要2的所有字符的空间才能完成操作, 因此在实战过程一般不使用+ 来进行大字符串连接。

用法备注: 使用String 来声明变量String str = 字符串不要使用String str = new String(字符串); 实战过程处理字符集编码问题的时候需要用到String的构造方法String类中的常用方法

concat() 字符串连接

replace() 字符串替换

substring() 字符串截取

toLowerCase() 转换为小写

toUpperCase() 转换为大写

trim() 首尾去空格

charAt() 获取指定下标位置的字符

startsWith() 判断是否以XXX开头、

indexOf()判断是否包含某个子字符串,返回该子字符串在原字符串中的首次出现的位置

lastIndexOf()判断是否包含某个子字符串,返回该子字符串在原字符串中的尾部出现的

length()获取字符串的长度

equals() 比较字符串是否相等

equalsIgnoreCase() 大小写不敏感的比较

compareTo() 比较两个字符串的大小int 1 表示前面字符串>字符串0 相等-1小于来表示

split() 按指定的分隔符将字符串转换为数组

StringBuffer在实战过程用来代替String 来完成大字符串连接的工作。主要用于XML 的拼装过程

可变长度的字符串。

append() 在尾部追加字符串

insert() 在指定位置插入字符串

reverse() 反转

setCharAt() 在指定位置插入一个字符

显著的特点: 线程安全的类处理速度要慢

StringBuilder 与StringBuffer用法完全一样

线程不安全的类处理速度要快一点

StringTokenizer 该类用于将字符串按照一定的分隔符转换为字符串数组

创建StringTokenizer对象的时候如果没有指定分隔符的话,默认为空格

实战过程该可以由String .split()来替代, 以“,”为分隔符

注意:split(符合正则表达规则的字符串)

封装类

针对java言语中的8中基本数据类型,在扩展功能的基础形成相对应的类

基本类型封装类

short -> Short

byte -> Byte

int -> Integer

long -> Long

boolean -> Boolean

char -> Character

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

java知识点总结

https://www.doczj.com/doc/83173506.html,ng.Object 类,是所有类的根父类! 2.Object类仅有一个空参的构造器public Object(){ } 3.关于方法: ①equals(Object obj) public boolean equals(Object obj) { return (this == obj); } // == // 1.基本数据类型:根据基本数据类型的值判断是否相等。相等返回true,反之返回false // 注:两端数据类型可以不同,在不同的情况下,也可以返回true。 // 2.引用数据类型:比较引用类型变量的地址值是否相等。 //equals(): >①只能处理引用类型变量②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等 >像String 包装类File类Date类这些重写Object类的equals()方法,比较是两个对象的 //"实体内容"是否完全相同。 >若我们自定义一个类,希望比较两个对象的属性值都相同的情况下返回true的话,就需要重写Object类的 equals(Object obj)方法 ②toString()方法

当我们输出一个对象的引用时,会调用toString()方法。 1.public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 当我们没有重写Object类的toString()方法时,打印的就是对象所在的类,以及对象实体在堆空间的位置 2.一般我们需要重写Object类的toString()方法,将此对象的各个属性值返回。 3.像String类、Date、File类、包装类都重写了toString()方法。 1. String类:不可变的字符序列(如:String str = "atguigu"; str += "javaEE") 1.关注于String常用的方法! 2.String类与基本数据类型、包装类;与字符数组、字节数组; * 1.字符串与基本数据类型、包装类之间转换 * ①字符串--->基本数据类型、包装类:调用相应的包装类的parseXxx(String str); * ①基本数据类型、包装类--->字符串:调用字符串的重载的valueOf()方法 *

java基础知识点总结

Created by AIwen on 2017/5/14. java是面向对象的程序设计语言;类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,java程序使用类的构造器来创建该类的对象。 java也支持面向对象的三大特征:封装、继承、和多态。java提供了private、protected、和public三个访问控制修饰符来实现良好的封装,提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的成员变量和和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承是实现类复用的重要手段。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性。 面向对象的程序设计过程中有两个重要的概念:类(Class)和对象(object,也被称为实例,instance)。类可以包含三种最常见的成员:构造器、成员变量、和方法。 构造器用于构造该类的实例,java语言通过new关键字类调用构造器,从而返回该类的实例。构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器,这个构造器总是没有参数的。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。 构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。静态初始化块代码用于初始化类,在类初始化阶段被执行。如果继承树里某一个类需要被初始化时,系统将会同时初始化该类的所有父类。 构造器修饰符:可以是public、protected、private其中之一,或者省略构造器名:构造器名必须和类名相同。 注意:构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或使用void声明构造器没有返回值,编译时不会出错,但java会把这个所谓的构造器当成方法来处理——它就不再是构造器。 实际上类的构造器是有返回值的,当使用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值。因此构造器的返回值类型总是当前类,无须定义返回值类型。不要在构造器里显式的使用return来返回当前类的对象,因为构造器的返回值是隐式的。 java类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 成员变量: 成员变量的修饰符:public、protected、private、static、final前三个只能出现一个再和后面的修饰符组合起来修饰成员变量,也可省略。 成员变量:由一个或者多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 类型:可以是java语言允许的任何数据类型,包括基本类型和引用类型。 成员方法: 方法修饰符:public、protected、private、static、final、abstract,前三个只能出现一个,static和final最多只能出现其中的一个,和abstract组合起来使用。也可省略。 返回值类型:可以是java语言的允许的任何数据类型,包括基本类型和引用类型。 方法名:和成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总是后执行。 static是一个特殊的关键字,它可用于修饰方法、成员变量等成员。static修饰的成员表明它属于这个类本身,而

JAVA基础知识考核含答案

精品文档 JAVA基础知识考核题 班级:姓名:成绩: 一、选择题(80分,每题2分) 1.J ava编译器的命令是( D ) A.java B. appletviewer C. jdb D. javac 2. Java解释器的命令是( A ) A.java B. appletviewer C. jdb D. javac 3. Java开发人员使用的开发工具包是( C ) A.JVM B. JRE C. JDK D. Eclipse 4. 下列说法正确的是( B ) A. 使用Java语言开发的程序可以在任何平台下运行,且不需要JRE B. 使用Java语言开发的程序可以在任何平台下运行,但需要JRE C. Java虚拟机是独立的,JDK中不包含虚拟机 D. Java语言编译后是字节码文件,操作系统可直接执行 5. 下列全部是合法的Java标识符的是( B ) A. 09stu teacher $money B _salary post123 name C case abstract final D #ID list today 6. 程序中有如下语句 final float PI = 3.14f; 下列说法正确的是( C ) A PI 是一个变量,初始化的值是3.14. B 定义有错误,PI 是float类型3.14后不能加f C PI 是一个常量,其值是3.14 D 对PI可以重新赋值,如PI = 3.1415926; 7 下列初始化值正确的是(B )

A float score = 90.5; B boolean flag = false; C char 慮敭?尠张三; D boolean num = 1; 8. 有如下代码 . 精品文档 class ScopeVar { public static void main(String [ ] args) { int num = 10; if ( num = = 10) { int num1 = num * num; } num1 = num1+10; System.out.println(num1); } } 输出正确的是( D ) A 110 B 20 C 不确定 D 程序错误 9. 下面对Scanner 描述正确的是( C ) A Scanner类提供输入数据的方法,但只能输入字符串 B Scanner的使用方法:Scanner.next(); C 使用Scanner需要导入java.util.Scanner类 D 从键盘读取一个整数的方法 Scanner sc = new Scanner(); int num = sc.nextInt(); 10. 有String str1=hello; int num=100; 则对str1+100 说法正确的是( A ) A str1+100 的值是一个字符串hello100 B str1+100会产生语法错误,字符串不能和整数相加 C str1+100不会产生语法错误,最终的结果是100,str1的值被忽略掉 D str1+100不会产生语法错误,最终的结果是hello,100被忽略掉 11. 哪种方法返回String中的字符数( B ) A. size() B. length() C.width() D.girth() 12. 下面创建数组正确的是B A int[] int_array = int[10]; B int[] int_array = new int[10]; C int[] int_array = new int(10);

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

JAVA技术--Java基础知识常见考试题JAVA技术.doc

一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()(

java各知识点详细总结(毕向东笔记整理)

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;

JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java 的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java 运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;

Java基础知识测试__A卷_答案讲解

考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面说法正确的是() A. JVM就是Java虚拟机,包含java核心类库// JRE: JVM+Java library。 B. JRE就是java运行环境,包含java程序编译运行的工具环境// JDK:JRE+Tools C. JDK就是java开发环境,javac是其中的一个工具 D. 功能范围:JDK > JVM > JRE 2.下面的说法正确的是( ) A. Java 语言是面向对象的、解释执行的网络编程语言。 B. Java 语言具有可移植性,是与平台无关的编程语言。 C. Java 语言可对内存垃圾自动收集。 D. Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。 3.给定java代码,如下: public byte count(byte b1, byte b2){ return ____; }

要使这段代码能够编译成功,横线处可以填入 A. (byte)(b1-b2) //返回值类型为byte,要求选项结果为byte B. b1-b2 C. (byte)b1+b2 D. (byte)b1/b2 4.关于类的命名,正确说法是() A. 可以由数字和英文拉丁字母组成,且可以任意排序//数字不能开头 B. 命名要做到见名知意 C. 如果是由多个单词组成,每个单词首字母大写 D. 可以是Java已经定义过的关键字//囧 5.关于main方法说法错误的是() A.main方法是java程序执行的入口 B.main方法的方法体重至少要有一行代码//可以没有代码 C.main必须定义在一个类中 D. main方法的定义格式为:public static void main(String[] args){} 6.类中某方法定义如下: double fun(int a,int b){ return a*1.0/b; } 同一类内其它方法调用该方法的正确方式是: A. double a = fun(1,2); B. double a = fun(1.0,2.0); C. int x = fun(1,2); D. int x = fun(1.0,2.0); 7.给定java代码,如下,编译运行,结果是() public static void main(String[] args){ boolean flag; System.out.println(“flag”+flag); //局部变量需要先初始化再使用} A. 编译错误 B. 编译通过,单出现运行时错误 C. 正常运行,输出flag=false D. 正常运行,输出flag= 8.下面哪个关键字可以定义一个类()

java期末考试知识点总结

java知识点总结 应同学要求,特意写了一个知识点总结,因比较匆忙,可能归纳不是很准确,重点是面向对象的部分。 java有三个版本:JAVA SE 标准版\JAVA ME移动版\JAVA EE企业版 java常用命令:java, javac, appletview java程序文件名:.java, .class java的两类程序:applet, application; 特点,区别,这两类程序如何运行 java的主方法,主类,共有类;其特征 java的数据类型,注意与C++的不同,如字符型,引用型,初值 java与C++的不同之处,期中已总结 java标记符的命名规则 1)标识符有大小写字母、下划线、数字和$符号组成。 2)开头可以是大小写字母,下划线,和$符号(不能用数字开头) 3)标识符长度没有限制 4)标识符不能使关键字和保留字 面向对象的四大特征 抽象、封装、继承、多态 封装,类、对象,类与对象的关系,创建对象,对象实例变量 构造函数,默认构造函数,派生类的构造函数,构造函数的作用,初始化的顺序,构造方法的重载 构造函数:创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。把若干个赋初值语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。是与类同名的方法,创建对象的语句用new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。 构造函数是类的特殊方法: 构造函数的方法名与类名相同。 构造函数没有返回类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数一般不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 类的修饰符:public类VS 默认; abstract类; final类; 1)类的访问控制符只有一个:public,即公共的。公共类表明它可以被所有其他类访问和引用。 若一个类没有访问控制符,说明它有默认访问控制特性,规定该类智能被同一个包中的类访问引用(包访问控制)。 2)abstract类:用abstract修饰符修饰的类被称为抽象类,抽象类是没有具体对象的概念类,抽象类是它所有子类的公共属性集合,用抽象类可以充分利用这些公共属性来提高开发和维护效率。 3)final类:被final修饰符修饰限定的,说明这个类不能再有子类。所以abstract与final 不能同时修饰一个类。 域和方法的定义 1)域:定义一个类时,需要定义一组称之为“域”或“属性”的变量,保存类或对象的数据。

Java基础阶段复习题2(附答案)

复习题2 如有雷同,纯属巧合! 1.下列哪一种叙述是正确的() A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 2.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 3.以下哪个表达式是不合法的() A、String x=”Hello”; int y=9; x+=y; B、String x=”Hello”; int y=9; if(x= =y) { } C、String x=”Hello”; int y=9; x=x+y; D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length() : 0 4.下列关于修饰符混用的说法,错误的是() A.abstract不能与final并列修饰同一个类 B.abstract类中不可以有private的成员 C.abstract方法必须在abstract类中 D.static方法中能处理非static的属性 5.()修饰符允许对类成员的访问不依赖于该类的任何对象 A、abstract B、static C、return D、public 6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是() A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问

Java基础知识点复习资料

1、classpath的设置及作用:设置为set classpath=“绝对路径”。作用是指定Java类的执 行路径。是用来寻找class文件的。 2、path的设置及作用:是内部命令。在编译Java的时候需要用到javac命令在执行java 的时候要用到java命令,这两个命令不时windows自带的命令,所以我们使用的时候要设置好环境变量,这样就可以在任何目录下使用了。 3、JA V A数据类型:基本数据类型(数值型(整型(byte.short.int.long)、浮点型 (float.double))、字符型(char)、布尔型(boolean))、引用数据类型(class.数组、接口)。 4、JA V A基本运算符号:赋值运算符、算术运算符、关系运算符、逻辑运算符、条件运 算符、括号运算符。 5、JA V A程序基本控制语句: 1、if (判断条件) { 语句1; 语句2; } 2、if(判断条件) { 语句1; } else { 语句2; } 3、switch(表达式) { case 选择值1;语句主体1; break; case 选择值2;语句主体2; break; case 选择值3;语句主体3; break; default:语句主体; } 4、for(赋初始值;判断条件;赋值增减量) { 语句; } 5、while(判断条件) { 语句1; 语句2; } 6、do {

语句1; 语句2; } while(判断条件); break跳出循环。continue跳出本次循环进入到下次循环。 6、数组的概念及使用:数组是由一组相同类型的变量所组成的数据类型,它们以一个共 同的名称来表示。 格式一:数据类型数组名[] 数组名=new 数据类型[个数] 例:int i[] i=new int[8] 格式二:数据类型数组名[]=new 数据类型[个数] 例:int i=new int[8] 7、方法的声明及使用:完成某一特定功能的代码块。 返回值类型方法名称(类型参数1,类型参数2) { 程序语句; return表达式; } 8、方法的重载:在同一个类中允许同时存在一个以上的同名方法,只要他们的数据类型 参数个数不同即可。 例如:public static int Test(int i,intj) { return i+j; public static int Test(int x) { return x++; } pubic static double Tset(double m,double n) { return m+n; } public static int Test(int a,int b,int c) { return a-b+c; } } 在程序中Test方法被重载了4次,但每个重载了的方法所能接受参数的个数和类型不同。 9、类的定义: 将具有相同属性及相同行为的一组对象称为类。广义的讲,具有共同性质的事物的集合就称为类。 class 类名称 {

JAVA基础知识考试(答案)

Java基础测试题 一、选择题(每题2分) 3、以下字符常量中不合法的是()。 A.'|' B.'\'' C."\n" D.'我' 8、设a,b,c,d均为int型的变量,并已赋值,下列表达式的结果属于非逻辑值的是() A.a!=b&c%d=c+d 12、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是()。 A.把x和y按从大到小排列 B.把x和y按从小到大排列 C.无确定结果 D.交换x和y中的值 13、若有定义int a=1,b=2;表达式(a++)+(++b)的值是()。 A.3 B.4 C.5 D.6 14、若有定义int a=9,b=6;a>b的值是()。 A.0 B.1 C.false D.true 15、设x=1,y=2,z=3,则表达式y+=z--/++x的值是:() A.3 B.3.5 C.4 D.5 16、设有定义float x=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为true的是()。 A.x>y||x>z B.x!=y C.z>(y+x) D.x0); A.0 B.1 C.-1 D.死循环 26、以下程序的输出结果是()。 A.-11 B.01 C.00 D.10 public class aaa{ static public void main(String args[]){ int a=-1,b=1,k; if((++a<0)&&!(b--<=0))

java基础刷题知识点总结

基础 1.object类的方法有哪些 clone() protect 创建并返回一个对象的副本 equals()用来比较某个对象是否与调用此方法的对象相等 finalize() protect getClass() 返回一个对象的运行时类 hashCode()返回一个对象的hash值 notify()唤醒在此对象监听器上等待的单个线程。如果有多个,则随机唤醒一个 notifyAll()唤醒在此对象监听器上等待的所有线程 registerNatives() 本地私有方法,在类初始化是会调用此方法 toString() 返回当前对象的字符串表示 wait()使当前线程处于等待直到其他线程调用这个对象的notify或notifyAll方法或者超过指定的时间量 2.接口和抽象类的区别 1.首先描述接口和抽象类的特性 抽象类:是子类通用特性的集合 接口:是抽象方法的集合l 从某种意义上说抽象类包含了接口的所有功能。但是通过实现接口可以实现多继承

什么时候用抽象类和接口 1.如果一些方法必须提供默认的实现,就必须用抽象类,比如在dao层,每个类都有增删查改这几个操作,我们可以把这些操作写在抽象类里,并让抽象类提供默认的实现。 否则的话用接口 2.假如要实现多继承,则必须要用接口,java不支持多继承但是可以通过实现多个接口来解决 3.如果基本功能在不断改变,那么就用抽象类。如果不断改变基本功能并且使用接口,子类就必须不停的更改 03.抽象类是否有构造方法 抽象类有构造方法只是抽象类不能够实例化 4.Final finally finalize()方法的区别 5.Sleep()和wait()的区别 ①这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。 ②锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS 分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。 Thread.sleep(0)的作用是“触发操作系统立刻重新进行一次CPU竞争”。 ③使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,配合synchronized实现等待通信机制,而sleep可以在任何地方使用。 synchronized(x){ x.notify() //或者wait() }

javaweb知识点总结

javaweb知识点总结 篇一:javaweb期末复习知识点整理 1、 Web应用概述 1. URL与URI URL: 统一资源定位器 URI:统一资源定位符 2. 常见HTML标签 3. 表单的处理 4. 静态文档与动态文档的概念:静态文档是一种以文件的形式存放在服务器端的文档,客户发出对该文档的请求,服务器返回这个文档。动态文档是指文档的内容可根据需要动态生成,又可分为服务器端动态文档和客户端动态文档技术。 5. Servlet概念:服务器端小程序,是使用ServletAPI 以及相关类编写的java程序,主要用来扩展web服务器的功能。 6. 处理404错误:查看给定的路径名是否正确,查看Servlet类文件是否在classes目录下,查看文件内容是否正确,查看tomcat是否启动 2、 Servlet技术模型 1. Servlet的API:包,包 Servlet接口及方法 :

1) public void init(ServletConfig config):完成Servlet初始化并准备提供服务。容器传给该方法一个ServletConfig类型的参数。 2)public void service(ServletRequest req,ServletResponse res)throw ServletException,IOException:对每个客户请求容器调用一次该方法,它允许Servlet为请求提供响应。 3) public void destroy()该方法由容器调用,指示Servlet清除本身,释放请求的资源并准备结束服务。 4) public ServletConfig getServletConfig()返回关于Servlet的配置信息,如传递给init()方法的参数。 5) public String getServletInfo()返回关于Servlet 的信息,如作者,版本及版权信息。 ServleConfig接口作用及方法 HttpServlet类 :新的service方法,doGet,doPost HttpServletRequest接口及常用方法 HttpServletResponse接口及常用方法 2. Servlet的开发步骤 编写一个Servlet类 编译 部署 (1)在tomcat的虚拟目录下,创建Web目录

JAVA基础知识考核(含答案)

JAVA基础知识考核题 班级:姓名:成绩:一、选择题(80分,每题2分) 1.J ava编译器的命令是( D ) A.java B. appletviewer C. jdb D. javac 2. Java解释器的命令是( A ) A.java B. appletviewer C. jdb D. javac 3. Java开发人员使用的开发工具包是( C ) A.JVM B. JRE C. JDK D. Eclipse 4. 下列说法正确的是( B ) A. 使用Java语言开发的程序可以在任何平台下运行,且不需要JRE B. 使用Java语言开发的程序可以在任何平台下运行,但需要JRE C. Java虚拟机是独立的,JDK中不包含虚拟机 D. Java语言编译后是字节码文件,操作系统可直接执行 5. 下列全部是合法的Java标识符的是( B ) A. 09stu teacher $money B _salary post123 name C case abstract final D #ID list today 6. 程序中有如下语句 final float PI = 3.14f; 下列说法正确的是( C ) A PI 是一个变量,初始化的值是3.14. B 定义有错误,PI 是float类型3.14后不能加f C PI 是一个常量,其值是3.14 D 对PI可以重新赋值,如PI = 3.1415926; 7 下列初始化值正确的是(B ) A float score = 90.5; B boolean flag = false; C char name = "张三"; D boolean num = 1; 8. 有如下代码

Java期末知识点整理总结

Java期末知识点整理总结 计科2班苏锐师编号47 学号201330551464 第一章 Java语言概述 1. Java语言发展历史和现状及前景 2. Java语言的特点: 简单、面向对象、分布式、健壮性、结构中立、 安全性、可移植、解释的、高性能、多线程、多态性 3. Java虚拟机概念(JVM),Java程序的执行过程 4. Java应用程序分类:Application和Applet 5. Java程序的开发环境:JDK,IDE 第二章 Java数据类型及其运算 1. 标识符与保留字 1.2 标识符命名语法规则与Java推荐的标识符命名规则 1.3 Java中的关键字 2. 数据类型byte, short, int long, char, float, double, boolean 注意点:Java中所有数据类型是确定的,与平台无关,没有sizeof操作,其中特别注意char 类型是2字节Unicode编码,与C++ 不同;知道基本类型都有对应的默认值。 整型数的十进制、八进制、十六进制值的表示。 实型数的十进制、十六进制与科学计数法表示,注意实型常量默认类型为double型。 3. 运算符与表达式算术运算符: + - * / % ++ -- 关系运算符:> >= < <= == != 逻辑运算符:&& || !& | 注意短路计算与非短路计算的差别 位运算符: >> << >>> & | ^ ~ 要认识异或(^)与按位取反(~)运算符 赋值运算符: += -= *= /= %= &= |= ^= <<= >>= >>>= 要注意赋值运算符中包含了强制转换: 若: int k = 1; k += 44.232D; 则相当于: k = (int) ( k + 44.232D); 条件运算符:exp ?stat1 :stat2 要注意stat1与stat2要求类型相兼容且不能为void类型。运算符的优先级:算术运算 > 关系运算> 逻辑运算

java基础知识大全(必看经典)

第一讲 Java语言入门 1.1 Java的特点 1.1.1面向对象: ?与C++相比,JAVA是纯的面向对象的语言 C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使 C++成为一个"混血儿"。而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。 1.1.2可移植(平台无关性): ?生成中间字节码指令 与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。这正是Java实现可移植的机制。 ?原始数据类型存储方法固定,避开移植时的问题 Java的原始数据类型的大小是固定的。比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows 9x 、NT和2000,整数是4个字节。当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。Java的字符串,则采用标准的Unicode格式保存。可以说,没有这个特性,Java的可移植性也不可能实现。 1.1.3简单 ?JAVA在语法上与C++类似 JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法; ?取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA 的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能 其它被取消的特性包括:虚拟基础类、运算符过载等 ?JAVA的基本解释器和类支持模块大概仅40K 即使加入基本的标准库和支持线程的模块,也才220K左右。与GUI(图形用户界面)相比,

java基础知识详细整理(图文并茂深入浅出)

JSE第一部分 分享者:张振羽 2017.6.30

1.什么是 JDK API (1) Application Programming Interface ,应用程序编程接口 (2) 是一些预先定义的函数,开发人员可提供直接调用的功能。 2.JDK包结构 便于维护,按照功能划分,不同功能的累划分在不同功能的包中,常用的包如下表: 3.字符串的基本操作 3.1 String 及其API

3.1.1 String (1) String是不可变对象 (2) https://www.doczj.com/doc/83173506.html,ng.String使用了final修饰,不能被继承。 (3)字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中 (4) 任何一个字符对应2个字节的长度,1个字节 = 8位二进制。 3.1.2 String s=new String (“abc”) (1) 众所周知,答案是:创建两个对象 (2) why?举例子: 分析步骤: a) 栈中开辟一块空间存放引用str1(地址信息); b) String池中有一块空间,存放String常量"abc"; c) 引用str1指向池中String常量"abc"; d) str1所指代的地址即常量"abc"所在地址,输出为true; 结论:创建了一个引用对象str1

分析步骤: 1) 栈中开辟一块空间存放引用str3; 2) 堆中开辟一块空间存放一个新建的String对象"abc"; 3) 引用str3指向堆中的新建的String对象"abc"; 4) str3所指代的对象地址为堆中地址,而常量"abc"地址在池中,输出false; 3.2 StringBuilder常见API

相关主题
文本预览
相关文档 最新文档