大易云计算笔试面试
笔试
- Java 重写(Override)与重载(Overload)的区别
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
- 类的单例化是什么,代码实现,单例化的意义
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例模式主要有3个特点,:
1、单例类确保自己只有一个实例。
2、单例类必须自己创建自己的实例。
3、单例类必须为其他对象提供唯一的实例。
单例模式三个方面的作用:
第一、控制资源的使用,通过线程同步来控制资源的并发访问;
第二、控制实例产生的数量,达到节约资源的目的。
第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。
- String,string buffer之间的区别,以及equals
- 写出程序输出结果:
public class Example {
String str = new String("good");
char[] ch = { 'a', 'b', 'c' };
public static void main(String[] args) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.println(ex.str);
System.out.println(ex.ch);
}
public void change(String str, char ch[]) {
str = "test ok";
ch[0] = 'g';
}
}
输出结果:
good
gbc
- 将2-10000的质数和非质数输出。
public class Primary{
public static void main(String[] args){
int i=0;
for(i=2;i<=10000;i++){
if(getPrimary(i)==true){
System.out.print(i+" ");
}
}
}
public static boolean getPrimary(int i){
int max=i/2+1;
for(int n=2;n<max;n++){
if(i%n==0){
return false;
}
}
return true;
}
- 将一个字符串倒叙输出有几种方法?例如“123str”—“rts321”
//1. 使用数组循环
public static String array(String s){
int length=s.length();
char[] array=s.toCharArray();
for(int i=0;i<length/2;i++){
array[i]=s.charAt(length-1-i);
array[length-1-i]=s.charAt(i);
}
return new String(array);
}
//2. StringBuffer的reverse方法
public static StringBuffer buffer(String s){
StringBuffer sb=new StringBuffer();
sb.append(s);
return sb.reverse();
}
//3. StringBuffer的循环
public static String buffer2(String s){
int length=s.length();
StringBuffer sb=new StringBuffer();
for(int i=s.length()-1;i>=0;i--){
sb.append(s.charAt(i));
}
return sb.toString();
} //StringBuilder比StringBuffer快,但线程不安全
//4.栈的后进先出
public static String reverseByStack(String str) {
if(str == null || str.length() == 0) {
return str;
}
Stack<Character> strStack = new Stack<Character>();
char[] chArray = str.toCharArray();
for(Character ch: chArray) {
strStack.push(ch);
}
int len = str.length();
for(int i= 0; i< len; i++) {
chArray[i] = strStack.pop();
}
return new String(chArray);
}
5. 迭代完成
public static String reverseByRecursive(String str) {
if(str == null || str.length() == 0) {
return str; }
int len = str.length();
if(len == 1) {
return str;
} else {
return reverseByRecursive(str.substring(1))+ str.charAt(0);
}
}
- 使用SQL语句写出查询部门中高于部门平均工资的员工姓名,部门名称,工资,部门平均工资。
面试
- Java中程序的入口是什么?
public static void main(String args[]){}
- Java中main函数是否可以重载?
main方法能被完美重载,但是在JVM中有特殊能力的只有public static void main.
- 接口是否了解?
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
- 抽象类介绍一下?
抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口
- 数据库的连接,表的正向、反向连接,group,
- Java多线程开发
- 哈希map—key