`
lxdyycg
  • 浏览: 22699 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

java基础学习总结

    博客分类:
  • j2se
阅读更多
******关键字instanceof的使用:
a instanceof A:判断对象的引用a是否属于对象A、或者A的子类、或者A的间接子类的对象的引用。
使用的前提条件:a的引用类型和A的类型在同一个继承树的分支
******方法的overload:
方法重载的条件:方法名相同;参数列表不同
注意:方法的返回值类型不能作为重载的条件
******方法的override:
方法覆盖的条件:父类和子类中的方法名、方法的返值类型、方法的参数列表都必须相同;
子类所覆盖的方法的访问权限不能缩小;
子类所覆盖的方法不能抛出新的异常类型;
注意: 对象的引用决定访问父类和子类中存在覆盖的情况的变量--》静态绑定;
对象引用所指向的对象决定了访问父类和子类中存在覆盖情况的方法--》动态绑定;
******final用来修饰类、方法、变量
修饰类的时候:该类不能被继承
修饰方法的时候:该方法不能被覆盖
修饰变量的时候:该变量初始化之后不能再被赋值
注:final修饰类和方法时不能和abstract共存;final修饰static变量时,需要在定义或者静态语句块中进行初始化;
final修饰非static变量时,需要在定义、动态语句块、构造方法中进行初始化;
******interface:
interface中的方法是public abstract类型的方法;
interface中没有变量,只有常量(public static final类型的常量)
******Enclosing class(内部类)
分类:
静态内部类(static inner class):与类中的static方法、变量平行;
成员内部类(member inner class):与类中的非static方法、变量平行;
本地内部类(local inner class):定义在方法、语句块中的类
匿名内部类(anonymous inner class)
******断定assertion
assersion expr1:expr2; 判断expr1表达式的boolean值,当为false的时候,会抛出AssertionError异常,此时expr2会被转换为字符串,传给AssertionError构造方法的参数中(expr2是可以省略的);
java -ea 启用除系统类之外的全部类的断定
java -da 关闭除系统类之外的全部类的断定
java -ea:classname 启用某个类的断定
java -da:classname 关闭某个类的断定


******Vector与ArrayList区别:
Vector:线程安全,效率低
Vector<E> v = new Vector<>();
Enumeration<E> e = v.elements();
while(e.hasMoreElements()){
System.out.println(e.nextElement());
}
ArrayList:非线程安全,效率高
ArrayList<E> a = new ArrayList<E>();
Iterator<E> i = a.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
******基本数据类型和相应的包裹类之间的转换:
基本数据类型---->包裹类类型:包裹类.valueOf(基本类型)

包裹类类型---->基本数据类型:包裹类对象.***Value()

字符串---->基本类型:基本类型的包裹类.parse***(字符串)

基本类型---->字符串:String.valueOf(基本类型)
******GUI中的布局管理:
Window、Dialog、Frame的默认布局管理器是BorderLayout
Panel、ScrollPane的默认布局管理器是FlowLayout

******GTI事件:
semantic event(语义事件/高级事件):组件产生的事件
low-level event(低级事件):键盘、鼠标等事件
低级事件先于高级事件发生
******菜单:(待)
菜单组件-->菜单栏-->菜单-->菜单项/菜单
******各个组件对应的事件监听器/事件处理方法:(待)
Frame-->WindowListener/windowClosing(WindowEvent e)
Menu-->ActionListener/actionPerformed(ActionEvent e)
CheckBox-->ItemListener/itemStateChaged(ItemEvent e)
Choice-->ItemListener/itemStateChaged(ItemEvent e)

******对象序列化:
序列化的对象必须实现Serialiazable接口;
在类中定义的transient和static类型的变量是不能被序列化的;
******线程的两种实现方式:
//方式一,通过MyThread类继承Thread类,并且覆盖run()方法
MyThread thread = new MyThread();
//方式二,通过MyRunnable类实现Runnable类,并实现run()方法;同时将MyRunnable类的对象作为
//Thread构造方法的参数
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
注意:方式二的使用更加实用,适合多个相同程序代码的线程处理同一资源的情况,实现了线程与运行代码的分离
******线程的控制:
Thread.sleep(long m)-->当前执行的线程进入阻塞状态,等待时间到后或者调用该线程的
interrupt()方法,进入就绪状态;
Thread.yield()-->当前执行的线程进入就绪状态,让出当前CPU的时间片,让同优先级的线程得到执行


******线程的同步:
方式一:
synchronized(Object object){需要同步的代码块}-->object可以是任意类型的,但必须让所有的线程共享object
方式二:
synchronized方法
public synchronized void method(){}
  等价
public void method(){
synchronized(this){}
}
******程序的可扩展性:
在编写程序的时候,要做到很好的扩展性(数据量很大的时候)

******I/O流:
节点流:
作用于文件:FileInputStream/FileOutputStream、FileReader/FileWriter
作用于内存:ByteArrayInputStream/ByteArrayOutputStream、CharArrayReader/CharArrayWriter
作用于线程:PipedInputStream/PipedOutputStream、PipedReader/PipedWriter
处理流:
提供缓存功能:BufferedInputStream/BufferedOutputStream、BufferedReader/BufferedWriter
提供对象存储和序列化:ObjectInputStream/ObjectOutputStream
提供读写各种数据的功能:DataInputStream/DataOutputStream
打印流:PrintStream、PrintWriter

******Runtime类(java.lang)
public class Runtime extends Object
Runtime代表一个当前程序的一个实例对象,每个java程序都对应一个Runtime类的对象;但是这个类是不允许你用new Runtime()来创建对象的,只能调用类方法getRuntime()来获得当前应用程序的实例(因为其构造方法是私有的)


******将一个文件编码为utf-8格式的文件:
native2ascii -encoding utf-8 source_file_name target_file_name
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics