标签:style 文档 OLE out 实现 虚拟 对象 符号 class
1.jre与jdk的区别?
JRE: Java Runtime Environment
JDK:Java Development Kit
其中JRE是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的;
JDK是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器 javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。
2.equals与==的区别是什么?
首先 ==是操作符,而equals()是方法。
其次,==是比较两个对象是否指向同一个对象,也就是说他们指向的对象的首地址是否相同
equals()可以通过重写equals方法从而比较对象的内容是否相同,如果不重写那么和==符号没有区别,都是比较的对象的引用是否指向同一个对象
举栗:对于string来说其equal()方法是对object方法的equals()进行了重写,从而比较的字符串序列是否相同如下:
String s1 = new String("abc");//s1存在于堆内存中
String s2 = new String("abc");//s2也存在于堆内存中
System.out.println(s1 == s2);//false s1和s2指向的对象的首地址不一样,不是同一个对象
System.out.println(s1.equals(s2));//true s1和s2指向的对象的内容相同
3.String str="i"与 String str=new String("i")一样吗?
"i"作为一个字符串常量,在JVM初始化时于方法区的字符串池。
前者只是将这个常量的引用指给str
后者则在堆中再创建一个不同于常量区的"i"的String对象,然后引用指给str
4.如何将字符串反转?
1:递归
public static String reverse1(String str){
int len=str.length();
if(len<=1)
return str;
String left=str.substring(0,len/2);
String right=str.substring(len/2,len);
return reverse5(right)+reverse5(left);
}
2:使用StringBuffer内置的reverse方法输出为字符串
public static String reverse2(String str){
return new StringBuffer(str).reverse().toString();
}
3.从尾部开始倒序
public static String reverse3(String str){
char [] arr =str.toCharArray();
String biu ="";
for(int i=arr.length-1;i>=0;i--){
biu+=arr[i];
}
return biu;
}
4.运用栈的特点
public static String reverse4(String str) {
StringBuffer sb = new StringBuffer();
Stack<Character> s = new Stack<Character>();//创建只装字符型的stack
for (int i = 0; i < str.length(); i++) {
s.add(str.charAt(i));
}
for (int i = 0; i < str.length(); i++) {
sb.append(s.pop());//出栈,StringBuffer.append()添加到sb的缓冲区末端;.insert(int index,添加的内容)添加到指定位置 }
return sb.toString();
}
5.final 在 java 中有什么作用?
final修饰的类不能被继承;方法不能被重写;变量成为常量,只能被赋值一次,且赋值后无法更改;参数有一个只读的属性。
6.接口和抽象类有什么区别?
二者共同点有:
1) 都是上层的抽象层。
2) 都不能被实例化
3) 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。
二者区别有:
1) 在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。
2) 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。
7.collection和collections的区别
Collection是集合类的上级接口,继承于他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
8.List 、Set、 Map有什么区别和联系
1)list 和set 有共同的父类 Collection,它们的用法也是一样的 ,唯一的不太就是set中不能有相同的元素 list中可以
2)list和set的用途非常广泛 list可以完全代替数组来使用
3)map 是独立的合集 它使用键值对的方式来储存数据 键不能有重复的 值可以用
4)map不像上边两种集合那个用的广泛 不过在servlet 和jsp中 map可是绝对的重中之重 页面之间传值全靠map
java面试基础
标签:style 文档 OLE out 实现 虚拟 对象 符号 class
原文地址:https://www.cnblogs.com/Snowya/p/11111735.html