Java基础

Java基础知识(适合小白)

环境搭建

先来了解一下(如果不想学习理论知识就直接往后看吧):
JVM与GC的概述
JVM是Java虚拟机,可以将他理解为可运行Java字节码的虚拟计算机系统;它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信;对于不同的运行平台,有着不同的JVM。JVM屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”
GC是垃圾回收器,GC在Java程序运行过程中自动启用,程序员无法精神控制和干预;不像C/C++,Java中的JVM提供了一种系统线程跟踪储存的分配情况。并在JVM空闲时,检查并释放那些可以释放的存储空间。

JDK与JRE
JDK是Java开发工具包,并且JDK包含了JRE与JVM。
JRE是Java运行时环境,并且JRE包含了JVM;JRE还包含了完成加载代码的类加载器,完成校验代码的字节码校验器还有执行代码的运行时解释器。

JDK的下载

这里我用的是JDK11,因为JDK11是长期版本,而JDK13不是;
下载步骤一: 访问官网:https://www.oracle.com
下载步骤二: 注册,并登录。 (国内无法正常注册,但是有时候可以)
下载步骤三: 跳转到官网下载页面: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
下载步骤四: 选择对应版本点击下载 JDK11 安装(最下面那个也可以)
在这里插入图片描述

JDK的安装

安装步骤 1: 双击下发的安装包
在这里插入图片描述

安装步骤 2: 看图安装软件(记住自己装在了那个文件夹中,文件夹地址后续有用
在这里插入图片描述

安装步骤 3:配置环境变量 看图配置环境变量(WIN10,WIN7在下面)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
WIN7
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
eclipse的安装应该挺简单,官网就有下载的,下载的时候记得找镜像,这样会快一些。

基础语法

在基础语法之前,先来说说流程控制语句
1,流程控制语句概述
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
2,流程控制语句分类

(1) 顺序结构

顾名思义,就是按照代码从上至下的顺序来一行一行执行代码,没有什么特殊的语法结构,在一个程序中绝大多数代码都会以顺序结构来执行。具体程序流程图如下:

(2)选择结构

选择结构,听名字也好理解,就是出现了选择,出现了分歧或者说是分支
选择分支有以下两种

if语句

if语句有三种格式
1、if类型,格式如下:

if(判断条件){
	执行语句
}

如果判断条件为真(true)则执行if内的执行语句,如果判断条件为假(false)则不执行。

举个例子:

……
if(1>2){
	System.out.println("你好,Java");
}
if(1<2){
	System.out.println("Hello World!");
}
……

这个的输出就只会输出Hello World!

2、if-else类型,格式如下:

if(判断条件){
	执行语句1
} else{
	执行语句2
}

如果判断条件为真(true)则执行if内的执行语句,如果判断条件为假(false)则执行else内的语句。

举个例子

……
if(1>2){
	System.out.println("你好,Java");
}else{
	System.out.println("Hello World!");
}
……

这个的输出也是只会输出Hello World!

3、if-else-if类型,格式如下:

if(关系表达式1) {
	执行语句1;
}else  if (关系表达式2) {
	执行语句2;
}
………
else {
	执行语句n+1;
}

如果理解了前面的两种类型,我相信这个也不难,他会从上至下依次执行,满足那个条件就进入那个分支,并执行里面的语句。

switch

格式如下:

switch(表达式) {
	case1:
			执行语句1;
			break;//break讲解在后文
	case2:
			执行语句2;
			break;
			……….
			default:	
		     执行语句n+1;
			break;
 }

执行原理和if-else-if相似,表达式和那个case的值相同就进入那个执行语句,如果找不到这个case,这就执行default里面的语句。

举个例子:

……
switch(b){
	case 1:
			语句1;
			break;
	case 2:
			语句2;
			break;
	case 3:
			语句3;
	case 5:
			语句4;
			break;
	default:
			语句5;
			break;
}
……

如果b == 2(Java中相等是双等号,不是打错了哈!),就会进入case 2:中去执行语句2,有的人可能注意了case 3: 中没有break,这是个例子,就是如果 b ==3 那么程序会执行语句3,这时程序没有碰见break,则程序会往下执行,进入case:5中执行语句4,有的人可能问为什么3后面是5而不是4,我想表达的是case后面的值不需要按顺序。
既然在上面看到了break,我们就来讲一下:

break和continue

作用都是“跳出”,要么就是跳出循环,要么就是跳出switch(就像上面),再来看看两者的区别(以循环为例子,不了解循环的可以先看后文,看完后,再返回来),break是跳出本层循环,而continue是跳出本次循环,有人看不懂了,这不一个意思吗,来看例子(用for):
用break:

for(int i = 0;i<10;i++){
	if(i == 5){
		break;
	}
	System.out.print(i + " ");
}
执行结果为:0 1 2 3 4

用continue:

for(int i = 0;i<10;i++){
	if(i == 5){
		continue;
	}
	System.out.print(i + " ");
}
执行结果为:0 1 2 3 4 6 7 8 9

现在应该理解了break的结束本层循环和continue的本次循环了吧!

(3)循环结构

循环语句的组成
a,初始化语句:一条或者多条语句,这些语句完成一些初始化操作。
b,判断条件语句:boolean 表达式,这个表达式能决定是否执行循环体。
c,循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
d,控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

在Java中提供了三种循环语句
1、while循环、do…while循环、for循环
格式分别如下:

……
初始化语句;
while(循环条件){
	循环体;//其中包含控制条件
}
……
初始化语句;
do{
	循环体;
}while(循环条件)
……
for(初始化语句;判断条件语句;控制条件语句){
	循环体;
}

三种循环的执行原理都一样,程序一直执行下去,如果满足循环条件,就一直会进入循环执行里面的语句,否则就结束循环。

小作业

看了这么多来练练手吧
1、计算应缴金额
商场根据会员积分打折:
2000 分以内打 9 折,
4000 分以内打 8 折,
8000 分以内打 7.5 折,
8000 分以上打 7 折,使用 if-else-if 结构,实现手动输入购物金额和积分,
计算出应缴金额

//参考解
package homework;

import java.util.Scanner;

public class T1 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);	
		System.out.print("请输入购物金额和积分(用空格隔开):");
		double a = in.nextDouble(),b = in.nextDouble();		
		while(b<0 || a<0) {
			System.out.println("输入无效,请重新输入:");
			a = in.nextDouble();
			b = in.nextDouble();
		}
		if(b>8000) a = a * 0.7;
		else if(b>4000) a = a * 0.75;
		else if(b>2000) a = a * 0.8;
		else if(b>0) a = a * 0.9;
		System.out.println("最后应缴金额为" + a + "元");
		in.close();//这个有人可能不知到,这个就是将前面定义的Scanner对象给释放的掉,没有这个也可以执行
	}
}

