文章目录
- 第一章、java环境搭建
- 第二章、运算符
- 第三章、分支结构
- 第 4 章、循环结构
- 第 5 章、嵌套循环
- 第 6 章、数组
- 第 7 章、数组练习
- 第 8 章、面向对象(一)
- 8.1、包
- 第 9 章、面向对象(二)
- 第 10 章、面向对象(三)
- 第 11 章、内部类与Java常用API(一)
- 第 12 章、Java 常用API(二)
- 第 13 章、集合概述
- 第 14 章、List集合
- 第 15 章、Set集合
- 第 16 章、Map接口
- 第 17 章、学生信息管理系统![在这里插入图片描述](/i/ll/?i=016f21a19cbd49258bc251dbdfa3b352.png)
第一章、java环境搭建
1.1、Java介绍
1.1.1、 Java开发平台
Java SE(java standard edition),java平台标准版,主要编写桌面应用程序
Java EE(java enterprise edition),java平台企业版,用于构建企业级应用。所谓企业级应用是指那些为商业组织、大型企业而创建的应用系统,例如:电信的“计费系统”、银行的“网银系统”、企业中的“客户关系管理系统”等等。
Java ME(java micro edition), java平台微型版,随着Android智能平台的迅速普及,java me已经走向淘汰
1.1.2、 Java开发环境搭建
jdk,Java Development Kit,Java开发工具包,里面包含Java开发用到的工具类
jre,Java Runtime Environment,Java运行时环境,运行java代码所需要的环境
下载:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
先卸载:
控制面板----卸载程序—
安装:
注意:安装路径不能有中文、特殊字符(中文字符)
安装jre
测试一下:
打开cmd控制台:
右击开始按钮----运行----输入cmd----确定
说明windows操作系统没有找到java开发环境
需要配置环境变量
操作系统在运行时,需要的一些配置参数,默认情况下,当我们运行一个软件时,会先去环境变量的Path中找该软件所在的目录
配置环境变量:
如果提示下面的内容,说明安装成功
1.1.3 、Java专业术语
- jdk,Java Development Kit,Java开发工具包,里面包含Java开发用到的工具类
- jre,Java Runtime Environment,Java运行时环境,运行java代码所需要的环境
- JVM,Java Virtual Machine,Java虚拟机
- javac.exe,java编译器,用于将高级源代码文件转换为字节码文件
- java.exe,java解释执行器,用于将字节码文件通过java虚拟机解释并执行起来
1.1.4、 第一个Java程序
编写java代码的步骤:
1.新建记事本文档,将文件名修改为:xxx.java
注意:java的文件名要采用驼峰法的命名,每个单词的首字母必须大写
2.使用记事本打开该文件,并编写HelloWorld类
3.先编译
将高级的源代码解释成计算机能够识别的字节码文件(二进制文件)
javac 文件名
4.执行执行编译的结果
java 文件名(不包含后缀)
1.1.5、 练习
1.卸载java开发环境、删除java环境变量、删除创建的文件夹
2.重新安装java开发环境
要求:
jdk安装到D:/java_env/java8/jdk目录下
jre安装到D:/java_env/java8/jre目录下
如果没有D盘,把上述路径中的D改为C
然后添加到环境变量
3. 创建Dog类文件,并在该文件中输出”小狗汪汪叫”
1.2、main方法
1.语法格式
public static void main(String[] args){
}
1.3、变量
1.3.1、 变量介绍
度,尺子
量,容器
衡,称,重量单位
量,古代的一种容器
在java中,变量就是存储数据的容器,由于该容器的内容可以变化,所以称为变量
1 + 1 = ?
a + b = ? a代表数字的:是一个变量
变量,本质上就是在内存中申请的一块区域,通过变量名找到这个区域
由于变量中存储的内容不同,所占内存空间的大小也就不一样,在java中通过数据类型约束内存空间的大小、结构
例如:
String 类型表示字符串,只能存储字符类型的数据
int表示整数类型,只能存储整数类型的数据
double表示小数,只能存储小数类型的数据
1 ==> 1
2 == 10
3 == 11
4 == 100
255 == 11111111
Int类型 表示一般用的整数 ==> 32位 , 255255255*255
声明变量语法:
数据类型 变量名 = 初始值;
初始值可以省略
=,表示赋值运算符,表示将将=右边的数据存储到左边的容器(变量)里面
例如:
int age = 20; 表示将20存储到age变量
输出变量里面的内容
System.out.println(age);
1.3.2 、练习
有3瓶酒,1瓶红酒,1瓶白酒,要求使用java变量的相关知识,将白酒和红酒对调一下
1.3.3、 变量名规范
变量名采用小写,尽量使用英文单词,或拼音代替
变量名不要使用java中的关键字,例如:public、class、void等
望文知意,通过变量名知道变量的作用、意义
1.3.4 、注释
java中的注释分为:
注释是给程序员看的,对代码进行说明,java编译器会忽略注释的内容
单行注释: // 注释的内容(// 和 注释内容之间有且只有一个空格)
多行注释: /* 注释的内容 */
1.4、数据类型
在java中数据类型,有2种:
1.基本数据类型:包括:整数、小数、布尔、字符
2.引用数据类型(数组、对象、接口等)
1.4.1、 整数
了解计算机中单位:
1TB = 1024GB
1GB = 1024MB
1MB= 1024KB(Kilo千)
1KB =1024Byte(字节)
byte,在内存中占1个字节(Byte),表示范围:-128 ~ 127
short,在内存中占2个字节,大概3万多
int,在内存中占4个字节,20多亿
long,在内存中占8个字节
通常int使用比较多
1.4.2、 直接量
byte b1 = -128, -128称为直接量
对于整数类型的直接量,默认是int类型,而int类型表示的范围:20多亿
如果希望表达的是Long类型的话,在直接量的后面加上L 或 l(小写的L)
1.4.3 、小数
float,占4个字节
double,占8个字节
对于小数类型的直接量,默认是double类型,如果希望表达的是float类型,需要在小数后面加上 F 或 f
1.4.4、 布尔类型
boolean
在java语言中,用于描述真假信息的数据类型是:boolean,只有两个值:
.true、false
.在内存中占1个字节空间
1.4.5、 字符
char
在java中,char类型(字符类型)描述单个字符,例如:’a’ ‘中’等
注意:字符类型必须使用 单引号 包裹
计算机底层只认识 01 二进制,整数 10 容易计算二进制数字
但是字符a如何计算二进制
并不是把a字符存储到内存中,而是在ASCII码表中建立字符和整数映射关系
a----97
计算机存储时,存储的是97,将来获取的也是97,再通过97映射关系找到对应的a字符
1.5、数据类型转换
自动类型转换
从小范围向大范围的转换,这个是编译过程自动完成的
强制类型转换
语法格式:目标类型 变量名 = (目标类型)原变量;
例如:
int a = 5;
double d1 = (double)a;
第二章、运算符
2.1、算数运算符
( + -* / %)
%,两数相除,取余数,例如: 10 % 3 = 1
/,除法运算,注意:结果和参与运算数字的类型保持一致
例如:int a = 10; int b = 3; a / b = 3;
+法运算,除了表示 四则运算之外,还用来表示字符串连接
小练习:
2.2、比较运算符
比较运算符:> < == >= <= !=
比较运算符的结果,都是布尔类型,例如:
5 > 3,理解:5是否大于3
2.3、自增减运算符
++,自增运算符,让当前的变量的值 + 1
–,自减运算符,当前变量的值 – 1
前++,前–,先值增,再运算
后++,后–,先运算,再值增
2.4、逻辑运算符
逻辑运算符有3个:
&&
逻辑与“并且”,运算符两边的条件都成立的时候,整个表达式的结果才成立
同真为真,一假为假
|| 逻辑或“或者”,运算符两边的条件有一个成立,整个表达式的结果就成立
一真为真,同假为假
! 取反,真为假,假为真
逻辑运算符,存在短路特性:
其中,对于逻辑与来说,如果第一个条件为false,则后面的表达式不再执行
其中,对于逻辑或来说,第一条件为true时,则后面的表达式不再执行
2.5、三目运算符
语法格式:条件表达式 ? 表达式1 : 表达式2;
描述:如果 ? 前面的条件表达式成立(true),则执行表达式1,如果前面的表达式不成立,则执行表达式2
举例:
小孩子如果大于等于18岁,则可以光明正大上网,如果小于18岁,则偷偷摸摸上网;
小练习:
1.提示用户输入一个正整数,判断并输出是否为二位数
2.提示用户输入考试成绩,判断并提示成绩是否及格
3.提示用户输入一个整数,并判断该整数是负数还是非负数
2.6、赋值运算符
=,将 = 右边的值 赋值给左边的变量
java还提供了如下赋值运算符:
+=、-=、*=、/=、%=
以 += 为例进行演示
int a = 10;
a += 5; // 将a变量 + 5之后,再赋值给a变量,等价于:a = a + 5;
经典面试题:
比较 a += 5 和 a = a + 5的区别
a += 5,隐含了强制类型转换,严格来说等价于:a = (byte)(a + 5)
2.7、运算符优先级
同一级别中, * / 优先级要高于 + -
乘除优先级 > 加减 > 赋值运算符
int c = 5 + 2 * 4;
可以使用 () 提升优先级,例如:
int c = (5+2) * 4
就会先运算() 里面的表达式
第三章、分支结构
3.1、流程控制介绍
Java三大语句结构:顺序结构、分支结构、循环结构
代码在执行过程汇总,可能会遇到各种不同的情况,每一种情况,我们就称为一个分支。
分支分为:单路分支、双路分支、多路分支
3.2、单路分支
代码执行过程中,只遇到一种情况,只做一次判断
语法格式:
if(条件表达式){
语句块;
}
如果条件表达式成立(条件表达式的结果为 true),则执行语句块
举例演示:
小练习:
提示用户输入四个整数,然后求出其中的最大值并打印
3.3、双路分支
双路分支,代码在执行过程中,有两种情况
语法格式:
if(条件表达式){
// 代码块1
}else{
// 代码块2
}
执行流程:
1.先判断条件表达式是否成立(是否为true)
2.如果成立(true),则执行代码块1
3.如果不成立(false),则执行代码块2
举例说明:
3.4、多路分支
代码在执行过程中,出现多种情况,称为多路分支
语法格式:
if(条件表达式1){
//代码块1
}else if(条件表达式2){
//代码块2
}else if(条件表达式3){
//代码块3
}…
else{
// 代码块4
}
执行流程:
1.先判断条件表达式1是否成立(true)
2.如果成立,则执行代码块1
3.如果不成立,则执行条件表达式2
4.如果条件2成立,则执行代码块2,如果不成立,则继续判断条件3
5.以此类推
6.如果上述条件都不成立,则执行else里面的代码
代码演示
如果我现在有超过50000块钱,我就去泰国旅游
如果我现在有超过5000块钱,我就去大草原大口吃肉,大碗喝酒
如果现在有超过1000块钱,去小树林一日游
如果连1000都没有,好好撸代码
3.5、switch…case多路分支
switch(condition ){
case 值1:
代码块1;
break;
case 值2:
代码块2;
break;
…
default:
代码块3;
break;
}
执行流程:
1.先判断switch中condition条件的值
2.如果condition的值等于值1,则执行第一个case语句块
3.如果condition的值等于值2,则执行第二个case语句块
4…
5.如果case值都不等于condition变量,则执行default
if、else 和 switch case的区别
if(age > 18),if的条件表示:区间、范围
switch…case 固定的几个点,例如:方向、星期()
如果case中,没有break,会一直向下执行,直到遇到break为止,这种情况我们称为”case 穿透”
3.6、练习
提示用户输入一个表示年份的整数,判断这一年是否是闰年。
如何判断 一个年份是否是闰年:
- 如果这个年份能够被4 整除,且不能被100 整除,则这一年是闰年。
例 如,1996 年是闰年,而相应的,1993 年就不是闰年。 - 如果这个年份能够被100 整除,则这个数必须要能被400 整除,才是闰 年。
例如,2000 年是闰年,1900 年不是闰年。
第 4 章、循环结构
4.1、循环介绍
循环,又称 重复执行
计算机最强大的功能之一就是:帮我们做一些重复性的工作
for循环,又称为计数循环,明确要循环多少次
while循环,又称为条件循环,只要符合while里面的条件,就重复执行
4.2、for循环
语法格式:
for(初始变量; 条件表达式; 初始变量修改表达式){
代码块1;
}
代码块2
执行流程:
1.先在内存中初始一个变量
2.判断初始变量是否符合条件表达式
2.1符合条件,执行代码块1; 修改初始变量
2.2不符合条件,退出循环,执行代码块2
代码演示:
4.3、课堂练习:
计算1-100之间数字的和
计算1-10之间的累积并打印出来(123*…10)
打印所有三位数的水仙花数(所谓的水仙花数是指,一个数字的个位、十位、百位的立方和等于这个数本身)
4.4、无限循环
无限循环,又称为 ”死循环”
for(;