面试题总结2
来源:互联网 发布:网络配置出现问题 编辑:程序博客网 时间:2024/05/19 21:15
1.排序都有哪几种方法?请列举。用 JAVA 实现一个快速排序?
插入排序(直接插入排序)
交换排序(快速排序,冒泡排序)
选择排序(直接选择排序)
归并排序
分配排序(箱排序,基数排序)
下面是冒泡排序的示例:
public class Sort {
public static void main(String[] args) {
int x[] = { 10, 51, 4, 65, 23, 8 };
int temp;
for (int i = 0; i < x.length; i++) {
for (int j = i+1; j < x.length; j++) {
if (x[i] < x[j]) {
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
}
System.out.print(x[i] + " ");
}
}
}
2.Overload 和 和 Override 的区别。Overloaded的方法是否可以改变返回值类型?
Override是方法的重写,子类覆盖父类的方法,子类与父类含义同样的方法时,调用时会调用子类重写后的方法。
Overload是方法的重载,一个类含的多个方法,方法名称相同,参数的个数与类型不同的称呼。
重写和重载都是java多态性的不同表现形式。方法重载时可以改变方法的返回类型,这个不会影响到是否重载。
3.被final修饰的类有什么特点?
属性被修饰====常量
方法被修饰====无法重写,就无法是抽象方法。
类被修饰======此类就不能被继承。
4.JAVA 类实现序列化的方法( 二 种) ?
a.是相应的对象实现了序列化接口Serializable,这个使用的比较多。
b.实现序列化的第二种方式为实现接口Externalizable.
来源于博客:http://blog.csdn.net/lzwglory/article/details/49181919
5.如在 collection框架中,实现比较要实现什么样的接口?
比较要实现 Comparable 接口和 Comparator 接口.
6. 编程 : 编写一个 截取字符串 的 函数 ,输 入为 一个 字符串 和 字节数 ,输出 为按
字节截取 的 字符串 。 但 是 要保证汉字 不 被截半 个,如"我 我 ABC"4 , 应该截
为"我 我 AB" ,输 入"我 我 ABC 汉 汉 DEF" ,6 , 应该 输出 为"我 我 ABC" 而 不是" 我
ABC+ 汉 的 半 个"(不是太理解)
代码:
public class spilt {
public static void main(String[] args) throws Exception {
spite("我abc",3);
}
public static void spite(String source,int num) throws Exception {
int k=0;
String temp="";
for(int i=0;i<source.length();i++){
byte [] b=(source.charAt(i)+"").getBytes();
k=k+b.length;
//System.out.println(source.charAt(0));
if(k>num){
break;
}
temp=temp+source.charAt(i);
}
System.out.println(temp);
}
}
7.Java 编程, 打印昨天 的当前时刻:
代码:
public class PrintTime {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
// 是获取一个Calendar对象并可以进行时间的计算,时区的指定
cal.add(Calendar.DATE, -1);
// 给对象设置属性参数
System.out.println(cal.getTime());
// 从一个 Calendar 对象中获取 Date 对象,并打印;设置 Date对象,使用calendar.setTime(date);
}
}
8. 文件 读 写, 实现一个计数器?
关于io的总结:可以参考这篇博客:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html
9. 如何 格式 化 日期?
Import java.text. SimpleDateFormat;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dat=new Date();
//把日期转化为字符串
String str=sdf.format(dat);
System.out.println(str);
//将字符串转化为日期
Java.util.Date d1=sdf.parse(“yyyy-mm-dd”);
10. 如何 取得年月日 , 小 时 分秒 ?
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,31);
System.out.println(c.get(Calendar.YEAR)+"
"+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
11. 如何 取得从 1970 年到 现在的?
Java.util.Date dat=new Date();
long now=dat.getTime();
12..编 码转换 , 怎样 实现将 将 GB2312 编 码 的为 字符串转换为 ISO-8859-1 编 码 的
字符串 ?
String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a=new String("中".getBytes("iso-8859-1"));
13.String s = new String("xyz"); 创建了个 几个 String Object?
New 了一个,”XYZ”本来又是一个,所以是两个。
14.float 型 型 float f=3.4 是否 正确?
报错,应当是 float f=3.4f
如果是 float f=3(整数)正确 。
15. 说 出一 些常 用的类,包, 接口 ,请 各举 举 5 个?
常用的类:BufferedReader ,BufferedWriter ,FileReader ,FileWriter ,Integer ,String
常用的包:java.lang java.awt java.io java.util java.sql java.xml javax.servelet javax.ejb java.net javax.faces
常用的接口:List Map Document NodeList EjbObject EjbHome SessionBean EntityBean
16.java 中 会 存 在内 存泄漏吗 ,请 简单描述?
public class CountNum {
public static void main(String[] args) throws Exception {
System.out.println(count());
}
public static int count(){
int i1,i2;
i1=2147483647;
i2=-2147483648;
return i1-i2;
}
} 代码运行的结果是-1.
17.java 中实现多 态 的机制是什么?
a.静态的多态:方法名相同,参数个数或类型不相同。(overloading)
b.动态的多态:子类覆盖父类的方法,将子类的实例传与父类的引用调用的是子类的方法 ;
实现接口的实例传与接口的引用调用的实现类的方法。
18. 垃圾回收 器 的 基本原理 是什么?垃圾回收 器 可以 马上 回收内 存吗 ?有什么
办 法 主动通知虚拟 机 进 行垃圾回收?
动态内存: 存放类实例 静态内存:类本身
垃圾回收主要针对的是动态内存,一般当内存不够用时会进行垃圾回收。
或者通过System,gc()手动收集,但不一定保证执行。
19.静态变量与实例变量的区别?
Java类的成员变量有俩种:
一种是被static关键字修饰的变量,叫类变量或者静态变量
另一种没有static修饰,为实例变量
类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
public class Temp {
int t; //实例变量
public static void main(String args[]){
int t=1; //局部变量
System.out.println(t); //打印局部变量
Temp a= new Temp(); //创建实例
System.out.println(a.t); //通过实例访问实例变量
}
}
结果为:
1
0
变换格式:
public class Temp {
static int t; //类变量
public static void main(String args[]){
System.out.println(t); //打印类变量
int t=1; //局部变量
System.out.println(t); //打印局部变量
Temp a= new Temp(); //创建实例
System.out.println(a.t); //通过实例访问实例变量
}
}
结果则为
0
1
0
参考博客地址:http://sumdwang.blog.163.com/blog/static/79296950200911611109779/
20. 是否可以 从 一个 static 方法内部 发 出非 对非 static 方法的 调 用?
不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,
* 才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以
* 直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例
* 对象,如果从一个static方法中发出对非static方法的调用,那个非static
* 方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部
* 发出对非static方法的调用。
- 面试题总结2
- 面试题总结 2
- 面试题总结2
- 面试题总结2
- 总结EMC面试题2
- hadoop面试题总结2
- hadoop面试题总结2
- hadoop面试题总结2
- JAVA面试题总结【2】
- c++面试题总结(2)
- 一份面试题的总结 2
- IOS 面试题总结2 核心动画
- IT 常见面试题总结2
- java面试题总结
- 面试题总结
- 面试题(总结)
- .NET面试题总结
- .net面试题总结
- cocos2d-x屏幕适配原理
- Java中的List和Map有什么区别?List, Set, Map是否继承自Collection接口?
- A complete guide to using Keras as part of a TensorFlow workflow: tutorial
- 浅谈Base64编码
- 二维码生成方法
- 面试题总结2
- 563. Binary Tree Tilt(C语言)
- 日期函数:取过去或者将来多少天的日期
- 《Effective java 第2版》读书笔记--类与接口
- python-19-如何访问文件的状态?如何使用临时文件?
- Openvswitch原理与代码分析(3): 添加一条流表flow
- Error:FAILURE: Build failed with an exception. * What went wrong: Task 'generate_360DebugSources' n
- 友元函数
- swift3 删除main.storyboard之后(纯代码做项目)