前言:
BKZS丶王萌萌 与各位读者一样,同样是一位 Student 所以在某些 学术上的芝士,可能并没有那么深入,但是我会尽可能将自己所学总结出来,供所有有着目标的同学们参考。所以,如果有各种问题,可以私信也可以留言,我会尽到自己最大努力帮大家解决!!!
Java
Java开发环境(JDK、JRE、JVM)
1、Java开发环境
Java是一门面向对象的 跨平台的 高级编程语言。那么什么是面向对象?什么是跨平台?什么是高级语言?
首先编程语言分为:面向对象和面向过程
面向对象:则是将一个一个问题抽出共有哥属性和行为,组成对象来解决。
面向过程:则是将一个一个问题分解成方法来解决。
面向对象和面向过程的优缺点:
面向对象:
1、效率相比面向过程低
2、耦合度低,有利于维护,扩展性强。
面向过程:
1、效率高
2、耦合度高,代码无法得到复用,不利于维护。
Java的跨平台:
Java 的跨平台主要体现在JVM 上,即“一次编程,到处运行”。
JVM:Java 虚拟机,不同的操作系统上运行不同的JVM 则实现了跨平台。
JRE:Java 运行环境,想要让Java 在系统上运行需要JRE 才可以.
JRE 中包括JVM + Java 系统类库。
JDK:Java 开发工具包,想要在系统上编写一个Java 程序则需要安装JDK.
JDK 中包括了JRE + 编译运行命令等。
高级语言与低级语言:
计算机中所能识别的是二进制,而我们能看懂的是文字,
如果想让计算机读懂我们想要干什么,
则需要将我们写的代码经过编译形成二进制文件,这便是高级语言。
而低级语言,则是不需要进行编译计算机可以直接运行的语言。
补充:
当我们运行Java 程序时,会先生成一个扩展名为: .java 的文件通过编译
生成一个扩展名为:.class 的“字节码”文件。
利用IDEA创建项目
(创建项目)
1、新建
2、创建包
3、新建类
变量
2.1 变量
在Java 中当我们想存放一个数据时,我们需要先在计算机内存中申请一块地址,并指定将要存储的内容是什么类型什么名字,之后才可以进行存储。
Java 为我们提供了8种基本类型变量:
byte、short、int、long、float、double、boolean、char
整形:
1、byte
字节型,占用一个字节。可以存放(-128 - 127)的数字
2、short
短整形,占用两个字节。可以存放(-32768 - 32767)的数字
3、int
整形,占用四个字节。可以存放(-2^31 - 2^31-1)
一般情况下我们使用的数字都存放在 int 型变量中。
4、long
长整形,占用8个字节。可以存放(-2^63 - 2^63在对long型变量赋值时,
需要在末尾加上“l”或者“L”
浮点数:
5、float
单精度浮点数,占用4个字节,存放小数时使用。
当我们需要给float 型变量赋值时,需要在数字末尾加一个“f或者“F”
6、double
双精度浮点数,占用8个字节,存放小数时使用,一般浮点数都存在double中。
当我们需要给double 型变量赋值时,需要在数字末尾加一个“d”或者“D”
布尔型:
7、boolean
布尔型,占用1个字节用于存储逻辑型变量,boolean 中只能存放true(正确) 或者false(错误)
字符型:
8、char
字符型,占用2个字节,用于存储字符型变量,可以存放(0-32767)
命名规则
命名规则 :
1、变量名可以使用英文、数字、汉字、下划线命名。
2、不可以使用数字开头
3、Java 区分大小写
4、要做到见面知意,且不提倡使用中文汉字命名
代码演示:
byte a1 = 12; //将12赋值给byte型变量a1
short a2 = 12; //将12赋值给short型变量a2
int a3 = 13; //将12赋值给int型变量a3
long a4 = 12345L; //将12赋值给long型变量a4
float a5 = 12.234F; //将12.234赋值给float型变量a5
double a6 = 12.234D; //将12.234赋值给double型变量a6
boolean flag = true; //将true赋值给float型变量flag
char a7 = 'A'; //将A赋值给char型变量a7
运算符
Java为我们提供多种运算符:
算术运算符、逻辑运算符、关系运算符、赋值运算符、字符串连接、条件运算。
-
一、算术运算符:
算术运算符包括: “ + ”、“ - ”、“ * ”、“ / ” 、 “ % ”、 “ ++ ”、“ -- ”
- 加法运算符
将 “ + ” 两边变量做加法运算
代码演示:
int num1 = 10; int num2 = 20; int sum = num1 + num2; //结果为 20 long num3 = 100L; long num4 = 200L; long sum2 = num3 + num4; //结果为300 double a1 = 12.34; double a2 = 13.32; double a3 = a1 + a2; // 结果为 25.66
- 减法运算符
将 “ - ” 两边变量做减法运算
代码演示:
int num1 = 10; int num2 = 30; int num3 = num2 - num1; //结果为 30 - 10 = 20 double a1 = 23.21; double a2 = 12.11; double a3 = a1 - a2; //结果为 11.1
- 乘法运算符
将“ * ”两边变量做乘法运算
代码演示:
int num1 = 10; int num2 = 20; int num3 = num1 * num2; // 结果为 10 * 20 = 30
- 除法运算符
将“ / ” 两边做除法计算
代码演示:
int num1 = 100; int num2 = 5; int num3 = num1 / num2; //结果为 100 / 5 = 20
- 取余运算符
将“ % ” 两边变量做取余运算,结果为两数相除的余数
代码演示:
int num1 = 21; int num2 = 10; int num3 = num1 % num2; //结果为 1
特别注意: 1、byte,short在做运算时,Java会自动将他们转为int 类型处理,如果此时将结果赋值给byte、short 类型的变量,则会报错!! 2、如果确实需要将运算的结果赋值给byte、short 类型的变量时,则需要强制类型转换。 2.1自动类型转换,小类型自动转换为大类型,则为自动类型转换 2.2强制类型转化,大类型强制转换为小类型,会丢失精度。
- 加法运算符
代码演示
byte a = 1;
byte b = 2;
byte c = a+ b; //此时会报错我们需要进行强制类型转换
byte c = (byte)(a+b); //如果我们没有使用(a+b)中的括号,则Java 默认就是将a 转换为byte 类型
//当变量再次与b 进行运算则会自动欧诺个转换为int 所以我们需要将后面整体转换为byte 类型
选择结构
Java 中所有的程序的设计思想都离不开 顺序、选择、循环 三个结构 所以我们一定要掌握好这三种程序结构。
顺序结构则是程序按照顺序进行编译运行,是最基础的结构。
选择结构则是接下来我们要说的结构,他的思想是先判断是否符合条件,然后再选择运行或者不运行
循环结构则是当程序满足一定条件时,重复执行同一种操作
if…结构
if(判断条件){
语句块;
}else{
语句块;
}
If结构是最基础的选择结构,当程序运行到if 时,会先判断是否满足 if 条件.
如果满足则执行if 语句块中的语句,不满足则跳过 if 语句块,执行else 语句块。
如果缺省 else 语句块 则直接执行 if 后面的语句。
代码演示
//判断数字是否为偶数
int number = 11;
if(number % 2 == 0 ){
System.out.println(number +"是偶数");
}else{
Syetem.out.println(number + "是奇数");
}
if…else if 结构
if...else if 结构的特点与 if...else....有异曲同工之妙,区别在于当不满足第一个 if 条件之后并不是无条件执行第二个else 语句 ,而是加入了 else if 语句 ,进行第二次判断当第二次判断正确时,才会执行 语句块,当都不满足时,则都不会执行。
public class IfDemo{
public static void main (String[] args){
//判断成绩是否为优秀(>90)及格(>60)不及格(<60)
int score = 64;
if(score > 90){
System.out.println("成绩为优秀")
}else if(score >60){
System.out.println("成绩及格")
}else{
System.out.println("成绩不及格")
}
}
}
switch…case 结构
switch …case 是一种多分支结构则选择语句,当语句满足条件则会执行,但是要注意的是,当存在多个case时,从满足条件的语句后面的case 会无条件执行,如果想要避免这种情况则需要在语句中加入break 语句来跳出 Switch 结构,。
switch 语句中有default 语句当然这个语句并不是必须的,当所有case 都不满足条件时则会执行default 语句,一般将default 语句放在最后,如果放在第一个则会执行所有的语句。
switch 表达式中写的值可以是:byte、short、int、char、枚举、字符串
代码举例
public class SwitchDemo{
public static void main(String[] args){
//判断成绩区间
int score = 60;
switch(score / 10){
case 10:
System.out.println("满分");
break;
case 9:
System.out.println("90-99");
break;
case 8:
System.out.println("80-89");
break;
case 7:
System.out.println("70-79");
break;
case 6:
System.out.println("60-69");
break;
case 5:
System.out.println("50-59");
break;
case 4:
System.out.println("40-49");
break;
case 3:
System.out.println("30-39");
break;
case 2:
System.out.println("20-29");
break;
case 1:
System.out.println("10-19");
break;
default:
System.out.println("0-9");
}
}
}
循环结构
循环结构同样是我们经常使用的一种设计结构,它的作用是,在满足条件的情况下,一直重复执行同样的事情。
循环结构的三要素分别是:循环变量、循环条件、循环步长
Java 为我们提供了三种循环结构。
for循环
语法
for(循环变量;循环条件;循环步长){
语句块
}
循环变量:用于控制循环执行的次数,同时循环变量不一定非要放在括号当中,也可以在循环外定义。
int a;
int count = 0;
for (a = 1;a<=10;a++){
count +=1;
}
循环条件:循环条件为boolean 类型,当条件满足时,循环执行,当条件不满足,则跳出循环,执行循环后面的语句。
循环步长:用于改变循环变量的值,如果循环步长没有改变,则这个循环为死循环,程序会一直执行这段代码,在我们的编程过程中,我们应当尽量避免出现死循环。
代码演示:
/**
判断从0-1000当中有多少个数可以被3整除
*/
int count = 0;
for (int a = 0; a<= 1000;a++){
if(a % 3 == 0){
count +=1;
}
}
System.out.println("0-1000中有"+ count + "个数字可以被三整除");
while循环
while 循环同样是一种循环结构,常用于不不清楚具体需要执行的次数,在这种情况下,选择使用while 循环。
程序进入while语句,先判断boolen 条件是否为true ,当为真时,进入循环。当程序运行为假时,循环结束。
语法:
while(boolean){
语句块;
}
代码演示
/**
输出从0开始,第100个可以被3整除的数字
*/
int count = 0;
int i = 0;
while(count != 100){
i +=1; //无论是否可以被整除都改变i的值
if(i % 3 == 0){ // 判断是否可以被3 整除
count += 1;
}
}
System.out.println(i)
do…while循环
break,continue 语句
嵌套循环
6.1数组
6.1 创建数组
6.2 数组访问
6.3 遍历数组
6.4 数组排序*
7.1 集合
7.1 创建集合
7.2 访问集合
7.3 遍历集合