MyException - 我的异常网
当前位置:我的异常网» Java面试 » JAVA面试题解决思路

JAVA面试题解决思路(2)

www.MyException.Cn  网友分享于:2015-08-26  浏览:12次

 ==会产生编译错误,如果两边类型不匹配的话。
 equals() 返回 false 如果对象类型不同,但不产生 编译错误。
15.Java成员变量默认初始化的值。
成员变量类型 取值
  byte-0 short-0 int-0 long-0L
  char-'\u0000' float-0.0F double-0.0D boolean-false
所有引用类型 null
16. integer和long 操作 /和% 的话, 可能会抛出ArithmeticException,比如除0。但是 float与
double不会,即使是除以0。
double a=0;a=a/0;则a等于NaN。
17.普通内部类不可以拥有静态变量,但静态内部类可以。
File类没有 任何 处理文件内容的方法。
InputStream 和 OutputStream 是 抽象类, DataInput 和 DataOutput是 接口。DataInputStream实现了DataInput接口。
18.面向对象的特征有哪些方面 ?
答案:最基本特征:封装,继承,多态。
其他特征:抽象关联,聚合,组合,内聚,耦合
19.String是最基本的数据类型吗? String 和StringBuffer的区别?
答案:String不是一最基本的数据类型。
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常
进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法 
20.int 和 Integer 有什么区别 
答案:int是基本类型。Integer是引用类型。Integer可以把String转换成int。
21.运行时异常与一般异常有何异同? 
答案:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
22.说出一些常用的类,包,接口,请各举5个?
答案:常用类-System,ArrayList,FileInputStream,Thread,Socket.
常用的包-java.io,java.util,java.sql,java.javax.naming,java.net
常用接口-Collection,Connection, Cloneable, Comparable, Serializable
23.说出ArrayList,Vector, LinkedList的存储性能和特性.
答案:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 
24.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 
注:因为这4个线程共享J,所以线程类要写到内部类中。
加线程:每次对j加一。
减线程:每次对j减一。
Java code

public class TestThreads
{
    private int j=1;
    //加线程
    private class Inc implements Runnable
    {
        public void run()
        {
            for(int i = 0;i < 10;i++)
            {
                inc();
            }
        }
    }
    //减线程
    private class Dec implements Runnable
    {
        public void run()
        {
            for(int i = 0;i < 10;i++)
            {
                dec();
            }
        }
    }
    //加1
    private synchronized void inc()
    {
        j++;
        System.out.println(Thread.currentThread().getName()+"-inc:"+j); 
    }
    //减1
    private synchronized void dec()
    {
        j--;
        System.out.println(Thread.currentThread().getName()+"-dec:"+j); 
    }
    //测试程序
    public static void main(String[] args)
    {
        TestThreads test = new TestThreads();
        //创建两个线程类
        Thread thread = null;
        Inc inc = test.new Inc();
        Dec dec = test.new Dec();
        //启动4个线程
        for(int i = 0;i < 2;i++)
        {
            thread = new Thread(inc);
            thread.start();
            thread = new Thread(dec);
            thread.start();
        }
    }
}

25.数组转换问题。
Object[] object = new Person[2];
Person [] person = new Person [3];
person = (Person [])object;//可以转换
int[] i = new int[2];
long[] l = new int[3];
i = (long[])l;//不可以转换
26.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。 
Server.java:源代码
Java code
import java.net.*;
import java.io.*;

class  Server
{
        public Server()
        {
            BufferedReader br = null;
            PrintWriter pw = null;
            try
            {
                ServerSocket server = new ServerSocket(8888);//建立服务器端
                Socket socket = server.accept();//监听客户端
                //得到该连接的输入流
                br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                //得到该连接的输出流
                pw = new PrintWriter(socket.getOutputStream(),true);
                //先读后写
                String data = br.readLine();
                System.out.println(data);//输出到控制台
                pw.println(data);//转发给客户端
            }catch(Exception e)
            {
                e.printStackTrace();
            }
            finally
            {
                try
                {
                    //关闭读写流
                    br.close();
                    pw.close();
                }catch(Exception e)
                {}
            }
        }
        public static void main(String[] args) 
        {
            Server server = new Server();
        }
}

文章评论

老程序员的下场
老程序员的下场
鲜为人知的编程真相
鲜为人知的编程真相
代码女神横空出世
代码女神横空出世
中美印日四国程序员比较
中美印日四国程序员比较
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
编程语言是女人
编程语言是女人
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员的鄙视链
程序员的鄙视链
程序员和编码员之间的区别
程序员和编码员之间的区别
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
总结2014中国互联网十大段子
总结2014中国互联网十大段子
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
程序员都该阅读的书
程序员都该阅读的书
我的丈夫是个程序员
我的丈夫是个程序员
一个程序员的时间管理
一个程序员的时间管理
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
Java程序员必看电影
Java程序员必看电影
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
那些争议最大的编程观点
那些争议最大的编程观点
为什么程序员都是夜猫子
为什么程序员都是夜猫子
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员应该关注的一些事儿
程序员应该关注的一些事儿
我是如何打败拖延症的
我是如何打败拖延症的
程序员必看的十大电影
程序员必看的十大电影
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
 程序员的样子
程序员的样子
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
漫画:程序员的工作
漫画:程序员的工作
每天工作4小时的程序员
每天工作4小时的程序员
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
10个调试和排错的小建议
10个调试和排错的小建议
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有