JAVA专业术语面试100问

时间:2022-09-08 08:14:10

前言:
面试技巧另外开篇再说,先上面试干货吧。
Redis、
消息队列、
SQL
不要走开,关注后更精彩!

1、面向对象的特点有哪些?

抽象、继承、封装、多态。

2、接口和抽象类有什么联系和区别?

3、重载和重写有什么区别?

4、java有哪些基本数据类型?

5、数组有没有length()方法?String有没有length()方法?

数组没有length()方法,它有length属性。

String有length()方法。

集合求长度用size()方法。

6、Java支持的数据类型有哪些?什么是自动拆装箱?

7、int 和 Integer 有什么区别?

8、Java类的实例化顺序?

父类静态成员和静态代码块 -> 子类静态成员和静态代码块 -> 父类非静态成员和非静态代码块 -> 父类构造方法 -> 子类非静态成员和非静态代码块 -> 子类构造方法

9、什么是值传递和引用传递?

10、String能被继承吗?为什么?

11、String和StringBuilder、StringBuffer的区别?

StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况(是线程不安全的)
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况(一般很少)(是线程安全的)
首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String
12、Java集合框架的基础接口有哪些?

13、Java集合框架是什么?说出一些集合框架的优点?

14、HashMap 与HashTable有什么区别?

15、ArrayList 和 LinkedList 有什么区别?

16、简单介绍Java异常框架?Error与Exception有什么区别?

17、java中的throw 和 throws关键字有什么区别?

18、列举几个你了解的几个常见的运行时异常?

19、final, finally, finalize有什么区别?

20、描述Java内存模型?

21、java中垃圾收集的方法有哪些?

22、如何判断一个对象是否存活?(或者GC对象的判定方法)?

23、Java GC是在什么时候,对什么东西,做了什么事情?

24、什么是类加载器双亲委派模型机制?

25、类加载器有哪些?

26、描述类加载器工作机制?

27、分别写出堆内存溢出与栈内存溢出的程序?

28、Java 8 内存模型进行了哪些改进?

29、简述java内存分配与回收策率以及Minor GC和Major GC?

30、JVM,JDK和JRE有什么区别与联系?

31、Java线程同步的方式有哪些?

32、解释一下锁的一些基本概念:可重入锁、可中断锁、公平锁、读写锁?

33、synchronized什么情况下会释放锁?

获取锁的线程执行完了该代码块,然后线程释放对锁的占有;
线程执行发生异常,此时JVM会让线程自动释放锁。
调用wait方法,在等待的时候立即释放锁,方便其他的线程使用锁.
34、synchronized和lock有什么区别?

35、使用过哪些数据库连接池,分别有什么优点和缺点?

36、Java CAS(Compare And Swap) 无锁算法?

CAS(Compare And Swap) 无锁算法: CAS是乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。

37、线程池的作用有哪些?

线程池的作用: 在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程

降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
提高线程的可管理性。
常用线程池:ExecutorService 是主要的实现类,其中常用的有

Executors.newSingleThreadPool(),
newFixedThreadPool(),
newCachedTheadPool(),
newScheduledThreadPool()。
38、反射创建类实例的三种方式?

39、反射机制有哪些优点和缺点?

40、哪些项目中用到了Java反射机制?

jdbc中有一行代码:Class.forName('com.MySQL.jdbc.Driver.class').newInstance();
很多框架都用到反射机制,hibernate,struts都是用反射机制实现的。
41、Java 反射机制的作用?

42、你了解哪些设计模式,列举几个?jdk中用到了哪些设计模式?

43、单例模式用java有哪几种实现方式?

44、Java元注解有哪些,都有什么作用?

45、jdk自带了哪些注解,有什么作用?

46、Java8有哪些新特性?

47、简单介绍原生jdbc执行sql过程?

class.forName()加载数据驱动
DriverManager.getConnection()获取数据库连接对象。
根据SQL或sql会话对象,有两种方式Statement、PreparedStatement。
执行sql处理结果集,如果有参数就设置参数。
关闭结果集,关闭会话,关闭资源。
48、char 型变量中能不能存贮一个中文汉字,为什么?

