![](https://img-blog.csdnimg.cn/direct/fb76373259ca4460a90e8a01c14064af.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础
文章平均质量分 81
回顾基础
蒾酒
热爱编程、熟悉全栈开发,商务合作或者有开发需求可加文章底部vx,期待与大家共同进步。
个人gitee主页:https://gitee.com/mi9688-wine
展开
-
String、StringBuilder、StringBuffer的区别
String、StringBuilder和StringBuffer都是用来处理字符串的类,底层都是通过char[]数组实现的。(jdk1.8及之前)String是不可变的(线程安全的),StringBuilder和StringBuffer是可变的。StringBuffer是线程安全的,而StringBuilder是非线程安全的。具体如下:String对象一旦创建,其值是不能修改的,如果要修改,会重新开辟内存空间来存储修改之后的对象;原创 2023-12-31 16:20:29 · 1085 阅读 · 1 评论 -
Java关键字大全
以上是我们学习Java从小白到入门能够接触到的关键字。下面整理一些我们刚开始学习Java会经常用到的关键字的用法概述: 类型种类: 大小范围: 示例:示例: for循环:最常用的循环 示例: switch语句有个特点就是我们分支下没有写break;的话程序不会报错,原创 2022-08-01 13:38:34 · 3730 阅读 · 0 评论 -
String类的常用功能
方法3:String(char[] value, int index, int count):把字符串数组中的一部分数据封装成字符串对象。String对象初始化功能,String类的判断功能,String类的获取功能,String类的转换功能,String类的去除空格和分割功能。2.String[] split(String str):按照指定符号(str)分割字符串,分割为字符串数组的形式。1.boolean equals(String str):比较字符串的内容是否相同(区分大小写)原创 2022-08-01 16:43:24 · 2399 阅读 · 1 评论 -
java8常用新特性(超详细)
Lambda表达式通常与函数式接口(只有一个抽象方法的接口)一起使用,可以大大简化代码。方法引用是一种更简洁地表示已经存在的方法的方式。默认方法是接口中的一种新特性,它允许在接口中定义具有默认实现的方法。这样可以向已有的接口添加新的方法,而不会破坏实现该接口的类的兼容性。它提供了一种更安全和优雅的方式来处理可能出现空指针异常的情况,避免了频繁的null检查。它可以对集合进行过滤、映射、排序等操作,还支持并行处理,从而提高了代码的可读性和性能。java基础之java8新特性-默认方法-CSDN博客。原创 2024-01-12 23:55:36 · 2155 阅读 · 2 评论 -
java8新特性-Optional
Java 8引入了一个重要的新特性,即Optional类。Optional类是为了解决空指针异常而设计的。在Java中,当我们尝试访问一个空对象的属性或调用其方法时,很容易抛出NullPointerException。这种异常可能会导致程序崩溃或产生意外结果。Optional类的目的是提供一种更好的处理空值的方式。它可以包含一个非空的对象,也可以表示一个空值。使用Optional类,我们可以避免直接操作空对象,从而减少NullPointerException的发生。原创 2024-01-10 23:57:44 · 1161 阅读 · 5 评论 -
java8新特性-方法引用
方法引用是 Java 8 中引入的另一个重要特性,它提供了一种简洁的语法来直接引用现有方法或构造函数。方法引用可以看作是 Lambda 表达式的一种简化写法,它可以让代码更加简洁易懂。什么是Lambda 表达式呢?可以参考另一篇文章:java基础之Java8新特性-Lambda-CSDN博客示例代码仓库地址:j8-new-feature: java8新特性示例Demo (gitee.com)原创 2024-01-09 17:45:06 · 1647 阅读 · 2 评论 -
java8新特性-Stream(流)
流(Stream)是 Java 8 引入的一种处理集合数据的抽象概念,它提供了一种更简洁、更灵活的方式来操作和处理集合数据。流可以看作是一系列元素的管道,可以对这些元素进行筛选、转换、排序、归约等操作,实现各种数据处理需求。与传统的循环迭代方式相比,流的代码更易读、更易于并行化处理,并且能够充分发挥多核处理器的优势。通过使用流,可以提高代码的可读性和可维护性,同时也能够更高效地处理大规模数据集合。原创 2024-01-06 18:32:11 · 2018 阅读 · 2 评论 -
java8新特性-Lambda
定义一个函数接口需要满足以下两点:1.保证接口中只能有一个抽象方法2.使用@FunctionalInterface注解标记该接口为函数接口void add();//只能存在一个抽象方法。原创 2024-01-05 01:35:01 · 1266 阅读 · 1 评论 -
java8新特性-默认方法
提供新的 API 版本而不破坏二进制兼容性:当需要在一个接口中添加新的方法时,为了保证已存在的实现类仍然能够正常运行,通常需要对所有实现类进行修改。通过在接口中添加默认方法,可以在不破坏现有代码的情况下提供新的 API 版本。通过在接口中添加默认方法,可以弥补抽象类的不足,使得接口在一定程度上可以像抽象类一样提供通用的实现。为函数式接口提供便利:Java 8 引入了函数式接口,即只包含一个抽象方法的接口。通过在函数式接口中添加默认方法,可以提供一些通用的、默认的实现,使得函数式接口的使用更加便利。原创 2024-01-04 20:18:45 · 635 阅读 · 3 评论 -
String的不可变性
String类的不可变性意味着一旦创建了一个字符串对象,它的值就不能被修改。原创 2023-12-31 02:05:54 · 1054 阅读 · 0 评论 -
java和c++的主要区别、各自的优缺点分析、java跨平台的原理的深度解析
原因是同样的Java代码编译成的字节码都是一样的,那么你把相同的字节码拿到不同平台,比如windows,那么就由windows版的jvm解释,同理在linux、mac平台,也都有对应平台的jvm来解释运行,也就是说功劳最大的就是jvm,在这里起到一个类似转换器的作用。网上还有java是,半编译、半解释型语言的说法,我对这个说法的理解是:半编译指java编译器(javac)把源代码没有一步到位编译成机器语言,而是编译成中间代码字节码,半解释指Java解释器(jvm)继续把字节码解释成机器语言运行。原创 2023-12-21 13:30:45 · 1385 阅读 · 0 评论 -
java多态详解
我认为,多态应该是一种运行期特性,Java中的重写是多态的体现。是指在运行时确定对象的具体类型,并根据对象的类型调用相应的方法。Java中的方法重写就是一种动态多态,因为在运行时,虚拟机会根据对象的实际类型来调用相应的方法。前面说多态是一种运行期的概念。在代码中同样是动物的发出叫声的操作,在狗子身上就是 “汪汪汪”,在猫身上就是 “喵喵喵”(简单理解就是,同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。原创 2023-12-29 02:45:58 · 614 阅读 · 0 评论 -
java包装类的作用、基本类型和包装类型的区别
为了让基本类型也具有对象的特征,就出现了包装类型,它相当于将基本类型“包装起来,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。包装类将基本类型封装成对象,使其具有对象的特性,例如可以调用方法、进行比较和使用泛型等。3.存储方式不同,基本类型保存在栈上,包装类对象保存在堆上(成员变量的话,在不考虑川T优化的栈上分配时,都是随着对象一起保存在堆上的)。5.基本类型不具备对象的方法和属性,不能调用方法或访问属性,包装类型是对象,可以调用对象的方法和访问对象的属性。原创 2023-12-27 16:17:53 · 692 阅读 · 0 评论 -
java接口和抽象类的区别,以及使用选择
接口和抽象类,最明显的区别就是接口只是定义了一些方法而已,在不考虑Java8中default方法情况下,接口中只有抽象方法,是没有实现的代码的。(Java8中可以有默认方法)原创 2023-12-26 21:43:48 · 422 阅读 · 0 评论 -
java为何不支持多继承
Java不支持多继承主要是为了避免歧义和复杂性,并通过接口和组合来提供更灵活和可控的代码复用机制。原创 2023-12-23 17:03:03 · 981 阅读 · 1 评论 -
java面向对象和面向过程分析
它将数据和操作数据的方法封装在一起,形成一个对象。)这些所有的汽车的共性抽象成一个Car类,造一辆汽车你就需要继承抽象类Car,去实现父类Car的一系列抽象方法,比如组装方法,指定轮胎为XX,发动机为XX等,同时轮胎、发动机又是一个抽象对象,分别由子类继承实现(多态是指在父类中定义的方法被子类继承之后,可以通过重写,使得父类和子类具有不同的实现,这使得同一个方法在父类及其各个子类中具有不同含义。通俗来说就是把问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。原创 2023-12-23 15:19:28 · 1584 阅读 · 1 评论 -
控制台项目-学生管理系统(io流实现)
该项目是我大一学习javaSE阶段写过的一个新手项目。适合处在学习JavaSE阶段的朋友作为阶段性练手项目,主要是练习一下基本的流程控制结构,循环结构,编写类、List集合的简单使用,IO的文件简单读取写入。在控制台实现,登录,注册,学生信息增删查改,通过输出流把用户信息,学生信息写入文本文件,进行持久化存储,通过输入流把信息读取到内存打印到控制台实现查询。String id;//学号//姓名//电话//专业//住址this.id=id;return id;原创 2023-01-12 04:10:14 · 573 阅读 · 0 评论 -
java的动态代理如何实现
JDK 的动态代理和 CGLIB 都有各自的优点和缺点,具体使用哪种方式取决于具体的需求和场景。如果被代理的类已经实现了接口,那么可以优先考虑使用 JDK 的动态代理;如果被代理的类没有实现接口,或者需要对类的所有方法进行代理,那么可以考虑使用 CGLIB。原创 2023-12-25 15:22:15 · 1248 阅读 · 1 评论