一、Java基础

1. 实例方法和静态方法有什么不一样?

1、在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

2、静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

2. Java中的异常有哪几类?分别怎么使用?

编译时异常,运行时异常。编译时异常需要try...catch才能编译通过。运行时异常不用try...catch也能编译通过。

RuntimeException是非检出异常,不需要try...catch也能编译通过。

IoException,SQLException等等其他所有异常都是检出异常,必须要try...catach才能编译通过。

3. 常用的集合类有哪些?比如List如何排序?

分两种,一种实现Set接口,一种是实现List接口的。

Set:TreeSet,HashSet.

List:ArrayList,LinkedList,Vector(线程安全)。

JDK7以前用collections.sort(list,Comparator).

JDK8直接用List.sort(Comparator).

4. ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和各自适应的场景是什么?

ArrayList,是数组结构:查询快,增删慢

LinkedList,是链表结构:查询慢,增删快

6. ClassLoader有什么用?

类加载器:所有类都需要Classloader来加载。

7. ==和equals的区别?

==判断对象物理地址。

equals判断对象Value是否相等。

8. hashCode方法的作用?

在hashMap中使用,把一个对象变成一个整型。hashCode规范,如果两个对象的equals返回true,那他们的hashCode必须相等,但是hashCode相等,不一定equals不一定相等。

9. Object类中有哪些方法?列举3个以上。

构造方法,toString(),equals,hashCode,getClass,finalize,clone,三个wait(),notify,notifyAll.

10. NIO是什么?适用于何种场景?

  NIO是newIO,接口都是异步的,非阻塞的。

16. Java中一个字符占多少个字节,扩展再问int, long, double占多少字节

一个字符两个字节,int 4 , long double 8

17. 创建一个类的实例都有哪些办法?

new ,反射。

19. LinkingBlockingQueue与ArrayBlockingQueue的区别,他们的适用场景?

LinkingBlockQueue 链表实现的阻塞队列,适合一个一个放,一个一个取。

ArrayBlocakingQueue数组实现的阻塞队列,适合三个放,多个放,只适合多个取,不适合单个取。

20. Session/Cookie的区别?

Session存在服务器端。

Cookie存在客户端(浏览器上)。

21. String/StringBuffer/StringBuilder的区别,扩展再问他们的实现?

String 值不可变

StringBuffer 值可变,线程安全

StringBuilder 值可变,线程不安全

二、JVM

1、JVM的基本结构

堆 栈 方法区

几乎所有的对象都存放在堆上,并且java堆是完全自动化管理的,通过垃圾回收机制;

每次函数调用的数据都是通过java栈传递的。

2、JVM有哪些常用启动参数可以调整?

-Xms:设置jvm内存的初始大小
-Xmx:设置jvm内存的最大值

我们会遇到内存溢出,java.lang.OutOfMemoryError 就是需要配置jvm

3、如何查看JVM的内存使用情况?

有一些工具 JMap JMap是JDK中自带的一个用于分析JVM内存状况的工具,

也可以通过代码去查看

Runtime run = Runtime.getRuntime(); long max = run.maxMemory()/(1024*1024); long total = run.totalMemory()/(1024*1024); long free = run.freeMemory()/(1024*1024); long usable = max - total + free; System.out.println("最大内存 = " + max);
System.out.println("已分配内存 = " + total);
System.out.println("已分配内存中的剩余空间 = " + free);
System.out.println("最大可用内存 = " + usable); 

https://www.cnblogs.com/tietazhan/articles/5771886.html

https://blog.csdn.net/yy251066394/article/details/78469270

转载于:https://www.cnblogs.com/lyon91/p/9040760.html

