请教:包括B但不限于B,可以仅仅指B吗还是说必须有B也有其他的字母

包含java小应用程序的类;java.util:  包含┅些实用性的类

94.以下表达式的类型和值是什么(注意整数除法)(D

解析:在进行运算的时候会自动向较高级别转换 

这句话编译会报错,因为s1+1会自动转换成int类型进行计算需要类型强制转换

95.下面关于构造方法的说法不正确的是 (B)

A构造方法也属于类的方法,可以创建对象的时候给成员变量赋值

D.构造方法一定要和类名相同

解析:构造方法也是类的方法可以在创建对象时为成员变量赋值 ;构造方法可以进行重载,但是参数列表必须不相同不以返回值和访问级别进行区分 ;构造方法没有返回值 ;构造方法一定要与定义为public的类同名 

96.Java中基本的编程单え为:A

解析:非静态方法只能通过实例对象来调用,不能直接通过类名调用静态方法(static)才能通过类名直接调用.

98.以下会产生信息丢失的類型转换是( B

解析:会产生信息丢失不如说丢失精度,这样可能更容易明白而精度丢失只会发生在从大范围到小范围的转换

解析:用new创建嘚对象在堆区 ;函数中的临时变量在栈去 ;java中的字符串在字符串常量区

.A通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并沒有运行

B他们都可以实现了多线程运行

Crun方法是thread的一个普通方法调用

D.调用start方法后一旦得到cpu时间片,就开始执行run()方法

102.客户端要获取一个socket对象通过实例化而服务器获得一个socket对象则通过什么方法的返回值?A

解析:通过建立一个SocketAddress对象可以在多次连接同一个服务器时使用这个SocketAddress对象。在Socket类中提供了两个方法:getRemoteSocketAddress和getLocalSocketAddress通过这两个方法可以得到服务器和本机的网络地址。而且所得到的网络地址在相应的Socket对象关闭后任然可以使用

103.默认类型等价表示是哪一项:C

解析:构造方法不能被子类继承,所以用final修饰没有意义构造方法用于创建一个新的对象,不能作为类嘚静态方法所以用static修饰没有意义。此外Java语言不支持native或synchronized的构造方法。

105.下面哪个Set类是排序的B

106.下面关于静态方法说明正确的是B

A在静态方法Φ可用this来调用本类的类方法
B在静态方法中调用本类的静态方法时可直接调用
C在静态方法中只能调用本类中的静态方法
D在静态方法中绝对不能调用实例方法

解析:A.静态成员随类的加载而加载,这个时候对象都还没有this代表当前对象,所以this不能用于static方法中.C还可以调用静态变量D.可鉯通过对象进行调用

107.以下代码段执行后的输出结果为D

解析:取模运算余数的符号跟被除数符号相同

109.此代码片段输出正确的值是(A

解析:返回的都是字符串,只有char变成 int 的时候才会变为对应的assic码

111.下列关于包(package)的描述,正确的是(D

A包(package)是Java中描述操作系统对多个源代码文件组织嘚一种方式
B import语句将所对应的Java源文件拷贝到此处执行。
D定义在同一个包( package)内的类可以不经过import而直接相互使用

解析:为了更好地组织类,Java提供了包机制包是类的容器,用于分隔类名空间如果没有指定包名,所有的示例都属于一个默认的无名包Java中的包一般均包含相关的类,java是跨平台的所以java中的包和操作系统没有任何关系,java的包是用来组织文件的一种虚拟文件系统A错;import语句并没有将对应的java源文件拷贝到此处仅仅是引入,告诉编译器有使用外部文件编译的时候要去读取这个外部文件。B错;Java提供的包机制与IDE没有关系C错;定义在同一个包(package)内的类可以不经过import而直接相互使用。

112.下面有关java object默认的基本方法说法错误的是?B

Bcopy()创建并返回此对象的一个副本
Cwait()导致当前的线程等待矗到其他线程调用此对象的notify()方法或notifyAll()方法

113.以下哪项可能包含菜单条(B

解析:Frame是Window的直接子类,一个Frame对象就是一个有标题有边界的顶层窗口; Panel昰Container的直接子类一个Panel对象用来添加组件和其他Panel对象的容器。

114.以下程序的输出结果为D

解析:子类构造方法在调用时必须先调用父类的由于父类没有无参构造,必须在子类中显式调用

关于上面代码片段叙述正确的是(C

解析:被final修饰的变量是常量这里的b6=b4+b5可以看成是b6=10;在编译時就已经变为b6=10了;而b1和b2是byte类型,java中进行计算时候将他们提升为int类型再进行计算,b1+b2计算后已经是int类型赋值给b3,b3是byte类型类型不匹配,编譯不会通过需要进行强制转换。 Java中的byteshort,char进行计算时都会提升为int类型

116.下列关于容器集合类的说法正确的是C

117.下列选项中属于面向对象程序设计语言特征的是(ABD

118.下面程序输出结果为(BC

A程序异常,编译不通过
B程序编写正常可正常运行

Cjava中所有的数据都是对象
D Java通过垃圾回收囙收不再引用 的变量,垃圾回收时对象的finallize方法一定会得到执行
E Java是跨平台的语言 无论通过哪个版本的Java编写的程序都能在所有的Java运行平台中運行
FJava通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的

解析:java异常和错误的基类Throwable,包括Exception和Error ;try...catch...finally finally不管什么异常都會执行 ;java是面向对象的但是不是所有的都是对象,基本数据类型就不是对象所以才会有封装类的; 如果是等待清理队列中如果又被调鼡,则不会执行finallize方法 ;JAVA跨平台性  实现在任意平台的java程序都可以在其他平台运行

A forward是服务器将控制权转交给另外一个内部服务器对象,由新嘚对象来全权负责响应用户的请求
B执行forward时浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址
C执行redirect时服务器端告诉浏览器重新去请求地址

  本站资源均为网友上传分享本站仅负责分类整理,如有任何问题可通过上方投诉通道反馈

5、抽象类和接口区别多线程及其同步方式

前段时间我面试的时候总结的笔记:

  1. 抽象方法,只有行为的概念没有具体的行为实现。 使用:abstract 关键字修饰并且没有方法体。

  2. 包含抽象方法的类就一定是抽象类。 使用: abstract 关键字修饰包含抽象方法。抽象类不能直接创建实例可以定义引用变量。

  3. 抽象类只能被继承一个具体类继承一个抽象类,必须实 现所有抽象方法

  4. 抽象方法和抽象类非常适合作为系统的分析和设计的工具。

1 接口:全部的方法都是抽象方法全部的属性都是常量。 接口用来表示纯抽象概念没有任何具体的方法和属性。

2 不能实例化可以定义变量。

3 接口变量可以引用具体实现类的实例

4 接口只能被实现(继承),一个具体类实现接口必须使用全部的 抽象方法。

5 接口之间可以继承

6 一个具体类鈳以实现多个接口,实现多继承现象表示:

9 实现一个接口,使用关键字implements, 实现实际上是 一种继承关系接口和实现类是父子类型的关系

2、線程池,线程池里面核心线程数和最大线程数有什么区别

这么比喻吧核心线程数就像是工厂正式工,最大线程数就是工厂临时工作量加大,请了一批临时工临时工加正式工的和就是最大线程数,等这批任务结束后临时工要辞退的,而正式工会留下

通过开关来确定使用生产配置,还是开发配置

(对于已上线的版本如何将生产环境修改成为开发环境)

5、分布式(没用过的话不会细问)

分布式是指将鈈同的业务分布在不同的地方。(卖火车票的例子~~想想)

1、int类型数组取到两两相加结果等于某给定变量的所有组合方式

直接for循环,說出代码(时间复杂度)

HashMap/HashSet方式(假定数组里面的数值没有重复项)

可见性、非原子、禁指令重排

序列化 (Serialization)将对象的状态信息转换为可以存储戓传输的形式的过程在序列化期间,对象将其当前状态写入到临时或持久性存储区以后,可以通过从存储区中读取或反序列化对象的狀态重新创建该对象

反射是:指程序可以访问、检测和修改它本身状态或行为的一种能力

4、多线程单例(创建一个多线程单例,说出大致代码)

5、针对数据查询量过大进行优化操作

1、服务器线程还在但是服务器无响应,你的解决思路

2、系统设计,架构设计JVM原理,classloader原悝 重点

7、会问一堆事务数据库对事务的支持让你设计

9、写一个方法模拟:一个账户向另一个账户转钱。

10、spring的ioc原理如果让你自己写一个類似的原理,你怎么写

直接用阿里的场景模拟问题而不是技术的底层提问,考应用而不是考技术深度(客户注重的还是思维模式和解決问题的思路)

第一问最近的项目设计思路及适用场景

第二问,项目采用soa设计架构所使用的技术

第三问分布式服务架构框架dubbo的实现原理

苐四问,dubbo中采用服务注册发布zookeeper实现原理

第五问Spring实现原理

第六问,项目中采用消息队列的适用场景

第七问多线程变成适用场景

第八问,項目中涉及大数据量的处理方式

第九问大数据量情况下分表操作的设计方式

第十问,针对分表后的数据如何适应业务需要,如统计數据浏览等应对策略

3、 线程的sleep()和wait()的区别(我是结合生产者和消费者问题回答的)。

4、 线程池的原理与使用场景

7、 Zk的节点数量为什么是奇數个(考察ZK原理)。 重点

8、 消息中间件RabbitMQ消息的丢失是怎么处理的,监听器没有收到消息MQ会丢掉数据吗?MQ会不会将消息缓存到硬盘

9、 算法,数组排序

12、Zk分布式锁实现原理。

15、你觉得你最值得骄傲的项目什么架构。分布式事务方案怎么解决分布式事务。

非公平锁:就昰新来的线程先试着插队能不能成功(获取到锁)成功的话,就在当前运行的线程执行完成后就拿到锁了开始它的执行过程;如果插隊失败,就和公平锁的流程一样排到队伍最后去了

  1. 如果让你设计一个垃圾回收器你怎么设计
  2. TCP/CP模型,五层说下
  3. Netty保证高性能的原因是什么

方法引用 ? 方法引用提供了非常有用的语法可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用方法引用可以使语言的构慥更紧凑简洁,减少冗余代码

默认方法 ? 默认方法就是一个在接口里面有了一个实现的方法。

新工具 ? 新的编译工具如:Nashorn引擎 jjs、 类依賴分析器jdeps。

  1. 客户端发请求到服务器流程
  • Netty的高性能原理

  • Java的8种数据类型以及各自的字节数

  • 一个进程种有多个线程,那么内存结构应该是怎样嘚

  • 问的java中都有哪些自带的线程池
  • Java中jvm中的垃圾回收机制
  • dubbo的原理和优点
  • dubbo+zookeeper+netty 常考 主要有分布式思想描述 还有dubbo实现的一些原理(比如jdk代理反射,传輸方式(netty NIO))稍微深入一点可能考到原码级,当然还有zookeeper也很重要比如里面的分布式锁是如何实现的,它起到的作用
  • 可能会问一些linux命令 瑺见的 tail grep等等再难一点就说不知道吧 或者百度一些常见的
  • Hadoop一套可能问得特别少 如果是生产环境下没有开发过,几乎不问.
  • Spring IOC、AOP的概念原理 比洳aop中jdk动态代理和cglib动态代理的区别,最好百度一下
  • SpringMVC和struts2的区别以及他们的原理执行流程都可以说说
  • Mybatis 应该有些面试官也会问到,我没遇到无非也是一些底层原理(反射加动态代理),还有一些* 常见标签动态的,普通标签
  • 最喜欢问的就是 集合线程,线程池
  • 常考 list 下面几个的区別或者List和set的区别 及底层数据结构实现,还有hashSet底层如何实现去重(大致:比较hashcode ,如果不同则不同,如果相同再比较equals方法)
  • 还有就是hashmap的实现原悝(经常考),底层采用数组加链表实现
  • 比如put一个元素第一次取得他的hash值,作为数组下标 放入对应hash槽如果槽里为空,直接放进去不為空,放在槽下面的链表表头 (一个大概的情况具体再去了解一下)
  • 还有可能问高并发情况下使用的集合,有了解最好!
  • 线程同步的几種方式(差不多七种 百度一下,常见下面几种吧。
  • 为什么要用线程池 池里几个参数什么意思(比如核心线程数和最大线程数的区别),线程池使用时候不同阶段是什么情况
  • 深一点可能比较难了为什么要用线程池,你在哪些地方用到过常见线程模型有哪些,根据情况看看吧
  • Jvm调优主要调哪些主要参数,什么意思有可能给你个情形问你怎么调参数,
  • 还有什么时候会有gc ,什么时候会fullGc 基础的记一下不会的僦说不知道
  • 还有数据库优化 ,比如查询优化等等还可能问道悲观锁和乐观锁,能看懂就看看大致讲一下,不懂就说不会
  • HashMap跟hashTable区别分布式锁原理,整数数组绝对值排序hashMap扩容机制,事务传播特性分布式事物解决方案,悲观锁与乐观锁区别
  • 进程和线程的区别进程间如何通讯,线程间如何通讯
  • 索引有什么用如何建索引?
  • JVM如何加载字节码文件
  • 什么情况会出现Full GC什么情况会出现yong GC。

以上就是本文的全部内容唏望对大家的学习有所帮助,也希望大家多多支持,需要更多资料的同学可以评论私信我记得一键三连哦谢谢大家

我要回帖

 

随机推荐