一、 初始Java
1、Java的简介
Java是一种高级编程语言,Java初期是前Sun公司中James Gosling的带领下开始开发的,他也被誉为”Java语言之父“,在1995年由甲骨文股份有限公司推出。
2、Java的用途
在计算机软件应用领域中,Java应用分为两种:一种是安装和运行在本机上的一些软件程序,如QQ;另外一种就是通过浏览器访问的面向Internet的应用程序,如百度。
3、两种常用的Java技术
Java SE:Java的核心技术,提供基础的Java开发工具、执行环境与应用程序接口(API),主要用于桌面应用程序的开发。
Java EE:主要用于网络程序和企业级应用的开发。
4、开发Java程序的基本步骤
1)安装的JDK
首先去寻找一个合适的JDK进行安装。
JDK的主要目录有:
[外链图片转存失败(img-XBWrAERX-1569152457503)(C:\Users\HASEE\Desktop\博客图片\Image 13.png)]
bin:存放编译、运行Java程序的可执行文件。
jre:存放Java运行环境的文件。
lib:存放Java的类库文件。+
2)配置环境变量
1.找到此电脑,或者我的电脑,点击属性
2.点击高级系统设置
3.点击环境变量
4.在HASEE的用户变量中,新建变量名为 JAVA_HOME ,变量值为你的jdk安装目录,点击确定
5.在系统变量中,新建两个项目,点击确定
6.点击确定,即可使用
以上完成后,即可开始编写Java程序,步骤即下:
1)编写源程序
创建一个.txt的文件,将后缀名.txt改为.java的文件,把要下达的指令逐条使用Java语言描述出来。
Java源程序文件使用 .java作为扩展名。
2)编译
JDK就是通常说的编译器。可以在路径上输入cmd进行编译运行,即控制台。将.java的文件进行翻译,输出一个扩展名为.class的文件,称为字节码文件。
3)运行
在Java平台上运行,即可看到结果。
4、Java程序的结构
1)编写程序结构
文件名首字母要大写,不能以数字符号开头,类名和文件名必须一致
public class 类名(即文件名){}
2)编写main()方法的框架
public static void main(String [] args){}
String中的S必须要大写
3)编写代码(即编写你需要输出的东西)
System.out.println("输入你需要输出的内容");
示例代码
pubilc class Hello{
public static void main(String [] args){
System.out.print("HelloWorld");
}
}
//输出结果是 HelloWorld
5、Java程序的注释
在程序中注释一些说明性的文字。
单行注释 :// 每一行中”//“后面的文字都是注释。通常使用在代码之间或者一行代码的后面,用来说明某一块代码的作用。
多行注释 : /* 与 */之间的内容都属于注释,当说明的文字较多时,需要占用多行时使用。
文档注释:
/* *
*/
块注释:
/*
*/
二、变量、数据类型和运算符
1、变量
变量是一个数据储存空间的表示,即根据数据类型为它在内存中分配一块空间,然后数据就可以放进这块空间中去。
2、八大基本数据类型与引用数据类型
基本数据类型
Int 整数型 例如:1,2,3
short 短的 32位整数型
long 长的 64位整数型
char 字符 ‘男’,‘女’
boolean 布尔型 true:真的 false:假的
double 32位小数型 1.2,1.3,1.4
byte 短的字节 16位
float 长的字符 32位
引用数据类型
String 字符串 “sasdas”,“名字”
3、数据类型转换
1)满足自动类型转换,需要两个数据类型要兼容
2)强制数据类型转换,如:
int a = 10; double b = 9.9;
int c = a + (int) b ;
4、变量声明、使用及命名规则
1)声明变量 即给变量命名
数据类型 变量名;
int num;
double score;
char sex;
String name;
2)给变量赋值
变量名 = 值;
数据类型 变量名 = 值;e
int num = 10;
double score = 96.5;
char sex = '男';
String name = "李四";
3)调用变量 使用存储的变量
System.out.print(num); //从控制台输出变量num存储的值
System.out.print(score); //从控制台输出变量score存储的值
System.out.print(sex); //从控制台输出变量sex存储的值
System.out.print(name); //从控制台输出变量name存储的值
变量命名规则
必须以字母,下划线_或者"$"开头,可以包含数字,但不能以数字开头,也不能包含任何特殊字符,以及不能使用Java语言的关键字,如:int、class等。
5、扫描仪
可以自己从键盘输入内容
1)导包
import java.util.Scanner;
2)扫描仪
Scannner input = new Scanner(System.in);
3)接收器、从键盘输入
数据类型 变量名 = input.next(数据类型(字母要大写))();
int num = input.nextInt();
如果是String类型,next后面只需要加();。
String name = input.next();
示例代码
import java.util.Scanner;
public class Test{
public static void main(String [] args){
Scanner input = new Scanner(System.in);
System.out.print("输入一个数字:");
int num = input.nextInt();
}
}
//结果为你输入的数字
6、运算符
1)赋值运算符
= 如:int i = 1;就是把1存进到i中,现在的 i 的值也是1了
2)算术运算符
主要使用数值操作数进行数学计算
加法运算符 :+ 减法运算符 :- 乘法运算符 :* 除法运算符 :/ 取余数运算符 :%
3)关系运算符
用来做比较的
大于:> 小于:< 大于等于:>= 小于等于:<= 等于:== 不等于:!=
boolean类型 通过比较只有两个值
1)ture:真
2)false:假
4)逻辑运算符
用来连接if条件的运算符
&&
与,并且 条件1 && 条件2
两个条件同时为真,则为真;两个条件有一个为假,则为假
||
或,或者 条件1 || 条件2
两个条件有一个为真,则结果为真;两个条件同时为假,则为假
!
非 !条件
条件为真的时,结果为假;条件为假时,结果为真
5)其他符号运用
\n :换行作用
\t :空行作用
++a :先加输出a
a++ :先输出a后在进行加法
– , ** 同理
a+=i 等价于 a=a+i
三、选择结构
1、if选择结构
1)if选择结构
是根据条件判断之后在做处理的一种语法结构。
语法 if(条件){ 对条件进行判断。结果为真,则执行代码块;否则,执行代码块后面的部分。
//代码块 //条件成立后要执行的代码
}
流程图
示例代码
public class Test1{
public static void main(String [] args){
int i = 1;
if(i>0){
System.out.print("此数大于0");
}
}
}
//输出结果为:此数大于0
2)if—else选择结构
先判断,在执行。如果条件成立则执行代码块1,否则执行代码块2 。
语法 if(条件){
//代码块1
}else {
//代码块2
}
流程图
示例代码
public class Kh {
public static void main(String [] args) {
Scanner input = new Scanner(System.in);
System.out.println("成绩为:");
double fen = input.nextDouble();
if (fen==100) {
System.out.println("恭喜获得一辆法拉利");
}else{
System.out.print("不能获得此奖励")
}
}
}
//如果输入的分数为100,则可以输出:恭喜获得一辆法拉利
//如果输入的分数不是100,则输出:不能获得此奖励
3)多重if结构
解决需要判断的条件是连续区间
语法 if(条件1){
//代码块1
}else if(条件2){
//代码块2
}else {
//代码块3
}
如果条件1成立,则执行代码块1,以下的代码都不去执行,以此类推。
流程图
示例代码
public class Kk {
public static void main(String [] args) {
Scanner input = new Scanner(System.in);
System.out.println("成绩为:");
double fen = input.nextDouble();
if (fen==100) {
System.out.println("恭喜获得一辆法拉利");
}else if(fen>=90) {
System.out.println("恭喜奖励一台外星人笔记本");
}else {
System.out.println("分数不足");
}
}
}
//如果fen=100,则输出恭喜获得一辆法拉利;如果fen=90,判断条件1不成立,则去判断条件2(fen>=90),成立输 //出恭喜获得一台外星人笔记本; 两个条件都不成立就输出分数不足。
4)嵌套if结构
if选择结构里面在嵌入一个if
语法 if(条件1){
if(条件2){
//代码块1
}else {
//代码块2
}
}else {
//代码块3
}
如果条件1成立,则执行条件2;在条件2中,如果条件2成立则执行代码块1,如果条件2不成立则执行代码块2
如果条件1不成立,则直接进入最后的else,执行代码块3
流程图
示例代码
public class Sj {
public static void main(String [] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入是否是会员:是(y)/否(其他字符)");
String identity = input.next();
System.out.println("请输入购物金额:");
double money = input.nextDouble();
if(identity.equals("y")) {
if(money>200) {
money = money*0.75;
}else{
money = money*0.8;
}
}else {
System.out.println("不是会员");
}
System.out.println(money);
}
}
/*如果输入的字符是y,则条件identity.equals("y")成立,继续判断下面条件,如果输出的金额大于200,则满足money>200的条件,就会计算money = money*0.75,最后输出金额;如果不满足money>200的条件,则进入第一个else计算money = money*0.8,输入最终金额money。
如果输入的字符不是y,则条件identity.equals("y")不成立,则直接进入最后一个else,输出不是会员,然后输出你原始金额money。
*/
2、switch选择结构
switch选择结构可以更好的解决等值判断问题。
1)语法 1
switch(表达式){
case 常量1:
//代码块1;
break;
case 常量2:
//代码块2;
break;
…
default:
//代码块n;
break;
}
switch:表示”开关“,开关为switch后面小括号的表达式的值,switch语句小括号可以是int、short、byte、char、String类型表达式。
case:常量,如果你的表达式的值等于你的常量值,就会运行表达式的值和你case常量相同的case中的内容,如果你case块里没有break;,下面的所有case块都是成立的都会运行,直到遇到break或者程序运行完毕。
break:停止,跳出当前结构。
default:表示默认,即其他情况都不满足就会去运行它。
示例代码
public class Sl {
public static void main(String [] args) {
int mc = 1;
switch (mc) {
case 1:
System.out.print("数字为1\t");
case 2:
System.out.print("数字为2\t");
default:
System.out.print("数字不是1和2");
}
}
}
/*
因为代码中定义了mc=1,所以switch中小括号的值就为1,所以会从case1开始运行,因为代码中没有break,所此代码会运行到完才会结束,所以最后的运行结果为 数字为1 数字为2 数字不是1和2
*/
public class S2 {
public static void main(String [] args) {
int mc = 2;
switch (mc) {
case 1:
System.out.println("数字为1");
break;
case 2:
System.out.println("数字为2");
break;
default:
System.out.println("数字不是1和2");
break;
}
}
}
/*
此代码中定义了mc=2,所以switch中小括号的值就为2,所以会从case 2开始运行,输出了 数字为2之后,它碰到了break; 所以此代码会直接停止输出 数字为2,下面的代码就不会去运行了
*/
public class S2 {
public static void main(String [] args) {
int mc = 3;
switch (mc) {
case 1:
System.out.println("数字为1");
break;
case 2:
System.out.println("数字为2");
break;
default:
System.out.println("数字不是1和2");
break;
}
}
}
/*
此代码中定义了mc=3,所以switch中小括号的值就为3,代码中没有一个值是3的所以不满足任何case,就会进入默认值default中,输出这一块的代码,输出结果为 数字不是1和2
*/
2)语法 2
switch(表达式){
case 1:
case 3:
//代码块1
break;
case 2:
case 5:
//代码块2
break;
}
此语法可以让多个case执行同一语句
示例代码
import java.util.Scanner;
public class A1 {
public static void main(String [] args) {
Scanner in = new Scanner(System.in);
System.out.println("输入星期几:");
int day = in nextInt();
switch (day) {
case 1:
case 3:
case 6:
case 5:
System.out.println("学口才");
break;
case 2:
case 4:
case 7:
System.out.print("学编程");
break;
}
}
}
/*
如果你输出的是1、3、5、6,就都会输出学口才;如果你输出的是2、4、7,就都会输出学编程
*/
3、处理系统异常
关于处理定义为数值,输入不是数值时的报错.
public class Sl4 {
public static void main(String [] args) {
System.out.println("\n\t欢迎使用我行我素购物管理系统1.0版\n");
System.out.println("\t\t1、登录系统\n");
System.out.println("\t\t2、退出\n");
System.out.println("* * * * * * * * * * * * * * * * * * * * * * *\n");
System.out.println("请选择,输入数字:");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
switch (num) {
case 1:
System.out.println("欢迎使用!")
break;
case 2:
System.out.println("谢谢你的使用!");
break;
default:
System.out.println("输入错误。");
break;
}
}
}
在上面这个代码中,如果不是输入的数值,就会显示下图,这就是系统异常,即报错
public class Sl4 {
public static void main(String [] args) {
System.out.println("\n\t欢迎使用我行我素购物管理系统1.0版\n");
System.out.println("\t\t1、登录系统\n");
System.out.println("\t\t2、退出\n");
System.out.println("* * * * * * * * * * * * * * * * * * * * * * *\n");
System.out.println("请选择,输入数字:");
Scanner in = new Scanner(System.in);
if (in.hasNextInt()==true) {
int num = in.nextInt();
switch (num) {
case 1:
System.out.println("欢迎使用!")
break;
case 2:
System.out.println("谢谢你的使用!");
break;
default:
System.out.println("输入错误。");
break;
}
}else {
System.out.println("请输入正确的数字!");
}
}
}
在上面代码中,你可发现它加了一行 if (in.hasNextInt()==true) 这个条件,其中的这行in.hasNextInt()==true代码就是限制于你只能输入数字,有了这行代码就算你不是输入数值它也不会报错只会不输出东西,所以你可以在下面加一个提示语 “请输入正确的数字” ,运行如下图:
四、循环结构
1、while循环结构
1)while循环结构
循环不是无休止进行的,满足一定条件的时候循环才会继续,称为"循环条件"
循环条件不满足的时候,循环就会退出或者结束
循环结构是反复进行相同或类似的一系列操作,称为"循环操作"
语法
while (循环条件){
//循环操作
}
流程图
示例代码
public class Shi {
public static void main(String [] args) {
int i = 1;
while(i<=100) {
System.out.println("第"+i+"遍写:好好学习,天天上向!");
i++;
}
}
}
/*此循环代码,你定义了i为1,1满足循环条件i<=100,所以进入循环输出第1遍好好学习,天天向上!,然后进行i++,即i+1的操作,一直到i到101,不满足i<=100,结束该循环并结束程序。最后输出结果为 100遍的好好学习,天天向上。
*/
2)do—while循环结构
此循环的特点是先执行,在判断 即至少要执行一次循环操作
语法
do {
//循环操作
}while(循环条件);
流程图
示例代码
public class Sh {
public static void main(String [] args) {
Scanner in = new Scanner(System.in);
String answer = "";
do {
System.out.println("上机编写程序!");
System.out.println("合格了吗?(y/n)");
answer = in.next();
System.out.println("");
}while(!"y".equals(answer));
System.out.println("恭喜你通过了测试!");
}
}
//先循环一遍do下面的循环操作,然后进行循环条件判断,如果输入的字符不是"y",就会一直循环 循环操作;如果你输入的字符是"y",循环就会结束,并输出"恭喜你通过了测试!"。
2、for循环结构
· 初始部分:设置循环的初始状态 如:int = 0;
· 循环体:重复执行的代码
· 迭代部分:下一次循环开始前要执行的部分 如:i++; 进行循环次数的累加
· 循环条件:判断是否继续循环的条件
语法
for(初始部分; 循环条件 ; 迭代部分){
//循环体
}
流程图
示例代码
public class Cc{
public static void main(String [] args){
for(int i=0; i<=3; i++){
System.out.println(i);
}
}
}
//这里定义的i为0;条件是i<=3;然后迭代部分是i累加1;所以循环后输出的结果为:0 1 2 3
· break与continue的使用
public class Cz{
public static void main(String [] args){
for(int i=0; i<=3; i++){
if(i=0){
System.out.println(i);
break;
}
}
}
}
//当i为0时if条件输出0,遇上break;就会结束这个循环
public class Tc {
public static void main(String [] args){
int i;
for( i=0; i<=3; i++){
if(i==1) {
continue;
}
System.out.println(i);
}
}
}
//当i=1时;跳过此次循环,继续下面循环,所以最终输出为0 2 3
五、数组
1、什么是数组
就是用来储存多个同类型的数据
2、数组语法
1)声明数组
数据类型[ ] 数组名; 或者 数据类型 数组名[];
int[] score;
double he[];
String[] name;
2)分配空间
数组名 = new 数据类型[数组长度];
数据类型 [ ] 数组名 = new 数据类型[数组长度];
int[] score = new int[5];
3)赋值
数组名[下标值];
score[0] = 89;
score[1] = 79;
score[2] = 69;
·······
数据类型 [ ] 数组名 = new 数据类型[ ]{值1,值2······};
等价于 数据类型[ ] 数组名 = {值1,值2·····};
int[] score = new int[]{1,2,3,4,5};
int[] score = {1,2,3,4,5};
//值之间用 , 隔开
示例代码
public class Sli1 {
public static void main(String[] args) {
int [] scores = new int[]{2,5,6,7,9};
for(int i = 0; i < scores.length; i++) {
System.out.print(scores[i]+"\t");
}
}
}
//此代码结果为 2,5,6,7,9
3、数组应用
1)数组排序
语法
Arrays.sort(数组名);
示例代码
import java.util.Arrays;
public class Test8 {
public static void main(String[] args) {
int [] scores = new int[]{7,5,8,2,9,1};
Arrays.sort(scores);
for(int i = 0; i < scores.length; i++) {
System.out.print(scores[i]+"\t");
}
}
}
//排序后,输出结果是,1,2,5,7,8,9
2)求数组最大值
示例代码
public class Li3 {
ppublic static void main(String[] args) {
int[] scores = new int[]{1,5,9,11,4};
int max =0;
for(int i=0;i < scores.length;i++) {
System.out.print(scores[i]+"\t")
}
max = scores[0];
for(int i=1; i< scores.length;i++) {
if(scores[i] > max) {
max = scores[i];
}
}
System.out.println("最大值为:"+max);
}
}
}
//此代码输出的结果为 最大值为:11
3)向数组中插入元素
示例代码
import java.util.Scanner;
public class Si {
public static void main(String[] args) {
int[] list = new int[6];
list[0] = 99;
list[1] = 85;
list[2] = 82;
list[3] = 63;
list[4] = 60;
int index = list.length;
System.out.println("请输入新增成绩:");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
for(int i=0;i<list.length;i++) {
if(num > list[i]) {
index = i;
break;
}
}
for(int j = list.length-1; j > index; j--) {
list[j] = list[j-1];
}
list[index] = num;
System.out.println("插入成绩的下标是:"+index);
System.out.println("插入后的成绩信息是::");
for(int k = 0; k < list.length;k++) {
System.out.print(list[k] + "\t");
}
}
}
/*输出结果如下:
请输入新增成绩:
80 //是你自己输入的成绩
插入成绩的下标是:3
插入后的成绩信息是::
99 85 82 80 63 60
*/
cores[0];
for(int i=1; i< scores.length;i++) {
if(scores[i] > max) {
max = scores[i];
}
}
System.out.println(“最大值为:”+max);
}
}
}
//此代码输出的结果为 最大值为:11
##### 3)向数组中插入元素
示例代码
```java
import java.util.Scanner;
public class Si {
public static void main(String[] args) {
int[] list = new int[6];
list[0] = 99;
list[1] = 85;
list[2] = 82;
list[3] = 63;
list[4] = 60;
int index = list.length;
System.out.println("请输入新增成绩:");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
for(int i=0;i<list.length;i++) {
if(num > list[i]) {
index = i;
break;
}
}
for(int j = list.length-1; j > index; j--) {
list[j] = list[j-1];
}
list[index] = num;
System.out.println("插入成绩的下标是:"+index);
System.out.println("插入后的成绩信息是::");
for(int k = 0; k < list.length;k++) {
System.out.print(list[k] + "\t");
}
}
}
/*输出结果如下:
请输入新增成绩:
80 //是你自己输入的成绩
插入成绩的下标是:3
插入后的成绩信息是::
99 85 82 80 63 60
*/