char类型可以存储一个中文汉字,因为Java中使用的编码是Unicode,一个char类型占2个字节(16比特),所以放一个中文是没问题的。

49、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

50、构造器(constructor)是否可被重写(override)?

“Constructor(构造器)不能被继承,所以不能被override(重写),但是可以被overloading(重载)。

51、什么是线程安全?

52、什么是死锁?

53、synchronized的实现原理是什么?

54、有了synchronized,还需要volatile做什么事?

55、synchronized的锁优化是怎么处理的?

(强烈推荐两本书《java并发编程的艺术》、《深入理解Java虚拟机》)

Synchronized和Volatile的区别:

1、Volatile 仅能使用在变量级别;
    Synchronized则可以使用在变量、方法、和同步代码块等类级别的。
    2、Volatile仅能实现变量的修改可见性和有序性,并不能保证原子性(复合操作的原子性);
    Synchronized则可以保证变量的可见性、有序性、原子性。
    3、Volatile不会造成线程的阻塞;
    Synchronized可能会造成线程的阻塞。
    4、Volatile标记的变量不会被编译器优化(因为这是由cpu指令完成);
    Synchronized标记的变量可以被编译器优化(JAVA1.6后性能优化很多)。

56、JMM是什么?

57、Java并发包都有哪些?

58、什么是fail-fast?

59、什么是fail-safe?

60、什么是CopyOnWrite?

61、什么是AQS呢?

62、什么是CAS呢?

63、乐观锁是怎样的?

64、乐观锁悲观锁区别是什么?

65、数据库如何实现悲观锁和乐观锁?

66、数据库锁和隔离级别有什么关系?

67、数据库锁和索引有什么关系?

68、什么是聚簇索引?

69、什么是非聚簇索引?

70、索引最左前缀是什么?

71、什么是B+树索引?(有点长,值得一看)

72、什么是联合索引?

73、什么是回表?

74、分布式锁有了解吗?

75、Redis怎么实现分布式锁?

76、为什么要用Redis?

因为传统的关系型数据库如Mysql已经不能适用所有的场景了,比如秒杀的库存扣减,APP首页的访问流量高峰等等,都对数据库提出了更高的要求,所以引入了缓存中间件,目前市面上比较常用的缓存中间件有Redis 和 Memcached 不过中和考虑了他们的优缺点,最后选择了Redis。

77、Redis和memcache区别是什么?

78、Zookeeper怎么实现分布式锁?

79、什么是Zookeeper?(漫画版)

80、什么是CAP?

81、什么是BASE?和CAP什么区别?

82、CAP怎么推导?如何取舍?

83、分布式系统怎么保证数据一致性?

84、什么是分布式事务?分布式事务方案?

85、线程安全的单例?

86、不用synchronized和lock能实现线程安全的单例吗?

87、什么是Paxos算法?

88、ArrayList和LinkedList和Vector的区别·

89、谈一下计模式遵循的面向对象设计原则!

90、Arrays.asList获得的List使用时需要注意什么

91、List和原始类型List之间的区别?

在编译时编译器不会对原始类型进行类型安全检查,却会对带参数的类型进行检查。

92、List<?>和List<T>之间的区别是什么?

93、synchronized是如何实现的?

94、BIO、NIO和AIO的区别、三种IO的用法与原理

95、ConcurrentSkipListMap

96、String.valueOf和Integer.toString的区别

97、Integer的缓存机制

98、Set如何保证元素不重复?

99、Java中如何保证线程安全?

100、你使用过JVM相关的参数,列举几个

