1.面向对象的特征有哪些方面?

  封装,继承,多态(重载【编译时确定类型】和重写【运行时确定类型】两种)

2.有了基本数类型,为什么还要包装类型?

基本数据类型:Java提供八种基本数据类型,boolean,int,float等

包装类型:每个基本数据类型都会对应一个包装类型

装箱拆箱:

装箱:把基本数据类型转化成对应的包装类型

Integer i = 1; 实际上在编译时会调用Integer.valueOf方法来装箱

拆箱:int j = i;相当于int j = i,intValue();

Java是一种面向对象的语言,而基本的数据类型不具备面向对象的特性。

Null  Integer--null int--0 分别用Integer和int表示Person这个类的id

MAX

MIN

缓存值:Integer i =1; Integer j =1;i==j;

3.说一下“==”和equal方法的区别?

==比较两个变量是否相等,变量有两种,如果是基本类型变量,直接比较两个变量的值,吐过是应用类型变量,比较的是两个变量的地址。

equal方法是object类的方法,equals方法比较的是两个对象是否具有一些相同的属性值。

4.讲一下String Stringbuilder Stringbuffer?

在Java中,提供三个类String ,Stringbuilder ,Stringbuffer 来表示和操作字符串。

String是内容不可变的字符串,String 底层使用了一个final修饰的字符数组(final char【】)String str= new String(“aaa”);

Stringbuilder和Stringbuffer是可变的字符串,底层使用的是可变的字符数组(没有fanal修饰)

最经典的字符串拼接:

String str = “a”+"b";(创建了三个对象)

Stringbuilder stringbuilder = new Stringbuilder(“a”).append("b");

Stringbuilder:线程不安全,效率高

Stringbuffer:线程安全(需要加锁保证同步),效率底

5.说一下Java中的集合?

Java中的集合分为两种:一种存储值(Collection),一种存储键值对(Map)

Collection又可以分为两种:

    List:有序可以重复

 Set:无须不可重复。根据equals方法和hashcode判断,也就是说如果一个对象要存储在set中,必须重写equals和hashcode方法。

6.ArrayList和LinkedList的区别?

ArrayList底层使用的是数组,LinkedList底层使用的链表

ArrayList:查询特定元素比较快(因为有索引),插入和删除比较慢(因为数组在内存中是一段连续的存储空间,插入和删除元素需要移动数组)。

LinkedList:查询效率低(链表不要求内存是连续的,查询需要从头部开始,按照指针方向一个一个找),插入和删除效率高(不需要移动内存,只需要改变引用的指向即可)。

使用场景:

ArrayList使用在查询比较多,但是插入和删除比较少的情况,LInkedList使用在查询比较少,而插入和删除比较多的情况。

7.简单说一下你对jdbc的理解?

Java database connection (Java 数据库连接),数据库管理系统有很多,每个数据库管理系统支持的命令是不一样的,java只要定义数据库连接接口,不同数据库厂商实现接口,

 java程序员只需要面向接口编程,就可以实现同一套访问不同的数据库。

 

8.JDBC中PreparedStatement和Statement的区别?

 1.PreparedStatement是预编译的,比Statement的速度快

 2.前者的可读性和可维护性比后者强

 3.前者可以有效防止sql注入攻击

9.数据库连接池的作用?

1.限制数据库连接的个数,不会导致由于数据库连接过多导致系统运行缓慢或者崩溃

2.数据库连接不需要每次都去创建和销毁,节约了资源

3.数据库连接需要每次都去创建,节约了时间

10.

 

 

 

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!