首页 > 编程语言 >Java基础,你面试可能会问到的各类问题

Java基础,你面试可能会问到的各类问题

时间:2024-03-12 23:30:39浏览次数:21  
标签:Java 构造方法 对象 面试 线程 问到 java super

Java

八种基本数据类型定义相应的包装类:

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter

命名规范

1、项目名全部小写.
2、包名全部小写.
3、类名首字母大写,多个单词情况下使用驼峰命名规则.
4、变量名,方法名首字母小写,如果名称由多个单词组成,使用驼峰命名规则.
5、常量名全部大写.
6、所有命名规则必须遵循以下规则 :

  • 名称只能由字母、数字、下划线、$符号组成.
  • 不能以数字开头.
  • 名称不能使用Java中的关键字.
  • 尽量不使用中文及拼音命名.

sleep与wait区别

对于sleep()方法,我们首先要知道该方法是属于Thread 类中的。而wait()方法,则是属于Object 类中的。
sleep()方法导致了程序暂停执行指定的时间,让出cpu 该其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。
在调用sleep()方法的过程中,线程不会释放对象锁。
而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。

Java流的分类

按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)

按数据流的流向不同分为:输入流,输出流

按流的角色的不同分为:节点流,处理流

什么是反射机制

在Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为Java 语言的反射机制

String的特性:

  1. String类代表字符串
  2. String是个final类,是个不可变的字符序列;
  3. 字符串是常量,使用“”来表示,他们的值创建了之后是不能被改变的
  4. String对象的字符内容是存储在一个**字符数组value[]**中的;

包装(Wrapper)类

    1. 八种基本数据类型定义相应的包装类:

      | 基本数据类型 | 包装类 |
      | ------------ | --------- |
      | byte | Byte |
      | short | Short |
      | int | Integer |
      | long | Long |
      | float | Float |
      | double | Double |
      | boolean | Boolean |
      | char | Character |

    String、StringBuffer、StringBuilder区别

  • String:不可变字符串序列;使用char[]存储

    • StringBuffer:可变的字符串序列;线程安全的效率偏低;使用char[]存储
  • StringBuilder:可变的字符串序列;线程不安全的效率高;使用char[]存储

两种线程实现方式

Java 虚拟机的主线程入口是main 方法,用户可以自己创建线程,创建方式有两种:

  • 继承Thread 类
  • 实现Runnable 接口(推荐使用Runnable 接口)

多线程的基本概念

线程指进程中的一个执行场景,也就是执行流程,那么进程和线程有什么区别呢?

  • 每个进程是一个应用程序,都有独立的内存空间。
  • 同一个进程中的线程共享其进程中的内存和资源。
  • 共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的。

List 集合的主要特点:有序、可重复、有索引

集合分为两大类:

一类是单个方式存储元素:

单个方式存储元素,这一类集合中超级父接口:java.util.Collection

一类是以键值对儿的方式存储元素:

以键值对的方式存储元素,这一类集合中超级父接口:java.util.Map

异常的分类

异常(Exception)位于 java.lang 包下,它是一种顶级接口,继承于 Throwable 类。

在程序在编译和运行阶段经常会产生异常或者错误,而认识异常之前,首先认识其父类 Throwable 类。
8.1.1 什么是Throwable

Throwable 类是Java语言中所有 错误 (errors) 和 异常(exceptions) 的父类。只有继承于Throwable的类或其子类才能被抛出。还有一种方式是带有 @throw 注解的类也可以抛出。异常的捕获

try、catch 和 finally

自动装箱和自动拆箱机制:

自动将基础类型转换为对象

自动将对象转换为基础类型

JDK5.0之前:

装箱:Integer i1 = new Integer(100);

拆箱:int i2 = i1.intValue();

JDK5.0之后:

装箱:Integer i3 = 100;

拆箱:Int i4 = i3;

“==” 和 equals :

“==” 比较的是内存地址,equals 在包装类中重写了,比较的是基本数据类型的值。

JDK常用包

java.lang,此包Java 语言标准包,使用此包中的内容无需import 引入

java.sql,提供了JDBC 接口类

java.util,提供了常用工具类j

ava.io,提供了各种输入输出流

this和super

this

this是一个变量,是一个引用。this保存当前对象的内存地址,指向自身。this储存在堆内存当中的对象内部。

this只能使用在实例方法中,谁调用这个方法,this就是谁。

使实例方法中的局部变量有意义化,把变量指向对象,可读性高。

构造方法也可使用this指向对象

this(实参) 只能出现在构造方法的第一行,例如:



super

严格来说,super 其实并不是一个引用,它只是一个关键字,super 代表了当前对象中从父类继承过来的那部分特征。this 指向一个独立的对象,super 并不是指向某个“独立”的对象,假设张大明是父亲,张小明是儿子,有这样一句话:大家都说张小明的眼睛、鼻子和父亲的很像。那么也就是说儿子继承了父亲的眼睛和鼻子特征,那么眼睛和鼻子肯定最终还是长在儿子的身上。假设this指向张小明,那么super 就代表张小明身上的眼睛和鼻子。换句话说super 其实是this 的一部分。如下图所示:张大明和张小明其实是两个独立的对象,两个对象内存方面没有联系,super 只是代表张小明对象身上的眼睛和鼻子,因为这个是从父类中继承过来的,在内存方面使用了super 关键字进行了标记,对于下图来说“this.眼睛”和“super.眼睛”都是访问的同一块内存空间。

语法:
    super. super()

用super. 访问父类特征时,若子类也有相同特征,super. 不能省,省了会访问子类的该特征
    super() 作用:调用父类的构造方法,代码复用

super() 必须在构造方法第一行,若第一行没有手动写super,系统会默认写上super()
    super() 和this() 只能存在一个,this() 调用本类中的其他方法

在java中调用子类构造方法时父类的构造方法一定会执行

this和super比较

父类的构造方法,代码复用

super() 必须在构造方法第一行,若第一行没有手动写super,系统会默认写上super()
    super() 和this() 只能存在一个,this() 调用本类中的其他方法

在java中调用子类构造方法时父类的构造方法一定会执行

this和super比较

在这里插入图片描述

标签:Java,构造方法,对象,面试,线程,问到,java,super
From: https://blog.csdn.net/weixin_51627264/article/details/136666143

相关文章

  • .Net 面试题总结
    WPF和WinForm区别WPF:分辨率自适应,属性binding,有事件路由、命令绑定、数据模板数据模板等特性,前后分离,可创建样式动画,页面比WinForm更炫酷WinForm:自适应差,label控件不可设置透明背景区别WPFWinForm句柄整个窗口为一个句柄窗口中每个控件都是一个句柄渲染使......
  • Java学习系列(一):概述Java与完成第一个程序(安装JDK)
    一、Java简介java语言是SUN(StanfordUniversityNetwork,斯坦福大学网络公司)1995年推出的一门高级编程语言,是一种面向Internet的编程语言。二、学习Java之前首先要掌握相关的计算机知识1.(计算机硬件系统)计算机组成:主板、硬盘(长久的存储数据,读写速度慢、容量大)、内存(......
  • Java(二)你好世界!
    今天写出了java的第一个代码--HelloWorld。你好世界!!耗时好久终于明白怎么用cmd敲出代码了。1.首先用记事本写出你的代码并保存。2.接着你要下载好JDK。为什么呢?因为你想想你打游戏肯定要先下载软件吧。所以我们想玩Java,那肯定要先下载好JDK呀。3.接着你要开始转换一下你......
  • JAVA系统源码中的AI智能绘画生成技术揭秘
    在数字化时代,人工智能(AI)已经逐渐渗透到我们生活的方方面面,从智能语音助手到自动驾驶汽车,无不体现出AI技术的强大魅力。而在艺术领域,AI同样展现出了惊人的创造力。近期,一项融入JAVA系统源码的AI智能绘画生成技术引起了广泛关注。这项技术究竟有何神奇之处?让我们一起来揭秘。一......
  • GDPU JavaWeb JSP基础
    正式走进Javaweb大门,了解jsp及Java在前端的体现。JSP JSP,JavaServerPages是一种基于Java技术的服务器端动态网页技术,允许开发人员在HTML页面中嵌入Java代码。通过JSP,开发人员可以创建包含静态模板和动态内容的网页。当客户端请求一个包含JSP的网页时,服务器会执行其中的J......
  • 采用Java实现论文查重
    这个作业属于哪个课程<软件工程2024(广东工业大学)>这个作业要求在哪里<个人项目>这个作业的目标<熟悉个人软件开发流程、熟悉各类工具的使用,学会用PSPG进行项目规划评估程序质量并优化程序>Gitee链接:https://github.com/jueshishuaimengou/yh/tree/main/3122......
  • 【vscode】vscode配置Java
    【vscode】vscode配置Java前言‍配环境,需要记录,避免反复踩坑。‍步骤‍step1:官网走‍配环境为什么不直接上官网教程,VisualStudioCode-CodeEditing.Redefined‍​​‍点击Java‍​​‍step2:配置必需的环境‍CodingPackforJavaTohelpyousetupqui......
  • Java项目源码基于springboot的家政服务平台的设计与实现
    大家好我是程序员阿存,在java圈的辛苦码农。辛辛苦苦板砖,今天要和大家聊的是一款Java项目源码基于springboot的家政服务平台的设计与实现,项目源码以及部署相关请联系存哥,文末附上联系信息。项目源码:Java基于springboot的家政服务平台的设计与实现.rar资源-CSDN文库项目简介:......
  • Java 包装类:原始数据类型与迭代器
    JavaIteratorIterator接口提供了一种迭代集合的方法,即顺序访问集合中的每个元素。它支持hasNext()和next()方法,用于检查是否存在下一个元素以及获取下一个元素。获取Iterator可以使用集合的iterator()方法获取Iterator实例://导入ArrayList类和Iterator类impo......
  • java美食城网站设计(ssm)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在数字化时代,互联网已成为人们获取信息、交流和消费的重要平台。美食作为人类文化的重要组成部分,不仅承载着丰富的地域特色和历史传统,也是人们日常生活中......