首页 > 编程语言 >Java基础2.0

Java基础2.0

时间:2024-11-26 19:00:17浏览次数:16  
标签:2.0 Java 对象 StringBuffer 基础 线程 子类 父类 方法

7.String,StringBuffer,StringBuilder的区别

7.1 String

String时不可变的,一旦String对象被创建以后,包含在这个对象中的字符序列时不可改变的,直到这个对象被销毁。

7.2 StringBuffer

StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer对象被创建后,可以通过StringBuffer对象提供的append(),insert(),等方法改变这个字符串对象的字符序列。

7.3 StringBuilder

StringBuilder对象也可以改变字符序列,基本用法跟StringBuffer相似,两个类的构造器和方法也基本相同,但是StringBuffer是线程安全的,StringBuilder没有线程安全功能,性能略高。

如果要求线程安全(多线程)的场景,就使用StringBuffer,如果对线程安全要求没那么高,要求性能多一点,可以使用StringBuilder。注意:三者都是final类,不允许被继承。

7.4 StringBuffer是如何实现线程安全的?

StringBuffer类中的方法都添加了synchronized关键字,这个方法添加了一个锁,来保证线程安全

 8.反射

在运行过程中,对于任何一个类都能获取它的属性和方法,任何一个对象都能调用其方法,这种动态获取信息和动态调用对象,就是反射。

比如当我们new一个student类的对象时,jvm会去本地磁盘找student.class文件并且加载到jvm内存中,同时会自动创建一个class对象,一个类只能有一个class对象。

本质就是得到class对象后,反向获取Student对象的各种信息。

Java获取反射的三种方法:

  1. 通过new对象实现反射
  2. 通过路径实现反射
  3. 通过类名实现反射

9.浅拷贝和深拷贝的区别

主要区别在于拷贝的程度和对原始对象内部结构的影响。

浅拷贝

浅拷贝创建一个对象,如果字段是基本数据类型,则这些字段会被复制到新对象中,如果字段是引用类型,则新对象和原始对象中的引用指向相同对象(因为只复制了引用地址,不复制引用指向的对象);从而导致对新对象进行修改会影响到原始对象。

深拷贝

深拷贝创建一个新的对象,会递归的复制整个对象结构,确保和原始对象之间所有关系都是独立的。

10.抽象类和接口的区别

  1. 抽象类有构造方法,但接口没有
  2. 抽象类可以有实例变量,但接口没有实例变量,有常量
  3. 抽象类只能单继承,但是接口可以实现多个
  4. 抽象类可以包含非抽象方法,接口在java7之前所有方法都是抽象的,java8之后也可以包含非抽象方法
  5. 抽象类中的方法可以是任意修饰符,但是接口java8之前都是public,java9支持private

11.Error和Exception有什么区别?

Error:程序无法处理,程序会立即崩溃,jvm停止运行。

Exception:程序可以向上抛出或者捕获。

12.final关键字的作用

  1. 修饰类:修饰一个类时,表示该类不能被继承。
  2. 修饰方法:把方法锁定,防止任何继承类修改它的含义,此处需要注意的一点是:因为重写的前提是子类可以从父类中继承此方法,如果父类中final修饰的方法同时访问控制权限为private,将会导致子类中不能直接继承到此方法,因此,此时可以在子类中定义相同的方法名和参数,此时不再产生重写与final的矛盾,而是在子类中重新定义了新的方法。
  3. 修饰变量:当final修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化;如果final修饰一个引用类型时,则在对其初始化之后便不能再让其指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。

13.this关键字的作用

可以理解为指向的对象本身的一个指针。

用法大体可以分为三种:

  1. 当成员方法的成员变量和形参名称重名时,可以用this来区分,表示调用本类中的成员变量。
  2. 调用成员方法和构造方法。
  3. 返回类的引用,可以使用return this来返回某个类的引用,this此时就表示类的名称。

14.super关键字的用法

super可以理解为是指向自己父类对象的一个指针,这个父类是指离自己最近的一个父类。

  1. 调用子类中重写的父类的方法
  2. 如果父类和子类都有同名的属性,则访问父类的属性
  3. 从子类构造函数显示地调用父类无参数化构造函数和有参数化构造函数

标签:2.0,Java,对象,StringBuffer,基础,线程,子类,父类,方法
From: https://blog.csdn.net/m0_74166099/article/details/144064236

相关文章

  • 【JavaEE初阶】枫叶经霜艳,梅花透雪香-计算机是如何运行的?
    本篇博客给大家带来的是与计算机相关的知识点,包括:计算机的组成,指令,进程(重点).文章专栏:JavaEE初阶若有问题评论区见欢迎大家点赞评论收藏分享如果你不知道分享给谁,那就分享给薯条.你们的支持是我不断创作的动力.1.计算机的组成1.1计算机的发展......
  • 网络药理学之薛定谔Schrödinge Maestro:2、基础使用(导入大分子蛋白、更改配体样式、相
    本人是win11,薛定谔版本是12.9。官网:https://www.schrodinger.com/本篇文章的示例大分子蛋白PDBID为4KNN,小分子配体的MOLID为MOL004004。打开软件,最原始的界面如下:我个人将其分为几个板块,由上到下由左到右分别是:常见软件导航栏,包括基础的导入导出文件,操作撤回等。......
  • java实习日记(2)
    一、Mybatisplus       让mapper类继承basemapper,然后泛型那里填要操作的实体类对象,就可以在代码中调用basemapper提供的方法对实体类对象增删查改例如: importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importcom.example.demo.entity.User;public......
  • 高性能框架Aeron的BufferPool和Java的内存池有什么区别?
    关注我,持续分享逻辑思维&管理思维&面试题;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可......
  • k8s容器中的Java进程经常自动被杀
    故事背景主角:低代码项目时间:2023-08-29背景:项目通过jenkins部署k8s容器到虚拟机,在一次部署之后,服务发生无限重启的现象,springboot项目起来后没多久(甚至有几次还没启动)就会被杀掉进程,服务宕机了一个晚上。排查过程查看日志通过 kubeletlogs 命令查看服务运行日志,未发现任......
  • Linux基础之浏览和创建文件
    如果您喜欢我的文章,还可以关注微信公众号,蜗牛全栈一、cat和less命令:显示文件内容在/var/log目录中主要记录程序数据和log日志文件,/var这个目录通常包含程序的数据。log文件通常会记录电脑中发生了什么事情 二、cat命令:一次性显示文件的所有内容cat是concatenate的缩写,表......
  • 计算机基础知识概述
    《计算机基础知识概述》计算机是我们日常生活和工作中不可或缺的工具,了解一些计算机的基础知识,能让我们更好地使用它。一、计算机硬件组成计算机硬件主要包括中央处理器(CPU)、内存、硬盘、输入设备和输出设备等。1.CPU是计算机的核心,负责执行指令和处理数据。2.内存用于......
  • 掌握SHELL脚本基础,轻松驾驭Linux自动化利器
    文章目录解释器编写规则变量环境变量永久变量已经预设定好的变量脚本标量条件测试文件测试字符串测试命令执行测试控制语句if判断语句case判断语句for循环语句while循环语句until循环语句函数shell脚本之间相互调用与重定向相互调用函数调用参数传递重定向输出重定......
  • 你不知道的javascript-4
    this的指向,绑定规则,作用域1.什么是this?this是在函数执行时用来指代那个当前执行上下文的对象也就能说明this的值是在函数被调用时确定的,而不是在函数被定义时确定的因为只有当函数执行的时候,才会创建对应的FEC(函数执行上下文)2.为啥需要this?在常见的编程语言中,几乎......
  • 书生大模型第四期 | 基础岛 task6 OpenCompass 评测
    目录使用OpenCompass评测浦语API记录环境准备后续运行会碰到的问题:代码准备测评运行任务来源:Tutorial/docs/L1/Evaluation/task.mdatcamp4·InternLM/Tutorial·GitHub使用OpenCompass评测浦语API记录环境准备condacreate-nopencompasspython=3.10......