Java相关课程系列笔记之一Java学习笔记 - 图文
更新时间:2023-12-15 10:00:01 阅读量: 教育文库 文档下载
.
Word范文
Java学习笔记
Java相关课程系列笔记之一
.
笔记内容说明
4月18日的五天Java训练营(刘英谦老师主讲,占笔记内容10%); Java基础和面向对象(刘苍松老师主讲,占笔记内容40%);
Java SE核心 I 和Java SE 核心 II(范传奇老师主讲,占笔记内容40%); 其他视频及书籍资料(占笔记内容10%)
Word范文
.
目 录
一、 Java技术基础 .......................................................... 1
1.1编程语言 ............................................................. 1 1.2 Java的特点 .......................................................... 1 1.3 Java开发环境 ........................................................ 1 1.4 Java开发环境配置 .................................................... 2 1.5 Linux命令与相关知识 ................................................. 2 1.6 Eclipse/Myeclipse程序结构 ........................................... 3 二、 Java语言基础 .......................................................... 4
2.1基础语言要素 ......................................................... 4 2.2八种基本数据类型 ..................................................... 4 2.3常量和变量 ........................................................... 5 2.4运算符与表达式 ....................................................... 5 2.5编程风格 ............................................................. 7 2.6流程控制语句 ......................................................... 7 2.7数组 ................................................................. 8 2.8字符串 ............................................................... 8 2.9方法三要素 ........................................................... 9 2.10插入排序 ............................................................ 9 2.11冒泡排序 ............................................................ 9 2.12冒泡排序:轻气泡上浮的方式 ......................................... 10 2.13二分法查找 ......................................................... 10 2.14 Java系统API方法调用 .............................................. 11 2.15二进制基础 ......................................................... 11 2.16 Java基础其他注意事项 .............................................. 11 三、 面向对象 .............................................................. 13
3.1类 .................................................................. 13 3.2对象 ................................................................ 13 3.3包 .................................................................. 13 3.4方法及其调用 ........................................................ 14 3.5引用 ................................................................ 14 3.6访问控制(封装) .................................................... 14 3.7构造器 .............................................................. 14 3.8 super()、super.和 this()、this. ................................... 15 3.9重载和重写 .......................................................... 16 3.10继承 ............................................................... 17 3.11 static ............................................................. 20 3.12 final .............................................................. 21 3.13多态 ............................................................... 22 3.14抽象类 ............................................................. 22 3.15接口 ............................................................... 22 3.16内部类 ............................................................. 23 3.17匿名类 ............................................................. 24
Word范文
.
3.18二维数组和对象数组 ................................................. 25 3.19其他注意事项 ....................................................... 26 四、 Java SE核心I ......................................................... 27
4.1 Object类 ........................................................... 27 4.2 String类 ........................................................... 28 4.3 StringUtils类 ...................................................... 30 4.4 StringBuilder类 .................................................... 30 4.5正则表达式 .......................................................... 31 4.6 Date类 ............................................................. 32 4.7 Calendar类 ......................................................... 33 4.8 SimpleDateFormat类 ................................................. 33 4.9 DateFormat类 ....................................................... 34 4.10包装类 ............................................................. 34 4.11 BigDecimal类 ...................................................... 35 4.12 BigInteger类 ...................................................... 36 4.13 Collection集合框架 ................................................ 36 4.14 List集合的实现类ArrayList和LinkedList ............................ 37 4.15 Iterator迭代器 .................................................... 40 4.16泛型 ............................................................... 41 4.17增强型for循环 ..................................................... 41 4.18 List高级-数据结构:Queue队列 ..................................... 42 4.19 List高级-数据结构:Deque栈 ....................................... 43 4.20 Set集合的实现类HashSet ............................................ 43 4.21 Map集合的实现类HashMap ............................................ 44 4.22单例模式和模版方法模式 ............................................. 46 五、 Java SE核心II ........................................................ 48
5.1 Java异常处理机制 ................................................... 48 5.2 File文件类 ......................................................... 50 5.3 RandomAccessFile类 ................................................. 52 5.4基本流:FIS和FOS ................................................... 54 5.5缓冲字节高级流:BIS和BOS ........................................... 55 5.6基本数据类型高级流:DIS和DOS ....................................... 56 5.7字符高级流:ISR和OSW ............................................... 56 5.8缓冲字符高级流:BR和BW ............................................. 57 5.9文件字符高级流:FR和FW ............................................. 59 5.10 PrintWriter ........................................................ 60 5.11对象序列化 ......................................................... 60 5.12 Thread线程类及多线程 .............................................. 61 5.13 Socket网络编程 .................................................... 65 5.14线程池 ............................................................. 67 5.15双缓冲队列 ......................................................... 68
Word范文
.
一、Java技术基础
1.1编程语言
机器语言:0
1 在硬件直接执行
汇编语言:助记符
高级语言: (Java运行比C/C++慢) 1)面向过程的高级语言:程序设计的基本单位为函数,如:C/C++语言。 2)面向对象的高级语言:程序设计的基本单位为类,如:Java、C#。
1.2 Java的特点
平台无关性、简单性、面向对象、健壮性、多线程、自动内存管理。
平台无关性:指Java语言平台无关,而Java的虚拟机却不是,需要下载对应平台JVM虚拟机的。
自动内存管理:对临时存储的数据自动进行回收,释放内存。如:引用类型的变量没有指向时,被回收;程序执行完后,局部变量被回收。
1.3 Java开发环境
Java Developement Kit——Java开发工具包,简称JDK,是由Sun公司提供的一个免费的Java开发工具,编程人员和最终用户可以利用这个工具来编译、运行Java程序。目前版本有JDK1.0、JDK1.1、JDK1.2、JDK1.3、JDK1.4、JDK1.5(J2SE5.0)、JDK1.6(J2SE6.0)、JDK1.7(J2SE7.0)。
JDK结构:JDK
|--开发工具(Tools)命令:java、javac、jar、rmic ... |-- JRE(Java基本运行环境) |--系统API库,系统类库
| 系统带来的标准程序库,标准API |-- J VM java虚拟机 java 语言的执行环境
Word范文
.
1.4 Java开发环境配置
安装完JDK之后,不能立刻使用,需要设置环境变量:
1)设置PATH:D:\\Java\\jdk1.6.0\\bin(指向JDK中bin文件夹,有各种编译命令)。 2)CLASSPATH:告诉Java程序去哪里查找第三方和自定义类,如果 .class文件和类源文件在同一文件夹内,则不需要配置classpath,后续有包,则需要。
A.Windows:在命令行执行
set CLASSPATH=E:\\workspace\\1304\\bin (临时环境配置) java day02.Demo1 ? 注意事项:
? E:\\ set classpath = c:\\ (不加分号就不找当前路径)
= . ; c:\\ ; d:\\ ;(先找classpath,若无,再找当前路径)
? C、D两盘有同名 . class 文件,classpath设置为D盘,而命令行窗口当
前盘符为C盘,则JVM现找classpath路径,后找当前路径。
B.Linux:在控制台执行 ①设置CLASSPATH环境变量,指向package所在的目录,一般是项目文件夹中的bin目录。
②执行java package.ClassName (包名必须写)。
export CLASSPATH=/home/soft01/workspace/1304/bin (临时环境配置) java day01.HelloWorld
java -cp /home/soft01/workspace/1304/bin day01.HelloWorld(二合一)
? 注意事项:
? Windows根目录是反斜线:\\ ? Linux根目录是斜线:/
1.5 Linux命令与相关知识
1)Linux无盘符,只有一个根目录(root) 2)终端 == 控制台 == 命令行窗口
3)pwd:打印当前工作目录,显示当前工作目录的位置 4)ls:列表显示目录内容,默认显示当前目录内容
5)cd:改变当前工作目录;cd后不加参数=返回home文件夹;cd ~:返回home; cd /:切换到根目录;cd .. :返回上一层目录(相对的); 6)mkdir:创建文件夹(目录) 注意:目录 == 文件夹 7)rm:删除文件;rm xx xx:可删多个文件; rm –rf xx:-为减号,r表递归,f表强制 8)cat xx:显示文本文件内容
9)启动Java开发工具:cd/opt/eclipse ? ./eclipse . 表当前目录下 10)绝对路径: /home (以 / 开始为绝对路径,相对于根目录) 相对路径:home (相对于当前工作目录)
11)home(用户主目录,用户的家):/home/username 如:/home/soft01 12)主目录(home):有最大访问权限:什么都能干,增删改查、建目录等 其他地方:一般只能查看,不能增删改查、创建目录等
Word范文
.
1.6 Eclipse/Myeclipse程序结构
Project项目文件 |-- src源文件
| |-- Package包
| |-- .java源文件 |-- bin
|-- Package包
|-- .class字节码程序
? 注意事项:
? Myeclipse5.5消耗少,Myeclipse6.5最稳定
Word范文
.
二、Java语言基础
2.1基础语言要素
1)标识符:给类、方法、变量起的名字
A.必须以字母或下划线或 $ 符号开始,其余字符可以是字母、数字、$ 符号和下
划线。
B.只能包含两个特殊字符,即下划线 _ 和美元符号 $ 。不允许有任何其他特殊字
符。
C.标识符不能包含空格。 D.区分大小写。
2)关键字:只有系统才能用的标识符
? 注意事项:
? true、false、null不是关键字!是字面量。
? main不是关键字!但是是一个特殊单词,可以被JVM识别,主函数是固定
格式,作为程序的入口。
3)注释:单行注释:// 多行注释:/* ……*/ 文档注释:/**……*/
? 注意事项:开发中类前、属性前、方法前,必须有文档注视。
2.2八种基本数据类型
1)四种整数类型(byte、short、int、long):
byte:8位,用于表示最小数据单位,如文件中数据,-128~127 short:16位,很少用,-32768 ~ 32767 int:32位、最常用,-2^31-1~2^31 (21亿) long:64位、次常用
? 注意事项:
? int i=5; // 5叫直接量(或字面量),即直接写出的常数。
? 整数字面量默认都为int类型,所以在定义的long型数据后面加L或l。 ? 小于32位数的变量,都按int结果计算。
? 强转符比数学运算符优先级高。见常量与变量中的例子。 2)两种浮点数类型(float、double):
float:32位,后缀F或f,1位符号位,8位指数,23位有效尾数。
double:64位,最常用,后缀D或d,1位符号位,11位指数,52位有效尾数。 ? 注意事项:
? 二进制浮点数:1010100010=101010001.0*2=10101000.10*2^10(2次
方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方) ? 尾数: . 1010100010 指数:1010 基数:2
? 浮点数字面量默认都为double类型,所以在定义的float型数据后面加F
或f;double类型可不写后缀,但在小数计算中一定要写D或X.X。 ? float 的精度没有long高,有效位数(尾数)短。 ? float 的范围大于long 指数可以很大。
? 浮点数是不精确的,不能对浮点数进行精确比较。 3)一种字符类型(char):
char:16位,是整数类型,用单引号括起来的1个字符(可以是一个中文字符),使
Word范文
.
用Unicode码代表字符,0~2^16-1(65535)。
? 注意事项:
? 不能为0个字符。
? 转义字符:\\n 换行 \\r 回车 \\t Tab字符 \\\双引号 \\\\ 表示一个\\ ? 两字符char中间用“+”连接,内部先把字符转成int类型,再进行加法
运算,char本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。
4)一种布尔类型(boolean):true真 和false假。 5)类型转换: char-->
自动转换:byte-->short-->int-->long-->float-->double
②容易超过取值范围。
强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。
2.3常量和变量
变量:内存中一块存储空间,可保存当前数据。在程序运行过程中,其值是可以改变的量。
1)必须声明并且初始化以后使用(在同一个作用域中不能重复声明变量)! 2)变量必须有明确类型(Java是强类型语言)。
3)变量有作用域(变量在声明的地方开始,到块{}结束)。变量作用域越小越好。 4)局部变量在使用前一定要初始化!成员变量在对象被创建后有默认值,可直接用。 5)在方法中定义的局部变量在该方法被加载时创建。 常量:在程序运行过程中,其值不可以改变的量。
? 注意事项:
? 字面量、常量和变量的运算机制不同,字面量、常量由编译器计算,变量
由运算器处理,目的是为了提高效率。 eg:小于32位数的字面量处理 byte b1 = 1; byte b2 = 3; //byte b3 = b1+b2;//编译错误,按照int结果,需要强制转换 byte b3 = (byte)(b1+b2); //byte b3 = (byte)b1+(byte)b2;//编译错误!两个byte、short、char相加还是按int算 System.out.println(b3); //选择结果:A编译错误B运行异常 C 4 D b3 byte b4 = 1+3;//字面量运算,编译期间替换为4,字面量4 //byte b4 = 4; 不超过byte就可以赋值 ? 不管是常量还是变量,必须先定义,才能够使用。即先在内存中开辟存储空间,才能够往里面放入数据。
? 不管是常量还是变量,其存储空间是有数据类型的差别的,即有些变量的
存储空间用于存储整数,有些变量的存储空间用于存储小数。
2.4运算符与表达式
1)数学运算:+ - * / % ++ --
? 注意事项:
? + - * / 两端的变量必须是同种类型,并返回同种类型。
? % 取余运算,负数的余数符号与被模数符号相同, - 1 % 5 = - 1,1 % -
Word范文
.
5 = 1;Num % n,n>0,结果范围[0,n),是周期函数。
? 注意整除问题:1 / 2 = 0(整数的除法是整除)1.0 / 2 = 0.5 1D / 2
= 0.5
? 单独的前、后自增或自减是没区别的,有了赋值语句或返回值,则值不同! eg1:自增自减 int a = 1; a = a++; System.out.println(\的值:\第1步:后++,先确定表达式a++的值(当前a的值) a++ ---->1 第2步:++,给a加1 a ---->2 第3步:最后赋值运算,把a++整个表达式的值赋值给a a ---->1 a被赋值两次,第1次a = 2,第2次把1赋值给1 eg2:自增自减
x,y,z分别为5,6,7 计算z + = -- y * z++ ;// x = 5,y = 5,z = 42 z = z + -- y * z++ ? 42 = 7 + 5 * 7 从左到右入栈,入的是值 eg3:取出数字的每一位
d = num;//获取num的最后一位数 num/=10; //消除num的最后一位 ? 注意事项:
? 一个数异或同一个数两次,结果还是那个数。
? |:上下对齐,有1个1则为1;&:上下对齐,有1个0则为0;(都为二
进制)
? &相当于乘法,| 相当于加法;&:有0则为0,| :有1则为1,^:两数
相同为0,不同为1。
3)关系运算符:> < >= <= == !=
4)逻辑运算符:&& ||(短路) ! & |
eg:短路运算:&&:前为flase,则后面不计算;|| :前为true,则后面不计算
int x=1,y=1,z=1; if(x--==1 && y++==1 || z++==1) // || 短路运算后面的不执行了! System.out.println(“x=”+x+”,y=”+y+”,z=”+z);// 0 , 2, 1 5)赋值运算符:= += -= *= /= %=
eg:正负1交替 int flag= -1; System.out.println(flag *= -1); …… 6)条件(三目)运算符:表达式1 ? 表达式2 :表达式3
? 注意事项:
? 右结合性:a > b ? a : i > j ? i : j 相当于 a > b ? a : ( i > j ? i : j )
? 三目运算符中:第二个表达式和第三个表达式中如果都为基本数据类型,
整个表达式的运算结果由容量高的决定。如:int x = 4; x > 4 ? 99.9 : 9;
99.9是double类型,而9是int类型,double容量高,所以最后结果为9.9。
7) 运算符优先级:括号 > 自增自减 > ~ ! > 算数运算符 > 位移运算 > 关系运算 > 逻辑运算 > 条件运算 > 赋值运算
2)位运算:& | ~(取反) ^(异或)>> << >>>
Word范文
正在阅读:
Java相关课程系列笔记之一Java学习笔记 - 图文12-15
供热条例05-23
阅读让生活更美好作文800字06-17
《鲁滨逊漂流记》读书笔记450字07-20
“十三五”重点项目-特种耐腐蚀油井管项目商业计划书07-10
中小企业知识型员工流失问题分析及对策06-19
宁化县特殊教育学校教研工作总结03-28
小学英语语法大全(全套十八讲)04-10
那一场雪作文300字06-19
电梯电气安装维修作业练习题库总12-07
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 笔记
- Java
- 之一
- 课程
- 图文
- 系列
- 相关
- 学习
- 商法-第5次任务 - 0050
- 市政道路原始记录表格
- 2014年春季学期二年级数学期末模拟练习(一)
- 安徽2017高考作文模写
- 山东省滨州市2019中考数学第六章圆第二节与圆有关的位置关系习题
- 时钟问题1
- 关于清远市2006年度医疗机构校验结果的公告 - 图文
- 小学三年级科学上册教学工作总结
- 浅谈电教媒体在地理教学中的应用
- 用特征码下载电影
- 无边界管理-讲义 - 图文
- 招聘系统建立与规划管理
- 2016年会计从业资格考试《电算化》模拟每日一练(11月24日)
- 2011年惩防体系建设工作总结
- 论普通法系国家法典的编纂 许中缘 - 民法典不管是在哪里,都往往被看作
- 2015年江口县事业单位考试申论热点:花钱“买平安”,徒留糊涂账
- 部编新人教版七年级语文下册第六单元教案集
- 环境监测总复习提纲
- 商务英文合同特征翻译论文
- 2018-2024年中国VOC检测仪器行业分析与投资研究报告(目录) - 图文