1.Switch支持的数据类型,是否支持String参数类型?
在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型。
这里支持byte,short,char的原因是因为在Java里,支持低精度向高精度的自动转换。
从Java5开始,java中引入了枚举类型,即enum类型。
从Java7开始,exper还可以是String类型。
但是long在所有版本中都是不可以的。
2.Jre和Jdk分别是什么?各自有什么作用?
JRE是Java Runtime Environment的缩写,顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的,还有所有的Java类库的class文件,都在lib目录下,并且都打包成了jar。
至于在Windows上的虚拟机是哪个文件呢?就是<JRE安装目录>/bin/client中的jvm.dll。

JDK是Java Development Kit的缩写,顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。

如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
3.Equals和==的区别,分别在什么场景下使用?
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。
java中的数据类型可以分为两类:

基本数据类型

byte,short,char,int,long,float,double,boolean

基本数据类型之间的比较需要用双等号(==),因为他们比较的是值

引用数据类型

接口、类、数组等非基本数据类型

Java中的字符串String属于引用数据类型。因为String是一个类

当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。因为没new一次就会重新开辟一个新的堆内存空间

总结:
== 的作用:

基本类型:比较的就是值是否相同

引用类型:比较的就是地址值是否相同

equals 的作用:

引用类型:默认情况下,比较的是地址值,重写该方法后比较对象的成员变量值是否相同
这也解释了为什么在声明对象的时候会进行hashCode和equals方法的重写.
使用场景:
"=="区分的是对象是否相同。

equals区分的是值是否相同。