java基础4.20

1.是否可以从一个static方法内部发出对非static方法的调用?
不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。
2.Integer与int的区别?
1、int是基本数据类型,Integer是包装类;
2、int的默认值是0,Interger的默认值是null;

3.Overload和Override的区别。参数列表相同,返回值不同的方法,是否是重载方法?
Overload是重载的意思,Override是覆盖的意思,也就是重写。
重载是指在一个类里,方法名相同,参数不同;
重写是指子类继承父类,子类里重新编写了父类中的同名(同参数)方法,也就是覆盖了父类的方法;

不是!因为重载必须要求参数列表不同!
4.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)?

接口可以继承多个接口。抽象类可以实现(implements)接口,抽象类是可继承具体类。
5.面向对象有哪三大特性?
1、面向对象有三大特性,分别是:封装、继承和多态。
2、封装:面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个类中,有些属性是不希望公开的,或者说被其他对象访问的,所以我们使用private修饰该属性,使其隐藏起来;类中提供了方法(用public修饰),常用的是get、set方法,可以操作这些被隐藏的属性,其他类可以通过调用这些方法,改变隐藏属性的值!

封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的”高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。
3、继承:在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,使用extends关键字实现继承;子类中可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。
4、多态:多态就是在声明时使用父类,在实现或调用时使用具体的子类;即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性,多态增强了软件的灵活性和扩展性。这里可以举个例子,比如声明时使用的是动物类,调用时传递的是一个猫类(动物类的子类)的对象,具体执行父类里动物——吃的方法时,实际执行的是猫——吃的方法。
6.abstract class和interface有什么区别?

1、抽象类里面可以用普通方法,而接口中的方法全部都是抽象的;
2、在应用范围上来说,接口往往在程序设计的时候,用来定义程序模块的功能,方便各模块协同工作;抽象类是对相似类进行抽象,形成一个抽象的父类可供重用!
7.如何理解Java中的Serialization和Deserialization。
串行化(serialization)是指将一个对象的当前状态转换成字节流(a stream of bytes)的过程,
而反串行化(deserialization)则指串行化过程的逆过程,将字节流转换成一个对象,打回原形
8.String是最基本的数据类型吗?

1、String是个类,不是基本数据类型;
2、基本数据类型包括byte、int、char、long、float、double、boolean和short。
9.如何实现字符串的反转及替换。
1.通过jdk自带reverse的方法
public class InvertString {
public static void main(String[] args) {
String a=”abcde”;
StringBuilder b = new StringBuilder(a);
System.out.print(b.reverse().toString());
}
}
注:String类本身没有反转类,需要包装成Stringbuiler或者是StringBuffer类。
2.通过自己写循环。
利用String.toCharArray()方法,将String转成一个char型数组,然后用数组遍历的方式从后向前遍历。

