文章目录
一、环境搭建
1.Java 的特性
一种纯面向对象的编程语言。
一种与平台无关(跨平台)的语言。(它提供了在不同平台下运行的解释环境)
一种健壮的语言,吸收了 C/C++语言的优点。
有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)
2Java 跨平台原理
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提供了大量能使我们快速便捷地处理数据的函数和方法。录