java基础刷题遇到的最常见问题

可以先看一下这位博主整理的java面试题(很详细,我看了好几遍了):https://blog.csdn.net/ThinkWon/article/details/104390612

java基础知识https://blog.csdn.net/weixin_43304253/article/details/119386696

你以为你掌握基础吗?真的掌握了吗?真真真的掌握了吗?做几道题就知道有多虐心了,一个知识点变着发的搞你心态。还有很很很重要的一点,只要牵涉的知识稍微深一点,都离不开JVM知识。

建议先看一下jvm的视屏再看,整理的时候主要是内存结构图以及重要的知识。很多细节忽略了。对待刚接触jvm的不太友好。
JVM内存图:https://blog.csdn.net/weixin_43304253/article/details/119609324

1、
解析:

Java标识符命名规则:
1 由26个大小写的英文字母"A-Z",“a-z”;数字"0-9",下划线"_" 和
美元符号"$"四部分组成;

2 标识符以字母或下划线"_“或”

"

;

"

"开头; 注:尽管"

"开头;注:尽管""是一个合法的Java字符,但尽量不要在代码中使用这个字符,
它一般用在Java编译器或其他工具生成的名字中;

3 标识符不能是关键字,如:public,protected,…
以及两个保留的 关键字const和goto;

4 标识符区分大小写。
A 中不能以数字开头;
B 中不能以& 开头(不是$);
C 中是保留的关键字;

sizeof:是C/C++的方法
保留字:const goto
显示常量值:true 、false、null
关键字:

2、

抽象类:
1、关键字abstract class
2、子类extends继承抽象类,只能单继承
3、成员变量权限四个public 、protected、default、private
【public 范围最大、protected 可以在包以外的子类、default默认修饰符只能在同一个包下、private只能在当前类。(经常问这个)】
4、抽象方法权限只有public、protected、和default三种。
5、可以包含静态代码块,静态方法
6、可以有普通方法
7、继承者如果是全部继承抽象方法就不再是抽象类,否则任然是抽象类

接口
1、关键字interface
2、子类implements实现接口,实现多个接口
3、不能有构造器
4、成员变量权限默认都是public static final ,接口中声明的变量都是常量不能被继承
5、方法默认权限public abstract
6、不可以有静态代码块,可以有静态方法
7、没有普通方法
8、下一代只能实现

接口方法的增加随着版本的更新改变
jdk1.7,接口中只包含抽象方法,使用public abstract修饰
jdk1.8(不包括)之前:接口中不能有静态方法
jdk1.8(包括哦)1.8之后:接口中可以定义静态方法。
在jdk1.8,接口中加入了默认方法(default修饰,接口的实现类,直接调用或者重写该方法)、静态方法(static修饰,通过接口调用)
在jdk1.9中,接口中加入了私有方法,使用private修饰,私有方法供接口内的默认方法使用

3、
解析:
1、String中的equal比较的是两个字符串的内容是否相等。(这里的equals重写了Object中的equals)
2、Object中的equals和==相等。比较的都是引用地址

String a=“a”;//存储在方法区中的常量池
String b=“a”;//常量池中a的引用给b

只要是new 就会在堆中开辟新的内存空间

4、
解析:
运行过程:当程序执行到try{}语句中的return方法,将返回的结果存储到一个临时栈,程序不会立即返回,而是执行finally{}中的程序,覆盖了a的值,不会去更新临时栈中的那个要返回的值。

如果finally{}里边也有一个return 执行这个return的时候,就会更新临时栈的值。

结论:
1、不管有没有异常,finally块里边的代码都会执行(也有不执行的时候,不要钻牛角尖)
2、当try{}和catch{}中都有return时,仍然会执行finally{}
3、finally{}中包含return,会让程序提前退出,返回值不再是try{}或catch{}中保存的值

巧记:任何执行try或者return语句之前,都会执行finally语句,如果finally存在,如果finally语句包含return语句。程序就return了。finally中的return一定会被return

5、
详细区分(包含代码):https://blog.csdn.net/weixin_43304253/article/details/119418766

