Java设计模式笔试题(10~13题)

常见设计模式笔试面试 设计模式一套被反复使用,多数人知晓的代码设计经验的总结,实现可重用代码,使代码更容易被理解,保证代码可靠性。 总体来说,设计模式分为三大类: 创建型模式(五种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 结构型模式(七种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式 行为型模式(十一种):策策略模式、模板方法模式、观察者模式、迭代子模式、责任... 阅读详情

10、谈谈 JVM 的内存结构和内存分配

● Java内存模型:Java虚拟机将其管辖的内存大致分三个逻辑部分:方法区(Method Area)、Java栈和Java堆。

● 方法区是静态分配的,编译器将变量绑定在某个存储位置上,而且这些绑定不会在运行时改变。常数池,源代码中的命名常量、String常量和static变量保存在方法区。

● Java Stack是一个逻辑概念,特点是后进先出。一个栈的空间可能是连续的,也可能是不连续的。最典型的Stack应用是方法的调用,Java虚拟机每调用一次方法就创建一个方法帧(frame),退出该方法则对应的 方法帧被弹出(pop)。栈中存储的数据也是运行时确定的。

● Java堆分配(heap allocation)意味着以随意的顺序,在运行时进行存储空间分配和收回的内存管理模型。堆中存储的数据常常是大小、数量和生命期在编译时无法确定的。Java对象的内存总是在heap中分配。

● java内存分配

● 基础数据类型直接在栈空间分配;

● 方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收;

● 引用数据类型,需要用new来创建,既在栈空间分配一个地址空间,又在堆空间分配对象的类变量;

● 方法的引用参数,在栈空间分配一个地址空间,并指向堆空间的对象区,当方法调用完后从栈空间回收;

● 局部变量new出来时,在栈空间和堆空间中分配空间,当局部变量生命周期结束后,栈空间立刻被回收,堆空间区域等待GC回收;

● 方法调用时传入的实际参数,先在栈空间分配,在方法调用完成后从栈空间释放;

● 字符串常量在DATA区域分配,this在堆空间分配;

● 数组既在栈空间分配数组名称,又在堆空间分配数组实际的大小!

11、Java中引用类型都有哪些?(重要)
● Java中对象的引用分为四种级别,这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。

● 强引用(StrongReference)

如果一个对象被人拥有强引用,那么垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。Java的对象是位于heap中的,heap中对象有强可及对象、软可及对象、弱可及对象、虚可及对象和不可到达对象。应用的强弱顺序是强、软、弱、和虚。对于对象是属于哪种可及的对象,由他的最强的引用决定。如下代码:

String abc=new String(“abc”); //1
SoftReference softRef=new SoftReference(abc); //2
WeakReference weakRef = new WeakReference(abc); //3
abc=null; //4
softRef.clear();//5
第一行在heap堆中创建内容为“abc”的对象,并建立abc到该对象的强引用,该对象是强可及的。

第二行和第三行分别建立对heap中对象的软引用和弱引用,此时heap中的abc对象已经有3个引用,显然此时abc对象仍是强可及的。

第四行之后heap中对象不再是强可及的,变成软可及的。

第五行执行之后变成弱可及的。

● 软引用(SoftReference)

如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。软引用是主要用于内存敏感的高速缓存。在jvm报告内存不足之前会清除所有的软引用,这样以来gc就有可能收集软可及的对象,可能解决内存吃紧问题,避免内存溢出。什么时候会被收集取决于gc的算法和gc运行时可用内存的大小。当gc决定要收集软引用时执行以下过程,

以上面的softRef为例:

(1)首先将softRef

​大公司的Java笔试题汇总(含答案)​   1.下列哪一种叙述是正确的(D )  A. abstract修饰符可修饰字段、方法和类  B. 抽象方法的body部分必须用一对大括号{ }包住  C. 声明抽象方法,大括号可有可无  D. 声明抽象方法不可写出大括号   2.如下代码  public class Test {  public int aMethod() {  static int i = 0;  i++;  return i;  }  public static void main (String args[]) {  Test t 阅读详情

相关推荐

Java笔试题

1. 在Java中,负责对字节代码解释执行的是     A. 应用服务器 B. 虚拟机 C. 垃圾回收器 D. 编译器   2.一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈得输出序列的是( )    A. 5 4 1 3 2 B. 2 3 4 1 5 C. 1 5 4 3 2 D. 2 3 1 4 5 3. LDAP是什么?    A. 是一种开源产品 B...

江江同学的博客啊 1227

设计模式和框架笔试题

关于设计模式和框架的笔试面试,找了好久才找到 的,应届生绝对用的着

晋路Java笔试题

壹度创客Java笔试题**1.中文乱码问****1.1.JSP中输出中文乱码的问****1.2.获取表单提交的数据时的中文乱码****1.3.URL中的中文问****1.4.数据库访问时的乱码问****2.什么是MVC,MVC的优缺点,结合Struts,说明在一个Web应用中如何使用?****3.什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?****4.请问软件开发中的设计模式你会使用哪些?****5.请问类与对象有什么区别?****6.请问abstract class和int

123 247

Java架构师面试

个人搜集的Java架构师面试及答案,有需要的朋友可以下载

设计模式 考试+答案

一、选择 1.( A )模式的关键是将一个对象定义为原型,并为其提供复制自己的方法。 A.原型 B.创建者 C.工厂方法 D.迭代 2.下面的类图表示的是哪个设计模式?(B ) A装饰模式(Decorator) B策略模式(Strategy) C桥接模式(Bridge) D观察者模式(Observer) 转存失败重...

披风秃头侠的博客 3万+

设计模式(笔试+面试)

客户端使用抽象工厂来创建一系列相关的对象,而不需要知道这些对象的具体类。在实际的开发当中,传统的MVC三层架构需要控制层调用服务层,服务层调用dao层,dao层操作数据库,在对象调用过程中就需要手动的使用new关键字创建对象,此时类之间的依赖程度较高,耦合性就变高了。构建型(11种):策略模式,责任链模式,模板方法模式,观察者模式,迭代子模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式。行为型(7种):适配器模式,代理模式,装饰器模式,外观模式,桥接模式,组合模式,享元模式;

m0_64755704的博客 1199

设计模式笔试题

1、目1   一家音像制品店销售了各式各样的音像制品,包含如CD唱片、VCD影片、DVD影片和蓝光影片等。 由于目前处理销售淡季,音像制品店老板希望做一些促销活动,针对一些特定的产品推出一些优惠活动,活动内容如下: 1)任意客户一次性购买VCD碟片满200元,送一张蓝光影片一张; 2)任意客户一次性购买DVD D9碟片满8张,就打9折; 要求: 1)针对上述需求写一个简单的分...

conkeyn的专栏 618

博彦科技JAVA笔试题及答案

答:SELECT c.id, c.name, c.addr from customer as cLEFT JOIN sales as s on s.cust_id = c.idGROUP BY c.id HAVING sum(s.amt) > 600;5.SQL语句的聚合函数,比如sum(),count(),average()一般都配些哪个子句一起使用()。A.value属性 B.innerText属性 C.context属性 D.text属性。...

begefefsef的博客 726

JAVA面试、笔试题

@[TOC]目录 JAVA面试、笔试题 @目录 一、 CoreJava部分 7 1. java中有哪些基本类型? 7 2. java反射 7 3. 易错,理解 7 4. Java有几种创建对象的方法? 8 java为什么能够跨平台运行? 8 整型数据转换成字符串的方式? 8 String是基本数据类型吗?我可不可以写个类继承于String? 8 谈谈&和&&的区别? 8 Switch语句里面的条件可不可以是byte、long、String?使用时候还应注意什么? 8 short

weixin_45689111的博客 1万+

精选java笔试题_精选干货:Java精选笔试题附答案

1、在Java EE中,Servlet是在服务器端运行,以处理客户端请求而做出的响应的程序,下列选项中属于Servlet生命周期阶段的是( )A、加载和实例化B、初始化C、服务D、销毁E、以上全部答案:E2、在Java EE中的MVC设计模式中,( )负责接受客户端的请求数据A、JavaBeanB、JSPC、ServletD、HTML答案:C3、过滤器应实现的接口是( )。A、HttpServle...

weixin_30741285的博客 748

UML设计模式笔试题.doc

UML设计模式笔试题.docUML设计模式笔试题.docUML设计模式笔试题.docUML设计模式笔试题.doc

java笔试题

20道经典的Java笔试题 1. 下列哪一种叙述是正确的(D ) A. abstract修饰符可修饰字段、方法和类 B. 抽象方法的body部分必须用一对大括号{ }包住 C. 声明抽象方法,大括号可有可无 D. 声明抽象方法不可写出大括号 2. 如下代码 public class Test {public int aMethod() {static int i = 0;i++;re...

weixin_38166557的博客 1655

[Java面试]java笔试题总结

这里写自定义目录标JVM总结二、Statement、PreparedStatement和CallableStatementdoGet和doPost合理的创建标,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,...

KevinLyz的博客 4476

Java 面试刷10-31

1 java后端技术 javase 《核心技术卷1》:面向对象(多态、Object类、关键字)、接口与内部类、集合、泛型、反射 黑马视频 并发 多线程 《Java并发编程的艺术》 慕课网视频:Java并发编程与高并发解决方案 设计模式 《大话设计模式》:掌握常用的设计模式以及在简历上写到大的框架中的典型应用场景 慕课网视频:java设计模式精讲 Debug 方式+内存分析 java...

wwxy1995的博客 2795

java笔试题之一

Java考试 一:单选 下列哪一种叙述是正确的(D ) A. abstract修饰符可修饰字段、方法和类 B. 抽象方法的body部分必须用一对大括号{ }包住 C. 声明抽象方法,大括号可有可无 D. 声明抽象方法不可写出大括号 如下代码 public class Test { public int aMethod() { static int i = 0; i++; return i; } public static void main (String args[]) { Test test

qq_41117551的博客 1634

13点建议,三个月,顺利搞定8千以上Java面试及笔试题

找到一份高薪的java工作,从程序员走向高级程序员、架构师、分析员,是所有java程序员们的追求。 找一份好工作,自然要看工作经历、项目积累、综合能力。但是,在繁忙、琐碎的日常工作之余,如何准备,才能高效高分通过各种IT公司的java面试、笔试呢? 本人,特地总结一下,如何在短期内,密集学习,顺利通过各大名企的java面试及笔试题。也许不用面霸,你也能 说道面试及笔试题,一般不外乎J

tanyit的专栏 1482

java笔试题_Java面试才到笔试就没有然后了?快来签收,高频笔试57及解答

前言很多人面试之前,可能没有在互联网公司工作过或者说工作过但年头较短,不知道互联网公司技术面试都会问哪些问? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问打蒙了,甚至笔试都过不了。最后以惨败收场。针对这些的同学,在这分享总结的Java面试的笔试高频面试(以后我也会不定时的更新最新的面试包括了Java集合,JVM,并发与多线程,Spring,MyBaits,微服务,Dubbo...

weixin_39622655的博客 349

java web笔试题有哪些型_java笔试题

1、在Java EE中,Servlet是在服务器端运行,以处理客户端请求而做出的响应的程序,下列选项中属于Servlet生命周期阶段的是( )A、加载和实例化B、初始化C、服务D、销毁E、以上全部答案:E2、在Java EE中的MVC设计模式中,( )负责接受客户端的请求数据A、JavaBeanB、JSPC、ServletD、HTML答案:C3、过滤器应实现的接口是( )。A、HttpServle...

weixin_42421710的博客 2506
上一篇: Java设计模式面试题(1~9题)
下一篇: Java算法常见面试题及答案
java364100
博客等级 码龄4年 9粉丝 32原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值