java基础知识点.docx
- 文档编号:556996
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:49
- 大小:161.32KB
java基础知识点.docx
《java基础知识点.docx》由会员分享,可在线阅读,更多相关《java基础知识点.docx(49页珍藏版)》请在冰点文库上搜索。
java基础知识点
第一天课程(2012-7-10)
JAVA常用的名词
JVMjava虚拟机
Application应用程序必须有一个入口的方法叫做 publicstaticvoidmain(String[]args){}
Applet小应用程序该程序必须要内嵌在一个容器中运行,它有自己的生命周期
重点:
JAVA的开发环境
JDK:
java开发工具集
JDK版本问题不支持泛型泛型枚举
默认安装路径C:
\ProgramFiles\Java\
JRE:
JAVA运行时环境
环境变量的配置
(1)Path:
window寻找可执行应用程序的一个查找路径不同的路径之间使用;来分隔
(2)配置一个路径C:
\ProgramFiles\Java\告诉系统到那些目录下面去查找对应的要执行的文件
.;D:
\3020\j2se\cx\chapter1
.表示当前目录
预习作业:
常用的DOS命令
切换目录查询文件拷贝文件重命名移动文件
*表示通配符*.java*.*
常用java命令
Javac编译命令主要将以.java结尾的Java文件编译生成以.Class结尾的二进制字节码文件。
Javacjava文件名.java
Java运行命令java类名
Javadoc生成帮助文档命令javadocjava文件
面向对象的基本概念
类(属性方法构造方法)
对象对象创建传递销毁
面向对象的三大基本特性:
封装、继承、多态OOPAOP
类
是由客观事物经过大脑抽象而形成概念,是对一类事物的描述
使用class关键字来描述类
类中有属性和方法:
属性对应的是事物的静态特性(可以叫做成员变量)
方法对应的是事物的动态特性
对象:
是类的一个具体的实例化
创建对象对象的方法:
类名对象名=new类名();调用类的构造方法来创建对象
构造方法是特殊的方法:
方法名=类名
注意:
类中属性和方法必须在创建对象之后才能使用
对象.属性对象.方法.表示引用
第二天课程(2012-7-11)
JAVA语言描述
类的声明
语法格式:
[
[
[
[
}
修饰词class类名{
属性定义部分<可选>
构造方法<可选>
普通方法<可选>
}
用于修饰class的关键字有两种:
(1)public公共的
(2)缺省不写表示当前类只能在同一个包中使用
注意点:
(1)一个java文件中最多只能有一个类被public修饰,并且要求使用public修饰这个类的类名来作为该java文件的文件名。
(2)要求将来大家写代码的时候一个java文件一个类,并且该类用public修饰,类名与文件名相同
类名
变量
局部变量:
写在方法或语句块内部的变量方法的形参作为局部变量来看待。
注:
要使用的话,必须要先声明和赋初值之后才能使用
形参除外,原因在形参在方法被调用时也会根据传递进来的实参进行默认的初始化赋值
成员变量:
也叫类的属性写在类的内部,在方法的外部的变量
只要声明后就可以使用,原因在于成员变量在对象创建的时候会根据数据类型进行自动默认初始化赋值。
变量的作用范围:
解决重名问题的规则:
就近原则
第四天课程(2012-7-13)
输入与输入
Scanner类的用法了解
用于向控制台输出任意类型的数据以后该语句只允许出现main()方法中。
在实际中主要用于调试
性
在构造方法中使用,给类的属性赋值,解决命名冲突问题。
(2)调用类的普通方法this.方法名()
(3)调用构造方法this(参数列表..)
注意:
(1)this()该语句必须放在构造方法的第一条指令。
(2)使用this()来调用构造方法的话,在本类中必须至少有一个不包含this调用的构造方法作为退出构造来使用
(4)表示当前对象this===
运算符:
Infinity在java语言中表示无穷大-
NaN表示notanumber不是一个数字
负数的二进制->负十进制的转换
(1)-1
(2)取反(3)转换为十进制(4)*-1
负十进制的转换->负数的二进制
(1)取绝对值
(2)转为二进制(3)取反(4)+1
作业:
八种基本类型的数据之间的转换
第五天课程(2012-7-16)
分支语句
单路分支:
if(条件){语句块}
双路分支:
if(条件1){
语句块1
}else{
语句块2
}
多路分支:
if(条件1){
语句块1
}elseif(条件2)
语句块2
}elseif(条件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=22*2=4
1*3=32*3=63*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张牌,完成初始化,并且输出内容。
()方法要求掌握
第七天课程(2012-7-18)
包:
使用package来描述一个包
声明包的语法规则:
package包名;
该指令必须是类的第一条指令
包名的命名规则:
公司对应的域名.总的项目名称.模块名称.子模块名称.自己开发的模块名
注意:
带包名的java类必须要使用如下的格式去进行编译
Javac-d.java文件名-d表示要带包编译生成java类.表示在当前目录下生成包结构
Java包名.类名来运行该类
每个类都必须隶属一个包,并且对应一个根目录。
命名空间,一个类如果没有定义包的话,则编译后会放置到默认的命名空间中去defaultpackage
使用包的过程应该注意:
(1)如果导入的不同的包中有同名的类的话,使用的时候为了区分开来,则必须在类名前带上包名一起使用。
(2)如果要导入一个包下的所有的类,可以使用*来描述。
不用担心效率问题
(3)缺省导入包
重点:
继承extends
在其他人编写的类的基础之上进行利用和扩展
(1)其他人所编写的类中的属性和方法你可以通过继承的方法直接拿来就用
(2)在其他人开的功能的基础上添加属于你自己的新功能
用法:
(1)代码重用.
ClassAextendsB
A:
子类,派生类
B:
父类
Object类是所有Java类的最高层父类(超类),主要是由于该类通过方法来描述了类的定义和表示、以及对对象的管理(声明,克隆)
存在缺点:
单继承,java语言为什么只能单继承
作业:
普通人(姓名,性别,年龄,居住地址,吃饭、睡觉、行走、)
教师(教学年龄,教师资格,教学、备课)
学生(所在班级,学号,上课、预习)
访问控制权限:
见表格
方法的重写(覆盖)和重载
重写:
发生在子类和父类之间,也就是说必须要要有继承关系才会有重写
子类去重写父类中同名的方法,以达到方法覆盖的目的。
Override
规则:
重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型;
重写方法不能使用比被重写方法更严格的访问权限;
重写方法不允许声明抛出比被重写方法范围更大的异常类型。
重载:
在同一个类中的同名的方法,只是参数列表不同overload
属性的重写有规则:
属性名要求一致,但类型可以不一致
重载无
Super关键字必须在子类中使用
用法:
(1)Super.方法()表示要调用父类中的方法
(2)Super.属性表示访问父类属性
(3)Super()表示调用父类的构造方法必须要放在子类的构造方法中的第一句语句。
在子类对象创建之前父类对象必须要先被创建出来。
第八天课程(2012-7-19)
比较this和super
使用方法
This
super
属性
This.属性表示优先从本类中查找该属性,如果本来中没有该属性则从父类中查找
Super.属性直接从父类访问属性
方法
This.方法表示优先调用本类的方法,如果找不到,则调用从父类继承过来的方法
Super.方法直接访问父类中被子类重写的方法
构造
This()表示调用本类的构造方法;该语句必须放在本类构造方法中的第一句;并且要求本类必须至少有一个不包含this()调用的构造方法;
Super()表示子类对象创建出来之前必须要创建父类对象;
该语句必须先在子类的构造方法的第一句;
特殊
This表示当前对象
无
重点:
多态
多态:
多种状态
发生子类和父类之间,必须要在继承(或实现)的基础上才能产生多态。
多态的描述:
(1)子类对象可以替代父类对象来使用
子类是在父类的基础之上进行功能点扩充。
具体用法:
访问。
(2)Static修饰的静态方法中不允许调用非静态的属性(普通属性)和非静态的方法(普通方法)。
(构造方法除外)
普通属性和普通方法是必须要通过创建对象才能来调用的。
关于构造方法的说明:
(1)方法名为类名
(2)该方法可以带参数,这些用于给该类的属性赋值
(3)返回的是创建出来的对象,在该方法中不能写return语句。
(4)该方法前面可以使用的修饰词:
publicprivate
(3)Static、final都不允许用来修饰构造方法
(4)构造方法不允许继承
(5)如果使用private来修饰构造方法,则构成单例设计
重点:
单例设计:
(1)该类的构造方法私有
(3)该类中一定存在一个属于自身类型的属性该属性一定是static,根据封装特性,要求使用private来修饰
(4)该类中一定存在一个公开的方法,并且是static的,以便其他人可以直接使用类名.该方法名的方式来调用,最终能获取到该类的对象。
(5)单例也就是单个实例
作业:
(1)编写一个符合单例设计模式的类Single
(2)使用Static来实现一个能统计该类已经产生了多少个对象的方法
Final关键字
final标记的类不能被继承。
final标记的方法不能被子类重写。
final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。
final标记的成员变量必须在声明的同时或在每个构造方法中显式赋值,然后才能使用。
final不允许用于修饰构造方法、抽象类以及抽象方法。
第九天课程(2012-7-20)
IDE集成开发工具的使用
(1)eclipseIBM免费贡献使用频率较高
(2)MyEclipse收费在eclipse的基础上添加一些有用,比较常用的插件,以方便开发人员开发推荐使用
(3)NetBeanssun公司不免费
使用IDE过程:
(1)创建workspace工作平台
(2)配置installedJRE
(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
一个类去实现一个接口,也就意味着要实现接口中所有的抽象方法,否则该类必须声明为抽象类。
[
[implements
类、接口之间的关系:
(1)类与类之间只能是继承关系,并且是单继承
(2)类与接口之间只能是实现关系,并且可以支持多重实现
(3)接口与接口之间只能是继承关系,并且支持多重继承
子接口对象可以替代父接口对象来使用。
多态的表现形式:
类的多态:
(1)子类可以替代父类使用具有继承关系的子类和父类之间的多态
(2)现实类可以替代接口使用实现类和接口之间的多态
属性的多态
属性的重写
方法的多态
方法的重载
常用的设计模式
实战过程中的运用:
(1)抽象类的用法:
模板设计
假设有一个人类姓名性别年龄说话()
教师类
学生类
工人类
printStackTrace()方法使用单独的线程去打印栈的轨迹
1、人工手动抛出异常
Throw异常的对象
7、自定义异常类通过extend系统预定义异常类来实现
Throw自定义异常类的对象
UUID唯一标识符(ID)在java语言中用来标记唯一的一个类,将来的由这个类生成的对象如果需要在网络上进行传输的话,一定要求有唯一标记。
Assert断言了解
作业:
把PPT上关于trycatch的用法的例子自己调试
栈的轨迹的打印
自定异常并捕捉异常处理
第十二天课程(2012-7-25)
常用的JAVA类
掌握Object类toStringequalsclonewaitnotify
熟练掌握
(1)字符串、数字、日期三者之间的相互转换
(2)国际化相关的类国家、语言、时区、时间
Object类
hashCode()用于返回一个哈希码返回的是int类实际过程中用于描述内存单元的地址需要十六进制int=>十六进制(inti)
toString()该方法以字符串的形式来描述一个类
equals()该方法用于比较两个对象是否相等实际过程:
比较两个对象是否相等,对象排序问题在排序中使用了比较对象的规则,所以将来对对象进行排序要求同时改变比较规则,应该使两者的规则保持一致。
finalize()该方法表示在对象销毁的时候必须要调用的方法该方法不是由你去调用的的,而是由垃圾回收线程来调用的。
clone()克隆方法该方法用于复制一个对象注意点:
如果本类要能进行克隆,必须要求该类去实现Cloneable接口
分类:
浅层克隆深层克隆
实战过程:
比较基本数据类型使用==对值进行比较
比较引用类型的话必须要使用equals()这个方法
Equals()方法使用要注意:
如果存在常量字符串的话,必须要把常量字符串写在之前
例如“常量字符串”.equals(对象名称)
Token令牌技术
字符串相关的类
String表示的是长度不可修改的字符串,在进行字符串连接操作的时候最起码需要2的所有字符的空间才能完成操作,因此在实战过程一般不使用+来进行大字符串连接。
用法备注:
使用String来声明变量Stringstr=字符串不要使用Stringstr=newString(字符串);实战过程处理字符集编码问题的时候需要用到String的构造方法
String类中的常用方法
concat()字符串连接
replace()字符串替换
substring()字符串截取
toLowerCase()转换为小写
toUpperCase()转换为大写
trim()首尾去空格
charAt()获取指定下标位置的字符
startsWith()判断是否以XXX开头、
indexOf()判断是否包含某个子字符串,返回该子字符串在原字符串中的首次出现的位置
lastIndexOf()判断是否包含某个子字符串,返回该子字符串在原字符串中的尾部出现的
length()获取字符串的长度
equals()比较字符串是否相等
equalsIgnoreCase()大小写不敏感的比较
compareTo()比较两个字符串的大小int1表示前面字符串>字符串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
float->Float
double->Double
在封装类中封装了从该类对应的基础数据类型到String的转换过程
封装类中使用的时候必须要创建对象
自动封装和拆封
从基本数据类->对应的封装类的转换可以自动进行该过程叫自动封装
从封装类的对象–>对应的基本数据类也可以自动进行转换该过程叫自动拆封
使用基本数据类型+””->String类型效率较高
(基本数据类型)->String类型
作业:
1、自己编写代码调用String中的方法,掌握其具体调用方法和意义。
2、自己编写代码去实现从封转类与基本数据类型之间的转换,与String类型之间的相互转换
第十三天课程(2012-7-26)
日期和时间
全球标准时间:
GMT格林威治时间
中国东八区GMT+8中国的标准时间CST
北京时间:
在JAVA语言中Date->long是可以相互转换的getTime()
可以使用一个long类型的数据来表示一个时间
2000L->表示什么时间
单位是毫秒2000毫秒=2秒
基准时间190011000GMT时间
197011000
时间的完整组成:
时区国家四季年月日上午/下午星期时分秒毫秒微秒纳秒
1.Date类
表示时间的常用类,精确到毫秒
该类中大部分方法已经过时
已过时的方法,不建议使用(但是能用),肯定会有替代的方法来使用,必须去参考帮助文档。
Date()用于描述具体时间其中空的方法的体的构造方法不过时,要求掌握,表示创建出当前时间的一个对象包含年月日星期时分秒
Date(long)用于描述一个具体的时间段
();得到java的当前时间
2.Calendar类
3.Locale类
主要包含国家和语言
中文/中国zh/CN
英文/美国en/US
getAvailableLocales()得到本机所支持的所有的国家和语言
getDefault()得到本机默认的国家和语言
4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 基础 知识点