2、计算该年该月天数
一年中有 12 个月,而每个月的天数是不一样的。其中大月 31 天,分别为
1,3,5,7,8,10,12 月,小月 30 天,分别 为 4,6,9,11 月。还有二月比较特殊,平
年的二月只有 28 天,而闰年的二月有 29 天,由用户在控制台输入年份和月份,
程序计算该年该月的天数。

//参考解
package homework;

import java.util.Scanner;

public class T2 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.print("请输入年份和月份(用空格隔开):");
		int a = in.nextInt(),b = in.nextInt(),c;
		if(b == 2) {
			if((a%4 == 0 && a%100 != 0) || a%400 == 0) c = 29;
			else c = 28;
		}
		else {
			switch(b) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12: c = 31;break;
			default: c = 30;break;
			}
		}
		System.out.println(a + "年" + b + "月有" + c + "天");
		in.close();
	}

}

3、打印三位数中的所有水仙花数
所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。
如: 153 是一个水仙花数,因为 153= 1³+5³+3³

//参考解
package homework;

public class T5 {

	public static void main(String[] args) {
		for(int i = 100 ;i < 1000 ;i++) {
			int a = i/100 ,b = i/10%10 ,c = i%10;
			if(Math.pow(a, 3) + Math.pow(b,3) + Math.pow(c, 3) == i) {
			//这里用到了pow(a,b)函数,用法就是Math.pow(a, b),表示a的b次方
			//左端可以赋值,例如c = Math.pow(a, b);,但是要注意,它返回的是一个double类型。
				System.out.println(i);
			}
		}
	}
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值