JAVA专业术语面试100问的更多相关文章

  1. JAVA程序员面试30问(附带答案)

    第一,谈谈final, finally, finalize的区别. 最常被问到.final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能 ...

  2. Java专业技能面试问题(不定时更新)

    刚看到园友五月的仓颉<面试感悟----一名3年工作经验的程序员应该具备的技能>感觉很不错,不论是为面试跳槽准备,还是打算深化精进自己的技术都可以参考一下.面向工资编程多少也有点道理,虽然技 ...

  3. MySQL 三万字精华总结 &plus; 面试100 问,吊打面试官绰绰有余(收藏系列)

    写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了. 个人建议把面试题看作是费曼学习法中的回顾.简化的环节,准 ...

  4. java专业术语

    java的(PO,VO,TO,BO,DAO,POJO)解释 PO(persistant object) 持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了.通常对应数据模型 ...

  5. 阿里面试100&percnt;问到,JVM性能调优篇

    JVM 调优概述 性能定义 吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标. 延迟 - 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收集 ...

  6. Android 面试100问- 0序0

    准备找android方面的工作,现收集面试题,打算收集100个并记录

  7. Java知识,面试总会问到虚拟机,虚拟机类加载机制你懂吗&quest;

    虚拟机把描述类的数据从Class文件文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 与那些在编译时需要进行连接工作的语言不同 ...

  8. mysql 面试100 问&lpar;精华学习&rpar;。待开始理

    https://juejin.im/post/6850037271233331208 https://juejin.im/entry/6844903681091977229

  9. 2018年4月份,阿里最新的java程序员面试题目,仅供参考。

    目录 技术一面(23问) 技术二面(3大块) 性能优化(21点) 项目实战(34块) JAVA方向技术考察点(15点) JAVA开发技术面试中可能问到的问题(17问) 阿里技术面试1 1.Java I ...

随机推荐

  1. InnoDB Plugin文件格式&lpar;概述&rpar;

    本文将介绍InnoDB Plugin数据表格式的基本概念. 1. 配置参数innodb_file_format 这是一个很容易混淆的概念.目前,在InnoDB Plugin(1.0.6)配置文件中in ...

  2. code&colon;&colon;blocks 初使用遇到的问题记录

    /* 做本程序遇到的问题:由于使用的是CODE::BLOCKS 开发环境,刚开始使用code::blocks是,什么都 没有设置,居然输入的中文字符串,保存项目后,再次打开,code::blocks不 ...

  3. ios 自定义NSError

    from:[object-c错误处理]http://www.androiddev.net/objective-c%E5%AD%A6%E4%B9%A0%E4%B9%8B%E9%94%99%E8%AF%A ...

  4. 计蒜客NOIP模拟赛D2T2 直线的交点

    伦伦刚刚在高中学习了解析几何,学会了计算两条直线的交点.这天,老师给她布置了一道作业.在平面上有 nnn 条直线,他们之间有若干交点.给定一对平板(两条平行的直线),问这有多少对直线,他们的交点在这一 ...

  5. 管道模式——pipeline与valve

    在一个比较复杂的大型系统中,假如存在某个对象或数据流需要被进行繁杂的逻辑处理的话,我们可以选择在一个大的组件中进行这些繁杂的逻辑处理,这种方式确实达到了目的,但却是简单粗暴的.或许在某些情况这种简单粗 ...

  6. Servlet(五):请求转发和重定向

    请求转发: 问题: 服务器在接收到浏览器的请求后,仅仅使用一个 Servlet进行请求处理,会造成不同的Servlet逻辑代码 冗余,Servlet的职责不明确. 解决: 使用请求转发. 特点: 一次 ...

  7. resful规范

    1.简介 什么是resful resful是一个规范,说白了就是面向资源编程,把网络中所有的东西,想象成资源 2.规范 10条规范 1)API与用户的通信协议,总是用HTTPS协议:HTTPS比htt ...

  8. c&plus;&plus;之洛谷P1068分数线划定

    这是个排序题,做题过程中对sort的理解加深了不少,记下来避免忘记. 题目来源:https://www.luogu.org/problemnew/show/P1068 题目描述 世博会志愿者的选拔工作 ...

  9. 容器list使用之erase&lpar;其他容器也通用&rpar;

    今天无论如何要写点东西,算是搞清楚了一点东西吧.有点小小的成就感. 之前在程序里面使用了list容器,其中用到了erase()函数,之前一直没出现问题,这两天突然莫名奇妙.花了点时间,搞清楚了eras ...

  10. FastReport&period;Net使用:&lbrack;29&rsqb;调用存储过程1

    1.创建存储过程sp_querycourse,用于查询学生成绩. 2.在FastReport.Net报表设计器中,通过 数据-->添加数据源 来打开数据向导. 选择数据源,添加数据连接. 3.在 ...