JDK:Java开发工具包
jdk = JRE+开发工具
JRE:Java运行环境
JRE=JVM+核心类
JVM :Java虚拟机,可以实现跨平台
2、下载安装JDk 3、安装JDK 4、JDK安装目录介绍bin : 开发工具所在的目录
最常用的工具:java
运行java程序
javac
编译java源文件
jre:Java运行环境
lib:核心类(jar包)
5、设置path环境变量目的:保证在任何位置都能去使用Java开发工具
6、检验是否安装成功win+R --> cmd —> java
第一个Java程序public class demo1{
public static void main(String[] args){
System.out.println("hello.world");
}
}
Day2 基础语法
一、基础
1、关键字
有特殊含义的字符,当程序执行到关键字时会做一些特殊的处理
掌握:
class:创建类的关键字
2、标识符 自己取的名字
例如:
类名:自己取/标识符
组成(必须遵守):
字母/数字/下划线/$
注意(必须遵守):
不能以数字开头
例如:
合法的:abc/abc123/
不合法: 123abc
规范(约定俗):
通俗易懂
驼峰法:
类名:Demo1
使用:
类名
驼峰法,每个单词首字符大写
Demo1 MyTest
变量名
驼峰法
第一个单词全部小写,后面每个单词首字符大写
例如: name/age/myName/myAge/myFirstName
包名
常量名
3、注释注释:不会执行的内容,给别人看,便于代码的阅读,增强代码的可读性
要求:多写注释
格式一:单行注释 //
格式二:多行注释
注意:
单行注释可以嵌套单行注释
多行注释可以嵌套单行注释
多行注释不能嵌套 多行注释
二、常量和变量 1、常量 不会发生改变的值
1、整数常量
1 2 3 4 100
2、浮点型常量
3.14 1.2 1.1
3、字符常量
字符:单引号引起来的单个字符
例如:
‘a’ ‘1’
错误:
‘97’(报错,不是java中的任何类型数据)
4、布尔常量
只有2个:true/false
5、字符串常量
字符串:双引号引起来的字符
例如:
“hello world” "ycy " " 123abc!esfslfj "
空串:""(做非空判断)
2、转义字符 如果字符中需要包含有特殊含义的字符,可以使用转义字符
格式:
字符
"abc"123"abc"3、变量
容器,存储数据
先声明,后使用:
先声明/定义/创建变量
使用变量
格式:
数据类型 变量名[=值]
变量名:自己取名(标识符)
规范:驼峰法
第一个单词全部小写,后面每个单词首字符大写
例如: name/age/myName/myAge/myFirstName
注意:
[]:可选
在同一个作用域中不能用两个相同的变量名
使用:
public class Demo2{
public static void main(String[] args){
//定义变量:保存数字1
//方式一:先声明,后赋值
//格式:数据类型 变量名;
int a ;//声明了一个变量,变量名叫做a
//变量保存数据:赋值/初始化
a = 10;//给变量赋值/给变量初始化/保存数据
//方式二:在声明变量的同时进行赋值
int b = 1;
}
}
4、数据类型(重点)
数据类型 变量名[=值]
变量是保存数据,要根据保存的数据来选择对应的数据类型
分类:
基本类型(8大基本数据类型)
整型(4个)
short(16位)byte(8位):-128 ~ 127int(32位,默认)long(64位) 浮点型(2个)
float(32位,单精度浮点型)double(64位,双精度浮点型,默认) 字符型(1个)
char(16位) 布尔型(1个)
boolean 引用类型(无数种,除了基本其它都是引用) Day3运算符 一、数据类型转换
byte–>8位
short–>16位
int–>32位
long–64位
float -->32位
double–>64位
情况一:
小转大
自动转换
情况二:
大转小
不可以自动转换,还是可以转换,但是需要强制转换
格式:
(目标类型)数据
例如:(int)a
二、变量的作用域 作用域:变量可以使用的范围
开始:定义变量的位置
结束:变量所在的{}结束
三、运算符 1.算术运算符 +:
正负:+1 +2
加法运算1+2 -->3
连接符:让任意类型数据和字符串进行拼接
判断:如果+号任意一边有字符串,就是用作连接符
-
*
/: 整数除整数,结果是整数
%:取模
数字%2 -->余数为0,说明是偶数
数字%2 -->余数为1,说明是奇数
++:自增
在原来的基础上+1
--:自减
在原来的基础上-1
2.赋值运算符 =
赋值
将=右边的值(),赋值给左边的变量
+=
左右两边进行运行,把运算的结果赋值给左边
-=
*=
/=
%=
3.比较运算符 >
<
>=
<=
==
情况一:比较基本类型(8大基本数据类型),比较两边的值
情况二:比较引用类型
内存地址
!=
注意:比较运算之后,结果是布尔值(true & false)
4.逻辑运算符 & 两边同时为true,结果为true,否则为false
&& 只要左边为false,直接得出结果false,不进行右边的运行(在某些情况下,可以提高运行效率)
| 只有两边同时为false结果为false,否则为true(只要有一个为true,结果为true)
|| 只要左边为true,直接得出结果true,不进行右边的运行(在某些情况下,可以提高运行效率)
! 对就是错,错就是对
^ 异或 相同为false,不同为true
用来运算布尔表达式(运算布尔值 )
布尔表达式:表达式的运算结果是布尔值
运算后的结果是布尔值
5.三元(目)运算符 布尔表达式?值1:值2
如果布尔表达式的值为true那么值为值1 ,如果布尔表达式的值为false那么值为值2
Day4 选择结构 1、IF判断语句格式一:适用于1种判断情况
if(判断条件){
//满足判断条件执行的代码
}
执行原理:先判断条件(布尔表达式)
成立 (true) 执行if代码块内容
不成立(false) 直接结束if语句
格式二:适用于2种判断情况
if(判断条件){
//满足判断条件执行的代码
}else{
//不满足判断条件执行的代码
}
格式三:适用于多种判断情况
if(判断条件1){
//满足判断条件执行的代码
}else if(判断条件2){
//不满足判断条件1,满足判断条件2执行的代码
}else{
//不满足以上任何判断条件执行的代码
}
注意:只要满足其中某个判断,就不会再去进行其他的判断。
2、switch语句格式:
switch(表达式){
case:值1
break;
case:值2
break;
default:
break;
}
原理:1、计算表达式的值
2、让表达式的值和case值,进行比较(匹配)
相同:执行case对应的代码,结束switch语句
不同:继续和下一个case值比较,
3、如果所有的case值都不匹配,执行default下的代码
注意:
case后面的值必须是常量表达式
switch()中的表达式只能是byte/short/char/int/String/enum
Day5循环语句 1、while循环格式
while(循环条件){
//循环的内容
}
循环条件:
布尔表达式(布尔值)
执行原理:
1、判断循环条件是否成立
成立(true):执行循环内容,再判断循环条件
不成立(false):直接结束while循环
注意:
一般通过一个变量来控制循环次数
在循环的外面定义一个变量
循环内容执行后,要让变量进行+1操作
2、do-while循环do{
//循环内容
}while(循环条件)
执行原理:
1、先执行循环内容
2、再判断循环条件
不管循环条件是否成立,循环内容至少会执行一次。
通过变量控制循环次数
3、for循环for(初始化语句;循环条件;循环后的语句){
//循环内容
}
执行原理:
1、执行初始化语句
2、判断循环条件
成立(true):执行循环内容
不成立(false):结束for语句
3、执行循环后的语句
4、判断循环条件(执行步骤2)
注意:
初始化语句,只会在第一次循环中执行(只会执行一次)
4、break & continue break使用范围:
switch语句:结束swithc语句
循环语句:结束当前循环
continue使用范围:
循环语句:跳过本次循环,进入下一次循环
5、定义一个随机数import java.util.Random;//导入工具类
public class Demo1{
public static void main(String[] args){
//创建工具类Random
Random random = new Random();
//产生5随机数
for(int i = 0 ; i < 5; i++){
//调用工具类的nextInt(范围)方法
int num = random.nextInt(10);//范围:0-9
System.out.println("随机数是:" + num);
}
}
}
Day6数组
什么是数组
容器,保存多个数据
特点:
数组里面只能保存相同类型的数据
1、定义一维数组格式
数据类型[] 变量名 = new 数据类型[数组长度];
=左边
定义变量
数据类型:
指定数组保存的数据类型
[]:代表数组
=右边
创建数组
创建数组:
保存数组:定义数组类型的变量去保存
保存整数,定义整型变量去保存:
new:创建对象的关键字
数据类型[]:整体,代表数组,保存指定数据类型
数组长度:保存数据的个数
=:赋值
把右边创建的数组对象,保存到左边的变量中(让变量指向数组)
代码加载到内层中,由cpu执行
栈:
局部变量
堆:
对象
new:创建对象的关键字
在堆中开辟一块空间,保存创建对象
在内存中,每一块空间都有自己的地址
数组:根据数组的长度,次元 平均分成多份,
每一份都会有一个对应的索引值,从0开始
2、数组常见操作1、遍历数组
思路:找到数组所有的索引值就可以找到数组中的所有数据
如何找到索引值 (数字序列)
开头(最小索引值): 0 结尾(最大索引值):数组-1=数组.length-1
数组长度:length属性
数组.length
for(int i = 0 ; i2、找最值
//最大值 int[] arr = {22,11,15,7,16}; int max = 0; int min = arr[0]; for(int i = 0; iDay7方法arr[i]){ min = arr[i]; } } System.out.println(max); System.out.println(min); 封装功能代码,提高代码利用性,减少重复代码
1、定义方法修饰符 返回值类型 方法名(参数列表){ //方法内容 return 数据 ; }public static getMin(){ return ; }修饰符:
public static
返回值类型:
不需要返回数据:void需要返回数据:写返回的数据类型
intdoubleStringint[]
方法名:自己取(标识符)
规范:第一个单词全部小写,从第二个单词开始首字母大写
例如:add() getName()
参数列表:
没有:()
有:(数据类型 变量名)
判断:一般看功能代码中,有没有不确定的数据,没有,不写;
有,写在参数列表中,当做已知条件使用
return:关键字
结束函数
如果在结束方法的时候需要返回数据,可以返回数据
return 数据;
注意:如果返回值是void,一定不可以return 数据
只有返回值类型不是void的时候才能return数据
return 数据要和返回值类型兼容
返回值 返回值类型
return 3; --------->int
2、调用方法函数名(实参列表);实参列表:调用函数时传递的具体数据,要和参数列表一一对应
注意:函数中参数列表中的具体数据,是在调用函数时决定的
如何获取返回值
可以定义变量,接受返回值
数据类型 变量名=函数名(实参列表);
3、方法的重载在一个类中有2个或2个以上的同名方法
要求:
方法名相同,参数列表不同(参数个数,参数数据类型),和返回值类型无关
注意:
根据传递参数的不同,自动去调用对应的重载方法



