1.Java基础小结

本文详细介绍了Java编程的基础知识,包括环境搭建、语言特性、跨平台原理、JVM、JRE和JDK的关系以及垃圾回收机制。此外,还涵盖了Java的基本语法,如数据类型、标识符命名规则、类型转换、运算符和流程控制结构。文章通过实例展示了如何定义和使用方法,以及如何利用if条件语句和循环控制流程。同时,对数组进行了总结,强调了其在存储和处理数据中的作用。
摘要由CSDN通过智能技术生成

一、环境搭建

1.Java 的特性

一种纯面向对象的编程语言。

一种与平台无关(跨平台)的语言。(它提供了在不同平台下运行的解释环境)

一种健壮的语言,吸收了 C/C++语言的优点。

有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)

2Java 跨平台原理

JAVA源代码
编译
JAVA字节码-可跨平台
JAVA虚拟机
Windows
Linux
Solaris

3.JVM、JRE 和 JDK 的关系

JDK包含JRE,而JRE包含JVM

JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。

JRE(Java Runtime Environment*)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

加载代码:由类加载器(class loader)完成;
校验代码:由字节码校验器(byte code verifier)完成;
执行代码:由运行时解释器(runtime interpreter)完成。

JVM(Java Virtual Machine)是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。

Java API (应用程序编程接口) :
Java 编译器(javac.exe)、Java 运行时解释器(java.exe)、Java 文档化化工具(javadoc.exe)及其它工具及资源

JVM 可以理解成一个可运行 Java 字节码的虚拟计算机系统

它有一个解释器组件,可以实现 Java 字节码和计算机操作系统之间的通信

对于不同的运行平台,有不同 的 JVM。 JVM 屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。
在这里插入图片描述

4.垃圾回收器(GC)

JVM 提供了一种系统线程跟踪存储空间的分配情况。并在 JVM 的空闲时,检查并释放那些可以被

释放的存储空间。 垃圾回收器在 Java 程序运行过程中自动启用,程序员无法精确控制和干预

二、基础语法

1.数据类型

在这里插入图片描述

在这里插入图片描述

2.标识符,命名

Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符

规则如下:
1.由字母、数字、下划线(_)和美元符号($)组成
2.不能以数字开头
3.区分大小
4.长度无限制
5.不能是 Java 中的保留关键字

示例:
合法标识符:HelloWord、username2、user_name、_userName、$abc_123
非法标识符:2UserName、user#Name、Hello World、class

命名规范:
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)
方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式
变量名规范:全部小写

3.类型转换

boolean 类型不能转换成任何其它数据类型。
自动类型转换:容量小的类型自动转换成容量大的数据类型

byte,short,int -> float ->long ->double byte,short,int
不会互相转换它们三者在计算时会转换成 int 类型

强制类型转换:容量大的类型转换成容量小的数据类型时,要加上强制转换符 long l = 100L;
int i = (int) i;
有可能造成精度降低或数据溢出,使用时要小心。

4.二进制

暂无

5.方法

方法用于封装一段特定的逻辑功能。方法的主要要素有:权限修饰符 方法名、参数列表和返回值。
格式:
权限修饰符 返回值类型声明 方法名称(参数列表){
方法中封装的逻辑功能;
return 返回值; }

权限修饰符详细解说
返回值详解
方法调用结束后可以返回一个数据,称之为返回值。
方法在声明时必须指定返回值的类型。
通过 return 语句返回,return 语句的作用在于结束方法且将数据返回。
如果方法没有返回值(即方法不需要返回数据),需将返回值类型声明为 void

参数列表详解
方法的参数列表:在调用时传递给方法,需要被方法处理的数据。
在方法定义时,需要声明该方法所需要的参数变量。
在方法调用时,会将实际参数值传递给方法的参数变量。
必须保证传递参数的类型和个数符合方法的声明。

三、运算符

1.算术运算符

在这里插入图片描述
i++: 如果是变量前缀:先对此变量加 1,再执行其他的操作。
++i:先执行当前语句的其他操作,再对此变量加 1
…待完整…

2.转义字符

在这里插入图片描述

3.基础语法任务卡

1.定义一个整型变量并赋任意五位正整数作为初始值,判断它是不是五位回文
数(五位回文数:个位与万位相同,十位与千位相同,例如:12321):

public class Task_10101002_01 {
	public static void main(String[] args) {
	      int num =12321;
	      int gewei = num/1%10;
	      int shiwei = num/10%10;
	      int qianwei = num/1000%10;
	      int wanwei =num/10000%10;
	      System.out.println(gewei);
	      System.out.println(shiwei);
	      System.out.println(qianwei);
	      System.out.println(wanwei);
	      boolean result = (gewei==wanwei && shiwei==qianwei)?true:false;
	      System.out.println(num+"是否是回文数:"+result); 
	}
}

定义一个整型变量并赋任意五位正整数作为初始值,输出各位数字之和
(例如:12345 各位之和是:1+2+3+4+5 。也就是 15)

