⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1_java学习笔记.txt

📁 偶去年8月份到11月份
💻 TXT
📖 第 1 页 / 共 4 页
字号:
1. JFC预览
答:1) Java基础类是关于GUI组件和服务的完整集合,它大大简化了健壮Java应用程序的开发和实现;
    2) Java基础类其中的一部分就是Swing, Swing是构筑在AWT上层的一些组件的集合;
    3) Java基础类主要包含5个API:
       a. AWT: 为各类Java应用程序提供了多种GUI工具;
       b. Java2D: 一图形API, 为Java应用程序提供了一套高级的有关二维图形图像处理的类;
       c. Accessibility API: 提供了一套高级工具,用以辅助开发使用非传统输入和输出的应用程序。
       d. Drag & Drop:提供了Java和本地应用程序之间的互操作性,用来在Java应用程序和不支持Java技术的应用程序之间交换数据。
       e. Swing:JFC模块的重点,用来进行基于窗口的应用程序开发,它提供了一套丰富的组件和工作框架,以指定GUI如何独立于平台地展现其视觉效果。

2. Swing介绍
答:1) 它是围绕着实现AWT各个部分的API构筑的;
    2) 大多数组件不象AWT那样使用与平台相关的实现。

3. 导入Swing过程
答:1) 导入Swing包;
    2) 选择外观和感觉(getLookAndFeel());
    3) 设置窗口容器
       a. JFrame与Frame相似;
       b. 你不能直接将组件加入到JFrame中;
       c. 一个content pane包含了除菜单条外所有Frame的可视组件

4. JComponent类
答:1) 所有Swing都作为JComponent的子类来实现;
    2) Swing组件从JComponent继承了如下功能:
       a. 边框(setBorder()方法指定在组件周围显示的边框, EmptyBorder的实例来指定一个组件在其周围留有一定的额外空间);
       b. 双缓冲(可以改善一个频繁被改变的组件的外观,缺省是双缓冲);
       c. 提示框(通过用setToolTipText()方法来指定一个字符串,提供给用户有关某个组件的帮助信息)
       d. 键盘导航
       e. 应用程序范围的可插式外观和感觉


Java小程序

1. 什么是Applet?
答:1) Applet是能够嵌入到一个HTML页面中,且可通过Web浏览器下载和执行的一种Java类;
    2) Applet通过浏览器或applet viewers运行;

2. Applet的安全限制
答:1) 运行时执行另一程序;
    2) 任何文件的输入/输出;
    3) 调用本地方法; 
    4) 尝试打开除提供Applet的主机之外的任何系统的Socket。

3. Applet和AWT的层次
答:java.lang.Object
           |
           |
   java.awt.Component
           |
           |
   java.awt.Containter
           |
           |
    java.awt.Panel
           |
           |
   java.applet.Applet

4. Applet的方法和Applet的生命周期
答:1) init()
       a. 只在Applet首次装入时被调用, 并且在调用start()之前执行完成;
       b. 可用于初始化数据值;
    2) start()
       a. 当Applet成为可见时运行
    3) stop()
       a. 当Applet成为不可见时运行

5. Applet标记
答:1) code=appletFile.class  给定了含有编译好的Applet子类的文件名;
    2) width = pixels  height = pixels  给出了Applet显示区域的初始宽度和高度;
    3) codebase = codebaseURL 指定了Applet的URL(包含有Applet代码的目录, 如该属性未指定,则采用文档的URL);
    4) align = alignment  指定了Applet的对齐方式
    5) <param name = appletAttribute1 value = value>  提供参数
   
6. Applet和浏览器的交互方法
答:1) getParameter(String name): 取得参数;
    2) getCodeBase(): 返回一个描述Applet类文件本身源目录的URL对象;
    3) getDocumentBase(): 返回一个描述装载Applet的HTML文件的URL对象;


2004-9-1   星期三    雨

线程

1. 什么是线程?
答:1) 一个线程是一个程序单个的连续控制;
    2) 一个软件能处理一系列的线程构造;
    3) 线程能同时运行,彼此独立;
    4) 包为java.lang.Thread;

2. 线程或上下文的构成
答:1) 一个虚拟处理机;
    2) CPU执行的代码
       代码可以或不可以由多个线程共享,这和数据是独立的。两个线程如果执行同一个类的实例代码,则它们可以共享相同的代码。
    3) 代码操作的数据
       数据可以或不可以由多个线程共享,这和代码是独立的。两个线程如果共享对一个公共对象的存取,则它们可以共享相同的数据。

3. 线程机制
答:1) 当线程开始,run()方法里代码被执行;
    2) 创建线程的二种方法:
       a. 继承Thread类;
       b. 实现Runnable接口。

4. 通过继承Thread类创建一个线程
答:1) 定义
       public class MyThread extends Thread{
         public void run(){...}
       }
    2) 初始化
       MyThread testThread = new MyThread()

5. 通过实现runnable接口创建一个线程
答:1) 定义
       public class MyRunnable implements Runnable {
         public void run(){...}
       }
    2) 初始化
       MyRunnable testRunnable = new MyRunnable();
       Thread testThread = new Thread(testRunnable)

6. 二种创建线程方法的比较
答:1) 继承Thread类是面向对象编程;
    2) 实现Runnable接口解决了单继承

7. 线程调度
答:1) 线程是抢占式的,但并不一定是分时的;
    2) 有多个线程可运行,但只有一个线程在实际运行。
    3) 所有可运行线程根据优先级保存在池中,当一个被阻塞的线程变成可运行时,它会被放入相应的可运行池,优先级最高的非空池中的线程得到处理机时间。
    4) sleep()调用会给较低优先级线程一个运行的机会,yield()方法只会给相同优先级线程一个执行的机会。

8. 线程的基本控制
答:1) 启动线程:使用start()方法,这意味着线程可以由JVM调度并执行,并不意味着线程就会立即执行。
    2) 终止一个线程:当一个线程结束运行并终止时,它就不能再运行了。
    3) 测试一个线程:isAlive()方法用来确定一个线程是否仍是活的。活着的线程并不意味着线程正在运行。
    4) 延迟线程:
       sleep():使线程停止一段时间,间隔期满后,线程不一定立即恢复执行。
       join():挂起当前线程,直至它所调用的线程终止。

9. synchronized关键字
答:1) 标识一组变量应该被一个线程独占地使用;
    2) public void push(char c){
         synchronized(this){
         ...
         }
       }
       public synchronized void push(char c) {
       ...
       }
    3) 所有对易碎数据的存取应当是同步的,由synchronized保护的易碎数据应当是private的。

10. 线程交互
答:1) wait():交出锁和CPU的占用;
    2) notify():将从对象的等待池中移走一个任意的线程,并放到锁池中,那里的对象一直在等待,直到可以获得对象的锁标记。
    3) notifyAll(): 将从等待池中移走所有等待那个对象的线程并放到锁池中,只有锁池中的线程能获取对象的锁标记,锁标记允许线程从上次因调用wait()而中断的地方开始继续运行。

2004-9-2   星期四    阴

流式I/O和文件

1. 流和基础知识
答:1) 一个流是字节的源或目的
    2) 二种基本的流是:输入流和输出流
       
2. InputStream方法
答:1) 三个基本的read()方法
       a. int read(): 从流里读出的一个字节或者-1;
       b. int read(byte[]):将数据读入到字节数组中,并返回所读的字节数;
       c. int read(byte[], int , int):两个int参数指定了所要填入的数组的子范围。
    2) 其它方法
       a. void close(): 关闭流,如使用过滤器流,关闭栈顶部的流,会关闭其余的流。
       b. int available(): 返回可从流中读取的字节数。
       c. skip(long): 丢弃了流中指定数目的字符。

2. OutputStream方法
答:1) 三个基本的read()方法
       a. void write(): 
       b. void write(byte[]):
       c. void write(byte[], int , int):
       写输出流。
    2) 其它方法
       a. void close(): 关闭流,如使用过滤器流,关闭栈顶部的流,会关闭其余的流。
       b. int flush(): 允许你强制执行写操作。

3. FileInputStream和FileOutputStream
答:1) 结点流,使用磁盘文件。
    2) 要构造一个FileInputStream, 所关联的文件必须存在而且是可读的。
    3) 要构造一个FileOutputStream而输出文件已经存在,则它将被覆盖。
       FileInputStream infile = new FileInputStream("myfile.dat");
       FIleOutputStream outfile = new FileOutputStream("results.dat");

4. BufferInputStream和BufferOutputStream
答:过滤器流,可以提高I/O操作的效率

5. DataInputStream和DataOutStream
答:通过流来读写Java基本类,注意DataInputStream和DataOutputStream的方法是成对的。

6. PipedInputStream和PipedOutputStream
答:用来在线程间通信.

7. Reader和Writer
答:1) Java技术使用Unicode来表示字符串和字符,而且提供16位版本的流,以便用类似的方法处理字符。
    2) InputStreamReader和OutputStreamWriter作为字节流与字符流中的接口。
    3) 如果构造了一个连接到流的Reader和Writer,转换规则会在使用缺省平台所定义的字节编码和Unicode之间切换。

8. 文件
答:1) 一个文件对象可以代表文件或者目录;
    2) File类处理所有磁盘操作;
    3) 构造方法:
       a. File(File parent, String child):
       b. File(String pathName);
       c. File(String parent, String child);
       d. File(URI uri)
    4) 目录分隔
       File.separator
9. 随机存取文件
答:1) 实现了二个接口:DataInput和DataOutput;
    2) 只要文件能打开就能读写;
    3) 通过文件指针能读写文件指定位置;
    4) 可以访问在DataInputStream和DataOutputStream中所有的read()和write()操作;
    5) 在文件中移动方法:
       a. long getFilePointer(): 返回文件指针的当前位置。
       b. void seek(long pos): 设置文件指针到给定的绝对位置。
       c. long length(): 返回文件的长度。

10. 串行化
答:1) 将一个对象存放到永久存储器上称为保持;
    2) 只有对象的数据被串行化;
    3) 标记为transient关键字的数据不被串行化。


2004-9-3   星期五    阴

网络

1. socket
答:1) 在一个特定编程模型下,进程间通信链路的端点。
    2) 一个socket包括两个流:一个输入流(读取另一个进程所写的数据)和一个输出流(向另一个进程发送数据)。

2. Java技术中的网络
答:1) 连接的地址(Host name 或者 IP Address);
    2) 端口号(范围从0-65535, 小于1024的端口号保留给预定义的服务);

3. Java中的网络模型:
答:1) 服务器分配一个端口号,如果客户请求一个连接,服务器使用accept()方法打开socket连接;
    2) 客户在host的port端口建立连接;
    3) 服务器和客户使用InputStream和OutputStream进行通信。

4. 建立服务器端
答:1) ServerSocket server = new ServerSocket(post)
    2) Socket connection = server.accept();
    3) ObjectInputStream input = new ObjectInputStream(connection.getInputStream());
       ObjectOutputStream output = new ObjectOutputStream(connection.getOutputStream());
    4) 处理输入和输出流;
    5) 关闭流和socket。

5. 建立客户端
答:1) Socket connection = new Socket(127.0.0.1, 7777);
    2) ObjectInputStream input = new ObjectInputStream(connection.getInputStream());
       ObjectOutputStream output = new ObjectOutputStream(connection.getOutputStream());
    3) 处理输入和输出流;
    4) 关闭流和socket。

6. URL连接
答:1) URL和URLConnection类封装了大量复杂的从远端服务器获取信息的操作;
    2) 支持HTTP和FTP资源
       URL url = new URL("http://www.enterinfo.net")
       URL url = new URL("ftp://TonyDeng@enterinfo.net")
    3) 打开一个网络连接
       URLConnection urlconn = url.openConnection()
    4) 打开一个输入流
       inputStream in = url.openStream()

7. UDP socket
答:1) 无连接的协议
    2) 不保证消息的可靠传输
    3) 它们由Java技术中的DatagramSocket和DatagramPacket类支持

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -