一、Java 基础部分
1、 请列举至少 3 个 JDK 安装目录下的可执行程序(javac),并列举几个常用的命令行参数
| javac <选项> <源文件> 可能的选项包括: |
| | -g 生成所有调试信息 |
|
|
| |
|
| -g:{lines,vars,source} 生成只有部分调试信息 |
|
|
|
| |
|
| -nowarn 生成无警告 |
|
|
| |
|
| -deprecation 输出使用了不鼓励使用的 API 的源程序位置 |
| | -classpath <路径> 指定用户类文件的位置 |
|
| -sourcepath <路径> 指定输入源文件的位置 |
|
| -bootclasspath <路径> | |
|
| -extdirs <目录(多个)> | |
|
| |
| | jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...选 |
| | 项: |
|
|
|
| -c | 创建新的存档 |
|
|
|
|
|
| -t | |
|
| -x | |
|
| -u | |
| | -v | |
| -f | |
|
|
|
| |
|
| |
|
| |
|
| -i | |
| | javadoc [options] [packagenames] [sourcefiles] [classnames] [@files] |
| | -overview<file>读取 HTML 格式的概述文档 |
| | |
| | -protected 显示 protected/public 类和成员(缺省) |
|
| -package 显示 package/protected/public 类和成员 |
|
| |
| | |
|
| -doclet <class> 通过候选 doclet 生成输出 |
|
| -docletpath <path> 指定 doclet 类文件的查找位置 |
|
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps5D78.tmp.png
| -sourcepath <pathlist> 指定源文件的查找位置 |
|
| -classpath <pathlist> 指定用户类文件的查找位置 |
|
|
|
|
| | javah [options] <classes> | |
| | -help 打印该帮助信息 | |
| | -bootclasspath <path> 自举类的加载路径 |
| | -d <dir> 输出目录 |
|
| | -o <file> 输出文件(仅能使用 -d 或 -o 之一) |
|
| |
|
| |
| | -stubs 生成 stubs 文件 |
|
| -version 打印版本信息 |
|
|
|
|
|
| |
|
| -force 始终写输出文件 |
|
|
|
|
| |
2、 请分析命题:“Java 采用自动垃圾回收技术(GC),因此不会出现内存泄露”
对象的建立和放置都是在内存堆栈上面进行的。程序或者其他的对象可以锁定一块堆栈地址来进行其他对象的引用。
当一个对象没有任何引用的时候,Java 的自动垃圾回收机制就发挥作用,自动删除这个对象所占用的空间,释放内存以避免内存泄漏。但是内存泄漏并不是就此而完全避免了,当程序员疏忽大意地忘记解除一个对象不应该有的引用的时候,内存泄漏仍然不可避免,不过发生的几率要比不启用垃圾回收机制的 C++程序少很多。但总体来讲,自动垃圾回收机制要安全和简单许多。
3、 简单描述单例模式的两种不同实现方式(饿汉式、懒汉式),及其各自优缺点。 [AppleScript] 纯文本查看 复制代码 1 *单例设计模式主要有 2 种实现方式:懒汉式、饿汉式。
2 他们分别有如下实现:
3 饿汉式:
4 //饿汉式单例类.在类初始化时,已经自行实例化 */
5 public class Singleton1 {
6 //私有的默认构造子
7 private Singleton1() {}
8 //已经自行实例化
9 private static final Singleton1 single = new Singleton1();
10 //静态工厂方法
11 public static Singleton1 getInstance() {
12 return single;
13 }
14 }
15 //懒汉式:
16 //懒汉式单例类.在第一次调用的时候实例化
17 public class Singleton2 {
18 //私有的默认构造子
19 private Singleton2() {}
20 //注意,这里没有 final
21 private static Singleton2 single=null;
22 //静态工厂方法
23 public synchronized static Singleton2 getInstance() {
24 if (single == null) {
25 single = new Singleton2();
26 }
27 return single;
28 }
29 }
4、 请列出以下程序的输出结果 [AppleScript] 纯文本查看 复制代码 1 public static void main(String[] args)throws Exception{
2 String str = "中国";
3 System.out.println(str.getBytes("UTF-8").length);
4 System.out.println(str.getBytes("GBK").length);
5 System.out.println(str.getBytes("ISO-8859-1").length);
6
System.out.println(new String(str.getBytes("ISO-8859-1"),("ISO-88
59-1"));
7 System.out.println(new String(str.getBytes("UTF-8"),("UTF-8"));
8 System.out.println(new String(str.getBytes("GBK"),("GBK"));
9 }
输出结果:
10 6
11 4
12 2
13 ??
14 中国
15 中国
5、 使用二分查找法找字符串数组{"a","b","c","d","e","f","g","h"}中"g"元素
[AppleScript] 纯文本查看 复制代码 1 public class Query4Half {
2 static int bsearch( String[] a, String v ) {
3 int l, r;
4 l = 0; r = a.length-1;5 while ( l <= r ) {
6 int m = (l+r)/2;
7 if ( a[m].compareTo(v)==0 ) return m; else
8 if ( a[m].compareTo(v)>0 ) r = m-1; else
9 if ( a[m].compareTo(v)<0 ) l = m+1;
10 }
11 return -1;
12 }
13 public static void main(String[] args) {
14 String str[] = {"a","b","c","d","e","f","g","h"};
15 int bsearch = bsearch(str, "g");
16 System.out.println(bsearch);
17 }
本次面试题总计数量30+,大家可以回帖下载PDF完整版 [img=618,361] |