知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

Java基础知识

发表时间:2022-03-24来源:网络

一、 初始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)关系运算符

用来做比较的

大于:> 小于:< 大于等于:>= 小于等于: 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

​ //循环操作

​ }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 public static void main(String [] args){ for(int i=0; i 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 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 public static void main(String[] args) { int [] scores = new int[]{7,5,8,2,9,1}; Arrays.sort(scores); for(int i = 0; i ppublic static void main(String[] args) { int[] scores = new int[]{1,5,9,11,4}; int max =0; for(int i=0;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 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
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[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 */
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