JavaSE总结(完结撒花)

本文介绍了Java的基本特性,包括面向对象、分布式和安全性等。讲解了JDK、JRE和JVM的关系,以及Java程序的运行机制。文章还涵盖了数据类型、变量、类型转换和运算符的使用,强调了程序逻辑控制,如switch语句。此外,详细讨论了方法的重载和重写,数组的操作,包括拷贝、查找和排序。还涉及了类、对象、继承、封装、抽象类和接口的概念,以及异常处理和String类的使用。
摘要由CSDN通过智能技术生成

一、初识Java

整个框架都是从大博哥那里拿来的,偷个懒就不画图了😊😊😊,仅对内容进行扩充

如上图所示,这里对上图进行解释与补充

1.Java的特性

答:简单性,面向对象进行开发,分布式服务,健壮性,安全性,体系结构中立,可移植性,解释性,高性能,多线程,动态性

2.运行Java程序

Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节

码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够

理解的形式来运行。

【面试题】JDK、JRE、JVM之间的关系?

JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译

器javac与自带的调试工具Jconsole、jstack等。

JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程

序运行的所需环境。

JVM:Java虚拟机,运行Java代码

二、数据类型和变量

  1. 八个基本数据类型

byte ,short ,int, long, double, float, char, boolean

2.类型转换

1. 不同数字类型的变量之间赋值, 表示范围更小的类型隐式转换范围较大的类型

2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失

3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查

4. 强制类型转换不一定能成功,不相干的类型不能互相转换

3. 类型提升

1.不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.

三、运算符

算数运算符,关系运算符,逻辑运算符,位运算符,移位运算度,条件运算符。

四、程序逻辑控制

注意:

switch的括号内只能是以下类型的表达式:

  1. byte, int, char, short

  1. String字符串,枚举类型

五、方法的使用

这里主要还是回一下重载和重写

重载

重写

方法名相同

方法名相同

参数列表不相同(顺序,数据类型,数量)

参数列表相同(顺序,数据类型,数量)

返回值(没有要求)

返回值相同,如果返回值不相同,那么必须构成父子类的关系(协变类型)

为什么要重载:简化方法名的使用

为什么要重写:在继承、接口中使用。

六、数组

1.数组的拷贝

上图是浅拷贝,对newArr修改会影响arr的值

上图是深拷贝,对newArr修改不会影响arr的值

2.数组的二分查找

pubic static int binaryFind(int[] arr, int numFind){
    int left = 0;
    int right = array.length();
    while(left<right){
        int mid = (left+right)/2
        if(arr[mid]<numFind){
            left = mid+1;
        }else if(arr[mid]>numFind){
            right = mid+1;
        }else{
            return mid;
        }
    }
    return -1;
}

3.数组的冒泡排序

public static void bubbleSort(int[] arr) {
    for(int i = 0; i<arr.length; i++){
        for(int j = 0; j<arr.length-i-1; j++){
            if(arr[j]>arr[j+1]){
                int tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
            }
        }
    }
}

4.二维数组

理解为特殊的一维数组,只不过是存放的地址。

七、类和对象

难点的回忆:

this的用法 <————点击

内部类 <————点击

八、继承和封装

难点

子类帮助父类写构造方法 <————点击

多态 <————点击

九、抽象类和接口

难点:

抽象类 <————点击

接口 <————点击

十、String类

String <————点击

十一、异常

异常 <————点击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈士奇的奥利奥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值