首页 > 编程语言 >Java最全面试->Java基础->JavaSE->基础语法

Java最全面试->Java基础->JavaSE->基础语法

时间:2024-10-16 08:51:28浏览次数:3  
标签:Java String 最全 数据类型 equals hashCode JavaSE 重写 常量

基础语法

下边是我自己整理的面试题,基本已经很全面了,想要的可以私信我,我会不定期去更新思维导图
哪里不会点哪里
在这里插入图片描述

基本数据类型和方位修饰符

数据类型有哪些

  • 基本数据类型
    byte、int、short、long、float、double、boolean、char
  • 引用数据类型
    类、数组、接口

访问权限修饰符区别

在这里插入图片描述

JavaSE语法

接口和抽象类的区别

  • 实现
    抽象类需要使用extends
    接口需要使用implements
  • 构造函数
    抽象类可以有构造函数
    接口不能
  • main方法
    抽象类可以有,并且可以运行
    接口不行
  • 实现数量
    抽象类单继承,接口多实现
  • 访问修饰符
    抽象可以是任意修饰符
    接口只能是public

final、finally、finlize区别

  • final:可以用于属性,方法和类,分别表示属性不可改变,方法不可覆盖,类不可继承
  • finally:异常的一部分,标识总是执行
  • finlize:object提供的方法,在垃圾收集器执行的时候会调用被回收对象的此方法

抽象类能用final修饰么

不能,final修饰类之后类不允许被继承

为什么不能用浮点型表示金额

计算机中保存的小数其实是10进制小数的近似值,不是很准确,建议使用bigDecimal或者long来表示

int和Integer区别

  • Integer是int的封装类
  • int的默认值是0,Integer默认值是null

char变量中能不能存储一个中文汉字,为什么

可以。
Java使用的编码是Unicode,里面包含了汉字,可以存储

&和&&的区别

  • &:有俩种用法,1是按位与,2是逻辑与
  • && :短路运算,左边为false之后不会继续执行右边的逻辑运算

==和equals区别

  • 一个方法一个运算符
  • ==比较原生类型,equals方法比较两个对象的内容是否相等
  • ==如果比较的是基本数据类型,则比较数值,如果比较引用,则是比较地址值是否相等
  • equals不能用于基本数据类型,如果没有重写,默认比较的是对象的地址

为什么重写equals使必须重写hashCode方法

  • 提高效率:先进行hashCode比较,如果不同,没必要进行equals比较
  • 保证同一个对象:如果重写了equals未重写hashCode,会出现equals相同而hashCode不同
  • 重写后俩方法的关系:
    1. equals相等,hashCode一定相等
    2. hashCode不等,equals一定不等
    3. hashCode相等,equals不能确定

Math.round(1.5)=?

2

Math.round(-1.5)=?

-1

重写和重载的区别

  • 重载
    1. 方法名一直,参数顺序,类型,个数不同
    2. 与返回值无关
    3. 可以抛出不同异常,可以有不同修饰符
  • 重写
    1. 参数和返回类型必须一直
    2. 构造方法不能重写
    3. 访问权限不能比父类中的更低
    4. 抛出的异常不能比父类中的更广

构造方法能不能重写,能不能重载,能不能显示调用

  • 不能重写
  • 可以重载
  • 不能显示调用,只能在创建对象的时候由系统调用

静态变量和实例变量区别

  • 静态变量
    被static修饰的变量称为类变量,不属于任何对象,一个类不管创建多少个,类变量只有一份
  • 实例变量
    必须依靠实例,由实例对象调用

什么是隐式转化,什么是显示转换

  • 隐式转换:自动转换类型,大范围的变量能够接受小范围的数据
  • 显示转换:强制类型转换,大范围的数据强制复制给小类型的数据

什么是拆装箱

  • 拆箱:把包装类转换成基本数据类型
  • 装箱:把基本数据类型转换成包装类

break和continue区别

  • break:跳出循环
  • continue:跳出当前循环执行下次循环

String类

String、StringBuffer、StringBuilder的区别

  • 都是final修饰,不允许继承
  • String长度不可变
  • buffer线程安全,builder不安全,他俩方法仙童,buffer在方法上加了Synchronized,保证线程安全
  • builder比buffer性能好
    如果一个String类型的字符串,在编译的时候就可以确定是字符串常量,编译成功之后自动拼接成一个常来那个,这时String性能比buffer和builder更好

