高淇java基础教程笔记.docx
- 文档编号:16437674
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:40
- 大小:3.54MB
高淇java基础教程笔记.docx
《高淇java基础教程笔记.docx》由会员分享,可在线阅读,更多相关《高淇java基础教程笔记.docx(40页珍藏版)》请在冰点文库上搜索。
高淇java基础教程笔记
第一讲:
JAVA如何学习
第二讲:
计算机语言发展史——java历史/核心优势
计算机语言发展历程:
逐渐趋向人类能理解语言
Ø机器语言:
即计算机能理解语言。
由0和1代码构成。
Ø汇编语言:
使用英文缩写助记符来表达基本计算机操作,重要通过操作指令来进行对计算机操作。
Ø高档语言:
面向过程、面向对象
Java简史:
ØSUN(StanfordUniversityNetwork)公司
ØGreen项目
ØJava创造人:
JamesGosling
Ø发展历史:
✧1991年,SUN公司Green项目,Oak
✧1995年,推出java测试版
✧1996年,JDK1.0
✧1997年,JDK1.1
✧1998年,JDK1.2,大大改进了初期版本缺陷,是一种革命性版本,改名为Java2
✧,J2SE5.0(1.5.0)
✧,J2SE6.0(1.6.0)
✧,JAVASE7.0
Ø互联网发展(java发展机遇)
ØJAVA核心优势:
----跨平台
ØJAVA各版本和体系构造
✧J2EE(JAVAEE):
JAVA2EnterpriseEdtion——定位在服务器端应用
✧J2SE(JAVASE):
JAVA2StandardEdtion——定位在个人计算机上应用
✧J2ME(JAVAME):
JAVA2MicroEdtion——定位在消费性电子产品应用上。
第三讲:
JDK/JRE/JVM区别
ØJDK&JRE&JVM(包括关系)
✧JDK——JavaDevelopment’kit:
java开发工具包
✧JRE——JavaRuntimeEnvironment:
java运营环境
✧JVM——JavaVirtualMachine:
JAVA虚拟机
✧
ØJVM和java跨平台特性
✧
ØJAVA环境变量配备
✧
✧测试
第四讲:
第一种java程序/第五讲
Ø第一种java程序
✧代码编写
✧编译
✧执行
Ø程序中也许浮现错误
✧“java”不是内部或外部命令,也不是可运营程序或解决文献。
✧Java区别大小写。
Ø总结和提高
✧Java对大小写敏感。
✧核心字class表白java程序中所有内容包括在类中,java是一种面向对象语言。
✧Main()办法是java应用程序入口办法。
✧在java中,用花括号划分程序各个某些,任何办法代码都必要以”{“开始,以”}“结束,由于编译器忽视空格,因此花括号风格不受限制。
✧Java一种语句可以跨多行,其中每个语句必要以分号结束。
✧一种源文献可以有各种class
✧一种源文献中至多只能有一种public类声明,其他类个数不限,如果源文献中包括一种public类源文献名必要和它中定义public类名相似,且以”java“为扩展名。
Ø编程风格
✧注意缩进
✧成对编程——括号、引号都应当写完后,再往里加内容
✧见名知意
ØJava注释
✧注释就是程序员为读者作阐明,是提高程序可读性一种手段
✧注释不会出当前字节码文献中。
即java编译器编译时会跳过注释语句
✧//单行注释(注释内容从//到本行结束)
✧/**/多行注释——注释不能嵌套
Ø惯用dos命令
✧Cd进入一种目录
✧Cd..:
变化目录
✧Dir:
查看目录里面内容
✧上下键:
查找敲过命令
✧Tab键:
命令自动补齐
第六讲:
标记符/Unicode和GBK各种字符集关系
Ø标记符(identifier)
✧作用——给变量、类和办法命名
✧Java标记符命名规则:
◆标记符必要以字母、下划线_、美元符$开头。
◆标记符其他某些可以是字母、下划线_、美元符$和数字任意组合。
◆Java标记符大小写敏感,且无长度限制。
◆不可以是java核心字
◆注:
java不采用普通语言使用ASCII字符集,而是采用unicode这样原则国际字符集,因而这里字母含义:
英文、中文等。
Ø字符集简介
✧ISO8859-1——西欧字符集
✧BIG5——台湾五大码,表达繁体字
✧GB2312——大陆最早使用简体中文字符集
✧GBK——GBK2312扩展,可以表达繁体字
✧GB18030——最新GBK扩展,中华人民共和国所有非手持/嵌入式计算机系统强制性实行原则。
可以表达中文、维吾尔文、藏文等中华民族字符。
✧Unicode——国际通用字符集
Øjava核心字
第七讲:
数据类型/进制转换/编程中L问题
Øjava是一种强类型语言,每个变量都必要声明其类型
✧整型变量
◆Java语言整型常量表达形式:
—十进制整数
—八进制整数
—十六进制整数
◆Java语言整型常数默以为int型,声明long型常量可以加”l“或”L“(建议使用大写,小写容易误以为数字1)
✧进制转换
◆转换代码:
◆System.out.println(Intger.toBinaryString(需要转换变量));//二进制
◆System.out.println(Intger.toOctalString(需要转换变量));//八进制
◆System.out.println(Intger.toHexString(需要转换变量));//十六进制
✧如果数据大小没有超过byte/short/char表述范畴,则可以自动转型
第八讲:
浮点数/浮点数误差问题
Ø浮点型
✧Float类型又称作单精度类型,尾数可以精准到7位有效数字,在诸多状况下,float类型精度很难满足需求。
✧Double表达这种类型值精度是float类型两倍,又被称为双精度,绝大多某些应用程序都采用double类型。
✧Java浮点类型常量有两种表达形式
—十进制形式,如:
3.14
—科学记数法形式,如:
134e2、314E2、314E-2
✧浮点数值默以为double类型。
要将其变为float类型,需要在背面增长F/f如:
1.3f
✧总结
—
—默认类型是double
—浮点数存在舍入误差,诸多数字不能精准表达,如果需要进行不产生舍入误差精准数字计算,需要使用BigDecimal类。
—最佳避免比较中使用浮点数
第九讲:
char–字符串入门
Ø字符型char
✧单引号用来表达字符常量。
如:
’A’,是一种字符,它与”A“是不同,”A“表达具有一种字符字符串。
✧Char类型用来表达unicode编码表中字符
✧Unicode编码被设计用来解决各种语言所有文字,它占2个字节,可容许有65536个字符;
✧Java语言容许使用转义字符‘\‘来将其后字符转变为其他含义。
✧Char是在0-65535范畴,运算时直接当作整数来运算。
✧可以把0-65535之间整数直接转型为char
Ø布尔类型boolean(一位,不是一种字节)
✧Boolean类型有两个值,true和false
✧Boolean用来判断逻辑条件,普通用于程序流程控制
第十讲:
基本数据类型自动转换/强制转型
Ø自动类型转换
⏹容量小数据类型可以自动转换为容量大数据类型(容量表达类型范畴,而不是字节数)
⏹特例:
可以将整型常量直接赋值给byte,short,char等数据类型变量,而不需要进行强制类型转换,只要不超过其有效范畴。
⏹
Ø强制类型转换
✧强制类型转换,又称为造型,用于显式转换一种数值类型,在有也许丢失信息状况下进行转换是通过造型来完毕,但也许导致精度减少或溢出。
✧当将一种类型强制转换成另一种类型,而又超过了目的类型表达范畴,就会被截断成为一种完全不同值。
✧
Ø基本类型转换时常用错误和问题
✧操作比较大数时,要留意与否溢出特别是整数操作时
✧L和l问题——不要命名名字为l变量、long类型使用大写L不要用小写l
Ø运营时表达式中类型提高问题
✧所有一元运算符(+-*/%),都会有类型提高问题
第十一讲:
JDK7.0新特性/二进制整数/下划线
Ø二进制整数/下划线
✧表达形式:
0b开头;如表达byte表达1为:
0b00000001
✧若觉得查看不以便可以使用下划线分隔符(惯用于写某些比较长数字)
✧如:
123_321_456等
第十二讲:
变量-成员变量-局部变量/常量-命名规范
Ø变量
✧Java是一种强类型语言,每个变量都必要声明其类型。
✧Java变量是程序中最基本存储单位,其要素涉及变量名,变量类型和作用域。
✧变量在使用前必要对其声明,只有在变量声明后来才干为其分派相应长度存储单元,声明格式为:
typevarName[=value][{,varName[=value]}];
✧注意事项:
——每个变量均有类型,类型可以是基本类型,也可以是引用类型。
——变量名必要是合法标记符。
Ø变量声明
✧变量声明举例:
inta;booleanvalue;doublesalary;
✧可以在一行中声明各种变量:
intx,y,z;//bothareintegers
——不倡导这种风格,逐个声明每一种变量可以提高程序可读性。
✧可以将变量声明和初始化放在同一行中,如:
intage=18;
Ø局部变量和实例变量
✧局部变量:
办法或语句块内部定义变量
——在使用前必要声明和初始化(赋初值)。
✧实例变量(成员变量):
——办法外部、类内部定义变量(属性)
——如果不自行初始化,它会自动初始化该类型默认初始值(数值类型变量初始化成0或0.0,字符型变量初始化值是16位0,布尔型默认是false)\u0000
Ø常量final
✧其值无法变化量
✧只能被初始化一次(只要赋值则其值无法变化)
✧常量命名普通使用全大写,如果单词较多则使用下划线进行分隔如:
MAX_VALUE
Ø命名规范
✧所有变量、办法、类名:
见名知意
✧变量、办法名:
✧——首字母小写和驼峰原则如:
run(),runRun(),age,ageNew
✧常量:
——大写字母和下划线:
MAX_VALUE
✧类名:
——首字母大写和驼峰原则如:
Man,GoodMan
第十三讲:
运算符——算术/逻辑/位运算/扩展运算符
Ø
Ø算术运算符
✧二元运算符类型提高(有两个操作数)
◆整数运算:
——如果两个操作数有一种为long,则成果也为long
——没有long时,成果为int,虽然操作数全为short、byte,成果也是int
◆浮点运算
——如果连个操作数有一种为double,则成果为double
——只有两个操作数都是float,则成果才为float
✧一元运算符(++,--)
——如:
inta=3;
——如:
intb=a++;//执行完后,b=3,先给b赋值,再自增
——如:
intc=++a;//执行完后,c=5,先自增,再给b赋值
Ø逻辑运算符(只能操作布尔变量)
✧逻辑与:
&&只要有一种为false则为false,只有全为true才会是true(短路问题)
✧逻辑或:
||只要有一种为true则为true,只有全为false才会是false(短路问题)
✧逻辑非:
!
相反
✧逻辑与和逻辑或采用短路方式。
从左到右计算,如果拟定值则不会再计算下去。
Ø位运算符(按位操作)
✧对进制进行操作(0是false,1为true)
✧&——按位与:
只要有一种为0则为0,只有全为1才会是1
✧|——按位或:
只要有一种为1则为1,只有全为0才会是0
✧^——按位异或:
相异(两个值不同样),相似则为0,不同则为1
Ø扩展运算符
✧
第十四讲:
字符串连接—三元运算符—优先级
Ø字符串连接符+
✧“+”运算符两则操作数中只要有一种字符串(string)类型,系统会自动将另一种操作数转换为字符串然后再进行连接。
Ø三元运算符
✧语法格式:
——x?
y:
z
✧——其中x为boolean类型表达式,先计算x值,若为true,则整个三目运算成果为表达式y值,否则整个运算成果为表达式z值。
✧经惯用来代替简朴if–else判断!
Ø运算符优先级
✧表达式里面优先级使用小括号来组织
第十五讲:
eclipse使用
第十六讲:
eclipse使用
第十七讲:
if语句—单选取—双选取—多选取构造
Ø控制语句
✧选取
✧顺序
✧循环
ØIf单选取构造
Ø
ØIf-else双选取构造
Ø
ØIf-elseif-else多选取构造
Ø
第十八讲:
switch语句—基本用法—穿透现象
Ø
第十九讲:
JDK7.0新特性—增强switch语句
Ø增强switch语句
✧JDK7.0之前:
表达式成果只能是int(可以自动转为byte、short、char),枚举类型
✧表达式成果可以是:
字符串如下代码所示:
✧
第二十讲:
while语句——dowhile语句
ØWhile循环语句
✧——在循环刚开始时,会计算一次“布尔表达式”值,若条件为真,执行循环体。
而对于日后每一次额外循环,都会在开始前重新计算一次。
✧——语句中应有使循环趋向于结束语句,否则会浮现无限循环(死循环)。
✧
ØDo—while语句
Ø
第二十一讲:
for语句
ØFor语句
Ø
Ø课堂练习代码
Ø1.用while和for循环分别计算100以内奇数和偶数和,并输出。
Ø
Ø2.用while和for循环输出1—1000之间能被5整除数,且每行输出三个。
Ø
第二十二讲:
综合练习——九九乘法表
Ø打印输出九九乘法表
Ø
第二十三讲:
break和continue——带标签break和continue
Ø在任何循环语句主体某些,均可用break控制循环流程,break用于强行退出循环,不执行循环中剩余语句。
(break语句还可用于多分支语句switch中)。
ØContinue语句用于在循环语句体中,用于终结某次循环过程,即跳过循环体中尚未执行语句,接着进行下一次与否执行循环鉴定。
Ø
Ø带标签break和continue
✧Goto核心字(理解即可)
第二十四讲:
办法—办法本质—形参/实参—return语句
ØJava办法类似于其他语言函数,是一段用来完毕特定功能代码片段,声明格式:
[修饰符1修饰符2…]返回值类型办法名(形式参数列表){
Java语句;……
}
✧形式参数:
在办法被调用时用于接受外界输入数据
✧实参:
调用办法时实际传给办法数据
✧返回值:
办法在执行完毕后返还给调用它环境数据
✧返回值类型:
事先商定返回值数据类型,如:
无返回值,必要给出返回值类型void。
✧Java语言中使用下述形式调用办法:
对象名.办法名(实参列表)
✧实参数目,数据类型和顺序必要和所调用办法声明形参列表匹配
✧Return语句终结办法运营并指定要返回数据
✧Java中进行办法调用中传递参数时,要遵循值传递原则:
——基本类型传递是该数据值自身,引用类型传递是对对象引用,而不是对象自身。
✧Java中只有值传递!
第二十五讲:
递归算法
Ø递归算法
✧递归自身是一种常用解决问题办法,即把问题逐渐简朴化。
递归基本思想就是“自己调用自己”,一种递归技术办法将会直接或者间接调用自己。
✧递归算法涉及两个某些
✧——定义递归头//什么时候不调用自身办法,如果没有递归头,将会进入死循环。
✧——递归体//什么时候需要调用自己
第二十六讲:
API文档—package概念
ØAPI是什么?
——ApplicationProgrammingInterface应用程序编程接口
ØPackage包用法(作用类似于文献夹)
✧为什么需要package?
——为理解决类之间重名问题
——为了便于管理类:
适当类位于适当包!
✧Package怎么用?
——普通是类第一句非注释性语句。
——用打包语句:
package包名;
——包名:
域名倒着写即可再加上模块名,并与内部管理类
✧注意事项:
——写项目时都要加包,不要使用默认包
——com.gao和com.gao.car,这两个包没有包括关系,是两个完全独立包,只是逻辑上看起来后者是前者一某些
ØJDK中重要包
✧Java.lang——包括某些java语言核心类
✧Java.awt——包括了构成抽象窗口工具集各种类用于(GUI)
✧J——包括执行与网络有关操作类
✧Java.io——包括能提供各种输入/输出功能类
✧Java.util——包括某些使用工具类
ØAPI文档生成
✧特殊注释:
——文档注释:
/**
✧使用JAVADOC生成API文档——解决问题:
代码和文档分离
✧惯用java注释标签:
✧——@auther作者
✧——@version版本
✧——@param参数
✧——@return返回值含义
✧——@throws抛出异常描述
第二十七讲:
键盘输入——scanner类使用—import使用
ØScanner类(实现计算机与顾客交互)
✧Scanners=newScanner(System.in);//系统输入
ØImport导入包
第二十八讲:
面向对象——面向过程和面向对象本质区别
Ø面向对象——以对象方式,组织代码,封装数据
✧
Ø面向对象与面向过程区别
第二十九讲:
面向对象—面向对象方式思考问题
Ø高组织管理层
第三十/三十一讲:
面向对象—类和对象关系
Ø面向对象编程(OOP)本质:
——以类方式组织代码,以对象方式组织(封装)数据
面向对象思维:
OOA(分析),OOD(设计)
Ø对象:
详细事物
Ø类:
是对对象抽象(抽象抽出象[相似]某些)类似于分类
Ø先有详细对象,然后抽象各个对象之间某些,归纳出类通过类再结识其她对象。
Ø对象和类总结:
✧对象和类关系:
特殊到普通,详细到抽象
✧类:
class
✧对象:
object,instance(实例)。
✧类可以当作一类对象模版,对象可以当作该类一种详细实例
✧类是用于描述同一类形对象一种抽象概念,类中定义了这一类对象所应具备静态和动态属性。
✧对象是java程序核心,在java程序中“万事万物皆对象”。
✧JDK提供了诸多类供编程人员使用,编程人员也可以定义自己类。
第三十一讲:
面向对象—程序执行过程内存分析
Ø引用类型:
(在没有进行赋值之前系统默以为null)
——java语言中除基本类型之外变量类型都称为引用类型。
ØJava中对象是通过引用reference(地址)对其操作。
Ø类属性:
(代表静态数据)
●属性:
field,或者叫成员变量
●属性用于定义该类或该类对象包括数据或者说静态属性
●属性作用范畴是整个类体
●在定义成员变量时可以对其初始化,如果不对其初始化,java使用默认值对其初始化。
(数值:
0,0.0char:
\u0000,Boolean:
false所有引用类型:
null)
●属性定义格式:
——[修饰符]属性类型属性名=[默认值]
Ø类办法:
(动态行为)
●面向对象中,整个程序基本单位是类,办法是从属于类。
●办法定义格式:
——[修饰符]办法返回值类型办法名(形参列表){
//n语句办法体
}
●Java中办法参数传递是:
值传递!
Ø变量作用域
●
●局部变量必要对其进行初始化,实例变量则不必要
Ø内存分析
●栈:
自动分派持续空间,后进先出
——存储:
局部变量
●堆:
不持续空间
——存储new出来对象
●办法区:
(属于堆里面一种特殊示例)
——存储:
类信息(代码-属性、办法)、static变量、常量池(字符串常量)等。
●操作对象就是操作地址
Ø代码(如下)
Ø
Ø
第三十三讲:
虚拟机内存管理—垃圾回收机制
Ø垃圾回收机制(garbagecollection)
✧对象空间分派:
✧使用new核心字创立对象即可
✧对象空间释放
✧将对象赋值null即可,垃圾回收器将负责回收所有“不可达”对象内存空间。
✧要点:
——程序员无权调用垃圾回收器
——程序员可以通过System.gc().告知GC运营,但是java规范并不能保证立即运营。
——finalize办法,是java提供应程序员用来释放对象或资源办法,但是尽量少用。
第三十四讲:
构造办法
Ø构造办法(构造器):
cinstructor
Ø构造办法用于构造该类对象(实例)。
Ø格式:
——[修饰符]类名(形参列表){
//n语句;
}
Ø是一种特殊办法:
——通过new核心字调用
——构造器虽然有返回值,但是不能定义返回类型(返回值类型必定是本类),不能在构造器里调用return。
——如果咱们没有定义构造器,则系统会自动定义一种无参构造函数。
如果已定义则编译器不会添加!
——构造器办法名必要和类名一致!
——作用:
构造该类对象,经常也用来初始化对象属性。
第三十五讲:
办法重载—构造办法重载
Ø重载(overload):
一种名字相应各种办法
✧办法重载是指一种类中可以定义有相似名字,但参数不同各种办法。
调用时,会依照不同参数表选取相应办法。
✧两同三不同:
——同一种类,同一种办法名
——不同:
参数列表不同(类型、个数、顺序不同)
✧只有返回值不同不构成办法重载
✧只有形参名称不同,不构成办法重载
✧与普通办法同样,构造办法也可以重载
第三十六讲:
static变量和办法——内存分析static
ØStatic核心字
✧在类中,用static声明成员变量为静态变量:
或者叫做类属性,类变量。
✧它为该类公用变量,属于类,该类所有实例共享,在类被载入时被显式初始化。
✧对于该类所有对象来说,static成员变量只有一份。
被该类所有对象共享。
✧可以使用“对象.类属性”,来调用。
但是普通都是用“类名.类属性”。
✧Static变量置于办法区中!
✧用static声明办法为静态办法或者叫类办法
✧不需要对象,就可以调用(类名.办法名)
✧在调用该办法时,不会将对象引用传递给它,因此在static办法中不可访问非static成员。
ØStatic内存分析
Ø
Ø
第三十七讲:
this隐式参数—内存分析
ØThis核心字(是指向调用对象自身引用名)
✧在普通办法中,this总是指向调用该办法对象
✧构造办法中,this总是指向正要初始化对象
✧This不能用static办法
✧常用用法:
——引用类隐藏数据域
第三十八讲:
继承——基本概念
Ø继承
✧类是对对象抽象,继承是对某一批类抽象,从而实现对现实世界更好建模。
(OOD面向对象设计角度分析)。
✧提高代码复用性(OOP面向对象编码角度分析)
✧extends意思是“扩展”。
子类是父类扩展
Ø继承小结:
✧子类继承父类,可以得到父类所有属性和办法(除了父类构造办法)。
✧Java中只有单继承,没
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 基础教程 笔记