1、作用域public,private,protected,以及不写时的区别

public 所有类可以访问

Private类内部访问

Protected 不仅同包内访问,其他包的子类可以访问

不写(friendly)同包内访问

2、ArrayList和Vector的区别,HashMap和Hashtable的区别

(1).同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的

.数据增长:当需要增长时,Vector默认增长为原来一倍,而ArrayList却是原来的一半

(2)Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的

只有HashMap可以让你将空值作为一个表的条目的key或value

3、char型变量中能不能存贮一个中文汉字?为什么?

可以,因为java用的是unicode编码集,一个汉字就是一个unicode编码,占两个字节,而char型变量一般就储存两个字节的字符,所以,可以存贮一个中文汉字。

4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

有两种方法:实现Runable接口继承Thread

有同步块和同步方法

5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?

父类:

package test;

public class FatherClass

{

public FatherClass()

{

System.out.println("FatherClass Create");

}

}

子类:

package test;

import test.FatherClass;

public class ChildClass extends FatherClass

{

public ChildClass()

{

System.out.println("ChildClass Create");

}

public static void main(String[] args)

{

FatherClass fc = new FatherClass();

ChildClass cc = new ChildClass();

}

}

输出结果是什么?

C:>java test.ChildClass

FatherClass Create

FatherClass Create

ChildClass Create

6、内部类的实现方式?

(1)示例代码如下:

package test;

public class OuterClass

{

private class InterClass

{

public InterClass()

{

System.out.println("InterClass Create");

}

}

public OuterClass()

{

InterClass ic = new InterClass();

System.out.println("OuterClass Create");

}

public static void main(String[] args)

{

OuterClass oc = new OuterClass();

}

}

输出结果:

C:>java test/OuterClass

//没有输出结果

(2): 有如下内部类

public class OuterClass {

private double d1 = 1.0;

//insert code here

}

如果你在第三行插入一个内部类,如下那个内部类的声明是有效的(c)

A. class InnerOne{

public static double methoda() {return d1;}

}

B. public class InnerOne{

static double methoda() {return d1;}

}

C. private class InnerOne{

double methoda() {return d1;}

}

D. static class InnerOne{

protected double methoda() {return d1;}

}

E. abstract class InnerOne{

public abstract double methoda();

}

9、float型float f=3.4是否正确?

不正确,应该是float f=3.4f

10、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?

Collection FrameWork如下:

Collection

├List

│├LinkedList

│├ArrayList

│└Vector

│ └Stack

└Set

Map

├Hashtable

├HashMap

└WeakHashMap

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)

Map提供key到value的映射

11、Java中异常处理机制,事件机制?

异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。

java 事件委托机制的概念,一个源产生一个事件并将它送到一个或多个侦听器那里。在这种方案中,侦听器简单的等待,直到它收到一个事件。一旦事件被接受,侦听器将处理这个事件,然后返回

12、抽象类与接口的区别?

抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。

13、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 如在COLLECTION框架中,实现比较要实现什么样的接口?

答:用插入法进行排序代码如下

package test;

import java.util.*;

class InsertSort

{

ArrayList al;

public InsertSort(int num,int mod)

{

al = new ArrayList(num);

Random rand = new Random();

System.out.println("The ArrayList Sort Before:");

for (int i=0;i <num ;i++ )

{

al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));

System.out.println("al["+i+"]="+al.get(i));

}

}

public void SortIt()

{

Integer tempInt;

int MaxSize=1;

for(int i=1;i <al.size();i++)

{

tempInt = (Integer)al.remove(i);

if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue())

{

al.add(MaxSize,tempInt);

MaxSize++;

System.out.println(al.toString());

} else {

for (int j=0;j <MaxSize ;j++ )

{

if

(((Integer)al.get(j)).intValue()>=tempInt.intValue())

{

al.add(j,tempInt);

MaxSize++;

System.out.println(al.toString());

break;

}

}

}

}

System.out.println("The ArrayList Sort After:");

for(int i=0;i <al.size();i++)

{

System.out.println("al["+i+"]="+al.get(i));

}

}

public static void main(String[] args)

{

InsertSort is = new InsertSort(10,100);

is.SortIt();

}

}

15、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。

package test;

class SplitString

{

String SplitStr;

int SplitByte;

public SplitString(String str,int bytes)

{

SplitStr=str;

SplitByte=bytes;

System.out.println("The String is:′"+SplitStr+"′;SplitBytes="+SplitByte);

}

public void SplitIt()

{

int loopCount;

loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split

Byte+1);

System.out.println("Will Split into "+loopCount);

for (int i=1;i <=loopCount ;i++ )

{

if (i==loopCount){

System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));

} else {

System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));

}

}

}

public static void main(String[] args)

{

SplitString ss = new SplitString("test中dd文dsaf中男大3443n中国43中国人

0ewldfls=103",4);

ss.SplitIt();

}

}

16、JAVA多线程编程。 用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。

17、STRING与STRINGBUFFER的区别。

STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。

18、谈谈final, finally, finalize的区别。

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载

finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的

19、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

20、静态内部类 和 内部类的不同,说得越多越好(面试题有的很笼统)。

和普通的类一样,内部类也可以有静态的。不过和非静态内部类相比,区别就在于静态内部类没有了指向外部的引用。这实际上和C++中的嵌套类很相像了,Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用这一点上,当然从设计的角度以及以它一些细节来讲还有区别。

除此之外,在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类(内部类的嵌套可以不止一层)。不过静态内部类中却可以拥有这一切。

JAVA程序员必看的面试题相关推荐

  1. java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    java架构师之路:JAVA程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一 ...

  2. JAVA程序员必看的15本书

    java架构师之路:JAVA程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一 ...

  3. Java程序员必看的15本书的电子版下载地址

    Java程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺 ...

  4. java程序员必看书籍

    学习Java最痛苦的事情莫过于对未来职业方向的选择.尤其是选择开发Java Application还是Java Web方向,在你先定好大类后还有数不尽的小类教你无从学起. 因此,作为初学者的你必须看完 ...

  5. 收藏|Java程序员必看的几本基础书籍和常用工具

    java程序员必看基础书籍和工具 1计算机基础 1.<深入理解计算机系统> 著名的CSAPP,从c语言到汇编语言到硬件再到操作系统,写得非常好.是一本能帮助深入理解计算机系统的书.基本上把 ...

  6. Java程序员必看的9本基础书籍推荐!

    互联网的迅速发展给IT行业提供了广阔的前景,很多IT企业为了更好的发展,不惜重金聘请软件开发人才以增强自己在市场上的竞争力.这也让IT从业人员薪资水涨船高,许多人纷纷转投Java开发行业.很多人学Ja ...

  7. Java之父James Gosling鼎力推荐《Effective Java 第三版》最新中文版,Java程序员必看神书

    前言 Java之父James Gosling鼎力推荐.Jolt获奖作品全新升级,针对Java 7.8.9全面更新,Java程序员必备参考书.包含大量完整的示例代码和透彻的技术分析,通过90条经验法则, ...

  8. java程序员必看经典书单,以及各个阶段学习建议

    最近,部分读者一直希望我给大家推荐java程序员必读书籍,以及java程序员每个阶段的学习建议. 今天,先给大家推荐1.0版本,后面再不断完善程序员必读书籍2.0版本. 希望,你早日成为牛逼的程序员. ...

  9. 牛逼!java程序员必看经典书单,以及各个阶段学习建议!

    本文作者为优知学院创始人陈睿(mike),作者有10年以上技术&产品经验,曾任百度研发经理.携程定制旅游CTO. 优知学院,首家互联网技术结合产品学习社区.提供互联网技术.产品的入门指南.干货 ...

最新文章

  1. 生信分析必须了解的4种文件格式
  2. SAP采购订单税码增强检查
  3. shell+中sum的用法_shell高级用法
  4. java boxplot_Matlab Boxplots
  5. mysql bit类型 使用select查询无法看到其值
  6. maven打包pom.xml备忘
  7. 使用Apache Lucene 4.3轻松进行搜索
  8. HTML5本地存储——IndexedDB(二:索引)
  9. [css] 圣杯布局和双飞翼布局的理解和区别,并用代码实现
  10. c语言单片机彩灯程序设计,用C语言实现键控彩灯系统
  11. 精英赛上线|冠军万元奖金
  12. 微软 Azure 再下一城:收购 Kinvolk,改进开源 Linux
  13. CSS中给表格的第一列及最后一列设置不同的样式
  14. Adobe Flash Builder 四 序列号
  15. 制作一个启动软盘并用bochs模拟器启动
  16. 引爆点---绝对内行
  17. ORA-00054问题解决
  18. 英汉互译在线翻译器-大家都在用的英汉互译翻译器
  19. 智慧与智能与AI(自动化)
  20. 杰理芯片软件加密钥的操作流程

热门文章

  1. C++预处理程序指令
  2. springboot读取json文件_SpringBoot:配置文件属性读取
  3. 31. 如何计算对象已死(引用计数器算法、可达性分析算法)32.对象是否可 GC?33. Minor GC 和 Full GC
  4. 产品打包工具的制作,ant,编译源码,打jar包,打tag,打war包,备份release版本等
  5. 7.Eclipse中创建新Maven项目
  6. Linux下C编程入门(.h文件,.c文件,以及多文件调用的方式)
  7. tomcat虚拟目录和虚拟主机等相关配置
  8. JQuery闭包,插件的写法
  9. el-select 多选取值_AR? ATOS?? DRA???这些都是英语阅读分级?聊一聊我知道的兰斯值(lexile measure))...
  10. 模型优化:BatchNorm合并到卷积中