JavaSE基础复习一:数据类型、运算符、数组、方法
本文最后更新于:2021年7月23日 晚上
JavaSE基础复习一:数据类型、运算符、数组、方法
- Java版本:1.0->1.1->1.2->1.3->1.4->5.0(变化很大)->6.0->7.0->8.0(公司引用最多)->9.0->10.0->11.0(学习这个)
Java跨平台原理:JVM
JRE(Java Runtime Environment)用于让机器运行java:包含JVM和核心类库,JDK(Java Development Kit)用于开发,包含JRE和开发工具。
DOS常用命令
操作 | 说明 |
---|---|
盘符: | 切换到某个盘 |
cd 文件夹 | 进入文件夹 |
cd .. | 上级目录 |
cd \ | 退回盘符目录 |
cls | 清屏 |
注释
//单行注释
/* */多行注释
/** */文档注释
Java数据类型
分基本类型和引用类型
数据类型:
基本类型:
- 数值型:
整型(byte:1byte、short:2、int:4、long:8)
浮点(float:4、double:8)
字符(char:2)
- 非数值型:布尔类型(boolean:1)
- 数值型:
引用类型:类、接口、数组
Java写一个整数默认int类型,写一个小数默认double类型(需要防止写的过长造成溢出)
Java处理基本类型都是当做int进行操作
变量使用
变量名同一作用于不能重复声明
变量未赋值不能使用
long类型赋值给数字加上L声明是long类型
float赋值时数值加上F声明为float类型,防止类型不兼容,造成数据溢出
标识符命名规定
由数字、字母、下划线_以及$组成
不能以数字开始
不能是关键字
区分大小写
命名规范
标识符(方法和变量):小驼峰法(name,fileName)
类:大驼峰法(Student,GoodStudent)
类型转换
自动类型转换:数据范围赋值给数据范围大的(byte -> short (char)-> int -> long -> float -> double),short和char不能相互转换
强制类型转换:强制数据范围大的赋值给数据范围小的(可能造成数据丢失)例如:byte b = int(111111)
运算符
算数运算符:+、-、*、/、%
- 整数相除是整数,不会是小数
字符数值型相加减:’A’->65、’a’->97、’0’->48
算数表达式中包含多个基本数据类型时,整个算数表达式类型自动提升,提升规则:
- byte、short和char自动提升到int类型
- 表达式的类型自动提升到表达式中最高等级的操作数类型,顺序:byte,short,char->int->long->float->double
字符串和整型(或者字符串)加:
- 当加操作出现在两个字符串之间,这个+是字符串连接符,不是算数运算符
- 当+操作中出现字符串,就是连接运算符,否则就是算数运算符。当连续进行”+”操作是,从左到右依次执行:如先1+99+”lalala”,那么先计算1+99=100,在和”lalala”进行拼接,输出”100lalala”。如果是”lalala”+1+99那么就是”lalala”和1拼接,再和99拼接,输出”lalala199”
赋值操作符号:
=、+=、-=、*=、/=、%=:扩展的赋值运算符隐含强制类型转换,如:short a = 1; a += 20; 20是int类型,但不会报错,隐含强制类型转换
自增自减运算符:++,–
- ++i,i++,–i,i–
单独使用没有区别
在表达式中:++i和–i,先让i加减在将值带入计算
在表达式中:i++和i–,先让i计算,再对i进行计算
- ++i,i++,–i,i–
关系运算符:
==、!=、>、>=、<、<=:返回boolean类型
如果不小心把==写成=,就是赋值运算,返回的值就是被赋值的那个变量
位运算符:
&、|、^、!:逻辑的与、或、异或、非
可以用于判断,boolean底层是存储0,1,如下:
&:有false则是false,如:false & false、false & true
|:有true 则是true
^:相同为false,不同为true
!:true为false,false为true
短路逻辑运算符:
短路与:&&
- 使用结果和&一致,但只要可以判断这个表达式的真假值,后面的判断就不会再进行了,因此称为短路:即左边为true还要接着判断后面是否有false,所以继续执行,一旦出现一个false,那么真个语句一定是false,那么后面的判断不会再执行
短路或:||
- 使用结果和|一致,但只要可以判断这个表达式的真假值,后面的判断就不会再进行了,因此称为短路:即左边为false还要接着判断后面是否有true,所以继续执行,一旦出现一个true,那么真个语句一定是true,那么后面的判断不会再执行
三目运算符:
格式:关系表达式?表达式1:表达式2
如果关系表达式为true,则返回表达式1,否则返回表达式2
数据输入
使用java.util.Scanner
1 |
|
流程控制语句
顺序结构(依次执行,一般代码就是这个流程)
分支结构(if、switch)
- switch的可取值:byte、short、int、char,JDK5之后可以是枚举,JDK7以后可以是String
循环结构(for、while)
跳转控制语句:break,continue
随机数:Random
1 |
|
数组
定义:
1
2
3```java
// 数据类型[] 变量名
int[] arr;// 数据类型 变量名[]
1
int arr[];
动态初始化:
1
2// 数据类型[] 变量名 = new 数据类型[数组长度];
int[] arr = new int[100];静态初始化:指定数组元素的初始值,由系统决定数组长度
1
2
3
4
5// 数据类型[] 变量名 = new 数据类型[ ]{元素1,元素2,元素3…}
int[] arr = new int[]{1, 2, 3, 4};
// 数据类型[] 变量名 = {1, 2, 3, 4};
int[] arr = {1, 2, 3, 4};数组元素访问:索引
内存分配:
栈内存:存储局部变量,使用完毕立即消失
堆内存:存储new出来的内容(实体,对象),数组在初始化时,会为存储空间添加默认值,基本类型初值是其对应的零值。引用类型对应null:
整数0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null,表示一个不确定的对象,不能赋值给基本类型(null本身并不是对象类型,也不是实例,未知)
Java的引用类型赋值时,都是指向同一块存储空间,一旦某个对象没有引用(指向null,这也是一种垃圾回收的方式),就可能被GC(垃圾回收)。
常见错误:访问越界、空指针异常
数组常见操作:
- 遍历:for循环
1
2
3
4
5
6
7for (int i=0; i<arr.length; i++){
System.out.println(arr[i]);
}
for (int a : arr) {
System.out.println(a);
}
- 遍历:for循环
方法
具有独立功能的代码块组织成一个整体,具有特殊功能的代码集
注意事项
方法不能嵌套定义
void可以忽略返回值,也可以只写一个return不带值
方法重载
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不同,类型不同或者数量不同
特点
重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,即不能通过返回值类型来判定两个方法是否构成重载
方法的参数传递
基本类型传递:方法对参数的修改不影响实参的值
引用类型传递:因为指向同一个地址空间,因此会影响实参的值
Java的传值方式只有一种:传值(传值和传引用,传引用传递的参数是对象的引用,实际上也是一种传值)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!