#Java基础篇(一)
1.关于Java开发环境的搭建与配置
JVM: java虚拟机
jre: java运行环境
jdk: java开发工具
jdk里面包含了jvm和jre
1.1关于jdk 安装
下载好jdk的安装包后一路next即可。
1.2关于环境变量的配置
配置环境变量的原因:在编译代码的时候,我们需要找到jdk中的Java和Javac命令,使用环境变量(路径)能直接找到。
2.DOS命令
2.1dir
显示当前目录下所有文件
2.2 cd
切换路径
2.3mkdir
在当前目录下创建文件夹
2.4rd
删除指定目录,注:不能删除非空的目录
2.5del
删除文本文件
2.6cls
清屏操作
3.HelloWorld代码的书写
class Hello{
public static void main(String[] args){
System.out,println("HelloWorld");
}
}
4.Java中的注释问题
//单行注释
/*
多行注释
*/
/**
*文档注释
*
*/
5.eclipse的安装
下载好eclipse的安装包后在打开解压后的文件,打开eclipse.exe应用程序即可。(注:可在桌面上创建快捷键)
6.进制单位
进制单位 | 基数范围 | 规则 |
---|---|---|
二进制 | 0~1 | 逢2进1 |
八进制 | 0~7 | 逢8进1 |
十进制 | 0~9 | 逢10 进1 |
十六进制 | 0~9 a~f | 逢16进1 |
二进制: 逢2进1
0 (0) 1(1) 10 (2) 11(3) 100 (4)
八进制: 逢8进1
0(0) 1(1) ... 7 (7) 10(8) 11(9) 12(10)
十进制:
十六进制: 0(0).... a (10) b (11) ...f(15) 10(16)
进制之间可以转换的:
1.可以使用计算器
2.在线转换的网站
3.进制转换是有Java可以的转的
7.变量【重点】
定义: 在程序运行的过程中,可以改变的量的叫变量
语法格式:
数据类型 变量名 = 值;
数据类型: 对变量进行约束的
变量的名字: 自己起的一个名字
=: 赋值号
初始化的值: 就是存储的一个数据
变量的命名规则:
1、变量是由字母,数字,下划线,特殊字符组成的,不能以数字开头
2、小驼峰命名法
3、变量名不能使用Java中的关键字
4、首字母小写
5、见明知意
8.Java中的数据类型(八种)
8.1整数类型
整数类型 | 数据的范围 | 占用的内存的字节数 |
---|---|---|
byte | -128~127 | 1字节 |
short | -32768~32767 | 2字节 |
int (常用的) | -2^31 ~ 2^31 - 1 | 4字节 |
long | -2^63 ~ 2^63-1 | 8字节 |
8.2浮点型
浮点类型 | 数据的范围 | 占用的字节数 |
---|---|---|
float(单精度的) | -3.4*10^38 ~ 3.4 * 10^38 | 4字节 |
double(双精度的)(Java中默认的) | -1.79*10^308 ~ 1.79 * 10 ^308 | 8字节 |
8.3布尔类型
布尔 | 数据范围 | 占用的字节数 |
---|---|---|
boolean | true 或者 false | 1字节 |
8.4字符型
字符 | 数据范围 | 占用的字节 |
---|---|---|
char | 除了\ 其他都可以 | 2个 |
9.转义字符【重点】
目的: 将一个无意义的字符转为一个有意义的字符或者将一个有意义的字符转为一个无意义的字符
语法格式: \字符
特殊转义字符:\n 回车换行 \t制表符 制表符在前表tab 在语句中间表示空格
10.运算符
10.1算术运算符
算术运算符 | 表示的意思 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
+= | 加等(先加后等) |
-= | 减等(先减后等) |
*= | 乘等(先乘后等) |
/= | 除等(先除后等) |
%= | 余等(先余后等) |
10.2关系运算符
关系运算符 | 表示的意思 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 是否等于 |
!= | 是否不等于 |
10.3逻辑运算符
逻辑运算符 | 表示的意思 |
---|---|
&& | 与 |
|| | 或 |
! | 非 |
10.4逻辑运算符的短路原则
逻辑与的短路原则:
表达式1 && 表达式2 &&...
如果表达式1 为false 的话,整体就为false了, 表达式2 和以后的表达式就不再执行了
为啥? 逻辑与 只要有一个为false,整体就为false了。表达式1位f已经为false了。已经决定了
整体的结果了。Jav为了执行的效率的问题,所以短路了
逻辑或的短路原则:
表达式1 || 表达式2 || ...
如果出现表达式为true的,整体就为true,从为true的表达式开始后面的表达式就不再执行了
11.Java中的分支结构
11.1if分支
语法结构:
if(){
语句体;
}
执行流程: 如果布尔表达式为true, 就执行大括号里面的语句体。 如果布尔表达式为false,就跳过大括号里面的语句体,接着往下执行
例:
public class Demo7 {
public static void main(String[] args) {
if (false) {
System.out.println("执行了if");
}
System.out.println("if未执行");
}
}
public class Demo8 {
public static void main(String[] args) {
//如果成绩大于80分,输出奖励一个宝剑
int score = 50;
if (score > 80) {
System.out.println("奖励一个宝剑");
}
System.out.println("结束");
}
}
11.1.1if-else分支结构
语法格式:
if (布尔表达式) {
语句体1;
} else {
语句体2;
}
执行流程: 如果布尔表达式为true 执行语句体1 ,如果布尔表达式为false 执行 语句体2
最重要的看布尔表达式值。 两者只能选择其一。
public class Demo10 {
public static void main(String[] args) {
if (false) {
System.out.println("呵呵");
} else {
System.out.println("嘿嘿");
}
}
}
案例: 判断一个年份是否是闰年
public class Demo12 {
public static void main(String[] args) {
//判断一个年份是否是闰年
//分析: 是闰年 不是闰年 if-else
//一个年份 : 在Java中咋表示
//闰年: 能被4整除的并且不能100整除 或者能被400整除的是闰年
int year = 2001;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
}
}
11.1.2if-else if分支结构
语法格式:
if (布尔表达式1) {
语句体1
} else if (布尔表达式2) {
语句体2
} else if (布尔表达式n) {
语句体n
} else {
语句体n+1
}
执行流程:
如果碰到if语句后面的小括号中的表达式为true的时候,就执行相对应的大括号后面的语句体
其他语句体一概不执行
应用场景: 多种情况
案例:判断成绩的等级
public class Demo13 {
public static void main(String[] args) {
/**
* 学生成绩的等级问题:
* 90~100 打印优秀
* 80~89 打印良好
* 70~79 打印一般
* 60~69 打印及格
* 60分以下 叫家长
* 结果是多个分支 用if-esle if
*/
int score = 31;
if (score <= 100 && score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {//代码能够执行到 这一步
System.out.println("良好");
} else if ( score >= 70) {
System.out.println("一般");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("叫家长");
}
}
}
11.1.3if的嵌套【了解】
public class Demo14 {
public static void main(String[] args){
//嵌套写法
//年龄满18岁,体重达标 才能献血
int age = 19;
int weight = 80;
// if (age >= 18 && weight >= 50) {
// System.out.println("去献血");
// }
if (age >= 18) {
//age >= 18 如果年龄达标 再判断体重
if (weight >= 50) {
System.out.println("可以去献血");
} else {
System.out.println("年龄达标,但是体重不达标");
}
} else {
//age < 18
System.out.println("未成年不能献血");
}
}
}
11.2switch分支结构
也是一种选择,类似与 if-else if 分支
多种选择
语法格式:
swicth (表达式) {
case 常量1:
语句体1;
break;
case 常量2:
语句体2;
break;
case 常量3:
语句体3;
break;
...
default:
语句体n;
break;
}
执行流程: switch后面小括号中的表达式值去和 case后面的常量进行匹配。如果他们两个一样的话
就执行当前的语句体,其他语句体不执行。
案例:
public class Demo15 {
public static void main(String[] args) {
//使用switch-case 写
/**
* 按1 给妈妈打电话
* 按2 给爸爸打电话
* 按3 给奶奶打电话
* 按4给爷爷打电话
* 按其他键 个110
*/
int num = 1;
switch (num) {//num表示的是int类型的值,二if中表示的是布尔类型
case 1:
System.out.println("给妈妈打电话");
break;//终止 打断
case 2:
System.out.println("给爸爸打电话");
break;
case 3:
System.out.println("给奶奶打电话");
break;
case 4:
System.out.println("给爷爷打电话");
break;
default:
System.out.println("110");
break;
}
11.3关于switch-case的面试题
switch(表达式) {
}
表达式可以是什么类型的数据
byte short int char String 枚举
扩展:控制台键盘录入
import java.util.Scanner;
public class Demo19 {
public static void main(String[] args) {
Scanner sb = new Scanner(System.in);
System.out.println("请输入一个整数:")
//获取控制台输入的int类型的数据
int a = sb.nextInt();
//获取控制台输入的byte类型的数据
// byte b = sb.nextByte();
//获取控制台输入的float类型的数据
// float f1 = sb.nextFloat();
//获取控制台输入的布尔类型的数据
// boolean b1 = sb.nextBoolean();
//获取控制台输入的字符串类型的数据
// String str = sb.next();//获取控制台字符串的方法
//获取控制台输入的字符类型的数据
//sb.next() 取控制台的字符串的: 例如 abcdef
//charAt(0) 取你字符串中 第一个位置的字符 a
//charAt(1)取你字符串中 第二个位置的字符 b
//char ch = sb.next().charAt(0);
System.out.println(a);
//字符的获取 是在字符串的基础之上获取的
}
}