public class Task_10101002_02 {
	public static void main(String[] args) {
		int num = 54321;
		int gewei = num/1%10;
		int shiwei = num/10%10;
		int baiwei = num/100%10;
		int qianwei = num/1000%10;
		int wanwei = num/10000%10;
		int sum = gewei + shiwei + baiwei + qianwei + wanwei;
		System.out.println(num+"各位之和是"+sum);
		}
}

定义整型变量 a、b,写出将 a、b 两个变量值进行互换的程序(要求不能使用第三个变量)

public class Task_10101002_03 {
	public static void main(String[] args) {
		int a = 1;
		int b = 2;
		System.out.println(a+"==="+b);
		a=a+b;// a=1+2=3
		b=a-b;// b=3-2=1
		a=a-b;// a=3-1=2
		System.out.println(a+"==="+b);
	}
}

四、流程控制

1.if 条件语句

if 条件结构是根据条件判断之后再做处理
if(条件语句){…}
if (条件语句){…}else{…}
if (条件语句){…}else if(条件语句){…}
if (条件语句){…}else if(条件语句){…}else{…}

用户输入学生成绩,判断成绩是否及格,判断条件为 优良: > 90、良好:81-90、中:60-80、不及格:<60

import java.util.Scanner;
public class program_if {
         public static void main(String[] args) {
         System.out.println("请输入成绩");
         Scanner input = new Scanner(System.in);
         int s = input.nextInt();
         if (s>100 || s<0) {
        	 System.out.println("你输入的成绩不存在");
         }else if(s>=90) {
        	 System.out.println("恭喜你成绩优秀");
         }else if(s>=80) {
        	 System.out.println("恭喜你成绩良好");
         }else if(s>=60) {
        	 System.out.println("恭喜你成绩合格");
         }else if(s<60) {
        	 System.out.println("很遗憾,成绩不合格");
         }
}
}

2.switch 条件语句

switch 语句有关规则 :
表达式的返回值必须是下述几种类型之一:int, byte, char, short,String;
case 子句中的取值必须是常量,且所有 case 子句中的取值应是不同的;
default 子句是可选的;
break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;
如果 case 后面没有写 break 则直接往下面执行! Case 后面的执行体可写{ }也可以不写{ }

根据输入的月份判定季节

import java.util.Scanner;

    public class program_swich {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个月份");
		String text = input.next();
		switch (text) {
	     	case "1":
		    case "2":
		    case "3":	
			System.out.println("spring");
			break;
		    case "4":
		    case "5":
		    case "6":	
			System.out.println("summer");
			break;
		    case "7":
		    case "8":
		    case "9":	
			System.out.println("autumn");
			break;
		    case "10":
		    case "11":
		    case "12":	
			System.out.println("winter");
			break;
		default:
			System.out.println("error");
			break;
	}			
	} 
    }
  

3.while 循环

符合条件,循环继续执行;否则,循环退出 特点:先判断,再执行
while(条件表达式){
//语句块;
}

public class program_while {

	public static void main(String[] args) {
		int i = 5 ;
		while(i<5);{
			i++	;
		System.out.println(i);
	}
	    System.out.println("end");
	}
}

4.do-while 循环

先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出 特点:先执行,再判断
do { 循环操作
}while ( 条件表达式 );

public class program_do_while {

public static void main(String[] args) {
	int i = 5;
	do {
		i++;
		System.out.println(i);
}   while(i<5);
	System.out.println("end");
}

}

5.for 循环

for(初始化参数;判断条件 ;更新循环变量){
循环体;
}

public class ForLoop {
       public static void main(String [] args){ 
             int result = 0; 
             for(int i=1; i<=100; i++) { 
             result += i; 
 }
       System.out.println("result=" + result); 
 } 
 }

打印下列图形
* ----------------- 外层循环控制 行数 : 4
*** ---------------内层循环控制 列数 : 第一行时循环1次 第二次时循环3次 …
*****
*******

public class program_Day1 {

 
	public static void main(String[] args) {
		        for(int i = 0;i<4;i++) {
		        	System.out.println();
		        	for(int j = 0;j<i*2+1;j++) {
		        	System.out.print("*");
    }   
    }      	        
	}
}

2

package Day02;
/*
 ---*         外层循环控制行数:4
 --***        内层循环1控制空格列数:第一行3个空格 第二行2个空格
 -*****       内层循环2控制*列数:第一行1个* 第二行3个* 第三行7个*
 *******
 */
public class program_图形打印2 {

	public static void main(String[] args) {
		for(int i=0;i<4;i++) {
			for (int j = i+1;j<4;j++) {
				    System.out.print(" ");
			}
			for (int j = 0;j<i*2+1;j++) {
					System.out.print("*");
		}
				    System.out.println();
		}
	}
	}

3

package Day02;

import java.util.Scanner;

/*
---*       i  外层循环控制行数:7
--***      j  内层循环1控制空格列数:第一行3个空格 第二行2个空格
-*****       内层循环2控制*列数:第一行1个* 第二行3个* 第三行5个*
*******
-*****
--***
---*
*/
public class program_3  {

		    public static void main(String[] args) {
		        // 4 行
		        /**      *的个数 空格数   行数
		         *           1    3     0
		         *           3    2     1
		         *           5    1     2
		         *           7    0     3
		         *
		         *           5    1      4
		         *           3    2      5
		         *           1    3      6
		         */		   		    		 		        
                System.out.println("请输入");
                Scanner input =new Scanner (System.in);
                int x = input.nextInt();                 
                print(x);
		    }

		    /**
		     * 打印菱形
		     * @param row 上半部分的行数
		     */
		    public static void print(int row) {
		        // 打印上半部分
		        for (int i = 0; i < row; i++) {
		            /*打印空格  
		             *  row = 4
		             *  i = 0 1 2 3 
		             *  j = 3 2 1 0
		             */ 
		            for (int j = 0; j < row - i - 1; j++) {
		                System.out.print(" ");
		            }
		            /* 打印菱形
		             *  row = 4
		             *  i = 0 1 2 3 
		             *  j = 1 3 5 7 		              
		             */
		            for (int j = 0; j < i * 2 + 1; j++) {
		                System.out.print("*");
		            }
		            // 别忘了换行
		            System.out.println();
		        }

		        // 打印下半部分
		        for (int i = row-2; i >=0 ; i--) {
		            /*打印空格
		             *  raw = 4
		             *  i   = 2 1 0
		             *  j	= 1 2 3             
		             */
		            for (int j = 0; j < row - i - 1; j++) {
		                System.out.print(" ");
		            }
		            /* 打印*
		             *  raw = 4
		             *  i   = 2 1 0
		             *  j	= 5 3 1
		             * 
		             */
		            for (int j = 0; j < i * 2 + 1; j++) {
		                System.out.print("*");
		            }
		            // 别忘了换行
		            System.out.println();
		        }
		    }
		
	}

6.流程控制任务卡

/* 基本费用:3公里内收费 13元 基本单价2.3元/公里
*低速行驶费和等候费:时速低于12公里时,每5分钟早晚高峰间加收2公里基本单价(不包括空驶费) 其他时间段加收1公里基本单价(不含空驶费)
*预约叫车费用 :提前4小时及以上预约每次6元,4小时以内每次5元。
*空驶费 :单程载客行驶超过16公里部分,基本单价加收15%的费用,往返载客(2公里内)不加收费用
*夜间收费 :23:00-次日5:00,基本单价加收20%费用
*燃油附加费 :每次加收1次然后费用

import java.util.Scanner;
import java.util.function.IntPredicate;

public class program_出租车计算 {
	public static void main(String[] args) {
		Scanner input =new Scanner (System.in);
		double sum = 0;// 总费用
		double perPrice = 2.3;
		double mileMoney = 0; //里程费用
		double lowSpeedMoney = 0;// 低速行驶费用
		double orderMoney = 0;// 预约叫车费用
		double emptyMoney = 0; //空车驾驶费
		double nightMoney = 0;
		double oilMoney = 1;
    //里程费用
		System.out.println("请输入总里程数:");
		double mile = input.nextDouble();
		if(mile>3) {
			mileMoney = 13 + (mile-3)*perPrice;
	}   else {
		    mileMoney = 13;
	}
    //低速行驶费
		System.out.println("是否有低速行驶(true/false)?");
		boolean lowSpeedFlag =input.nextBoolean();
		if (lowSpeedFlag) {
			System.out.println("请输入低速行驶时间:");
			int minute = input.nextInt();
			System.out.println("是否在早晚高峰(true/false)?");
		boolean rushFlag =input.nextBoolean();
		if (rushFlag) {
			lowSpeedMoney=minute/5*perPrice*2;
	}   else {
		    lowSpeedMoney=minute/5*perPrice*1;		   
	}
	}  
	//预约行驶费
		System.out.println("是否预约叫车(true/false)?");
		boolean orderFlag =input.nextBoolean();
	    if(orderFlag) {
	    	System.out.println("请输入预定的时长");
	    	int hour = input.nextInt();
	    if(hour>4) {
	    	orderMoney=6;
	 }
	 }  else {
		    orderMoney=5;
	 }
	//空驶费用
	    if(mile>15) {
	    	System.out.println("是否往返2公里内(true/false)?");
	    boolean roundFlag =input.nextBoolean();	
	    if(!roundFlag) {
	    	emptyMoney=(mile-15)*perPrice*1.5;
	    }
	    }
	//夜间费用
	    System.out.println("是否在夜间行驶(true/false)?");
	    boolean nightFlag =input.nextBoolean();	
	    if(!nightFlag) {
	    	nightMoney=(mile-3)*perPrice*0.2;	    	
	    }
	//总费用
	    sum=mileMoney+lowSpeedMoney+orderMoney+emptyMoney+nightMoney+oilMoney;
	    System.out.println("总费用:"+Math.round(sum));
	    System.out.println("里程费用:"+Math.round(mileMoney));
	    System.out.println("低速行驶费用:"+Math.round(lowSpeedMoney));
	    System.out.println("预约叫车费用:"+Math.round(orderMoney));
	    System.out.println("空驶费用:"+Math.round(emptyMoney));
	    System.out.println("夜间行驶费用:"+Math.round(nightMoney));
	    System.out.println("燃油附件费用:"+Math.round(nightMoney));
	};

}

五、数组

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值