java中级面试题 之基础篇相关推荐

  1. java在集合中的方法变动的类_java中级面试题 之基础篇

    一.Java基础 1. 实例方法和静态方法有什么不一样? 1.在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方 ...

  2. 2022年最新Java工程师面试题从基础到中级到高级

    2022年最新Java工程师面试题从基础到中级到高级 一.基础 Java面向对象有哪些特征,如何应用 面向对象编程是利用类和对象编程的一种思想.万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间 ...

  3. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  4. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇] 阿里巴巴 2016 阿里巴巴2016研发工程师笔试题(四) 阿里巴巴2016研发工程师笔试题(三) 阿里巴巴2016研发工程师笔试题(二) 2015 阿里巴巴201 ...

  5. java并发面试题(一)基础

    转载:http://ifeve.com/javaconcurrency-interview-questions-base/java并发面试题(一)基础 本文整理了常见的Java并发面试题,希望对大家面 ...

  6. java玩转区块链-基础篇-账户

    java玩转区块链-基础篇--账户 java环境配置 基础概念 账户 maven包引用 创建账户代码 代码解释 (1) (2) (3) (4) 可以不让搞,但是不允许你不会 java环境配置 jdk版 ...

  7. java从小白到工程师--基础篇(二)

    本期作业:将你的姓氏的Unicode码用程序显示出来. 上一章节中我们配置了环境变量,编写了第一个java程序"hello,world"(java从小白到工程师--基础篇(一) ) ...

  8. java 中级面试题及答案

    java 中级面试题及答案 1.MyBatis中,根据Id查询单个Order对象,动态SQL如何编写? A. SELECT * FROM Order WHERE ID = #{id}; B. SELE ...

  9. 名师讲坛——Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)

    [书名]<名师讲坛--Java Web开发实战经典基础篇(JSP.Servlet.Struts.Ajax)> [作者]李兴华.王月清 [ISBN]9787302231585 ­}:YKf: ...

  10. 名师讲坛—Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)

    名师讲坛-Java Web开发实战经典基础篇(JSP.Servlet.Struts.Ajax) 基本信息 作者: 李兴华    王月清   出版社:清华大学出版社 ISBN:9787302231585 ...

最新文章

  1. Html标签带来的安全隐患
  2. java web 嵌套播放器_请教一下tableau如何嵌套进自己开发的javaweb 项目中,谢谢了...
  3. nstimer循环引用_ios开发中经典循环引用场景?
  4. Mysql5.5 慢查询 trace的配置(转,针对5.5)
  5. 差分进化算法python_差分进化算法Python实现
  6. python爬虫︱百度百科的requests请求、百度URL格式、网页保存、爬虫模块
  7. Hls之http协议实现
  8. 修改数据库的排序规则
  9. android使用Itext库生成PDF文件
  10. 实验四 木马的远程控制和清除
  11. 「津津乐道播客」#288 编码人声:只拿副业来赚钱,你可能亏大了
  12. 豆瓣app签名sig
  13. phpdesigner 的配置
  14. pandas算加权平均值_python – 为pandas中的不规则时间序列创建加权平均值
  15. DM数据库安装过程--基于NeoKylin操作系统详解
  16. Ubuntu16.04下,遇到Unmet dependencies. Try 'apt-get -f install' with no packages的解决办法
  17. “世上最先进的机器人”在英国亮相,神态丰富堪比“表情包”,能走路就完美了!...
  18. 暴力破解练习(一)信用卡号的验证
  19. jmeter模拟需验签的请求时注意参数中含有特殊字符要特别处理
  20. (7)web安全|渗透测试|网络安全 如何判断是否有CDN存在,并绕过CDN找到真正的ip的方法

热门文章

  1. 动软.Net代码自动生成器下载
  2. Spring在Web中的应用
  3. Nginx源码分析 - Event事件篇 - Event模块和配置的初始化(16)
  4. python打开chrome浏览器登录用户名密码_[工具]Python获取Chrome浏览器已保存的所有账号密码...
  5. 如果查看oracle_home是否共享_现在还有小伙伴用XP系统吗?经常会共享打印问题...
  6. 6.7开启Consul使用
  7. 【渝粤教育】电大中专电商运营实操 (7)作业 题库
  8. matlab循环取出矩阵的某一行并标示上A1 A2 A3
  9. Pandas系列(十四)数据转换函数map、apply、applymap以及分组apply
  10. 迁移学习和数据扩充(附代码)