达内JAVA初高级阶段笔记总结Word下载.docx
- 文档编号:20391379
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:43
- 大小:38.79KB
达内JAVA初高级阶段笔记总结Word下载.docx
《达内JAVA初高级阶段笔记总结Word下载.docx》由会员分享,可在线阅读,更多相关《达内JAVA初高级阶段笔记总结Word下载.docx(43页珍藏版)》请在冰豆网上搜索。
&
Day1:
7.JDK版本:
JAVAME微型版
手机软件开发
JAVASE标准版
桌面应用程序
JAVAEE企业版
企业级应用开发
8.java语言的特点:
1.简单
没有C、C++中的头文件,指针,运算符重载
2.面向对象
可以开发出较大型的应用程序
3.分布式
通过网络访问应用程序,突破空间限制
4.健壮性(编译时错误检测)
消除有出错倾向的状态:
指针
5.安全性(蠕虫病毒)
禁止运行时堆栈溢出、内存空间未授权读写
6.可移植性
JVM
9.java环境变量配置:
JAVA_HOME:
JDK安装目录,方便在后面两个环境变量的配置中直接被调用即可
path:
%JAVA_HOME%\bin列出可执行文件的搜索路径
classpath:
%JAVA_HOME%\lib\tools.jar
%JAVA_HOME%\lib\dt.jar
.(当前路径)
是java加载类的路径,只有在classpath设置的路径中的类才能被加载
在CMD下运行:
1.java
2.javac
3.java-version
10.JDK安装目录介绍:
Bin编译器和工具
Demo演示
DocsHTML格式的类库文档
Include用于编译本地方法的文件
Jrejava运行环境文件
Lib类库文件
Src类库源文件
11.第一个java程序:
1.文件名与公共类的名字要一致
2.一个文件中可以有多个类,但是只能有一个公共类
3.使用“javac类名.java”来编译源程序
4.使用“java类名”来执行java程序
5.main方法是程序运行的入口,方法必须按照如下书写方式:
publicstaticvoidmain(String[]a){
包名的命名规范:
公司的域名倒写+项目名+模块的名字
12.带包编译:
带包编译:
javac-d./HelloWorld.java
带包运行:
javacom.blues.javabase.day1.HelloWorld
注意:
在同一个包下面不能有同名的类
13.练习:
开发一个Java程序打印出下列信息:
姓名性别年龄毕业学校户籍
14.import的注意事项:
importjava.util.*;
importjava.sql.*;
System.out.println(newjava.util.Date());
15.java的注释:
1.单行注释:
//
2.多行注释:
/**/
3.文档注释
/***/
通过javadoc命令将文档注释提取出来生成java帮助文档:
javadoc-author-version-d./apiHelloWorld.java
16.压缩命令:
Jar-cvffirst.jar完整类名
解压命令:
Jar-xvffirst.jar
运行jar文件中的程序:
java-classpathfirst.jara.b.c.HelloWorld
17.java命令行参数:
publicstaticvoidmain(String[]args){
//打印当前时间
System.out.println(args[0]);
System.out.println(args[1]);
}
运行时:
javacom.blues.javabase.day1.HelloWorldblueswang
18.main方法运行要点:
可执行程序必需要main方法
只能public和static调换位置
args可以是任意的名字
args[0]代表第一个命令行参数
注意:
运行时一定要有命令行参数输入,否则会有数组下标越界异常出现}
Day2:
19.Java标示符:
1,什么是标示符?
在java语言中用来给一个类、变量或方法命名的符号
2,标示符的命名规则:
1.以字母,“_”或“$”符号开头
2.可以包含字母、“_”、“$”和数字符号
3.大小写敏感
4.不能与保留关键字冲突
5.没有长度限制
3.命名规范:
1.类名,接口名:
每个单词的首字母应该大写
2.字段、方法以及对象:
第一个单词首字母应小写,其他单词首字母大写
3.常量:
全部用大写字母表示
4.Java包(Package):
它们全都字母小写
5.命名要做到见名知意
20.关键字列表:
Abstract抽象booleanbreakbytecasecatchcharclass
continuedefault默认值dodoubleelseextends继承enum枚举falsefinalfinallyfloatforifimplements实现接口importinstanceof实例intinterface接口longnativenewnullpackageprivate私有的protectedpublicreturnshortstatic静态的superswitchsynchronized同步的thisthrowthrowstransienttruetryvoidvolatilewhile
保留字:
const,gotoJava中truefalse是boolean类型的字面量
所有的关键字都是小写,friendly,string,sizeof不是java的关键字
21.转义字符描述
\ddd1到3位8进制数所表示的字符(ddd)
\uxxxx1到4位16进制数所表示的字符(xxxx)
\’单引号字符
\’’双引号字符
\\反斜杠字符
\r回车
\n换行
\f走纸换页
\t横向跳格
\b退格
22.java数据类型:
1.基本数据类型(8种)
Byte1、short2、char2、int4、long8、float4、double8
boolean
*java默认浮点数为double
2.引用数据类型
数组、类、接口都属于引用数据类型
23.补码:
原码取反加1
整数在内存中的表示:
1.正整数:
原码
2.负整数:
补码
----------------------------------------------------------------------
对象就像一个充满氢气的气球,我们没有办法直接去得到它,要想对它的使用都必须通过一根连着它的绳子来访问,
这根绳子就是对象的引用。
一根绳子同时只能连着一个气球,就像一个引用同时只能指向一个对象;
可以用多根绳子同时连接一个气球,
也就是可以有多个引用同时指向同一个对象;
如果某个气球没有任何绳子连着它,那它就会飞走,同样,某个对象如果没有引用连接它,
它就会成为垃圾,等着被java的垃圾收集器回收;
如果某根绳子没有连接任何气球,那么它就是一个空引用,对它的访问没有意义。
同样,某个引用如果没有指向对象,那么对它的访问将会抛出NullPointerException
24.练习:
判断下列语句中的a和b的值是否相等:
(1)inta=0;
intb=‘0’;
\\a=0,b=48
(2)inta=0;
charb=‘\u0000’;
\\a=0,b=null
(3)inta=123;
charb='
\u007B'
;
\\a=123,b={
(4)inta=0x123;
charb=123;
\\a=291,b={
(5)inta=3+‘5’;
charb=’8’;
\\a=56,b=8
(6)inta=‘3’+’5’;
charb=‘8’;
\\a=104,b=8
(7)chara=‘\u0000’;
charb=‘0’;
\\a=null,b=0
25.逻辑运算符:
||!
1.支持短路运算
&
:
左边表达式为false,右边表达式不会被执行
||:
左边表达式为true,右边表达式不会被执行
位运算符:
、|、~、^、<
<
、>
>
、>
1.~:
取反。
1变0,0变1
2.&
按位与。
有0为0
3.^:
按位异或。
相同为0,不同为1
4.|:
按位或。
有1为1
:
将一个数的各二进制位全部右移若干位,移到右端的低位被舍弃,最高位则移入原来高位的值
例如:
a=00110111,则a>
2=00001101
b=11010011,则b>
2=11110100
一个数的各二进制位无符号右移若干位,与运算符>
相同,移出的低位被舍弃,但不同的是最高位都补0。
如:
a=00110111,则a>
b=11010011,则b>
2=00110100
用来将一个数的各二进位全部左移若干位。
高位左移后溢出舍弃,低位补0
例如:
a=00001111,则a<
2=00111100。
\\\使用最快的算法求2的3次方:
2<
2
26.类型转换:
1.隐式自动转换:
将占用空间小的赋值给占用空间大的
2.强制类型转换:
将占用空间大得赋值给占用空间小的
doubled=0.1;
floatf=(float)d;
27.switchcase:
说明:
1.表达式expression可以是以下四种基本数据类型和枚举类型(byte,short,int,char)
2.case子句中的值必须是常量,而且所有case子句中的值应是不同的。
3.case通常与break语句联用,以保证多路分支的正确实现,多个case可以公用一组执行语句。
28.break;
continue;
break语句,跳出它所在的循环语句或switch语句,并从紧跟该循环语句或switch语句后的第一条语句处执行
continue:
continue语句,用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环
Day3:
29.数组声明、初始化:
int[]arr2={1,2,3,4,5};
int[]a=newint[5];
int[]b={1,2,3,4};
int[]c=newint[]{1,2,3,4};
int[]d=newint[3]{1,2,3};
//不合法
------------------------------------------------
char[]缺省值为0所对应的字符
boolean[]缺省值为false
User[]自定义类型数组缺省值为null
求数组的长度:
ar.length属性
30.二维数组循环打印:
for(intm=0;
m<
h.length;
m++){
for(intn=0;
n<
h[m].length;
n++){
System.out.print(h[m][n]);
System.out.println();
}
31.数组拷贝:
System.arraycopy(Objectsrc,
intsrcPos,
Objectdest,
intdestPos,
intlength);
src-源数组。
srcPos-源数组中的起始位置。
dest-目标数组。
destPos-目标数据中的起始位置。
length-要复制的数组元素的数量
32.方法调用过程:
1.为被调用方法分配临时存储空间
2.将实参复制一份传给形参
3.跳入被调用方法中执行
4.方法体执行完成或遇到return语句,返回主方法,同时被调用方法的临时存储空间被收回
33.编写类的方法:
先抽象再封装
抽象:
抽取出主要内容,忽略次要内容。
主要内容指一类事物所具有的共性
封装:
属性私有化,提供公共的get、set方法
封装的好处:
1.数据更安全,可以在方法内增加验证
2.可以让调用者不去关心实现的细节,重用
34.构造方法:
1.没有返回值
2.方法名与类名一致
3.在创建对象的时候被调用
4.如果本类不写任何构造方法,系统会默认提供一个无参的构造方法。
5.如果自定义了构造方法,那么系统提供的无参构造就会失效
35.方法的重载:
方法名相同,参数列表不同
参数列表:
1.参数类型2.参数个数
系统会根据调用时传递的参数自动找到匹配的同名方法进行调用
36.this关键字:
1.当前类或当前对象
2.this()调用当前类的无参构造,一定要在方法的第一句进行调用,调用的过程只能是单向调用
37.参数的传递:
1.基本数据类型按值传递
2.引用数据类型按引用传递
Day4
38.继承概念:
使用已经存在的类的定义作为基础来建立新类的技术,新类的定义可以增加新的属性和新的方法,但是不能选择性的继承父类
继承优点:
1.可以复用代码,缩短开发周期,节约成本
举例:
汽车类(颜色、牌子、方向盘、轮胎)
轿车类(后备箱)
卡车类(货箱)
汽车->
轿车->
卡车***特化***
轿车(颜色、牌子、方向盘、轮胎、后备箱)
卡车类(颜色、牌子、方向盘、轮胎、货箱)
轿车->
卡车->
汽车***泛化***
39.继承:
子类可以继承父类中被public、protected修饰的属性和方法
private的属性和方法不可以被继承
子类的构造方法第一句一定是调用父类中的构造方法
40.super关键字:
1.调用父类的方法或属性,前提是方法和属性在子类中是可见的
2.super()调用父类中的无参构造
3.在调用父类构造方法的时候必须放在第一句
41.方法的覆盖:
一定发生在继承关系中
1.方法名、参数列表、返回值全部一致
2.子类的访问修饰符大于或等于父类的访问修饰符
3.子类的返回值类型可以是父类返回值类型的子类型(JDK1.5以上版本)
42.多态:
是允许将父对象引用一个子对象的技术
Employeeemployee=manager;
允许父类对象来引用子类对象,但是实际运行过程中调用的是子类的方法或者属性
编译时调用父类方法,运行时调用的是实际引用类型的方法,这种现象叫做动态绑定
多态现象:
运行时多态、编译时多态
1.编译时多态:
方法的重载(不建议举例)
2.运行时多态:
方法的覆盖(建议举例)
属性有没有多态性,有
1父类静态
3父类实例
4父类构造
2子类静态
5子类实例
6子类构造
instanceof判断一个对象是否属于指定的类,判断依据运行时该引用变量所引用的对象的类
43.练习
String类是否可以被继承
Day5
44.static关键字:
1.修饰变量,变量被所有实例所共享
2.修饰方法,方法内不可以引用非静态成员;
但是非静态方法可以引用静态成员
45.单例模式:
一个类的实例只能存在一个
a.构造方法私有化
1.懒汉式,缺点多线程访问不安全
publicstaticSingleton2getInstance(){
if(st==null){
st=newSingleton2();
returnst;
}else{
}
2.恶汉式,缺点可能造成空间的浪费
privatestaticSingletonst1=newSingleton();
46.abstract类:
1.如果一个方法没有方法体,那么该方法一定为abstract方法
2.如果一个类中有一个abstract的方法,那么该类一定为abstract类
3.abstract类不能被实例化
Abstracta=newMyClass();
//MyClassextendsAbstract
47.接口:
1.接口是一个特殊的抽象类
2.接口中的方法都是public的抽象方法
3.一个类可以实现多个接口
InterfaceTestimplementsMyInterfaceA,MyInterfaceB
4.接口中的所有属性都会自动声明为finalstatic(全局常量)
finalstaticinta=10;
publicabstractvoidshowA();
修饰符类内部同一个包子类不同包
publicYYYY
protectedYYYN
缺省YYNN
privateYNNN
(基本数据类型都可以都可以用==比较)
==与equals的区别:
在Object类中equals(Objectobj)方法与==的比较结果一致的
但是equals是一个方法可以被重写,例如在String类中equals比较的就是字符串的内容
包装类用于基本数据类型的区别:
1.包装类是对基本数据类型的一种扩展,定义了很多类型之间的转换方法
2.针对一些集合类型,他们要求我们存入集合的是Object,
那么基本数据类型不能满足要求,就只能放包装类的对象
Day6
异常与错误:
1.异常是在一个程序执行过程中出现的一个事件,它中断了正常指令的执行
2.偏离了可接受代码的一个动作或实例就是错误
异常结构的分类:
Throwable
ErrorException
未检查异常(运行时)已检查异常(编译时)
48.对异常处理方式-捕获:
try{
<
可能出现异常的代码块>
}catch(Exceptione){
如果try中代码出现异常,则执行catch中的代码>
**注意:
catch()代码块可以存在多个,但是catch中的异常类型应该由小到大
}finally{
无论有无异常都会被执行的代码块>
try{}finally{}可以搭配使用
编译时异常举例:
FileInputStreamfin=newFileInputStream("
./a.txt"
);
上面代码在编译时出错,必须对可能发生的异常进行处理,否则代码编译不通过
对异常的处理-抛出:
throws表明当前函数不处理出现的异常,将异常抛出,交给调用方去处理(处理的方式:
捕获、继续抛出)
throw关键字,表明被捕获的异常没有经过处理直接抛出
publicstaticStringcompare(Stringstr)throwsException{
try{
if(str.equals("
abc"
)){
return"
}else{
returnstr;
}
}catch(Exceptione){
throwe;
自定义异常:
classMyExceptionextendsException{
publicMyException(Stringmessage){
super(message);
在继承关系中,子类覆盖父类的方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 高级 阶段 笔记 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)