关于Java基础小知识点,你还记得多少?(持续更)

  1. 类的定义也称为类的声明。类中含有两部分元素,分别是数据成员变量成员方法
  2. 类和对象的区别:类是对具有相同特征事物的抽象,而对象时具体的个体,类是对象的抽象,对象是类的实例。
  3. 在类的定义中还要可以定义一种特殊的成员,用static修饰,称为静态成员和类成员,包括静态变量和静态方法。
  4. 静态方法和静态变量一运行就给他们分配地址空间了类中静态方法和静态变量只属于类,直接可以调用;而普通的成员方法和变量则要通过类的对象去调用
  5. 在什么情况下使用静态变量:有时一个变量被类的多个实例对象所共享,以实现多个对象之间的通信,或用于记录在被创建的对象的个数等。
  6. 不可,static是静态常量,属于类,调用非static变量需要实例(new),而类的加载先于实例的创建,故在静态环境中,不可以访问非静态
  7. 静态变量是唯一为类中所有对象共享的变量
  8. Null引用和”” 的区别:null是没有地址,""是有地址但是里面的内容是空
  9. New操作符完成三个功能:创建一个空对象,属性和方法被加入到this引用的对象中,新创建的对象由this所引用,并且最后隐式返回this
  10. Public 表示公有的,任何对象都可以访问。Private只能被这个类本身访问,在类外不可见。Protected修饰的成员是受保护的,只可以被同一包下以其子类的实例对象访问。
  11. 自动装箱:将基本数据类型转换成对应的包装类的过程称为自动装箱、反之为拆箱
  12.  由于数组在创建时,系统将自动给length(length是数组类中唯一的数据来成员变量)赋值,源因此数组一旦创建完毕,其大小就固定了。当程序运行时就可以使用length来进行数组边界检查,若发生越界访问,则抛出异常。
  13. 数组的初始化分为静态初始化和动态初始化。静态初始化就是定义数组的同时给数组元素赋初值。动态初始化时,则使用运算符new为数组分配空间。
  14. String类用于处理不变字符串,StringBuffer用于处理可变字符串
  15. String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。
  16. 定义了方法却没有定义具体实现的类成为抽象类。在java中可以通过关键字abstract把一个类定义为抽象类,每一个未被定义具体实现的方法就是抽象方法
  17. 被final修饰的类,成员变量或者方法,都不可以被改变。类不可以有子类,方法不可以被覆盖,成员变量的值不能被改变。
  18. 调用稍后可能被覆盖的方法叫做动态绑定,在编译过程中能确定调用方法的处理方式叫静态绑定。
  19. 方法重载一般体现为构造器的有参无参,主要体现在方法参数的类型和数量不同,方法名相同,与访问修饰符和返回值类型都是无关的。
  20. 方法重写(覆盖)一般在继承中,子类重写父类的方法,既然是重写一遍,那么方法名和参数部分一定是相同的。只是实现的功能不同。覆盖时:方法允许访问范围不能小于原方法,所抛出的异常不能比原方法更多。(必须继承)
  21. 将子类的对象赋给父类变量,叫做对象转型
  22. Java允许一个类实现多个接口,从而实现多重继承的能力,并且有更加清晰的结构。
  23. 同一方法下调用指令在不同的上下文中做不同的事情,这就是多态。
  24. This:是指所在对象本身,可指代所在的具体对象,通过this可以引用所在对象的成员变量和方法,也可以在其中一个构造方法引用另一个构造方法
  25. StringBuffer常用的方法:append(),将字符串添加到当前字符串的最后。Replace(int start,int end,String str)使用给定str替换从start到end之间的子串;capacity()返回当前容量。
  26. 方法签名:方法名称加上方法的参数列表(包括方法中参数的个数,顺序和类型)
  27. 类的Vector可以起到动态数组的作用
  28. Java提供派生机制,允许程序员用以前已定义的类来定义一个新类,新类称作  子类
  29. 重载方法的属于同一个类,覆盖的方法属于父类 子类中
  30. 不同类型的输入,输出源抽象为 流。输入流:InputStream,输出流:OutputStream
  31. 使用缓冲输出流的好处:加快数据传输速度,提高数据输出效率。
  32. 为什么关闭一个缓冲区输出流之前,应使用flush()方法?:在使用缓冲输出时,数据的末尾一般都会有一部分数据由于数量不够一批次,而存留在缓冲区里,调用flush()可强制提交这部分内容。
  33. Java通过读者和写者,是实现了对不同平台之间数据流中的数据进行转换。
  34. 把对象转换成字节序列的过程称为对象的序列化,把字节序列化恢复为对象的过程称为对象的反序列化。是为了解决对象流进行读写操作时引发的问题。
  35. 斜体属于文字基本样式属性
  36. 不包含本地代码的Swing组件被称为轻量级组件,否则是重量级组件
  37. 创建窗口用的JFrame和JButton类定义在javax.swing包中
  38. 负责安排组件显示方式的是  布局管理器
  39. 线程中Thread类中:最高优先级,值为10;默认为5;最低为1;
  40. 能够暂时停止当前线程运行的方法:sleep()/yield()
  41. Java中实现同步机制的三个方法是wait()。Notify()和notifyALL();
  42. 线程是一个轻量级的子进程,是最小的处理单元。多线程和多进程都用于实现多任务处理。
  43. 创建线程的方法:继承Thread类创建线程;实现Runnable接口创建线程。
  44. Serializable作用是序列对象化类对象,接口中没有定义任何方法,只是作为一个标记来指示实现该接口的类可以进行序列化,只有当一个类声明实现了该接口才可以序列化
  45. JList常用的构造方法:JList()构造一个空列表;JList(Object[] listData):构造一个列表,列表的可选项由对象数组listData指定;JList(Vector listData)构造一个列表,使其显示指定Vector中的元素。
  46. 通过sleep,wait,join将线程挂起,而通过notify,notify-all将线程唤醒
  47. 序列化只能保存对象的非静态成员变量
  48. Frame被称为容器组件,可以包含组件。
  49. 布局管理器FlowLayout每行可以放 一个组件
  50. 在java中用关键字sysnchronized来声明操作共享数据的一个方法或一段代码。
  51. 构造方法是特殊方法,在创建对象实例时通过new运算符自动调用。构造方法的名字和类名相同,通常为public,没有返回值,不能从父类继承。为了方便创建实例,一个类可以有多个具有不同参数列表的构造方法。一般来说构造方法应该为所有的成员变量赋初值。
  52. Javac程序可以将java程序编译成字节码
  53. Switch语句中条件表达式的计算结果必须为int/char类型,即是int型赋值相容的。
  54. 同一个类中有多个方法有相同及不同参数列表,这种情况称为方法的重载
  55. Java程序结构包含:package语句,import,具有public权限的类定义,类定义,接口定义。
  56. Java是如何实现“对象互斥锁”?:关键字volatile声明一个共享数据;关键字synchronized声明共享数据或代码
  57.  简单的输入输出:Scanner类,NumberFormat,DecimalFormat类。
  58. Java中调用interrupt()方法中断线程的执行
  59. Java程序分为java应用程序和java小程序
  60. 线程的优先级高低可能影响线程执行先后顺序,但不是阻塞的原因
  61. Java异常分三类:受检异常,运行时异常,错误。受检异常是程序执行期间发生的严重事件的结果,运行异常通常是程序中逻辑错误的结果。错误是指发生了不正确的情况,这些情况比较严重一般程序很难处理。
  62. 数据流:指一组有顺序的,有起点和终点的字节集合。
  63. 转换的一般原则是位数少向位数多的转化。当多的向少的转化则需要强制转换。例如:float--》int
  64. OutputStream只写不读,InputStream只读不写
  65. Swing组件基本都是以J开头
  66. JVM通过解释器可以执行java编译后生成的类文件
  67. Java源文件中如果有多个类,则最多只能有一个public类型的类

你可能感兴趣的:(java,面试储备,java,面试)