java基础总结.docx
- 文档编号:25817247
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:24
- 大小:875.12KB
java基础总结.docx
《java基础总结.docx》由会员分享,可在线阅读,更多相关《java基础总结.docx(24页珍藏版)》请在冰豆网上搜索。
java基础总结
第一章初识java
一、java语言的历史
●第一代java语言:
Oak
二、java语言的现状
⏹JavaSE:
主要用于桌面程序的开发。
⏹JavaEE:
主要用于网页程序的开发。
⏹JavaME:
主要用于嵌入式系统程序的开发。
(安卓)
三、java语言的特点
●跨平台(不同的操作系统都可运行)
●简单(没有直接使用指针)
●面向对象(世间万物皆为对象)
●半编译半解释(java文件---class文件----虚拟机)
●分布式(多个客户端访问、通过服务器的配置分发到不同的服务器)
●健壮(异常的处理)
●安全(任何语言都具备、虚拟机沙箱原理)
●多线程、高性能、动态
四、java语言与C、C++语言的不同与区别
●自动内存管理:
Java对于内存的分配是动态的,并具有垃圾回收机制。
●不在类外定义全局变量。
●Java中将不再使用goto语句。
●Java中取消了指针。
●运行时系统对类型转换进行类型相容性检查
●Java不支持头文件,使用import与其它类通讯。
●Java中不包含结构和联合;所有的内容都封装在类中。
●Java中不支持宏,它通过final关键字来声明一个常量。
●Java不支持多重继承,可以通过Java中的接口实现多重继承的功能。
●CC++一般情况下都是偏硬件的,java一般偏软件(应用、基于浏览器)
●(补充).net、php(网页制作比较快捷)、在安全级别要求高的企业一般使用java(银行、政府系统)
五、环境的搭建
1、默认路径如下
●C:
\ProgramFiles\Java\jdk1.6.0_02:
提供编程中需要的api包
●C:
\ProgramFiles\Java\jre1.6.0_02:
虚拟机文件所在的位置
2.安装后各个文件夹代表的含义
3.Bin包下:
●Javac.exe:
编译java文件-------class
●Java.exe:
运行将class文件加载到虚拟机上运行()
代码运行原理:
java文件被编译成class文件(二进制字节码的文件),系统会实例化一个虚拟机实例、然后将class文件加载到虚拟机上,虚拟机会根据底层操作系统的不同把class文件转换成机器码。
4.环境变量
●Path:
表示当前java运行api方法所调用的exe在什么文件夹下
●JAVA_HOME:
jdk所在的路径(%JAVA_HOME%)
●Classpath:
java文件编译成class文件后class文件存放的位置
六、java语言的编码规范
●工程、类、包名字不能使用中文或者特殊符号(“”,$#)
●一定不能直接将类文件放在缺省包下
●包的名字一定是小写的、类名第一个字母大写,有意义的英文开头字母大写
●类名字与文件中class后面的名字一致
●类文件中可以用多个class、只能有一个前面用public
●一个类文件可以有内部类或者匿名内部类
●一个类中只能有一个main函数
七、注意点
●由于在Windows系统中软件默认安装到ProgramFiles文件夹中,这个路径中包含了一个空格,通常建议将JDK安装到没有空格的路径下。
●使用DOS界面操作java文件时,千万要注意扩展名;
●使用javac命令编译时文件是有扩展名,而使用java命令时不用写出扩展名
●创建java文件时要保证文件名和你命名的类名大小写完全相同
第二章java语言基础
一、标识符(变量)的书写规范
⏹Java语言的标识符由字母、数字、下划线和美元符号组成,第一个字符不能为数字。
⏹Java语言中区分大小写。
⏹标识符不能是Java的关键字与保留字。
⏹Java语言使用Unicode标准字符集,最多可识别65535个字符
二、关键字
1.关键字有哪些?
Int
Public
This
Finally
Boolean
Abstract
Continue
Float
Long
Short
Throw
Throws
Return
Break
For
Static
New
Interface
If
Double
default
Byte
Do
Case
Strict
Package
Super
Void
Try
switch
Else
Catch
implements
private
Final
class
extends
while
Protecte
char
其他
2.在命名标识符时的注意点
虽然const和goto不是java的关键字,但也不能使用。
三、变量
3.1什么是变量?
存储信息、传递信息
3.2变量怎么写?
语法格式:
变量类型变量标示符=值
3.3变量类型(8+2)
8=8种基本数据类型2=引用类型+Object类型(是所有类的父类)
3.3.1整型
类型
占用存储空间
表数大小
byte
1字节
-128-127
short
2字节
-2^15~2^15-1
int
4字节
-2^31~2^31-1
long
8字节
-2^63~2^63-1
3.3.2浮点型
◆float(=char(‘1’,‘a’)、1.0F、1.9f)
◆double(科学计数法)
注意点:
在对float类型进行赋值时在结尾必须添加‘F’或‘f’,如果不加,系统默认是double类型。
3.3.3字符型(char占2个字符,一个汉字也是2个字符)
字符
含义
‘a’
字母a
‘中’
汉字中
‘\n’
转义字符表示换行
‘\u?
?
?
?
’
特定的Unicode字符,用\u+四个确切的16位数字代替
‘\u03A6’
Unicode字符表示希腊字符Φ
3.3.4布尔类型
在java中布尔类型的值只有true或false
3.3.5引用数据类型(和8种数据类型匹配对应):
扩展了基本数据类型的功能
int-Integer
char->Character
short---Short
byte---Byte
longLong
doubleDouble
float>Float
booleanBoolean
String不是引用数据类型
3.3变量怎么用?
◆成员变量:
在整个类体都有效
◆局部变量:
只在方法体中有效
注意点:
局部变量可与成员变量的名字相同,此时成员变量将被隐藏。
即这个成员变量在此方法中失效。
如果想调用成员变量,需要使用“类名.静态变量”调用。
3.4变量的规则
●变量名必须是一个有效的标识符。
●变量名不能重复。
●应选择有意义的单词作为变量名。
3.5变量有什么特点?
3.5.1强制转换(高精度的转换成低精度的)
3.5.2double在做加减乘除的时候,如果数值小于1/10、结果是不准确的。
因此使用BigDecimal(大整数类型替代)
举例:
doublea=0.00001;
doubleb=0.131;
BigDecimala1=BigDecimal.valueOf(a);
BigDecimala2=BigDecimal.valueOf(b);System.out.println(a1.add(a2).doubleValue());
3.6注:
1、面试题bytebNum+=1;X
intaNum=1;
bytebNum=aNum;X
2、++算术运算符>关系运算符>逻辑运算符>赋值运算符(运算符的执行顺序)
举例:
inta=3;
a=(3+(a++));
System.out.println(a);
打印:
6
3、断点调试:
F6:
一行一行跟踪
F5:
进入某一个函数方法看起底层代码
F8:
直接跳转到下一个断点
4、instanceof:
语法判断前一个参数是不是后一种数据类型(引用数据)的实例化对象(需要一个明确的地址)
intid=3;
Integerid1=null;
System.out.println(id1instanceofInteger);
||
变量引用类型
四、常量
4.1什么是常量?
在程序运行过程中一直不会改变的量称为常量。
4.2常量怎么写?
final数据类型常量名称[=值]
五、运算符
5.1一元运算符
自增和自减运算符:
‘++’、‘--’
逻辑运算符:
‘!
’(非)
5.2二元运算符
赋值运算符:
‘=’
算术运算符:
‘+’、‘-’、‘*’、‘/’(除号)、‘%’(取余)
比较运算符:
‘>’、‘<’、‘==’、‘>=’、‘<=’、‘>=’、‘!
=’
逻辑运算符:
‘&&’(逻辑与)、‘||’(逻辑或)
位运算符:
5.3三元运算符
5.4运算符的优先级
注:
如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先被处理。
第四章流程控制
一、控制语句
1.1控制语句有哪些?
●If
●For(两种写法)
·第一种(常见的那种)
·第二种for(数据类型变量:
循环的值(数组、集合、迭代器))
◆dowhile(dowhile至少执行一次)
◆switch:
(1、case后面一定要写break;
switch()中int、short、byte、Integer、char可以)
1.2使用循环语句时注意点
只有循环条件表达式的值为false时,才能结束循环。
有时,我们想提前中断循环,要实现这一点,只需要在循环语句块中添加break或continue语句
1.2.1循环语句的中断
1.3注:
常见面试题举例:
1.3.1关于for循环的执行顺序:
publicclassTestControl{
publicstaticintb=0;
publicstaticvoidmain(String[]args){
for(add
(1);add
(2);add(3))
{
add(4);1->2->4->3->2->4->3->2
}
}
publicstaticbooleanadd(inta)
{
b++;
System.out.println(a);
returnb<6;
}
}
第五章数组
一、什么是数组?
数组是具有相同数据类型的一组数据的集合。
二、怎么写一个数组?
变量类型变量名+”[]”=new变量类型+”[数组大小]”
举例:
int[]goodArray=newint[6];
|||
保存的是新开辟地址的首地址【0】开辟一个新的地址开辟的新地址数
注:
数组中每一个地址里都保存一个默认值(int:
0;char:
0;boolean:
false;Integer:
null)
三、数组怎么用?
遍历:
一般使用for进行查询显示
举例:
for(inti=0;i { System.out.println(goodArray[i]); } 四、数组有什么特点? 1.inta[]=newint[4];a放在堆、数组中的每一值信息保存在栈中 2.数组创建后立即拥有默认值。 3.索引从0开始。 4.连续分配 五、数组的复制 六、数组的排序 第六章函数 一、什么是函数(方法)? 一个可以被调用的代码块。 二、函数怎么写? 语法: 权限访问控制符[修饰]返回类型(8+2、void: 不返回任何信息)函数名(参数。 。 。 ) { 函数体 [return返回类型相同的值] } 三、函数怎么用? 3.1参数传值专题 ◆基本数据类型: (每一个作用域下的变量都有自己的一值栈)、结构传值不会随另一个作用域的修改而改变 ◆引用类型: 同上 ◆String类型: 同上 ◆Object类型: object其地址一般是保存在堆,传值的时候穿的是当前对象的地址,其他任何对这个地址的操作,都会影响原对象内容 ◆数组: 数组是保存在堆中的,所以在传递过程中,传递的是地址 四、函数的注意点 第七章类与对象 一、什么是类与对象 ◆类: 具有相同行为和属性的一类实体被称为类。 ◆对象: 类抽象出来的一个实例。 二、类怎么写? 三、构造函数 3.1构造函数做什么? 初始化 3.2什么时候写构造函数? 一个类调用另一个类对象的时候与new配套使用 3.3构造函数的特点 1.具有与类相同的名称 2.不含返回值类型 3.不能在方法中用return语句返回一个值 4.一般访问权限为public 5.每一个类在调用的时候默认存在一个没有参数的构造函数、前提是当前类没有其他有参数的构造函数存在 6.和继承的关系: 1)在任何一个构造函数的第一行默认存在super(),这个会自动调用父类的构造函数 注: 匿名对象: newFcuntionAction();只能使用一次、this表示本类或者当前类。 第八章面向对象 一、什么是面向对象思想(OOP)? 二、java的三大特性? 2.1继承 2.1.1什么是继承? 类与类之间,通过继承,子类可以调用父类里面的方法与成员变量 2.1.2继承怎么写? 举例: TestSonextendsTestParent 2.1.3继承怎么用? 帮助我们实现一些代码的重用。 2.1.4继承的特点? ◆Java中继承。 单继承(一个子类只能有一个父类) ◆Object是所有类的父类(方法记忆! ! ! ! ) ◆子类不能继承父类中私有的变量和方法(private) ◆子类和父类同时出现相同函数名,子类中函数会覆盖(重写)父类中的函数体(动态) 2.2封装 2.2.1什么是封装? 将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体叫做类,类通常对客户隐藏其实现的细节。 2.2.2什么是抽象? 2.2.3抽象类 ◆什么是抽象类? 使用abstract修饰class ◆抽象类的特点? ⏹1)抽象类中有抽象方法publicabstractvoidadd(); ⏹2)抽象类不能直接实例化、不能被类implements、能被类继承 ⏹3)抽象类中的抽象方法,在被子类调用的时候是强制要求重写的;如果一个类继承了一个抽象类,那么子类中必须要重写抽象类中的抽象方法 ⏹4)如果抽象类中都是抽象方法-----》接口来替代抽象类 2.2.4接口 ◆什么是接口? ⏹接口是一个里面的方法都是抽象方法,变量都是由final修饰的变量、权限访问控制publicdefault。 ◆接口的特点? ⏹public、defaultabstract修饰抽象函数 ⏹为了使用一个接口,你要编写实现接口的类 ⏹如果一个类要实现一个接口,那么这个类就必须实现接口中所有抽象方法。 否则这个类只能声明为抽象类 ⏹多个无关的类可以实现一个接口,一个类可以实现多个无关的接口 ⏹一个类可以在继承一个父类的同时,实现一个或多个接口 2.3多态 2.3.1什么是多态? 2.3.2多态存在的三个必要条件? ◆要有继承,或实现(接口、抽象类) ◆要有重写 ◆父类引用指向子类对象 2.3.3多态的特点? ●相同的函数名 ●参数个数、或者类型、顺序不同, ●返回参数不同不影响 2.4重载 重载: 同一个类函数名相同、返回类型不影响、参数不同的函数。 三、访问控制符 四、单例模式(懒汉模式和饿汉模式) 4.1什么是单例模式? 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 4.2单例模式的要点 ◆某个类只能有一个实例 ◆它必须自行创建这个示例 ◆必须自行向整个系统提供这个实例 五、内部类 5.1什么是内部类? ◆内部类就是定义在另一个类内部的类。 ◆内部类对于同一包中的其它类来说,内部类能够隐藏起来。 5.2内部类的特点? ◆内部类可以访问其外部类中所有的属性和方法 ◆无需创建外部类的对象,即可从内部类访问外部类的变量和方法。 ◆必须创建内部类的对象,否则无法从外部类访问内部类的变量和方法。 ◆如果内部类中有和外部类同名的变量或方法,则内部类的变量和方法将获得比外部类的变量和方法更高的优先级。 ◆不能定义static变量 注: 匿名内部类: 没有类名、只能使用一次、内部类必须是继承或者实现其他类的子类 5.3匿名内部类是如何炼成的? ? 第一步: 创建一个内部类 第二步: 在外部类中实例化一个内部类对象 第三步: 让内部类名字消失 第四步: 因为只能调用一次,所以将代码块替换掉外部类实例化的对象 第五步: new后面应该跟随的是构造函数,所以在TestB后面添加一个“()” 六、关键字 6.1this ◆表示本类、可以在当前类中使用除了在static修饰的代码块以外 ◆this()表示本类的构造函数 6.2static静态修饰符 6.2.1如何调用static修饰的函数或者变量? 类名+“.”+变量名/函数 6.2.2static的特点? ◆全局公共变量、全局公共函数 ◆修饰的函数代码块、变量(创建或者分配地址)---》构造函数优先级别高 ◆Static修饰的函数中不能使用this,因为static修饰的函数在程序启动访问当前类的时候已经明确分配了地址、也就是函数中所有的内容都已经存在于某一个明确的地址中、this===某一个类的对象引用并没有明确的地址分配。 两者冲突因此: Static修饰的函数中不能使用this ◆Statitc修饰的函数不能直接调用成员变量 6.2.3静态方法的作用与限制 6.3final ●类: 不能被继承 ●变量(属性和局部变量): 不能被重新赋值 在声明时赋值,或在构造器中赋值 系统不会对final属性默认的赋初始值 ●方法: 不能在子类中被覆盖,即不能修改。 ● 6.3super 注: //向上转型 TestFunctionParenttestParent=fcuntionAction; System.out.println(testParent.id); //向下转型、首先必须先向上转型 FcuntionActionfcuntionActionTemp=(FcuntionAction)testParent; System.out.println(fcuntionActionTemp.id); 注意点: 1.方法的重写(覆盖) 2.接口与抽象类的区别? 3.equal()与==的区别? 第九章异常 一、什么是异常? 二、异常的分类? ●Error: 系统级异常、底层出现无法通过代码进行处理的 ●Exception: 检查异常(编译)、非检查性异常(运行) 三、异常的处理 trycatch 四、异常怎么用? 目的提醒/警告使用者注意异常出现 抛出异常: throw(代码块中) Throws(函数定义中) 五、特点? Trycatch ●catch块,是用来捕获并处理try块抛出的异常的代码块。 没有try块,catch块不能单独存在。 我们可以有多个catch块,以捕获不同类型的异常 ●如果程序抛出多个不同类型的异常,我们需要多个catch()语句来处理。 从子类开始、然后再往父类 ●和特殊异常类相关联的catch()块必须写在和普通异常类相关联的catch()之前。 ●try{…}和catch(){…}之间不可以添加任何代码 Finally: ●finally语句放在try…catch语句后 ●fianlly语句中的代码块不管异常是否被捕获总是要执行 ●通常在finally语句中可以进行资源的清除操作,如: 关闭打开文件、删除临时文件、关闭数据库连接 ●对应finally代码中的语句,即使try代码块和catch代码块中使用了return语句退出当前方法或般若break跳出某个循环,相关的finally代码块都有执行。 ●当try或catch代码块中执行了System.exit(0)时,finally代码块中的内容不被执行 注: 关于finally的一些常见题目: publicstaticvoidmain(String[]args){ System.out.println(add()); } publicstaticintadd() { inta=0; try { return2; }catch(Exceptione) { } finally { return3; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 基础 总结