Java基础面试题

曾经面试时踩过的坑

一、Java数据类型分为基本类型和引用类型

1、八种基本类型
(一)、4种整型 
    byte      1字节           -128——127 

    short     2 字节         -32,768 —— 32,767 

    int       4 字节          -2,147,483,648 ——2,147,483,647(超过20亿) 

    long      8 字节   -9,223,372,036,854,775,808——9,223,372,036854,775,807 

    注释:java中所有的数据类所占据的字节数量与平台无关,java也没有任何无符号类型 

(二)、 2种浮点类型 
    float    4 字节         32位IEEE 754单精度(有效位数 6 – 7位) 

    double   8 字节         64位IEEE 754双精度(有效位数15位) 

(三)、1种Unicode编码的字符单元 
    char    2 字节          整个Unicode字符集 

(四)、1种真值类型 
     boolean    1 位             True或者false
2、三种引用类型
类class 

接口interface 

数组array 
3、类类型

String是类类型,不是基本类型。

二、面向对象的四个基本特征

封装:最常见的是把属性私有化封装在一个类里面,只能通过方法去访问

继承:子类继承父类,从而继承了父类的方法和属性

抽象:比如一个英雄类,抽象出了name,hp这些属性,使得开发过程中更加易于理解

多态:多态分操作符的多态和类的多态。 类的多态指父类引用指向子类对象,并且有继承,有重写。

三、类型区别

(一)、int 和 Integer 有什么区别?
      int 是基本类型32位长度的整数
      Integer 是类类型,是int的封装类
      int和Integer之间可以通过自动装箱、自动拆箱互相转换

(二)、String 和StringBuffer的区别?
      String是immutable的,其内容一旦创建好之后,就不可以发生改变。
      StringBuffer 是可以变长的,内容也可以发生改变
      改变的原理是StringBuffer内部采用了字符数组存放数据,在需要增加    长度的时候,创建新的数组,并且把原来的数据复制到新的数组这样的办法来实现。 

四、垃圾回收的优点和原理。并考虑2种回收机制

与C语言开发人员需要手段进行内存资源的释放不同,Java提供垃圾回收机制,自动进行GC,将开发人员冲容易犯错的内存资源管理中解放出来。

原理:当某个一个对象,没有任何引用指向它的时候,那么它就满足垃圾回收的条件,在适当的时候,JVM虚拟机进行GC将其回收,释放空间,以供后续再利用。

两种常见的回收机制:
1. 定时回收
每隔30分钟进行一次回收,这种机制的弊端是如果垃圾产生的比较快,有可能30分钟之内垃圾已经把内存占用光了,导致性能变慢

2. 当垃圾占到某个百分比的时候,进行回收
比如,当垃圾占到70%的时候,进行回收。 这种机制的弊端是,如果垃圾产生的频率很快,那么JVM就必须高频率的进行垃圾回收。 而在垃圾回收的过程中, JVM会停顿下来,只做垃圾回收,而影响业务功能的正常运行。

一般说来 JVM会采用两种机制结合的方式进行垃圾回收。

五、什么是java序列化,如何实现java序列化?

序列化指的是把一个Java对象,通过某种介质进行传输,比如Socket输入输出流,或者保存在一个文件里

实现java序列化的手段是让该类实现接口 Serializable,这个接口是一个标识性接口
没有任何方法,仅仅用于表示该类可以序列化。

六、多线程有几种实现方法,都是什么?

通常来讲,Java 创建一个线程有三种方式
1. 继承一个Thread类
2. 实现Runnable接口
3. 匿名内部类

七、数据连接池的工作机制是什么?

数据库连接池原理:
因为创建连接和关闭连接的行为是非常耗时的,会显著降低软件的性能表现
解决办法就是先创建n条数据库连接Connection,循环使用,但是不进行关闭
这样再执行SQL语句,就不需要额外创建连接了,直接使用现成的连接就可以了
从而节约了创建连接和关闭连接的时间开销。

八、JSP的四个作用域和九大内置对象

名称 对象 类型 作用域
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 Page

九、servlet的生命周期

一个Servlet的生命周期由 实例化,初始化,提供服务,销毁,被回收几个步骤组成

生命周期
(1)加载并实例化
(2)初始化,调用init()方法
(3)服务,调用service()方法
(4)销毁,调用destroy()方法

1、容器启动的时候,会加载servlet的class,并new出这个对象

2、当用户请求这个servlet的时候,容器会调用init方法初始化这个servlet
这也是整个生命周期中只会调用一次的方法,

3、会调用service方法,由这个方法调用doGet或doPost方法来响应用户,

4、容器在可用资源紧张或是长期没有对Servlet发出请求的情况下,会销毁这个servlet。

十、JDBC链接数据库的步骤

1.加载驱动类;
2.与数据库建立连接;
3.执行SQL语句
4.处理结果集
5.关闭连接

十一、数据库连接池

优势:
资源重用、更快的系统响应速度、新的资源分配手段、统一的连接管理,避免数据库连接泄漏

1.dbcp
dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。
这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性
有所下降,此外不提供连接池监控

2.c3p0
c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
这个连接池的配置参见附件压缩包中的:c3p0.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,
此外不提供连接池监控。
         
3.proxool
proxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
这个连接池的配置参见附件压缩包中的:proxool.xml。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,632评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,248评论 11 349
  • Java 面试题 整理自牛客网 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟...
    GuaKin_Huang阅读 10,668评论 19 265
  • 转自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帅199207阅读 8,529评论 3 93
  • 故事里说,王子爱上了巫婆却抛弃了白雪公主,王后善妒的嘴脸从此彻底暴露无遗,她疯狂的虐待着白雪公主,直到七个小矮人都...
    心事于你阅读 459评论 0 2