public String reverse(String s){
char ch[] = s.toCharArray();
int start = 0, end = ch.length-1;
char temp;
while(start

    String s2="Hello";

    String s3=new String("Hello");

    System.out.println("s1和s2 引用地址是否相同:"+(s1 == s2));
    System.out.println("s1和s2 值是否相同:"+s1.equals(s2));

    System.out.println("s1和s3 引用地址是否相同:"+(s1 == s3));
    System.out.println("s1和s3 值是否相同:"+s1.equals(s3));
}

输出结果:
s1和s2 引用地址是否相同:true
s1和s2 值是否相同:true
s1和s3 引用地址是否相同:false
s1和s3 值是否相同:true

Original: https://www.cnblogs.com/eafkng/p/16176993.html
Author: 水水头不秃
Title: java基础4.20

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/570574/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring MVC 常见问题

    Spring MVC的主要组件有那些? spring mvc 在使用 DispatcherServlet 处理 web 请求的时候,会用到 spring 中的九大组件,以下是几个关…

    Java 2023年6月5日
    064
  • java算法-单向队列

    队列是一种:先进先出,后进后出的数据结构 单项队列: 从前面删除元素,从后面插入元素,跟现实中排队是一样的道理 这里我们用指针移动位置的方法。因为数组删除元素,如果我们要跟现实中排…

    Java 2023年5月29日
    084
  • 分布式事务篇

    点赞再看,养成习惯,微信搜索「 小大白日志」关注这个搬砖人。 文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。 分布式事务的四种处理措施 在分布式系统中实现分布式…

    Java 2023年6月8日
    083
  • Redis 哨兵机制

    概述 由一个或多个 Sentinel(哨兵)实例组成的 Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动…

    Java 2023年6月8日
    077
  • getSessionFactory().openSession()导致druid连接池中的连接都占用满但无法回收

    该问题产生的现象 页面刷新几次后,就卡住,线上就得需要重新部署(还好是测试环境,不是真正生产环境) 过程及原因 查看日志线程池满了 Caused by: org.springfra…

    Java 2023年6月7日
    078
  • 企业级微服务API网关Fizz-常用插件介绍

    前言 社区贡献的插件在 https://github.com/orgs/wehotel/repositories?type=all 下,一般以 fizz-plugin- 或 fiz…

    Java 2023年6月9日
    079
  • JPA新增entity时自动填充时间,例创建时间,修改时间

    背景:springboot项目,集成JPA,与数据库交互的entity,与用户交互的DTO 问题:添加酒店时,两个字段create_time,update_time,前端不传数据,…

    Java 2023年6月8日
    086
  • 【Java】类加载过程

    JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成JVM可以直接使用的Java类型的过程。 类加载的过程主要分为三个部分: 加载 链接 初始化 而链接又可以…

    Java 2023年5月29日
    073
  • docker部署安装Nginx

    docker部署安装Nginx 前言 Nginx是一个高性能的HTTP和反向代理web服务器,同事也提供了IMAP/POP3/SMTP服务。特点: 轻量级的Web服务器/反向代理服…

    Java 2023年6月15日
    068
  • SpringBoot 前后端分离 实现验证码操作

    验证码的功能是防止非法用户恶意去访问登录接口而设置的一个功能,今天我们就来看看在前后端分离的项目中,SpringBoot 是如何提供服务的。 本文基于的 Spring Boot 的…

    Java 2023年6月8日
    069
  • 【力扣】1442. 形成两个异或相等数组的三元组数目

    给你一个整数数组 arr 。 现需要从数组中取三个下标 i、j 和 k ,其中 (0 Original: https://www.cnblogs.com/fengtingxin/p…

    Java 2023年6月8日
    0193
  • Java实现AES加密

    生成秘钥简单粗暴 这边AES秘钥默认为128位,获得无政策权限后可为192或256,因此对应字符为16位,直接生成16位的秘钥 import java.io.Unsupported…

    Java 2023年6月5日
    0111
  • 利用 XXL-JOB 实现灵活控制的分片处理

    本文讲述了一种利用 XXL-JOB 来进行分片任务处理的方法,另外加入对执行节点数的灵活控制。 场景 现在一张数据表里有大量数据需要某个服务端应用来处理,要求: 能够并行处理; 能…

    Java 2023年6月5日
    084
  • 使用spire.doc导出支持编辑Latex公式的标准格式word

    背景 之前有的教辅标注需求,在导出题库的时候希望顺便导出可以查看word,方便线下预览成品效果,因为只是用来预览并且为了沿用前端的样式,当时方案就是直接生成html,写个word的…

    Java 2023年6月7日
    067
  • Netty

    学习本章需要先知道IO多路复用,不清楚的请移步:IO多路复用 网络通信中,阻塞IO两大阻塞的地方:socket链接阻塞,等待读取文件阻塞。 本地文件io就只有一个等待文件阻塞 一….

    Java 2023年6月7日
    0100
  • SpringCloud中使用Nacos作为配置中心原理

    使用了是Nacos的自动配置依赖 com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.2.5.RELEASE…

    Java 2023年5月30日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球