6、
解析:
首先明白一点:
类方法是属于整个类的,不是每个实例所独有的。用static修饰
实例方法是属于类的某个对象的。

类方法在初始化阶段就已经加载到方法区中。对象后来在堆中创建。一个已经存在的怎么可能使用未创建出来的。

  • 类方法中不能引用对象变量

  • 类方法中不能调用类的对象方法

  • 类方法中不能使用super、this关键字

  • 类方法不能被覆盖

  • 对象方法可以引用对象变量,也可以引用类变量

  • 对象方法中可以调用类方法

  • 对象方法中可以使用super、this关键字。

this关键字的用法

  • 1、普通的直接引用,相当于当前对象本身
  • 2、形参与成员名字相同,区分
  • 3、引用本类的构造函数(需要放在构造函数的第一行)

super关键字的用法

  • 1、普通的直接引用(引用父类)(相当于指向当前对象的父类的引用)
  • 2、子类中的成员变量或者方法与父类的成员变量或者方法重名时,区分
  • 3、 引用父类的构造函数(放在子类构造函数的第一行)

如果子类重写父类的方法,在new出一个父类对象的子类引用。调用的方法是子类重写的方法,若要调用父类的重名方法需要使用super。

7、
解析:
首先是类初始化、然后是对象初始化
跟我一起来读=======
父类静态代码块—>子类静态代码块–>父类非静态代码块–>父类构造函数–>子类非静态代码块–>子类的构造方法

8、
static方法中时不能访问非静态变量a的,需要将a声明为static,答案才是0.

静态方法在初始化阶段就已经初始化,怎么可能调用未初始的变量。

9、
数据类型:1、基本数据类型(数值型(整数型、浮点型)、字符型、布尔型)。2、引用数据类型(类、接口、数组、String)

10、
重写(覆盖)

两同两小一大
两同:方法名和参数列表相同
两小:重写方法的返回值和抛出的异常小
一大:重写方法的访问修饰符大于等于被重写的访问修饰符。

  • 1、方法运行的时候(子类没有重写父类的方法,子类的实例会向上寻找父类的同名方法)

  • 2、重写只发生在可见的实例方法中【1、静态方法不存在重写,形式上的重写只能是隐藏。2、私有方法也不能重写,子类就算定义了,也相当于一个新的方法。3、静态方法和实例方法不存在相互重写】

  • 修饰符:可以扩大不能缩小。父类是public 子类不能是private

  • 抛出的异常可以缩小。父类的异常范围比子类的异常范围大

重载【方法名相同、参数列表不同】

  • 方法名相同
  • 参数列表不同(个数不同或类型不同、参数排列顺序)
  • 方法的返回值类型可相同也可以不同

11、
解析:
String对象的两种创建方式:

  • 1、String str1=“aaa”;在常量池中获取对象,编译时期会在常量池中创建一个字符串对象
  • 2、String srr2=new String(“aaa”);一共会创建两个字符串对象,一个在堆中,一个在常量池中(前提是常量池还没有"aaa"字符串对象)

String类型的常量池比较特殊

直接使用双引号声明出来的String对象会直接存储在常量池中。
如果不是双引号声明的String对象,可以使用String提供的intern方法,String.intern()是一个Native方法,作用:如果运行时常量池中已经包含一个等于次String内容的字符串,则返回常量池中该字符的引用;如果没有,则在常量池中创建与此String内容相同的字符串,并返回常量池中创建的字符串的引用

12、

JVM中的方法区:https://blog.csdn.net/weixin_43304253/article/details/119645888

13、

  • synchronized:具有原子性,有序性、可见性
  • volatile:具有有序性和可见性

    14、
    解析:
    java语言是静态多分配,动态单分配的

如果是方法重载选择,使用静态类型
如果是父子之间的方法重写,使用动态类型。
入 A a=new B(); 类型B去查找重写的方法。类型A去查找重载的方法。

