zoukankan      html  css  js  c++  java
  • java基础

    接口和抽象类有什么区别
    1.接口是公开的,里面不能有私有的方法或变量,而抽象类是可以有私有方法或私有变量的,
    2.另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类只需要重写里面的抽象方法(全部),
    3.接口之间可以实现多重继承(接口与类之间多重实现),而一个类只能继承一个超类,

    4.接口不能有构造函数,抽象类可以有构造函数。

     

    Integer
    是java的一个类。也就是int的包装类。int是基本数据类型,integer是引用类型,包含很多属性和方法,而int只是一个值,没有其他的任何方法和属性了

    int的默认值为0,integer的默认值为null

     

    Java中的泛型是什么 ? 使用泛型的好处是什么?
    泛型赋予了类型参数式多态的能力
    1.是编译时的严格类型检查。有效的避免了运行期的ClassCastException,提高了程序的安全性和健壮性。
    2.泛型消除了绝大多数的类型转换。如果没有泛型,当你使用集合框架时,你不得不进行类型转换。
    3.泛型简化了代码,应用泛型的程序提高程序的可读性,更利于团队的合作开发。
    使用泛型后,规定该集合只能放羊,老虎就进不来了.
    使用泛型后,不需要强制类型转换了


    一个类被声明为private的时候,它当然是内部类,内部类是可以被它的外部类访问到的,所以,可以继承,private和abstract不冲突。

     

    一个java源文件最多只能有一个public类,而且这个源文件的名字必须和这个public类相同。

    但可以没有public类,命名时和此源文件中任何一个类名相同都可以。

     

    静态内部类与非静态内部类的区别:

    1.静态内部类可以有静态成员,非静态内部类不可以有静态成员;

    2.静态内部类只能访问外部类的静态成员(方法、属性),非静态内部类能访问外部类的所有成员;

    3.两种生成对象的方式不同,非静态内部类得先生成外部类对象;

    4.调用静态内部类得成员,可以直接通过类名调用。

     

    String s=new String("xyz")究竟创建String Object分为两种情况:
    1.如果String常理池中,已经创建"xyz",则不会继续创建,此时只创建了一个对象new String("xyz");
    2.如果String常理池中,没有创建"xyz",则会创建两个对象,一个对象的值是"xyz",一个对象new String("xyz")。

     

    构造器Constructor是否可被override?
    构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。

     

    抽象类与普通类的唯一区别:就是不能创建实例对象和抽象类允许有abstract方法。

     

    abstract的method是否可同时是static:不可以

    声明static说明可以直接用类名调用该方法
    声明abstract说明需要子类重写该方法,相互冲突

     

    final不可以修饰接口,但可以修饰接口里面的变量

     

    string stringbuffer stringbuilder的区别:

    String 字符串常量,不可变
    StringBuffer 字符串变量(线程安全)
    StringBuilder 字符串变量(非线程安全)

    速度上:StringBuilder>StringBuffer>String

     

    下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";

    一个对象,因为在编译时相当于直接定义了一个”abcd”的字符串

     

    HashMap和Hashtable的区别:

    1.都实现了map接口;

    2.HashMap准许空(Null)键值(Key);

    3.HashMap非线程安全,Hashtable是线程安全的;

    4.速度上,HashMap>Hashtable;

     

    说出一些常用的类,包,接口,请各举5个

    常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer Class,List,HashMap

    常用的包:java.lang java.io java.util java.sql,javax.servlet,org.apache.strtuts.action,org.hibernate

    常用的接口:List Map ,Servlet,HttpServletRequest,HttpServletResponse,Transaction(Hibernate)、Session(Hibernate),HttpSession

     

    序列化

    什么是序列化:保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来

    将对象保存到一个文件中或者数据库中,或者用套接字在网络上传送对象的时候;

    怎么定义序列化:实现Serializable接口(标注该对象是可被序列化的)

    然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

     

    栈内存:一般放局部变量

    堆内存:一般放用new创建的对象

    当方法中的局部变量使用final修饰后,放在堆中,而不是栈中

     

     

     

     

     

     

     

  • 相关阅读:
    合理使用线程池 ThreadPool.QueueUserWorkItem()
    消息机制
    数组函数的花式表演(1)
    java如何利用google map api V3进行地址解析、反向地址解析
    android intent 传递list或者对象
    分页存储过程
    MD5加密
    GridView 鼠标经过时变色两种方法
    验证码
    windows media player 播放视频
  • 原文地址:https://www.cnblogs.com/stellar/p/5234138.html
Copyright © 2011-2022 走看看