JavaSE总结(一)

目录

数据类型与变量

整型

浮点型

char类型

boolean类型 

运算符

运算符优先级

​ 逻辑控制 

条件语句

if语句和if-else语句

循环语句 

while语句

do-while语句与for循环语句

 switch循环(处理对个选择)

方法的使用

实参和形参的关系

方法的重写与重载

重载

重写

重写与重载的区别:

递归 

数组的定义与使用 

数组的创建

 数组的初始化

for-each循环

数组是引用类型 

基本类型变量与引用类型变量的区别


数据类型与变量

整型

长整型数值有一个后缀 L 或 1 ( 如 4000000000L。) 十六进制数值有一个前缀 Ox 或 0X (如OxCAFEL 八进制有一个前缀 0 , 例如, 010 对应八进制中的 8。 很显然, 八进制表示法比较容易混淆, 所以建议最好不要使用八进制常数。

浮点型

float 类型的数值有一个后缀 F 或 f (例如, 3.14F)。没有后缀 F 的浮点数值(如 3.14 ) 默认为 double 类型。当然,也可以在浮点数值后面添加后缀 D 或 d (例如,3.14D)。

char类型

boolean类型 

boolean (布尔)类型有两个值:false 和 true, 用来判定逻辑条件 整型值和布尔值之间不能进行相互转换。

运算符

运算符优先级

 逻辑控制 

条件语句

if语句和if-else语句

循环语句 

while语句

do-while语句与for循环语句

特别指出: 如果在 for 语句内部定义一个变量, 这个变量就不能在循环体之外使用。 因此, 如果希望在 for 循环体之外使用循环计数器的最终值, 就要确保这个变量在循环语句的前面且在外部声明!另一方面,可以在各自独立的不同 for 循环中定义同名的变量

 switch循环(处理对个选择)

方法的使用

语法格式:
修饰符 返回值类型 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}

【注意事项】
1. 修饰符:现阶段直接使用public static 固定搭配
2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void
3. 方法名字:采用小驼峰命名
4. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
5. 方法体:方法内部要执行的语句
6. 在java当中,方法必须写在类当中
7. 在java当中,方法不能嵌套定义
8. 在java当中,没有方法声明一说

实参和形参的关系

Java中方法的形参就相当于sum函数中的自变量n,用来接收sum函数在调用时传递的值的。形参的名字可以随意取,对方法都没有任何影响,形参只是方法在定义时需要借助的一个变量,用来保存方法在调用时传递过来的值。

public static int getSum(int N){ // N是形参
return (1+N)*N / 2;
} 
getSum(10); // 10是实参,在方法调用时,形参N用来保存10
getSum(100); // 100是实参,在方法调用时,形参N用来保存100

在Java中,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体

方法的重写与重载

重载

在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了

public static double add(double x, double y) {
return x + y;
} p
ublic static double add(double x, double y, double z) {
return x + y + z;
}

注意:
1. 方法名必须相同
2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
3. 与返回值类型是否相同无关

重写

重写(override):也称为覆盖。重写是子类对父类非静态、非private修饰,非final修饰,非构造方法等的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

方法重写的规则:

  1. 子类在重写父类的方法时,一般必须与父类方法原型一致:修饰符 返回值类型 方法名(参数列表) 要完全一致
  2. JDK7以后,被重写的方法返回值类型可以不同,但是必须是具有父子关系的
  3. 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类方法被public修饰,则子类中重写该方法就不能声明为 protected
  4. 父类被static、private修饰的方法、构造方法都不能被重写。
  5. 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。
  6. 子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法
  7. 重写的方法, 可以使用 @Override 注解来显式指定. 有了这个注解能帮我们进行一些合法性校验. 例如不小心将方法名字拼写错了 (比如写成 aet), 那么此时编译器就会发现父类中没有 aet 方法, 就会编译报错, 提示无法构成重写.

重写与重载的区别:

方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现

递归 

一个方法在执行过程中调用自身, 就称为 "递归"
示例:求n的阶乘

public static void main(String[] args) {
    int n = 5;
    int ret = factor(n);
    System.out.println("ret = " + ret);
} 
public static int factor(int n) {
    if (n == 1) {
        return 1;
    } 
    return n * factor(n - 1); // factor 调用函数自身
} // 执行结果ret = 120

数组的定义与使用 

数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。

数组的创建

T[] 数组名 = new T[N];

T:表示数组中存放元素的类型
T[]:表示数组的类型
N:表示数组的长度

int[] array1 = new int[10]; // 创建一个可以容纳10个int类型元素的数组
double[] array2 = new double[5]; // 创建一个可以容纳5个double类型元素的数组
String[] array3 = new double[3]; // 创建一个可以容纳3个字符串元素的数组

 数组的初始化

动态初始化:在创建数组时,直接指定数组中元素的个数

int[] array = new int[10];

静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定

int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0};

for-each循环

int[] array = {1, 2, 3};
for (int x : array) {
    System.out.println(x);
}

for-each 是 for 循环的另外一种使用方式. 能够更方便的完成对数组的遍历. 可以避免循环条件和更新语句写错

数组是引用类型 

基本类型变量与引用类型变量的区别

基本数据类型创建的变量,称为基本变量,该变量空间中直接存放的是其所对应的值;
而引用数据类型创建的变量,一般称为对象的引用,其空间中存储的是对象所在空间的地址

引用变量并不直接存储对象本身,可以简单理解成存储的是对象在堆中空间的起始地址

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值