1、java的数据类型**
基本数据类型:int,short,long,char,byte,boolean,float,double
引用数据类型:类(class),接口(interface),数组
2、jdk和jre的区别
jdk:java开发工具包,提供java的开发环境和运行环境
jre:java的运行环境,为java的运行提供了所需的环境
jdk里面包含了jre
3、==和equals的区别
==:对于基本数据类型来说是值的比较,而对引用类型来说是地址的比较;
equals:一般情况下是地址比较,只是很多类重写了equals方法。
4、final在java中的有什么作用
final修饰的类叫最终类,该类不能被继承;
final修饰的方法不能重写;
final修饰的变量是常量,常量必须初始化,初始化之后值不能被修饰
5、String是基本数据类型吗?
不是,基本数据类型有8种:int、short、long、byte、char、boolean、float、double。而String属于对象
6、String、StringBuffer、StringBuilder有什么区别
String:声明的是不可变的对象,每次操作都会产生新的String对象,而其他两个可以在原有的基础上操作
StringBuffer:线程安全,效率低,适用于多线程
StringBuilder:线程不安全,效率高,适用于单线程
7、普通类和抽象类有什么区别
普通类:不能包含抽象方法,可以直接实例化
抽象类:可以包含抽象方法,不能直接实例化
8、抽象类能使用final修饰吗?
不能,因为抽象类可以被其他类继承,而final可以是当前类不能被继承,所以会产生冲突
9、抽象类和接口有什么区别?
抽象类:可以被继承、可以有构造函数、有main方法并且可以运行、类只能继承一个抽象类、可以有任意的访问修饰符
接口:可以被implements实现、没有构造函数、没有main方法、类可以实现多个接口、默认使用public
10、Collection和Collections有什么区别?
Collection是一个集合接口,它提供了对集合对象进行基本操作的通用集合方法。
Collections则是集合类的一个工具类/帮助类,提供了一系列的静态方法。
11、list、map、set的区别
list:继承Collection接口,有Arraylist,linkedList、vector实现类,常见的方法add()、remove()、size()、clear(),元素可以重复、有序、Vector线程安全
set:继承Collection接口,有HashSet、LinkedHashSet、TreeSet实现类常见的方法add()、remove()、size()、clear(),元素不可以重复、有序
map:有HashMap、HashTable实现类,有put()、get()、remove()、size()、clear()常用方法,元素不可以重复,HashTable线程安全
12、HashMap和Hashtable的区别?
hashMap是非同步的,而Hashtable是同步的,效率上比HashMap慢;HashMap允许有空键值,而HashTable不允许
13、HashMap和HashSet的区别?
HashMap:实现了Map接口、使用put()方法将元素放入map中、HashMap中使用键对象来计算hashcode值、HashMap比较快,因为使用唯一键来获取对象、hashMap储存键值对
HashSet:实现了Set接口、HashSet仅仅存储对象、使用add()方法将元素放入set中、使用成员对象来计算Hashcode值、hashSet比较慢
14、cookie和session的区别
共同点:都是为了存储用户相关的信息
cookie:把用户的信息存储在本地浏览器上,不安全容易被窃取
session:帮用户的信息存储在服务器上,更加安全,不容易窃取,但是占用服务器资源
15、如何使用cookie
获取:request.cookies.get(key,‘默认值’)
设置:resp.set_cookie(key, value, max_age=整数)
删除:resp.delete_cookie(key)
16、redis的五种数据类型
字符串String ----String Key-Value
散列Hash-------key-filed-value
集合Set
列表List
SortedSet(zSet)
17、面向对象和面向过程的区别
面向过程:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,不易于维护、复用、扩展
面向对象:易维护、复用、扩展。由于面向对象有封装、继承,多态性的特征,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。性能低
18、什么是多态
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向于类的对象
20、多态的好处
可复用性、可扩充性、可维护性
21、springboot的启动项?
springApplication.run(当前类名.class)
22、重写和重载的区别?
重写:重写父类的方法,方法名和参数都必须相同
重载:方法名必须相同,参数可以不同
23、ajax的异步和同步的区别?
异步:async为true,当执行一个方法时,不会阻止下一个执行方法,可以同时执行
同步:async为false,当执行一个方法时,下一个执行方法会等待,不会去执行。
24、springBoot的自动装配?
@SpringApplication里面有一个@EnableAutoConfiguration(开启自动配置)注解,在@EnableAutoConfiguration里面封装了许多方法、集合、数组。都是配置好的,只需要填写你的值。
25、jdbc连接需要获取些什么?
用户名、密码、驱动、url
26、static的作用?
1、类成员变量和对象成员变量
有static修饰的成员变量叫做类变量,该类的所有方法、对象所共享,可以通过类.成员变量来访问
没有static修饰的成员变量叫做对象成员变量,在创建类对象之后才能使用对象名.成员变量名来使用
2、类方法和对象方法
有static修饰的方法叫做类方法,可以直接使用类名.方法名
没有static修饰的方法叫做对象方法,必须先创建类的对象,在通过对象名.方法名来使用
3、静态语句块和非静态语句块
静态语句块:在jvm载入是自动执行一次
非静态语句块:在调用构造方法实例化对象之前自动执行一次,用于初始化对象。
27、什么是单例
单例类在整个程序包中只能有一个实例,这个类负责创建自己的对象,并确保只有一个对象被创建。
28、为什么要使用Spring
目的:解决企业应用开发的复杂性
功能:使用基本的javaBean代替ejb,并提供了更多的企业应用功能
简单来说,spring是一个轻量级的控制反转和面向切面的容器框架
29、spring常用的注入方式有哪些?
spring通过DI(依赖注入)来实现IOC(控制反转),有三种注入方式
setter注入;构造方法注入;基于注解注入
i++和++i有什么区别
i++:这是先赋值在自增
++i : 先自增在赋值
例如: