Applet

Applet 生命周期方法:init( )、start( )、stop( )、destroy( )。

Applet 生命周期的方法,顺序依次为:init( )、start( )、stop( )、destory( )。

程序中的init( )方法用来在加载Applet时完成初始化工作,接下来就调用start( )方法,使Applet成为激活状态。

Applet的方法中,不能由浏览器自动调用的是main

Applet是工作在图形方式下的,向Applet中绘图、显示字符串,都要用paint( )方法,

paint( ) 方法具体执行Applet的绘制功能。

init( ) 方法实现设置布局管理器、数据初始化、放置一些构件等功能,该方法在Applet运行时首先由浏览器调用,使Applet执行一些基本初始化。

start( ) 方法使Applet成为激活状态,该方法在Applet每次显示时都要调用。

repaint( ) 方法:主要用于Applet的重新显示,它调用update()方法实现对Applet的更新。

Swing与Awt

Swing是由100%纯Java实现的,Swing组件是用Java实现的轻量级( light-weight)组件,没有本地代码,不依赖操作系统的支持,这是它与AWT组件的最大区别。

导入了Swing,继承JApplet,不导入的话,继承Applet

JOptionPane中参数messageType的含义是______。

messageType:定义message的样式。

optionType:定义在对话框的底部显示是选项按钮的集合。

 对象锁在如下几种情况下持有线程返还:

(1)当synchronized()语句块执行完后。

(2)当在synchronized()语句块中出现例外(exception)。

(3)当持有锁的线程调用该对象的wait()方法。此时该线程将释放对象的锁,而被放入对象的wait pool中,等待某事件的发生。

    而suspend()方法只是基本线程控制方法,在一个线程中调用t.suspend(),将使t暂停执行,要想恢复线程,必须由其他线程调用t.resume()恢复t的执行。

 一个Java Application运行后在系统中作为一个独立的进程参与系统调度,但在该进程中可以通过创建Thread类的实例的方法来创建多个线程。

在一个进程中的各个线程之间拥有共同的上下文环境。

移位运算符

    1、算术右移运算符 >>

    用来将一个数的二进制位序列右移若干位。

    2、算术左移运算符 <<

    用来将一个数的二进制位序列左移若干位。

    3、逻辑右移运算符 >>>

    用来将一个数的各二进制位添零右移若干位。

易错题:

在Java语言中,有时一个方法生成一个异常,但该方法并不能确定如何处理此异常,如找不到文件之类的异常,必须将异常传递给调用方法,由调用它的方法来处理,
这种时候方法用声明异常抛出,让异常对象可从调用栈向后传递,直至有相应的方法捕获它为止。所以当方法遇到异常又不知如何处理时,应声明异常。

当方法遇到异常又不知如何处理时,下列___b___做法是正确的。

a 抛出异常

b 声明异常

TextField的构造函数,前一个参数是文本域中初始的字符串的显示值,而后一个是推荐的显示宽度,以列数表示,

在构造文本域的时候会将这个大小设置为最佳大小,如果容器的限制使得文本域不能显示这么多也没有办法,一般来说是比这个大小大的,而且即使宽度很小,

你也可以在文本域的一行中输入很长的字符串,只要不使用回车,在超过显示宽度后文本域会自动出现水平滚动条(没有被设置为关闭,缺省是不关闭的),

而文本域的缺省编辑方式是可编辑的,一个文本域只能使用一种字体,这个字体可以在运行的过程中动态的改变,但是文本域中的所有字符串都将使用这个字体显示。

接口是不包含成员变量和方法实现的抽象类,它只包含常量和方法的定义。接口的主要功能是:

(1)不管类的层次,可实现互不相关的类具有相同的行为。

(2)通过接口说明多个类所需实现的方法。

(3)通过接口可以了解对象的交互界面,无需了解对象所对应的类。

由于接口不包括任何实现,所以与存储空间没有任何关系。

Java的线程调度策略是一种基于优先级的抢先式调度。

这种调度策略的含义是:Java基于线程的优先级选择高优先级的线程进行运行。该线程(当前线程)将持续运行,直到它中止运行或其它更高优先级程成为可运行时

在线程的几种基本控制方法中,sleep()方法使比其低的优先级线程运行;yield()方法只让给同优先级运行。

抢先式调度可能是分时的,即每个池中的轮流运行;也可能不是,即线程逐个运行。所以即使具有相同优先级的多个线程的调度也不一定是分时的,它的运行方式是由具体JVM而定的

在Java中经常使用内部类,但一般采用内部类的原因有以下几点:
1、内部类的对象可以访问外部类的成员和方法。
2、实现事件监听时,采用内部类、匿名类容易实现。
3、编写事件驱动程序,内部类很方便。btn.addActionListener(this);  swing 按钮添加事件

btn.addActionListener(new ActionListener()   
{
    public void actionPerformed(ActionEvent event)
    {
         ......
    }
});

java.util.EventObject是事件状态对象的基类,它封装了事件源对象以及和事件相关的信息。所有java的事件类都需要继承该类。 在util包下

变量的作用域

在方法中定义的局部变量在方法退出时被自动撤消,只有静态变量不会被撤消

如果未对变量指定修释符,在JAVA中将自动将其设置为局部变量,局部变量也叫自动变量,

对于方法外面的变量,将在对象被创建时一起被创建,其初值可通过构造函数对其进行初始化。

如果方法中是一个简单类型的形参,由于其是按值传递,在编译时会占用存储空间,直到该对象释放时为止。

如果形参为一个类类型,其参数是按地址传递,编译时不会为其分配空间,因此该参变量不会存在于方法中。

完全二叉树中度为1的结点数为0或1

n个结点的完全二叉树的深度为[log2^n]+1

深度为m的满二叉树有2^m-1个结点。

对于长度为n的有序线性表,在最坏情况下,二分法查找只需比较log2^n次,而顺序查找需要比较n次

在最坏的情况下,排序需要比较次数为n(n-1)/2  :

冒泡排序法

快速排序法

简单插入排序法

简单选择排序法

最坏情况需要O(n1.5)次比较。(大写O是算法复杂度的表示方法):

希尔排序法

最坏情况需要O(nlog2n)次比较:

堆排序法

相比以上几种(除希尔排序法外),堆排序法的时间复杂度最小。

问题:MVC中的控制器用来控制视图的显示 (x) 不是控制显示

MVC模式代表Model-View-Controller(模型-视图-控制器)模式。这种模式用于应用程序的分层开发。

    Model(模型)-模型代表一个存取数据的对象或JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。

    View(视图)-视图代表模型包含的数据的可视化。

    Controller(控制器)-控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开

变量中的编码

    ASCII是用8位表示一个字符。

    unicode是用16位表示一个字符,因此unicode中汉字和英文字母占用的空间是一样的

public JFrame()构造方法构造了一个 初始时不可见的  没有标题的新窗体。

public JFrame(String title)构造方法创建了 一个初始不可见,但有标题的新窗体

 JOptionPane可实现消息对话框、输入对话框、确认对话框和选择性对话框。

 showConfirmDialog():显示确认对话框。

    JOptionPane.showMessageDialog( null , "要显示的信息内容" ,"标题" , optionType);

    optionType:它决定在对话框的底部所要显示的按钮选项。一般可以为DEFAULT_OPTION、YES_NO_OPTION、YES_NO_CANCEL_OPTION、OK_CANCEL_OPTION,

派生出大多数Swing组件的类是__Container____。

容器指所有由Container派生的类,可以包含由Component派生的任何类的对象,如Window类和Panel类都由容器类Container直接派生而来;Frame继承自Window类;Panel类派生

了Applet类。其他容器还有面板Panel、滚动条ScrollPane和选项面板OptionPane。

     1、public指明变量为公有。

    2、protected指明变量为保护访问。可被同一个包中其他类、不同包中该类的子类以及该类自己访问和引用。

    3、final指明变量为常量。

    4、默认(friendly)即无访问控制符,表示只能被同一个包中的类访问和引用

当检索一个压缩文件时,首先要建立压缩文件输入流对象。。该对象以FileInputStream对象为参数    

在Java中提供了结构化的异常处理功能,其主要是通过try...catch语句来实现的。

在Java中可以将可能产生异常的代码放入到try子句中,如果产生异常,将会执行catch子句。

如果有多个异常,则应先处理子类异常,再处理父类异常,否则后面的异常处理,将得不到执行。

JScrollPane。

在JScrollPane类中,主要是通过JViewport(视口)类来实现内容的滚动的。JViewport是一种特殊的对象,用于查看基层构件,滚动条实际上就是沿着构件移动视口,同时描绘出它能看

到的内容。

Java虚拟机执行的特点

Java语言的执行模式是半编译和半解释型。Java编写好的程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行。字节代码也是一种二进制文件,但不能直接在操作系

统上运行,它可看作虚拟机的机器码。虚拟机把字节代码程序与各操作系统和硬件分开,使Java程序独立于平台。

 private修饰的变量说明变量为私有访问。只能被该类自己访问或调用,是对成员变量的高级保护。

Java中常量null,false,true,new,this,const,break都是小写。

流,最早从C语言中引入的。其可以看成是 一个流动的数据缓冲区 。数据从数据源方向经过缓冲区流向数据的目的地。

在传送的过程中,其传送方式是串行的。在Java中的java.io包中定义了Java中常见流的接口与类。

其中包括两个最基本的流的抽象类,它们分别是OutputStream与InputStream。其余的流都分别从这两个基本类中继承而来。

WindowListener中

windowOpened 是打开窗体后将要执行的方法。

windowClosed 是关闭窗体后将要执行的方法,

windowClosing 是在关闭窗体时要执行的方法,该方法可以执行窗体的关闭功能。

windowDeactivated 是窗体处于非激活时将会执行该方法。

例题

容器 java.awt.Container 是Component 的子类,一个容器可以容纳多个构件,并使他们成为一个整体。

    常用的容器有Frame(窗口容器),Panel(面板容器),Applet(java小程序的容器),Dialog(对话框容器)等

    Scrollbar是滚动条,它是一个构件,并不是容器。

在Java中可通过 两种方法 来产生一个线程。

在Java中,可以通过继承类Thread来构造线程,即通过继承Thread类并覆盖其中的run方法来生成一个线程。

同时也可以通过建立一个实现了Runnable接口的对象,并以其作为线程的目标对象来建立一个线程,通过这种方法可以打破Java中单一继承类方式的限制,

在这种方法中,所有实现Runnable接口的对象都是以线程方式在运行。