刷完一千道java笔试题的常见题目分析的更多相关文章

  1. java面试题—精选30道Java笔试题解答(二)

    摘要: java面试题-精选30道Java笔试题解答(二) 19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System ...

  2. 【笔试题】精选30道Java笔试题解答

    转自于:精选30道Java笔试题解答 精选30道Java笔试题解答 1. 下面哪些是Thread类的方法() A. start() B. run() C. exit() D. getPriority( ...

  3. 精选30道Java笔试题附答案分析

    精选30道Java笔试题解答 都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑 ...

  4. 整理了2019年上千道Java面试题,近500页文档,用了1个月时间!

    spring 面试题 1.一般问题 1.1.不同版本的 spring Framework 有哪些主要功能? 1.2.什么是 spring Framework? 1.3.列举 spring Framew ...

  5. 精选30道Java笔试题解答

    转自:http://www.cnblogs.com/lanxuezaipiao/p/3371224.html 都 是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我 ...

  6. java面试题—精选30道Java笔试题解答(一)

    下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~ 1. 下面哪些是Thread类的方法() A start() B run() C exit() D getP ...

  7. java笔试题13-11-21

    中xxx科技公司java笔试题 今天去参加一个公司的面试,去先做了一份笔试题,妈的,太他妈难了(对于我来说,最后做完一个员工说你是不是投错简历了,都是空白,我说我做的大部分都对了..最后面试都没有,就 ...

  8. 2016最新Java笔试题集锦

    更新时间:2015-08-13         来源:网络         投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...

  9. 华为Java笔试题

    华为Java笔试题+数据库题 一. 单项选择题 1.Java是从( )语言改进重新设计. A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确( ) A. Java程序经 ...

随机推荐

  1. Spring源码 13 IOC refresh方法8

    本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法. 其中一共有 13 个主要方法,这里分析第 8 ...

  2. error setting certificate verify locations

    描述 在使用 git clone 克隆 GitHub 或者 Gitee 上的项目时,报如下错误: error setting certificate verify locations: CAfile: ...

  3. 刷题记录:Codeforces Round #725 (Div. 3)

    Codeforces Round #725 (Div. 3) 20210704.网址:https://codeforces.com/contest/1538. 感觉这个比上一个要难. A 有一个n个数 ...

  4. MQ系列5:RocketMQ消息的发送模式

    MQ系列1:消息中间件执行原理 MQ系列2:消息中间件的技术选型 MQ系列3:RocketMQ 架构分析 MQ系列4:NameServer 原理解析 在之前的篇章中,我们学习了RocketMQ的原理, ...

  5. WinUI(WASDK)项目实践——优雅的开发上位机应用(新)

    摘要 这就是一个记录自己进行WinUI项目实践的博客,项目开源地址如下,觉得有帮助的可以去看看,因为项目都开源了,所以保姆级的讲解肯定不如直接看代码来的实在了. 电子脑壳项目地址 为什么叫新 因为之前 ...

  6. KingbaseES V8R6C6备份恢复案例之---单实例sys_baackup.sh备份

    案例说明: KingbaseES V8R6C6中sys_backup.sh在通用机单实例环境,默认需要通过securecmdd工具以及kingbase和root用户之间的ssh互信,执行备份初始化(i ...

  7. Elasticsearch7.6.2 RestHighLevelClient查询用法 must should(and or 关系)

    1. 引入jar <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId&g ...

  8. Jmeter中的JSON提取器用法

    一.使用前提 一般来说JSON提取器只适用于响应结果中返回的是json数据 二.需求 在下一个接口调用上一个接口的数据,如:请求1返回的结果,处理以后作为请求2的参数使用. 首先需要下载JSON Ex ...

  9. 邮箱的代理发送Send as权限不生效

     邮箱的代理发送Sendas权限不生效 最近,有需求为用户添加其它邮箱的代理发送Sendas权限.在Exchange的管理单元里添加完毕后,发现没有效果,客户端提示你没有权限以用户的名义发送邮件 ...

  10. 学习完nio的一个小笔记吧

    这是一个nio网络通信服务端的demo,主要就学习了selector的一些用法,以及它里面的事件类型 selector是对nio的一个优化,它能保证既能高效处理线程中的事件,又能保证线程不会一直占用c ...