Java基础知识

这篇博客详细介绍了Java的基础知识,包括Java的起源、用途、开发步骤,重点讲解了Java的程序结构、变量、数据类型、运算符、选择结构、循环结构以及数组的使用。通过实例演示了如何安装JDK、配置环境变量、编写Java程序、使用变量和数据类型,以及如何进行条件判断和循环控制。此外,还涵盖了数组的声明、初始化和操作。
摘要由CSDN通过智能技术生成

一、 初始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	
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值