一次意外面试的总结,可能很久之前就投了一个简历,今天突然给我打电话。

1. java的基础数据类型有哪些?

类型 字节
Byte 1 8
short 2 16
char 2 16
boolean   1
double 8 64
float 4 32
long 8 64
int 4 32

byte+byte是int(Unicode编码时整形)

int+byte是int(上取整原则)

int+long是long(上取整原则)

2. Stringbuffer和Stringbuilder的使用,之前说过这些。

StringBuffer是线程安全的Stringbuilder是线程不安全的。但是是为什么呢?

主要是涉及到线程安全,异步操作的过程。有没有使用synchronized。

3. 接口继承接口是可以的,接口的实现是继承进行实现,

4.抽象类不允许实例化,需要继承后在进行实例化。

抽象类:用abstract修饰,抽象类不能创建实例对象。抽象方法必须在子类中实现,不能有抽象构造方法或者抽象静态方法。

接口:抽象类的一种特例,接口中的方法必须是抽象的。

两者的区别:

  1. 抽象类可以有构造方法,接口没有构造方法
  2. 抽象类可以有普通成员变量,接口没有普通成员变量。
  3. 抽象类可以有非抽象的普通方法,接口中的方法必须是抽象的。
  4. 抽象类中的抽象方法访问类型可以是public,protected,接口中抽闲方法必须是public类型的。
  5. 抽象类可以包含静态方法,接口中不能包含静态方法。
  6. 一个类可以实现多个接口,但是只能继承一个抽象类。
  7. 接口中基本数据类型的数据成员,都默认为static和final,抽象类则不是。

参考:https://www.cnblogs.com/talenter/p/9652976.html

 

5. 线程的使用,可以直接run吗?

直接运行run()方法,会把run()方法当成一个main线程下的普通方法去执行,并不会创建出一个新的线程去执行run()方法中写的任务。在main线程中调用run()方法后,要等run方法执行完毕后,才能继续执行接下来的方法,所以这不是一个真正的多线程工作。参考:https://www.cnblogs.com/funnyludan/p/13768656.html

6. 字符串的拼接:

+

StringBuilder

StringBuffer

concat

join 

StringUtils.join

7. 数据库的数据存入过程

 1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。
预先编译,效率高
2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
以一敌十,速度快
3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。

权限控制,安全好

8. 数据库的做left join和right join这个是左连接和有链接的区别,

使用中,左边为空,或者右边为空。

 

posted @ 2021-11-04 22:45  江北苏东坡  阅读(51)  评论(0编辑  收藏  举报