首页 > 编程语言 >java基础面试

java基础面试

时间:2022-12-02 23:24:00浏览次数:37  
标签:java 字节 clone 基础 面试 static 修饰 方法

一、clone

一、浅拷贝clone()

如果对象中的所有数据域都是数值或者基本类型,使用clone()即可满足需求,如:

Person p = new Person();

Person p1 = p.clone();

这样p和p1分别指向不同的对象。

深拷贝有实现cloneable接口,重写object的clone接口,还有序列化实现真正的clone。

二、创建对象

1、使用new关键字;
2、使用Class类的newInstance方法,可调用无参的构造函数创建对象;
3、使用Constructor类的newInstance方法;
4、使用clone方法;
5、使用反序列化。

三、多态

接口的作用:制定标准、提供可扩展性,实现依赖倒置

 

 开闭原则、对修改关闭、对扩展开放

 

 接口与抽象类的区别

接口约定的是实现的方法和参数,强调规则的制定,抽象类同时提供一些默认的行为例如定义一些初始化、基础、以及类回收的方法,另外一个实现类可以实现多个接口,但只能继承一个抽象类。

四、内部类。

成员内部类、局部内部类、静态内部类、匿名内部类。

实际开放中pojo类会使用内部类,一些内,在业务中存在某种关系,使用内部类,更简洁、防止类爆炸。

五、static和final在java中的意义

final的意义:给方法上锁,防止任何继承类改变他本来的含义和实现。

若希望一个方法的行为在继承期间保持不变,而且不可被覆盖或改写,就可以采取这种做法。
提高程序执行的效率,将一个方法设成final后,编译器就可以把对那个方法的所有调用都置入嵌入调用里(内嵌机制)

static总结:

static修饰成员函数:该成员函数不能使用this对象调用。

static不能修饰构造函数

static不能修饰函数参数、形参和实参

static不能修饰局部成员变量

static修饰成员字段

当类被虚拟机加载是,首先按照先后顺序对static成员字段进行初始化。

static修饰语句块

当类被虚拟机加载时,按照声明顺序先后初始化static成员字段和static语句块

static所修饰的方法和字段是只属于类,所有对象共享。

在static所修饰的函数和语句块中不能使用非static成员字段。

在java不能直接定义全局变量,是通过static来实现的。

在java中没有const,不能直接定义常量,通过static final来实现。

六、基本数据类型

 

 double和long8字节、int和float4字节、char和short2字节、byte一字节、boolean一bit、一字节等于8bit。

非基本类型BigDecimal引用的对象占用的字节数是可变的,具体大小依赖于你输入的数据量,要求的精度和选择的舍入方法。如果你问的是类型为BigDecimal的引用变量占用的字节数,那只有一个指针变量的大小,目前为4。

七、构造器不可以被重写,因为构造器不能被继承,因为构造器与类同名,继承构造器没有意义,而且父类构造器是会被自动调用的。

八、

 

标签:java,字节,clone,基础,面试,static,修饰,方法
From: https://www.cnblogs.com/gushiye/p/16945799.html

相关文章

  • 第一节 麒麟系统安装+基础环境搭建(JDK+Scala)
    本文重点对没有Linux基础的人员提供快速上手的指导,如果你的开发环境已经搭建好,可以略过本章所讲内容,也谢谢这些默默讲自己经验分享的人!最近在学习大数据,有喜欢的朋友可以一......
  • C# AES CFB加解密模式兼容JAVA
    C#AESCFB加解密模式兼容JAVA代码片段最近在和java做对接的时候老是遇到加密使用java写的,需要我们使用C#来解密相关数据,AES加解密平常也在用,但是这种跨语言的应用还是比较......
  • DDD学习笔记----基础知识
    领域(Domain):一个组织做的事情。按照在项目中的重要程度划分为三个子领域:核心域:处理项目中最核心的事情,跟组织业务联系紧密。支撑域:处理项目中非核心的事情,有组织特性,不具......
  • Android studio的基本使用--基础篇
    一、新建项目其实跟IDEA新建项目的流程基本一致,File->New->Newproject,这样就能够新建出来一个项目啦!一般情况下,我们都会选择EmptyActivity,之后我们会涉及到设置项目名......
  • 【Java并发入门】03 互斥锁(上):解决原子性问题
    原子性问题的源头是线程切换Q:如果禁用CPU线程切换是不是就解决这个问题了?A:单核CPU可行,但到了多核CPU的时候,有可能是不同的核在处理同一个变量,即便不切换线程,也有问......
  • 3.2动态分析基础实验(2)--《恶意代码分析实战》
    实验三Lab03-03.exe1.当使用ProcessExplorer工具进行监视的时候,注意到了什么?2.可以找出内存修改的行为吗?3.这个恶意代码在主机上的感染迹象特征是什么?4.这个恶意代码......
  • jenkins javax.mail.AuthenticationFailedException: 535 authentication failed
     邮箱服务器端口是587解决方案:启动脚本增加-Dmail.smtp.starttls.enable=true-Dmail.smtp.ssl.trust=esmtp.*.com  ......
  • java三大特性
    什么是面向对象面向对象变成的本质就是:以类的方式组织代码、以对象的组织封装数据抽象三大特性:封装、继承、多态从认识论角度考虑是现有对象后有类。对象,是具体的事物......
  • 【序列化】Java中将使用PHP序列化工具将数据序列化
    在项目中需要和PHP公用一个MySQL数据库,有些数据需要序列化之后保存,这就需要将待存储的数据序列化之后存到数据库中,取出的时候,需要反序列化之后才能正常使用。原数据:{"06008......
  • 【Java编程思想】读书笔记(二)第十一章---第十五章
    目录:​​第十一章持有对象​​​​11.1泛型和类型安全的容器​​​​11.2基本概念​​​​11.3添加一组元素(Arrays.asList(),Collections.addAll(),Arrays.addAll())​......