Java基础面试题

1.面向对象的特征

(1)封装 (2)继承 (3)多态

2.final finally finalize的区别

(1)final  :  被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们在使用的过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被final声明的方法也同样只能使用,不能重载。

(2)finally : 在异常处理时提供finally块来执行任何清除操作。不管有没有异常被抛出、捕获,finally块都会被执行。try块中的内容是在无异常时执行到结束。catch块中的内容,是在try块内容发生catch所声明的异常时,跳转到catch块中执行。finally块则是无论异常是否发生,都会执行finally块的内容,所以在代码逻辑中有需要无论发生什么都必须执行的代码,就可以放在finally块中。

(3)finalize : finalize是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者被执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

3.int 和 Integer有什么区别

(1)int属于原始基本数据类型,而Integer是对应的包装类

因为Java为每个原始类型提供了封装类:为了能够将这些基本数据类型当成对象操作,Java为每 一个基本数据类型都引入了对应的包装类型,int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。

原始类型: boolean,char,byte,short,int,long,float,double

封装类类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

(2)Integer变量必须实例化后才能使用

因为Integer是对象的引用,new Integer(xxx),实际上是生成一个指针指向此对象;而int是直接存储数据值 

(3)Integer是对象(对象的引用),int是基本类型,直接存储数值。

(4)Integer默认值是null,而int默认值是0;

4.重载和重写的区别

重载:发生在同一个类里有两个或多个方法方法名相同但参数不同的情况

重写/覆盖:子类重新定义了父类的方法

5.抽象类和接口有什么区别

抽象类:

(1)抽象类中可以有构造方法,但不能创建抽象类的实例,只能创建一个抽象类的变量,让它指向具体子类的一个实例。

(2)抽象类中可以存在普通属性、方法,静态属性和方法,但不能有抽象构造函数或者抽象静态方法

(3)抽象类中不一定包含抽象方法,但包含抽象方法的类一定要被声明为抽象类

(4)抽象类中的抽象方法,需要被子类实现,如果子类不实现,则子类也要被定义为抽象类

接口:

(1)接口中没有构造方法,所以也不能实例化接口的对象

(2)在接口中只有方法的声明,没有方法体

(3)在接口中只有常量,被定义的变量也会在编译的时候默认加上public static final

(4)在接口中的方法,都是被public修饰的

(5)接口可以实现多继承

(6)接口中定义的方法都需要被实现咧实现,如果实现类不能实现接口中的所有方法,则实现类要被定义为抽象类(abstract)

6.访问修饰符public private,protected以及不写(默认时的区别)

7.是否可以继承String类

String类是final类,不可以被继承

8.HTTP请求的GET 、POST方式的区别

GET:

a.一般只用于查询请求

b.可以被收藏,以及缓存

c.请求参数放在URL中

d.请求数据大小受限于url长度(1024字节)

e.安全性比较低,不应该处理敏感数据的请求

POST:

a.不能缓存以及收藏

b.请求数据放在body中,长度不限制

c.安全性比较高

9.session与cookie的区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上.

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。(Session对象没有对存储的数据量的限制,其中可以保存更为复杂的数据类型)

  注意:

a.session很容易失效,用户体验很差;

b.虽然cookie不安全,但是可以加密 ;

c.cookie也分为永久 和暂时 存在的;

d.浏览器 有禁止cookie功能 ,但一般用户都不会设置;

e.一定要设置失效时间,要不然浏览器关闭就消失了;

f.两者最大的区别在于生存周期,一个是IE启动到IE关闭.(浏览器页面一关 ,session就消失了)

一个是预先设置的生存周期,或永久的保存于本地的文件。(cookie)

10.session分布式处理

11.JDBC流程

(1)注册驱动

        Class.forName("com.mysql.cj.jdbc.Driver");

(2)连接数据库

Connection  connection =    DriverManager.getConnection("jdbc:

mysql://localhost/Contacts?serverTimezone=UTC", "root", "Cc229654512");

(3).创建语句

        Statement state = conn.createStatement();

(4).执行SQL语句

ResultSet resultSet=state.executeQuery("select Name, PhoneNumber, Email, QQ, Note from Contacts");

(5).处理结果集

while(resultSet.next())

{

System.out.println(resultSet.getString(1)+"\t"+resultSet.getString(2)+"\t"+resultSet.getString(3));

}

(6).关闭连接

    rs.close();

    state.close();

      conn.close();

12.MVC设计模式

13.equals 与 == 的区别

(1)基本数据类型(也称原始数据类型):byte,short,char,int,long,float,double,boolean,他们之间的比较,应用双等号(==),比较的是他们的值。

(2)复合数据类型(类):当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址。所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。

JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。【对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。】

值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。所以,==比较的是栈里的地址,而equals比较的是栈里面地址所指向的堆里面的内容。

14.自动装箱与自动拆箱


15.设计模式的六大原则 

(1)单一职责原则

(2)开放封闭原则

(3)里氏替换原则

(4)依赖倒置原则

(5)接口隔离原则

(6)迪米特法则

详解参考此文章设计模式之六大原则(转载) - chenxiangxiang - 博客园

16.说说反射的用途及实现

17.说说自定义注解的场景及实现

查漏补缺,未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,558评论 18 399
  • 1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构...
    runtimeEX阅读 200评论 0 0
  • 抽象类## 抽象类是用来描述抽象行为的,比如Animal,我们不知道Animal具体有会有什么样的行为,只有具体的...
    AlvinL阅读 8,963评论 3 74
  • 我的家乡在平度一个小山村,哪里有我的父老乡亲
    孙晓芬阅读 145评论 0 0
  • 父母使用“我信息”孩子也不会改变行为,单纯与行为互动无效的时候,需要我们思考问题的归属和双方利益的诉求。 亲子冲突...
    冯妈阅读 335评论 0 0