ctrl+s 保存 ctrl+a 全选 ctrl+f 查找 ctrl+c 复制 ctrl+v 粘贴 ctrl+x 剪切 ctrl+z 撤销 windows+d 回到桌面 windows+e 打开计算机 windows+l 锁屏 windows+r 打开运行,输入cmd后启动dos窗口 ctrl+alt+delete 启动任务管理器 ctrl+shift 切换输入法,一旦切换到中文输入法后则使用shift进行切换 alt+tab 切换任务
1.1 Java语言的背景
Java语言诞生于1995年,之前隶属于sun公司,现在隶属于oracle公司。
Java语言在编程语言排行榜占据重要的地位。
1.2 版本分类
(1) Java SE(Java Platform, Standard Edition)
称之为“Java平台标准版”,主要学习Java语言的基础语法知识。
(2)Java EE(Java Platform,Enterprise Edition)
称之为“Java平台企业版”,主要学习B/S架构项目的后台开发技术。
(3)Java ME (Java Platform,Micro Edition)
称之为“Java 平台微型版”,随着Android系统的普及已经走向淘汰。
2.1 jdk的下载和安装
JDK是整个java的核心,包括java的运行环境、java工具和java基础类库。
(1) jdk的下载方式
方式一:通过官网下载 www.sun.com www.oracle.com 方式二:通过搜索下载 www.baidu.com www.sogou.com
(2) jdk的安装方式
1. 若下载的是安装版,则一路点击下一步安装即可; 2. 若下载的是绿色版,则直接解压即可; 3. 无论是安装版还是绿色版,切记安装的路径中不要有中文!!!
(3)相关的概念(记住)
jdk - Java开发工具包,只要做Java语言的开发就需要下载和安装该软件。
jre - Java运行时环境信息,只要运行Java项目就需要下载和安装该软件。
javac.exe - Java语言的编译器,主要用于将高级Java源代码翻译成字节码文件。
java.exe - Java语言的解释器,主要用于启动JVM对字节码文件进行解释并执行。
JVM - Java虚拟机,是一台虚拟的主机。
(4) 环境变量的配置
基本概念 通常情况下可执行文件只能在安装目录中使用,若希望该可执行文件能在任意目录中使用,则需要配置环境变量Path。
配置方式 计算机 => 右键,选择属性 => 高级系统设置 => 高级 => 环境变量 => 系统变量 => 找到Path后点击编辑,将javac.exe
所在的路径信息粘贴到Path变量值的最前面,添加英文版分号 => 一路点击确定即可
切记Path变量值原来内容不要动并且要重新启动dos窗口!
新建文本文档,将文件扩展名由xxx.txt修改为xxx.java
;
使用记事本的方式打开文件,编写Java代码后进行保存;
启动dos窗口,并切换到.java文件所在的路径中;
使用javac xxx.java
进行编译,生成xxx.clas
s的字节码文件;
使用java xxx
进行解释执行,打印最终结果;
public class Hello{ public static void main(String[] args) { System.out.println("hello world"); } }
注意:文件名和类名必须一致
System.out.println("hello world");
编程打印自己的姓名、年龄、座右铭。
public class Qian{ public static void main(String[] args) { System.out.println("姓名:"+"xxx"); System.out.println("年龄:"+"18"); System.out.println("座右铭:"+"你好,hello java"); } }
如: xiaomage 18 ...
5.1 变量的基本概念
当需要在程序中记录单个数据内容时则应该声明一个变量,变量本质上就是内存中的一块存储单元,由于该存储单元中的数据内容可以改变,因此得名为"变量"。
5.2 变量的声明方式
数据类型 变量名 = 初始值;
其中=
初始值可以省略,但分号不许省略
如: int age = 18;
5.3 标识符(变量)的命名规则(笔试题)
(1) 要求由字母、数字、下划线以及$等组成,其中数字不能开头; 如:name、age、year、time、name2、name3 (2)要求不能与Java语言中的关键字同名,关键字就是Java语言中用于表示特殊含义的单词; 如:public、class、static、void (3)区分大小写,长度没有限制但不宜过长; 如:day和Day代表两个名字,不推荐使用 (4)尽量做到见名知意,支持中文但不推荐使用; 如:length、size、month、day、年龄
5.4 常用的注释
// - 单行注释,从//开始一直到本行结束的内容都是注释 /**/ - 多行注释,从/*\*开始一直到*/之间的所有内容都是注释,不允许嵌套
6.1 基本分类
在Java语言中数据类型主要分为两大类
:
(1) 基本数据类型(记住) byte、short、int、long、float、double、boolean、char (2) 引用数据类型(了解) 数组、类、接口、枚举、标注
6.2 整数类型
其中byte类型在内存空间中占1个字节,表示的整数范围是:-2^7 ~ 2^7-1. -128 ~ 127 其中short类型在内存空间中占2个字节,表示的整数范围是:-2^15 ~ 2^15-1. -32768 ~ 32767 其中int类型在内存空间中占4个字节,表示的整数范围是:-2^31 ~ 2^31-1. 正负二十一亿之间 其中long类型在内存空间中占8个字节,表示的整数范围是:-2^63 ~ 2^63-1. 比int类型还大的数
6.3 浮点类型
在Java语言中用于描述小数数据的类型有:float、double,推荐使用double类型。
float叫做单精度浮点数, double叫做双精度浮点数
6.4 布尔类型
在Java语言中用于描述真假信息的数据类型有:boolean,数值只有两种:true 和 false
。
6.5 字符类型
在Java语言中用于描述单个字符信息的数据类型有:char,如:'1'、'a'、'马'。 其中char类型在内存空间中占2个字节,该类型在以后的开发中很少使用,通常使用String类型加以描述,并且使用双引号将字符串内容括起来,如:"zhangfei"。
实现变量的输入和输出
// 导入java目录中util目录中的Scanner import java.util.Scanner; public class TestVar{ public static void main(String[] args) { String name; int age; System.out.println("请输入姓名和年龄"); // 表示创建一个扫描器来扫描从键盘输入的内容 Scanner sc = new Scanner(System.in); //从键盘输入的内容中读取一个字符串放到变量name的空间中 name =sc.next(); // 注意:当使用nexInt()方法时,只能输入int类型的数据。 age = sc.nextInt(); // 打印用户输入的内容 System.out.println("name=" + name); System.out.println("age=" + age); } }
注意:出现乱码报错:则需要在运行时加 javac -encoding UTF-8 xxx.java
// 导入java目录中util目录中的Scanner import java.util.Scanner; public class TestVar{ public static void main(String[] args) { String name; int age; String sign; System.out.println("请输入姓名和年龄和座右铭"); // 表示创建一个扫描器来扫描从键盘输入的内容 Scanner sc = new Scanner(System.in); //从键盘输入的内容中读取一个字符串放到变量name的空间中 name =sc.next(); age = sc.nextInt(); sign = sc.next(); // 打印用户输入的内容 System.out.println("name=" + name); System.out.println("age=" + age); System.out.println("sign=" + sign); } } // 用 + 字符串连接 System.out.println("age"+age); } }
7.1 if-else分支结构
语法格式:
if(条件表达式){ 语句块1; }else{ 语句块2; } 执行流程: 判断条件表达式是否成立 => 若成立,则执行语句块1; => 若不成立,则执行语句块2;
import java.util.Scanner; public class TestIfElse{ public static void main(String[] args){ //1.提示用户输入考试成绩并使用变量记录 System.out.println("请输入您的考试成绩:"); Scanner sc = new Scanner(System.in); int score = sc.nextInt(); //2.使用if-else分支结构判断是否及格并给出对应的提示 if(score >= 60){ System.out.println("恭喜您考试通过了!"); }else{ System.out.println("下学期来补考吧!"); } //3.无论是否及格都打印一句话 System.out.println("世界上最遥远的距离不是生与死而是你在if我在else,看似相交却又永远分离!"); //练习:提示用户输入一个整数,使用if-else分支结构判断该整数是负数还是非负数 } }
/* 编程使用if-else分支结构判断该整数为负数还是非负数 */ import java.util.Scanner; public class TestIfElseJudge{ public static void main(String[] args){ //1.提示用户输入一个整数并使用变量记录 System.out.println("请输入一个整数:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); //2.使用if-else分支结构判断该整数为负数还是非负数 if(num < 0){ System.out.println(num + "是负数!"); } else{ System.out.println(num + "是非负数!"); } } }
7.2 if-else if-else分支结构
语法格式:
if(条件表达式1){ 语句块1; }else if(条件表达式2){ 语句块2; }else{ 语句块n; } 执行流程: 判断条件表达式1是否成立 => 若成立,则执行语句块1; => 若不成立,则判断条件表达式2是否成立 => 若成立,则执行语句块2; => 若不成立,则执行语句块n;
/* 编程实现if-else if-else分支结构的使用 */ import java.util.Scanner; public class TestIfElseifElse{ public static void main(String[] args){ //1.提示用户输入身份信息并使用变量记 System.out.println("请输入您的身份信息:"); Scanner sc = new Scanner(System.in); String str = sc.next(); //2.使用if-else if-else分支结构判断身份并给出对应的提示 //由于String类型不是基本数据类型,因此判断是否相等时不建议使用== //判断"军人"是否等于str,也就是是否与str相等 if("军人".equals(str)){ System.out.println("请免费乘车!"); } else if("学生".equals(str)){ System.out.println("请购买半价票!"); } else{ System.out.println("全价票等着您!"); } //3.无论是什么身份都打印一句话 System.out.println("坐上了火车去拉萨,去看那美丽的布达拉!"); } }
/* 编程使用if-else if-else分支结构判断该数是负数、正数还是零 */ import java.util.Scanner; public class TestIfElseifElseJudge{ public static void main(String[] args){ //1.提示用户输入一个整数并使用变量记录 System.out.println("请输入一个整数:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); //2.使用if-else if-else分支结构判断并打印 if(num < 0){ System.out.println(num + "是负数!"); } else if(num > 0){ System.out.println(num + "是正数!"); } else{ System.out.println(num + "是零!"); } } }
8.1基本概念
当需要在程序中记录单个数据内容时,则声明一个变量即可; 当需要在程序中记录多个类型相同的数据内容时,则声明一个一维数组即可
8.2 声明方式
语法格式 :
数据类型[] 数组名称 = new 数据类型[数组的长度];
如:
int[] arr = new int[3]; // 表示声明一个长度为3元素类型为int类型的一维数组 int num = 3; // 表示声明一个int类型的变量初始值为3 int arr[] = new int[3]; // 不推荐使用
注意: 只有在声明数组时[]中的数字才代表长度,否则一律代表下标;
语法格式 :
初始化 数据类型[] 数组名称 = {初始值1, 初始值2, ...};
如:
int[] arr = {1, 2, 3, 4, 5}; // 声明一个初始值为1 2 3 4 5元素类型为int的一维数组
/* 编程实现一维数组的声明和使用 */ public class TestVar{ public static void main(String[] args){ //1.声明一个长度为3元素类型为int类型的一维数组 动态方式 int[] arr = new int[3]; //2.打印数组的长度以及数组中每个元素的数值 System.out.println("数组的长度是:" + arr.length); //3 System.out.println("下标为0的元素是:" + arr[0]); //0 默认值 System.out.println("下标为1的元素是:" + arr[1]); //0 System.out.println("下标为2的元素是:" + arr[2]); //0 //编译ok,运行发生ArrayIndexOutOfBoundsException数组下标越界异常 //System.out.println("下标为3的元素是:" + arr[3]); System.out.println("--------------------------------------------"); //3.使用for循环打印数组中的所有元素 for(int i = 0; i < arr.length; i++){ System.out.println("下标为" + i + "的元素是:" + arr[i]); //全是0 } System.out.println("--------------------------------------------"); //4.测试一下double类型的元素默认初始值 double[] brr = new double[4]; //使用for循环打印所有元素值 for(int i = 0; i < brr.length; i++){ System.out.println("下标为" + i + "的元素是:" + brr[i]); //全是0.0 } System.out.println("--------------------------------------------"); //5.实现数组元素的初始化操作 静态方式 int[] crr = {1, 2, 3, 4, 5}; //使用for循环打印所有元素的数值 for(int i = 0; i < crr.length; i++){ System.out.println("下标为" + i + "的元素是:" + crr[i]); //1 2 3 4 5 } System.out.println("--------------------------------------------"); //6.特殊的声明方式 int[] drr = new int[]{11, 22, 33, 44, 55}; //使用for循环打印所有元素的数值 for(int i = 0; i < drr.length; i++){ System.out.println("下标为" + i + "的元素是:" + drr[i]); //11 22 33 44 } } }
声明一个长度为5元素类型为int类型的一维数组,打印数组中所有元素值;
public class TestVar{ public static void main(String[] args){ //1.声明一个长度为5元素类型为int类型的一维数组 int[] arr = new int[5]; //打印数组中所有元素值 for(int i = 0; i < arr.length; i++){ System.out.print(arr[i] + " "); //0 0 0 0 0 } System.out.println(); System.out.println("-------------------------------"); } }