Java
Java是一门跨平台、“半解释半编译”的面向对象语言
Java的优点
- 简单、安全、开源
- 面向对象、跨平台
- 多线程、半解释半编译
数据类型
数据类型:整型、浮点型、字符型、布尔、类、接口、数组
整型 | byte、short、int、long |
浮点型 | float、double |
字符型 | char |
布尔 | boolean |
引用类型 | 类、接口、数组 |
- 其中byte、short、int、long、float、double是最基本的八大数据类型
- 在程序出的整数,默认是int类型;写出的小数,默认是double类型;
byte | 1字节 |
short | 2字节 |
int | 4字节 |
long | 8字节 |
float | 4字节 |
double | 8字节 |
char | 2字节 |
boolean |
计算机中最小的存储单元叫字节(byte);存储设备的最小信息单元叫位(bit);
1B=8b;1KB=1024B;1MB=1024KB;1GB=1024MB;1TB=1024GB
常量
常量:在程序运行过程中,其值不可以发生改变的量
注意
- 字符常量 用单引号括起来的内容 如'a'
- 字符串常量 用双引号括起来的内容 如"Hello"
- 空常量是唯一不能直接输出的
变量
注意
- 名字不能重复(但是也要看变量的作用域)
- 变量未赋值,不能使用
- long类型的变量定义时后面加L或者l
- float类型的变量定义时后面加f或者F
标识符命名
方法和变量命名:如果是一个单词,首字母小写;如果是多个单词,第一个单词首字母小写,其他单词首字母大写 例:name,firstName
类命名:如果是一个单词,首字母大写;如果是多个单词,每个单词首字母大写 例:Student,GoodStudent
类型转换
类型大小:byte,short,char ->int ->long ->float ->double
强制类型转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
格式:目标数据类型 变量名=(目标数据类型)值或者变量;
例:int i =(int) 98.08;
关系运算符
-
== 用于判断相等, = 用于赋值
-
关系运算的结果为 true/false
-
== 用于比较两个原始类型的值 或引用类型的内存地址
逻辑运算符
符号 | 作用 | 说明 |
&& | and、与 |
符号两端需要两个表达式,判断如果都为
true
,整体结果则为
true
,如果有一端结果为false
,整体结果为
false
。
|
|| | or、或 |
符号两端需要两个表达式,判断如果都为
false
,整体结果则为
false
,如果有一端结果为true
,整体结果为
true
。
|
! | not、非 |
是一个单目运算符,只有一个表达式参与运算。
"!
表达式
"
表示对原表达式的结果取相反值。
|
条件运算符
三目运算符,有三个操作数参与。是一个简化版的双分支条件语句。
格式: 关系表达式?表达式1:表达式2;
运算符的优先级
小括号>>单目运算符>>算术运算符>>关系运算符>>逻辑运算符>>条件运算符>>赋值/复合赋值运算符
条件语句
if语句
单分支if语句
格式:if(判断条件){ //判断条件的结果为布尔值
条件满足时执行的代码
}
双分支if语句
格式:if(判断条件){ //判断条件的结果为布尔值
条件满足时执行的代码
}else{
条件不满足时执行的代码
}
双分支if语句
格式:if(判断条件){ //判断条件的结果为布尔值
条件满足时执行的代码
}else if(判断条件){
条件满足时执行的代码
}else{
条件不满足时执行的代码
}
switch语句
switch(表达式){ //取值为byte、short、int、char、String、枚举
case 值:
break;
case 值:
break;
case 值:
break;
...
default:
break;
}
执行流程:1.首先计算表达式的值,2.依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。3.如果所以的case后面的值和表达式的值都不满足,就会执行default里面的代码,然后switch结束。其中break和default可以根据具体情况省略。
if语句与switch语句的选择
- 如果条件能够一一例举出来时,使用switch语句更为简洁
- 如果条件是一个范围时,只能使用if语句,如大于100
- switch语句可以改写为if语句,if语句不一定能改为switch语句
循环语句
while语句
while(循环条件){//小括号中的条件结果为boolean值
满足循环条件时重复执行的代码
do-while语句
do{
满足循环条件时重复执行的代码
while与do-while的区别
while循环可能一次都不执行,do-while循环至少会执行一次
for语句
for(表达式1;表达式2;表达式3){//1为定义循环变量2为判断循环条件3为更新循环变量
循环体;
}
执行流程:首先执行表达式1,再执行表达式2,如果表达式2的结果为true,执行循环体,再执行表达式3,再执行表达式2判断,如果表达式2的结果为false,结束循环
循环总结
- 如果已知循环次数,推荐使用for循环。如遍历数组、集合等。
- 如果未知循环次数,推荐使用while循环。
- while循环和for循环可以相互转换
- do-while循环至少执行一次,for循环和while循环有可能一次都不执行
死循环格式
- for( ; ; ){}
- while(true){}
- do{}while(true){}
- 命令提示符窗口中ctrl+c可以结束死循环
循环控制
break | 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前整个循环 |
return | 是结束方法,不再执行return之后的代码 |
continue | 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行 |
数组(一维)
一组类型相同的数据的有序集合。实际上是内存中一块连续的空间,是保存数据的区间。
语法
定义数组: int [] 数组名;
初始化
int [] 数组名=new int[数组大小];
例:int[] array=new int[3];或者int[] array=new int[]{1,2,3,4,5};
或者int [] array={1,23,3,2};
注意:
- 数组一旦初始化后,数组大小不能改变,其中的元素类型要统一
- 数组的索引范围是[0,数组大小-1],使用时不能超出范围。在编译时无法识别是否超出数组索引,
- 但运行时会抛出"数组索引溢出"异常
- 数组一旦初始化后,如果没有赋值,默认有初始值
IDEA的快捷键
- psvm:快速生成main方法
- sout:快速生成输出语句
- ctrl+/:单行注释
- ctrl+shift+/:多行注释
- ctrl+alt+l:格式化
- 条件.if:快速生成if语句
转义字符
数据输入
import java.util.scanner;
Scanner sc = new Scanner(System.in);
int 变量名=sc.nextInt();
Random的作用和使用步骤
import java.util.Random;
Random rd=new Random();
int number=rd.nextInt(10);//10表示获取的数据范围[0,10)
增强for循环
作用:用于遍历数组或者集合元素的一种循环
格式:for(数据类型 变量名 :数组名){}
int[] array={1,2,3}
for(int i:array){
System.out.println(i);
}
System.exit(0);//停止当前程序
Arrays.sort(数组名);//对数组进行升序排序
总结:以上是这一周学习的Java基础,选择了其中有很多易忘记、易错的知识进行记录。供自己未来回想和参考。望自己继续努力。