第1章 Java初体验
1-1 Java简介 (05:49)
1.JDK:调试、编译源文件,生成文档等,包含各种开发工具
2.JRE:运行字节码文件,包含基础API和JVM
3.JVM:Java虚拟机
4.字节码文件运行在JVM中,字节码和虚拟机是实现Java一次编译,四处运行跨平台的关键。
主要内容
1,Java平台应用
2,核心概念:JVM,JDK,JRE
3,搭建Java开发环境
4,使用工具开发java程序
java
1995(Sun)---------2009ORACLE收购Sun
基础核心 javaSE-----------javaEE(java的企业版)---------javaME(用于嵌入式开发)
JVM(java virtual Machine)
源文件 myProgram.java------>编译器 compiler------>字节码文件myProgram.class----->解释器interpreter---->my program
想吃鱼---去买鱼----杀鱼的过程相当于编码器----给鱼烧熟这个过程属于解释器
JDK:java开发工具包
JRE:java运行时环境
1-2 Java开发环境搭建 (07:30)
Java开发环境搭建<br>
1.安装JDK<br>
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html<br>
2.配置环境变量<br>
1-3 使用记事本编写Java程序 (07:00)
1.用记事本编辑源文件,以.java结尾
2.编写时,类名需与文件名相同
3.使用编译器编译,使之成为字节码文件,字节码文件以.class结尾
4.利用javac,打开cmd文件,输入源文件保存路径,回车,再输入dir查看该路径下的所有文件,再输入javac+空格+源文件名称+扩展名,回车后若没有报错,表示正确。
5.源文件旁会出现一个字节码文件,内为乱码,它不能直接运行。
6.通过解释器执行,重新打开cmd,输入java+空格+字节码文件名,但不能加上后缀名,回车执行。
1-4 练习题
javac 用于将源代码程序编译成字节码文件;java 用于执行字节码文件,在执行时不能指定文件后缀
eclipse下载:http://www.eclipse.org/downloads/
MyEclipse下载:http://www.my-eclipse.cn/
Java 语言是大小写敏感的,在控制台输出信息使用System.out.println( "输出的内容" );
1-5 使用Eclipse开发Java程序 (08:59)
编码流程:
创建java项目:java project (src 是存放源文件)
创建程序包:src目录下右击建(package程序包)
编写java源程序:package目录下右击建(class源代码文件)
运行java程序:源文件空白处右击选择run as ->java anclication 运行成功
(1)创建一个java Project
(2)src——创建包java package (Eclipse中的src是用来放置我们的源代码文件;关于Package
包名:域名的反向
例如:com.imooc
class命名:文件开头大写)
(3)在包下创建类Java class
(4)编写Java源程序:
public class HelloWord{
public static void main(String[] args){\
System.out.println("I Love Imooc");
}
(public static void main(String[] args)程序的入口)
(5)运行java程序:源文件空白处右击选择run as ->java application 运行成功
1-6 MyEclipse的使用简介 (03:53)
//MyEclipse的使用简介
MyEclipse时对Eclipse的扩展,是一个十分优秀的用于开发Java,JavaEE的Eclpse插件集合。
下载http://www.my-eclipse.cn/
第一步:创建工程 new-->java project
第二步:创建包
第三步:创建源程序 new-->class-->packageName,className
第四步:运行程序 run
1-7 练习题
1-8 程序的移植 (03:08)
程序的移植:
导出操作:右击项目,点击属性(properties),对话框当中会弹出项目文件所在的位置,找到它复制即可。
导入操作:侧边栏(package explorer)空白处右击,选择import,选择General,选择Existing Project into Workspace,选择browse去找到我们的项目即可。
1-9 经验技巧分享 (01:52)
多练,多问,多调试,多复习总结
1-10 练习题
第2章 变量和常量
2-1 Java中的关键字
abstract //抽象方法,抽象类的修饰符
assert //断言条件是否满足
boolean //布尔
break //跳出循环或者label代码段
byte //8-bit 有符号数据类型
case //switch语句的条件
catch //和try搭配捕捉异常
char //16-bit Unicode字符数据
class //定义类
const //未使用
continue //不执行循环体剩余部分
default //switch语句中的默认分支
do //循环语句,至少会执行一次
double //64-bit双精度浮点数
else //if条件不成立
enum //枚举类型
extends //继承
final //常量
//方法不能被重写,或者一个类不能有子类
finally //try 语句不管是否发生异常都要执行的语句块
float //32-bit单精度浮点数
for //for循环
goto //未使用
if //条件语句
implements //类实现了接口
import //导入类
instanceof //测试一个对象是否是某个类的实例
int //32位整型数
interface //接口
long //64位整型数
native //表示方法用非java代码实现
new //新的类实例
package //包
private //表示私有字段,方法等,只能从类内部访问
protected //表示只能通过类或者其子类访问
//子类或者在同一个包内的其他类
public //表示共有属性或者方法
return //方法返回值
short //16位数字
static //静态
strictfp //浮点数比较使用严格的规则
super //表示父类/基类
switch //选择语句
synchronized //表示同一时间只能由一个线程访问的代码块
this //当前实例
//或者调用另一个构造函数
throw //抛出异常
throws //定义异常
transient //修饰不要序列化的字段
try //捕捉异常
void //标记方法不返回任何值
volatile //标记字段可能会被多个线程同时访问,而不做同步
while //while循环
2-2 认识Java标识符
Java标识符(规则上基本类似于C的标识符)是用于给变量,类,方法命名的符号
1.可以使字母,数字,下划线和$,但不能以数字打头
2.不能是关键字和保留字(但可以包含关键字和保留字,如,void不能作为标识符,但是my void可以)
3.严格区分大小写!MY VOID和 my void 就是不同的标识符
4.在命名上做到,见名知意。
------------------------------------附-完整笔记------------------------------------
使用标识符时,需要遵守几条规则:
2-10 Java中的强制类型转换
Java中的强制类型转换
语法:(数据类型)数值
数值结果上并未四舍五入,而是将小数位截断;
强制类型转换可能会造成数据丢失。
public class HelloWorld{
public static void main(String[] args) {
double heightAvg1=176.2;
int heightAvg2=(int)heightAvg1;
System.out.println(heightAvg1);
System.out.println(heightAvg2);
}
}
2-11 Java常量的应用
Java常量的应用
所谓常量,我们可以理解为是一种特殊的变量,它的值被设定后,在程序运行过程中不允许改变。
语法:final 常量名 = 值;
伙计们注意啦:常量名一般使用大写字符
例:final String MALE="男";
final String FEMALE="女";
2-12 如何在Java中使用注释
Java 中注释有三种类型:单行注释、多行注释、文档注释
单行注释//开头 (快捷键 ctrl+/ )
多行注释:/ / (ctrl+shift+/ )
文档注释:/* /
我们可以通过 javadoc 命令从文档注释中提取内容,生成程序的 API 帮助文档。
PS:使用文档注释时还可以使用 javadoc 标记,生成更详细的文档信息:
@author 标明开发该类模块的作者
@version 标明该类模块的版本
@see 参考转向,也就是相关主题
@param 对方法中某参数的说明
@return 对方法返回值的说明
@exception 对方法可能抛出的异常进行说明
2-13 练习题
第3章 常用的运算符
3-1 什么是运算符
运算符是一种“功能”符号,用以通知 Java 进行相关的运算。譬如,我们需要将变量 age 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作。
Java 语言中常用的运算符可分为如下几种:
Ø 算术运算符 + - / % ++ -- ++,--
//只能用于操作变量, b=a++, b=++a的区别
Ø 赋值运算符 = += -= = /= %=
//为变量或常量指定数值
Ø 比较运算符 > < >= <= == !=
比较运算结果是一个布尔值(true或false)
Ø 逻辑运算符 && || ! ^(异或)
//输出语句中逻辑运算要加括号: System.out.println( (c^d) +"通过") ;
Ø 条件运算符(三元运算符)
//形式:布尔表达式 ? 表达式1 : 表达式2; String str = (8>5)? "8大于5" : "8不大于5";
3-2 Java中的算术运算符
++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴
b=++a ; //让a先执行自增,然后将值赋给变量b
b=a++; //让a的值赋给变量b;然后再执行自增
3-3 Java中的赋值运算符
= 赋值 a=b;就是把b的值付给a
+= 加等于 a+=b; 等价于a=a+b;
-+ 减等于 a-=b; 等价于a=a-b;
= 乘等于 a=b; 等价于a=a*b;
/= 除等于 a/=b; 等价于a=a/b;
%= 减等于 a%=b; 等价于a=a%b;
3-4 Java中的比较运算符
比较运算符:> < >= <= == !=(不等于)
1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型
2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
且比较运算的返回类型应该为布尔类型,即true或false
3-5 Java中的逻辑运算符
1、 &&与:要求所有人都投票同意,才能通过某议题
2、 ||或:只要求一个人投票同意就可以通过某议题
3、 !a非:某人原本投票同意,通过非运算符,可以使其投票无效
4、 a ^ b异或:有且只能有一个人投票同意,才可以通过某议题
3-6 练习题
3-7 Java中的条件运算符
java中的条件运算符(? :) 也被称为 “三元运算符”
语法形式: 布尔表达式 ? 表达式1 : 表达式2 ;
运行过程: 如果布尔表达式的值为true, 则返回 表达式1 的值
如果布尔表达式的值为false, 则发回 表达式2 的值
例如:
int score=68;
String mark = (score>= 60) ? "及格" : "不及格";
结果:
及格
3-8 Java中运算符的优先级
优先级1:( )
优先级2:! +(正号) -(负号) ++ --
优先级3: / %
优先级4:+(加号) -(减号)
优先级5:< <= > >=
优先级6:== !=
优先级7:^(异或)
优先级8:&&
优先级9:||
优先级10:?:
优先级11:= += -= = /= %=
3-9 练习题
3-10 练习题
第4章 流程控制语句
4-1 Java条件语句之 if
如果 if 条件成立时的执行语句只有一条,是可以省略大括号滴!但如果执行语句有多条,那么大括号就是不可或缺
4-2 Java条件语句之 if...else
if(条件){
System.out.println("条件达成的结果");
}else{
System.out.println("条件未达成的结果");
}
4-3 Java条件语句之多重 if
Java条件语句之多重 if
if(条件1){
代码块1
}else if(条件2){
代码块2
}else{
代码块3
}
4-4 Java条件语句之嵌套 if
if 嵌套
if(条件1){
if(条件2){代码1}
}else{代码2}
}else{代码3}
学习 equals()的用法
ava程序中有两种方式测试两个变量是否相等,一种:== 第二种 equals方法
1、使用==判断两个变量是否相等,如果两个变量时基本类型,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,则返回true。但是对于引用类型变量,它们必须指向同一个对象时。==判断才会返回true
2、当程序判断两个引用类型变量是否相等时,也是希望它们是“值相等”,并不严格要求两个引用变量指向同一个对象,则此时就要利用eqauls来进行判断了
4-5 练习题
4-6 Java条件语句之 switch
不得不说的几点小秘密:
1、 switch 后面小括号中表达式的值必须是整型或字符型
2、 case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2
3、 case 匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束
4、 可以把功能相同的 case 语句合并起来,如:
如果今天是星期一、三、五,则早餐吃包子,如果是星期二、四、六,则早餐吃油条,如果是星期日,则吃“主席套餐”
public class HelloWorld {
public static void main(String[] args) {
char today='日';
switch(today){
case '一':
case '三':
case '五':
System.out.println("早餐吃包子");
break;
case '二':
case '四':
case '六':
System.out.println("早餐吃油条");
break;
case '日':
System.out.println("吃主席套餐");
}
5、 default 块可以出现在任意位置,也可以省略
4-7 Java循环语句之 while
Java循环语句之 while
执行过程:
1、 判断 while 后面的条件是否成立( true / false )
2、 当条件成立时,执行循环内的操作代码 ,然后重复执行< 1 >、< 2 >, 直到循环条件不成立为止
特点:先判断,后执行
4-8 Java循环语句之 do...while
<1>、 先执行一遍循环操作,然后判断循环条件是否成立
<2>、 如果条件成立,继续执行< 1 > 、< 2 >,直到循环条件不成立为止
特点: 先执行,后判断
由此可见,do...while 语句保证循环至少被执行一次!
do{
循环操作;
}while(判断条件)
4-9 Java循环语句之 for
for循环:
1、for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。
a. 省略“循环变量初始化”,可在 for 语句前由赋值语句进行变量初始化操作;
b. 省略“循环条件”,会造成循环将一直执行下去,也就是“死循环”现象,可以在循环体中使用 break 强制跳出循环;
c. 省略“循环变量变化”,可以在循环体中进行循环变量的变化。
2、for 循环,变量初始化和循环变量变化部分,可以使用 “,” 同时初始化或改变多个循环变量的值,如:
for(int i=1,j=5; i<5; i++,j--) { }
代码中,初始化变量部分同时对两个变量 i 和 j 赋初值,循环变量变化部分也同时对两个变量进行变化。
3、循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级。
4-10 练习题
4-11 Java循环跳转语句之 break
Java循环跳转语句之 break
1.在 Java 中,我们可以使用 break 语句退出指定的循环,直接执行循环后面的代码。
2.break和continue的区别
(1)break: 此语句导致程序终止包含它的循环,不再判断循环的条件是否成立,并进行程序的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环。如果break语句包含在嵌套循环里,它只跳出最里面的循环。
(2)continue:结束本次循环后,再开始下一次的循环;continue语句只是结束本次的循环,而不是终止整个的执行,接着进行下一次是否执行循环的判定。
4-12 Java循环跳转语句之 continue
break 关键字是跳出整个循环,continue关键字是结束本次循环。
4-13 练习题
4-14 Java 循环语句之多重循环
print()每次都同行打印,println()每次都换行打印
4-15 编程练习
第5章 阶段练习
5-1 编程练习
5-2 编程练习解析 (04:40)
5-3 编程练习优化 (06:10)
使用Scanner工具类来获取用户输入的信息
Scanner类位于java.util包中,使用时需要导入此包
步骤:
1.导入java.util.Scanner
2.创建Scanner对象 :
Scanner input=new Scanner(System.in);
3.接受并保存用户输入的值:
input.next();//获取String类型数据
input.nextDouble();//double类型
input.nextInt();//int类型
5-4 使用Eclipse调试程序 (05:39)
5-5 进阶练习 (11:40)
第6章 数组
6-1 什么是数组
数组:相同数据类型的有序集合
数据又称为数组元素
数组元素可以通过下标(索引)来进行访问
数组元素的下标(索引)是从0开始的
数组的特点:
1、长度是固定的,避免数组出现越界异常
2、数组元素必须是相同的数据类型,不允许出现混合类型(数组元素可以是任何数据类型<基本数据类型和引用数据类型>)
3、数组元素位置有序
数组的声明
语法: 数据类型[ ] 数组名;或者 数据类型 数组名[ ];其中,数组名可以是任意合法的变量名,如:
int [] scores;<存储学生成绩的数组,类型为整型>
double height [] ;<存储学生身高的数组,类型为浮点型>
Sring [] scores;<存储学生名字的数组,类型为字符串>
6-2 练习题
6-3 如何使用 Java 中的数组
//如何使用 Java 中的数组
1.声明数组:int[] scores 等价于int scores[];
2.分配空间:scores[] = new int[5]等价于int scores[] = new int[5];
3.赋值:scores[0] = 89; scores[1] = 79;
4.声明数组、分配空间和赋值的合并:
int[] scores ={78,91,84,68} 等价于int[] scores = new int[]{78,91,84,68}
6-4 练习题
6-5 使用循环操作 Java 中的数组
数组名.length 用于获取数组的长度
1.定义数组:int[] scores=new int[2];
2.数组名.length用来获取数组的长度
3.数组下标从0开始,scores[3]代表数组中第4个元素,而非第三个
4.数组下标的范围是0至(数组长度-1),如果越界访问会报错,如 int[] scores=new int[2]; scores[2]=75;会报Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
6-6 编程练习
6-7 使用 Arrays 类操作 Java 中的数组
//导入Arrays类
import java.util.Arrays;
public class HelloWorld {
public static void main(String[] args) {
// 定义一个字符串数组
String[] hobbys = { "sports", "game", "movie" };
// 使用Arrays类的sort()方法对数组进行排序
Arrays.sort(hobbys);
// 使用Arrays类的toString()方法将数组转换为字符串并输出
System.out.println(Arrays.toString(hobbys) );
}
}
6-8 使用 foreach 操作数组
import java.util.Arrays;
public class HelloWorld {
public static void main(String[] args) {
// 定义一个整型数组,保存成绩信息
int[] scores = { 89, 72, 64, 58, 93 };
// 对Arrays类对数组进行排序
Arrays.sort(scores);
// 使用foreach遍历输出数组中的元素
for (int score : scores ) {
System.out.println(score);
}
}
}
6-9 Java 中的二维数组
public class HelloWorld {
public static void main(String[] args) {
// 定义两行三列的二维数组并赋值
String[][] names={{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
// 通过二重循环输出二维数组中元素的值
for (int i = 0; i < names.length; i++) {
for (int j = 0; j < names[i].length; j++) {
System.out.println(names[i][j]);
}
System.out.println();
}
}
}
6-10 练习题
第7章 方法
7-1 如何定义 Java 中的方法
public class HelloWorld {
//定义了一个方法名为 print 的方法,实现输出信息功能
public void print() {
System.out.println("Hello World");
}
public static void main(String[] args){
//在 main 方法中调用 print 方法
HelloWorld test=new HelloWorld();
test.print();
}
}
7-2 Java 中无参无返回值方法的使用
1、调用带参的方法时,必须保证实参的数量,类型,顺序与形参一致
2、 调用方法时,实参不需要指定数据类型
3、 方法的参数可以是基本数据类型,如 int、double 等,也可以是引用数据类型,如 String、数组等
4、 当方法参数有多个时,多个参数间以逗号分隔
public class HelloWorld {
public static void main(String[] args) {
// 创建对象,对象名为hello
HelloWorld hello = new HelloWorld();
// 调用方法,传入两门课程的成绩
hello.calcAvg(94, 81);
}
/*
对象名.方法名(实参1,实参2...实参n)
把定义方法时的参数叫做形参,目的用于定义方法时需要传入的参数类型和个数
把调用方法时的参数称为实参,实参是传递给方法真正被处理的值
1.需保证实参,形参数量、类型、顺序一一对应
2.调用时,实参不用指定数据类型
3.参数可以是基本数据类型,也可以是引用数据类型
4.多个参数以逗号分隔
需要为其提供额外的信息
7-6 Java 中带参带返回值方法的使用
import java.util.Arrays;
public class HelloWorld {
public static void main(String[] args) {
HelloWorld hello = new HelloWorld();
int[] scores={79,52,98,81};
//调用方法,传入成绩数组,并获取成绩的个数
int count= hello.sort(scores);
System.out.println("共有"+count+"个成绩信息!");
}
/*
8-1 编程练习
定义一个包含整型数组参数的方法,用来接收成绩数组,进行成绩排序并输出前三名
import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int[] scores={89,-23,64,91,119,52,73};
Arrays.sort(scores);
HelloWorld hello=new HelloWorld();
System.out.println(Arrays.toString(scores));阿
hello.chenji(scores);
}
int count=0;
//定义方法完成成绩排序并输出前三名的功能
public void chenji(int[] scores){
for(int i=scores.length-1;i>=0;i--){
if(scores[i]<0||scores[i]>100){
continue;
}
System.out.println(scores[i]);
count++;
if(count>2){break;}
}
}
2025 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123