String str=“aaa” 与 String str=new String(“aaa”)一样吗?

不一样

  • String str=“aaa”:创建了一个常量,分配到了常量池中
  • String str=new String(“aaa”):创建了2个对象,一个在常量池中,一个在堆内存中

String str=“aa” ,String s=“bb” ,String aa=aa+s;一共创建了几个对象?

2个引用3个对象
aa和bb都是常量,执行拼接的时候创建了一个新的常量aabb

String s = “Hello”;s = s + " world!";这两行代码执行后,原始的 String 对象中的内容到底变了没有?

没有
1个引用2个常量,原来的hello还在,指针已经指向了新的常量hello world地址

泛型

什么是泛型

jdk5的新特性,定义类和接口的时候使用类型参数,主要运用在集合上

泛型中的K、T、V、E、object等的含义

  • E:Element在集合中使用
  • T:type Java类
  • K:Key建
  • V:value值
  • N:Number数值类型
  • ?:不确定类型,无限制通配符
  • object:所有类的根类,使用的时候需要类型强制转换

标签:Java,String,最全,数据类型,equals,hashCode,JavaSE,重写,常量
From: https://blog.csdn.net/qq_41896953/article/details/142956809

相关文章

  • 全网最全最详细!一文带你了解国家信息安全水平考试(NISP)
    目录本文将不断更新,帮你用最少时间了解最新情况国家信息安全水平考试是什么NISP一级NISP二级为什么参加国家信息安全水平考试怎么参加国家信息安全水平考试NISP二级怎么置换CISP另外免费为大家准备了刷题小程序和docx文档,有需要的可以私信获取本文将不断更新,帮你用......
  • java计算机毕业设计IT培训机构教务管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展,IT培训机构在教育领域中的地位越来越重要。这些机构通常提供各种计算机相关的培训课程,旨在培养学生的实践能力和专业素养。......
  • java计算机毕业设计高校失物招领系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容高校失物招领系统的研究背景、意义和目的在当代高校生活中,失物招领是一个常见但又极其重要的问题。随着高校规模的不断扩大和学生人数的增多,校园内遗失物品的......
  • java计算机毕业设计患者监护系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着现代医学的发展,患者监护系统在医院中的应用越来越广泛。传统的患者监护主要依赖于医护人员的定期巡查和手动记录,这种方法不仅耗时耗力,而且容易因......
  • java计算机毕业设计工作流引擎在OA办公系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的发展,办公自动化(OA)系统已成为现代企业提升管理效率和决策支持能力的重要工具。工作流引擎作为OA系统的核心组件,负责流程的定义、执行和......
  • Java异常详解及处理机制(超详细附习题)
    文章目录异常写在开头:什么是异常?认识常见的异常和错误Java中如何表示异常的呢?处理异常机制异常处理之try-catch语法格式:举例:异常处理之finally块语法格式:举例:throws关键字throws的作用语法格式:拓展throws对重写方法的要求举例:throw关键字throws与throw的区别:自定义异......
  • java学习10.15
    今天学习了java图形化编程importjava.awt.*;importjava.awt.event.*;publicclassFramePractice{publicstaticvoidmain(String[]args){Frameframe=newFrame();//Frame是窗体,我们只需要创建这样一个对象就可以了,这样就会直接创建一个新的窗口......
  • JAVA输入输出,运算符
    1.输入输出packagecom.scanner;//1.导包importjava.util.Scanner;publicclassDemo1{publicstaticvoidmain(){print();}//需求:我是一个零基础小白,请帮我写一个程序,可以让用户键盘输入用户名和年龄,然后打印出来。publicstaticvoid......
  • 一. Java“速学通”之基础
    前言        Java急速学习课程是专为那些已经具备一定编程基础的同学设计的高效学习路径。这种学习方法摒弃了繁冗的理论堆砌,转而采用直接明了的代码示例与细致入微的注释来传授知识。每一个核心概念和技巧都通过精心挑选的实战代码片段来阐述,确保学习者能够通过观察......
  • Java中Log4j的配置与使用详细解析
    Log4jLog4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件。也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。这些可以通过一个配置文件来灵活地进行配置,而不需要修......