【精品】java复习材料_第1页
【精品】java复习材料_第2页
【精品】java复习材料_第3页
【精品】java复习材料_第4页
【精品】java复习材料_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品精品 java java复习材料复习材料 1JFrame JFrameTest java CopyrightxxBinzhou University All rightsreserved public classJFrameTest public staticvoid main String args TODO Auto generated methodstub JFrameframe new JFrame 第一个窗口 Toolkit tk Toolkit getDefaultToolkit Dimension d tk getScreenSize frame setSize d width 3 d height 3 fr ame setLocation d width 3 d height 3 frame setResizable fa lse frame setLayout new FlowLayout JButton click new JButton click me frame add click frame setDefaultCloseOperation JFrame EXIT ON CLOSE frame setVisible true EVENT EventHandl erTest3 java CopyrightxxBinzhou University All rightsreserved package bzu java gui p2 event3 class MyFirstWindowextends JFrame public voidstartFrame this setTitle 第一个窗口 Toolkit tk Toolkit getDefaultToolkit Dimension d tk getScreenSize this setSize d width 3 d height 3 thi s setLocation d width 3 d height 3 this setResizable false this setLayout new FlowLayout JButton click new JButton click me 匿名内部类的形式实现事件处理ActionListener listener new ActionListener Override public void actionPerformed ActionEvent e int result JOptionPane showConfirmDialog null 你确定要退出程序 吗 if result JOptionPane YES OPTION System exit 0 如果点击的是确定按钮 则退出程序 click addActionLi stener listener this add click this setDefaultCloseOperat ion JFrame EXIT ON CLOSE this setVisible true 编写事件 处理者 放在外部类的里面class ClickHandlerimplements ActionListener 实现接口中的方法 当事件发生时 此方法里面 的语句会自动被调用public void actionPerformed ActionEvent e JOptionPane showMessageDialog null Don t clickme int result JOptionPane showConfirmDialog null 你确定要退出程序 吗 if result JOptionPane YES OPTION System exit 0 如果点击的是确定按钮 则退出程序 2 public classEventHandlerTest3 public staticvoid main String args TODO Auto generated methodstub new MyFirstWindow startFrame MENU MenuTest java Copyrig htxxBinzhou University All rightsreserved package bzu java gui p3 class MyFirstWindowextends JFrame private JTextAreashow public voidstartFrame this setTitle 第一个窗口 Toolkit tk Toolkit getDefaultToolkit Dimension d tk getScreenSize this setSize d width 3 d height 3 thi s setLocation d width 3 d height 3 this setResizable false JMenuBar bar new JMenuBar 创建菜单栏JMenu file new JMenu 文件 创建菜单JMenuItem openItem new JMenuItem 打开 file add openItem 将菜单项添加到菜单op enItem addActionListener new ActionListener public voidactionPerformed ActionEvent arg0 openDialog bar add file 将菜单添加到菜单栏th is setJMenuBar bar 将菜单栏设置在窗口上show new JTextArea 6 15 创建一文本域组件this add show 默认添加 到中央区域this setDefaultCloseOperation JFrame EXIT ON CLOS E this setVisible true 自定义打开对话框的方法 在事件 处理的方法中调用该方法void openDialog TODO Auto generated methodstub JFileChooserchooser new JFileChooser int result chooser showOpenDialog this if result JFileChooser APPROVE OPTION File file chooser getSelectedFile show setText 你选择的是 fi le toString public classMenuTest public staticvoid main String args newMyFirstWindow startFrame PUTER package bzu java gui p4 gui import bzu java gui p4 biz Computer 知识要求理解应用 抽出单独 的一个类 是为了实现复用 之前的我们是放在main里面的 auth or Administrator public classMyComputer extendsJFrame public staticfinal intWIDTH 600 public staticfinal intHEIGHT 100 private JTextFieldfirstNumber private JTextFieldsecondNumber 3private JTextFieldresult private JComboBoxoperator 完成界面的设计 public MyComputer this setTitle 小小计算器 直接调用从父类继 承下来的方法 设置窗口的标题Toolkit toolkit Toolkit getDefaultToolkit 得到本机默认的工具包D imension d toolkit getScreenSize 获取屏幕的尺寸this setSize WIDT H HEIGHT 设置容器的宽度和高度this setLocation d width WIDTH 2 d height HEIGHT 2 this setDefaultCloseOperation JFrame EXIT ON CLO SE 设置关闭按钮时退出程序JLabel prompt new JLabel 考考你 创建标签setCharacter prompt prompt setI con new ImageIcon images java png 设置标签的图片JPanel centerPanel new JPanel 创建子容器 默认的布局为FlowLayout firstNumber new JTextField 10 setCharacter firstNumber String op operator new JComboBox op 初始化下拉列表setCharacter operator second Number new JTextField 10 setCharacter secondNumber JButton equal new JButton setCharacter equal equal addActionListener ne w EqualHandler result new JTextField 15 存放结果的文本框setCharacter result centerPanel add firstNumber centerPanel add operator centerPanel add sec ondNumber centerPanel add equal centerPanel add result t his add prompt North this add prompt BorderLayout NORT H 这种方式也可以this add centerPanel 默认添加到中央区域 this pack 紧凑排列组件this setVisible true public voidsetCharacter JComponent c c setFont new Font 黑体 Font BOLD 20 class EqualHandlerimplements ActionListener Override public voidactionPerformed ActionEvent e TODO Auto generated methodstub pute private voidpute String first firstNumber getText String second secondNumber getText int firstNum Integer parseInt first int secondNum Integer parseInt second char op String operator getSelectedItem charAt 0 Computer puter new Computer String results puter pute firstNum secondNum op result setText re sults MyComputerTest java CopyrightxxBinzhou University All rightsreserved package bzu java gui p4 gui 本示例主要演示业务逻辑和界面分层的 思想 version1 0 xx 12 25 author冯君4 public classMyComputerTest public staticvoid main String args TODO Auto generated methodstub newMyComputer File FileTest java CopyrightxxBinzhou University All rightsreserved package bzu java io p1 import java io File public classFileTest public staticvoid main String args File file1 new File file txt File file2 new File d System out println file1 canRead System out println file1 length System out println file1 getAbsolu tePath System out println file1 getName System out pr intln file2 isDirectory String stringList file2 list System out println 指定目录下的文件为 for String file stringList System out println file File fileList f ile2 listFiles System out println 指定目录下的文件为 for File file fileList System out println file copy FileCopyT est java CopyrightxxBinzhou University All rightsreserved package bzu java io p3 import java io public classFileCopyTest public staticvoid main String args File in new File file txt File out new File out txt try InputStream is new FileInputStream in OutputStream os new FileOutputStream out true 以追加的形式复制 默认为false intb 由于是一个字节一个字节往外读 如果文件中含有中文的话 将会将其拆分成两个字节 所有会出现乱码现象while b is read 1 os write b is close os close System out println 文件已成功复制 catch FileNotFoundException e e printStackTrace catch IOException e e printStackTrace 从文件中读取数据存入字节数组并进 行输出 FileInputStreamTest java CopyrightxxBinzhou University All rightsreserved package bzu java io p3 public classFileInputStreamTest public staticvoid main String args try InputStream is new FileInputStream file txt byte b new byte 4096 5int len is read b 获取实际读取到的长度is close System out println new String b 0 len 将字节数组的内容封装成字符串对象 catch F ileNotFoundException e e printStackTrace catch IOException e e printStackTrace 获取网页内容 InputStreamTest ja va CopyrightxxBinzhou University All rightsreserved package bzu java io p3 本示例演示获取网页内容 public classInputStreamTest public staticvoid main String args try URL url new URL baidu InputStream br url openStream byte b new byte 2048 br read b 0 b length for byte ch b System out print char ch br close catch Malformed URLException e e printStackTrace 如果是无效的URL 则会抛出MalformedU RLException catch IOException e e printStackTrace 增加缓冲功能 FilterStreamTest j ava CopyrightxxBinzhou University All rightsreserved package bzu java io p4 本实例演示了包装流 装饰流 的用法 流可以一 层层的进行包装使之功能增强public classFilterStreamTest public staticvoid main String args FileOutputStream out1 try out1 new FileOutputStream test txt BufferedOutputStream out2 new BufferedOutputStream out1 为节点流文件输出流增加缓冲功能 DataOutputStream out new DataOutputStream out2 增加写入特定数据格式的功能out writ eByte 12 out writeLong 12 out writeChar 1 out writeUTF 你好 out close In putStream in1 new FileInputStream test txt BufferedInputStream in2 new BufferedInputStream in1 为节点流文件输入流增加缓冲功能 提高效率DataInputStream in new DataInputStream in2 增加读取特定数据格式的功能System out print in readByte 注意读的顺序要和写的顺序一致Syst em out print in readLong System out print in readChar System out print in readUTF in close catch FileNotFoundException e e printStackTrace catch IOException e 6e printStackTrace FileReader FileReaderTest java CopyrightxxBinzhou University All rightsreserved package bzu java io p5 知识要求掌握 本示例演示字符流 link Reader 的子类 link FileReader 的用法 解决中文乱码问题 public classFileReaderTest public staticvoid main String args try Reader is new FileReader file txt char b new char 4096 int len is read b is close System out println new String b 0 len catch FileNotFoundException e e printStackTrace catch IOException e e printStackTrace FileWriterTest java Copyrightx xBinzhou University All rightsreserved package bzu java io p5 本示例演示字符流 link Writer 的子类 link FileWriter 的用法 public classFileWriterTest public staticvoid main String args File out new File words txt try Writer writer new FileWriter out for int c 0 c 65535 c writer write c 将文字编码对应的字符输 出writer close catch IOException e TODO Auto generated catchblock e printStackTrace 字节流到字符流 TransferStreamTest java CopyrightxxBinzhou University All rightsreserved 本示例演示转换流 字节流到字符流 link OutputStreamWriter 的用法 public classTransferStreamTest public staticvoid main String args try OutputStreamWriter writer new OutputStreamWriter new FileOutputStream out txt writer write 你好 System ou t println writer getEncoding 获取字7符编码writer close catch FileNotFoundException e e printStackTrace catch IOException e e printStackTrace 转换流 字节流到字符流 Transfer SystemInTest java CopyrightxxBinzhou University All rightsreserved 本示例演示转换流 字节流到字符流 link InputStreamReader 的用法 运行时从键盘输入字符串 会将其中小 写字母转换为大写字母进行输出 public classTransferSystemInTest public staticvoid main String args InputStreamReader is new InputStreamReader System in 获取键盘输入流 并将其转换为 字符流BufferedReader br new BufferedReader is 增加缓冲功能 该类有一个readLine 方法 能够读取一行数据String line try while line br readLine null if line equalsIg noreCase exit break System out println line toUpperCase catch IOException e e printStackTrace finally try is close catch IOExc eption e e printStackTrace 数组的创建和使用package bzu java jcf p1 知识要求掌握 本示例演示了数组的创建和 使用 主要知识点 数组的概念 定义 数组的特点 连续存储 随机访问 用下标访问数组元素 注意数组下标从0开始 超出下标范围访问元素 会造成下ArrayIndexOutOfBoundsException 错误 Java中的数组也是对象 使用前需要分配空间 标越界 link 数组的属性length只读属性length表明了数组的大小 循环遍历数组是其最常用的方法 可以用for或while public classArrayBasic public staticvoid main String args 新建数组int numbers new int 7 4 8 3 1 2 上述定义的简化形式如下 int numbers 7 4 8 3 1 2 length属性8System out println 数组中有 numbers len gth 个元素 下标范围是0 length 1System out println 第一个元素是numbers 0 System out p rintln 最后一个元素是 numbers numbers length 1 超出下标范围访问元素会造成下标越界错误 会ArrayIndexO utOfBoundsException抛出异常 System out println 这个元素不 存在 numbers numbers length 循环遍历数组元素System out println 使用循环遍历的方式进行输出 for int i 0 i link Collection add Object 往集合中添加元素 link Collection remove Object 移除集合中的某一个元素 link Collection isEmpty 判断容器是否是空的 link Collection size 容器中数据元素的个数 link Collection iterator 返回在此collection的元素上进行迭代的迭代 器 关于元素返回的顺序没有任何保证 除非此collection是某 个能提供保证顺序的类实例 link Iterator 接口的用法 link Iterator hasNext 如果仍有元素可以迭代 则返回true link Iterator next 返回迭代的下一个元素 注意这里没有使用类型安全的泛型 generic type 容器 所以会导致一些编译警告 public classCollectionTest SuppressWarnings rawtypes unchecke d public staticvoid main String args 创建容器对象Collection collection new ArrayList 此处用到了向上转型 开始时容器是空的System ou t println 容器是空的吗 collection isEmpty 向集合中 添加元素 在没有使用泛型之前 可以往集合中添加各种类型的数 据System out println 添加元素 collection add hello collection add hello collection add world 注意理解 容器类与数组的一个区别就是容器类必须存放对象 不能存放像i nt double等基本数据类型的元素 collection add Integer valueOf 123 先把基本类型封装成对象 为了方便 Java5以后提供了 基本数据类型的自动装箱collection add 1 Java5自动转换为Integer对象collection add true Java 5自动转换为Boolean对象 容器的大小System out println 总共 添加了几个元素 collection size 9 从集合中删除某一个 元素System out println 删除一个元素 collection remove 1 遍历容器中的元素 输出方式1Iterator迭代的方式System o ut println Iterator迭代方式 Iterator iterator collection iterator while iterator hasNext Ob ject obj Object iterator next System out println obj 或者 用for语句System out println Iterator迭代方式 for Iterato r it collection iterator it hasNext Object obj Object it next System out println obj 输出方式2f orEach方式System out println forEach迭代方式 for Object obj collection System out println obj 泛型容器的使用方 法package bzu java jcf p5 演示了泛型容器的使用方法 Java5引入了泛型 generic type 的概念 所有容器类都经过重新设计 以便实现类型安全的 type safed 即一个容器中只能存放特定类型的元素 泛型容器的使用很简单 就是在原来的容器类型后面加一对尖括号 里面指 明容器中元素的类型就可以了 如 Collectionnumbers new ArrayList 使用泛型容器更加安全 而且少了类型转换 更方便 public classGenericTypeCollectionDemo public staticvoid main String args 类型安全的泛型容器Collectionnumbers ne w ArrayList 添加元素numbers add 100 numbers add 200 numbers add 300 类型安全对元素类型进行检查 numbers add nan 编 译错误参数不是Integer 遍历容器迭代器也是泛型System out pri ntln 用迭代器遍历容器 Iteratorit numbers iterator whil e it hasNext Integer num it next 不用类型转换System out println num 遍历 容器for each简洁System out println 用for each遍历容器 for Integer num numbers System out println num 对比以前的容器notSa fed SuppressWarnings rawtypes unchecked Java5抑 制编译警告信息private staticvoid notSafed 不用泛型容器 所有元素都当作Object Collectionnumbers new ArrayList 添加元素numbers add 100 numbers add 200 numbers add 300 10 没有类型检查 任何Object都可以存放numbers add na n numbers add new Date 遍历容器所有元素都是Object 需要类型转换System ou t println 用迭代器遍历容器 Iterator it numbers iterator while it hasNext try Integer num Integer it next 强制类型转换System out println num catch Exception e e printStackTrace 遍历容器for each简洁System out println 用for each遍历容器 for Object obj numbers try Integer num Integer obj 强制类型转换System out println num cat ch Exception e e printStackTrace List的常用方法package bzu java jcf p6 演示了List的常用方法 接口 link List 是一个序列 线性表 可以通过下标访问元素 link List add Object 在列表末尾添加元素 link List add int Object 在列表中指定位置添加元素 link List remove int 删除列表中指定位置的元素 link List get int 返回列表中指定位置的元素 link List set int Object 替换列表中指定位置的元素 两种常用的 link List 是 link ArrayList 和 link LinkedList version1 0 xx 12 31 public classListDemo public staticvoid main String args 建立列表Listlist new ArrayList 添加元素 添加在表尾 System out println 添 加元素 list add BASIC list add C list add Pytho n list add Java 打印列表的字符串表示System out print ln list 在指定位置插入System out println 在第2个元素前 面插入 list add 2 C System out println list 有下 标 用起来就像数组System out println 通过下标访问元素 li st set 0 Ada 修改System out println list get 3 读取 用下标遍历列表System out println 用下标遍历列 表 for int i 0 i 11 link List 表示序列 出来的顺序和往里放的顺序是一样的 放进去的元素是可以重复的 link List get int 返回列表中指定位置的元素 link List size 返回列表中的元素数 public classListTest public staticvoid main String args 建立列表Listlist new ArrayList 添加元素list add new Person 小王 list add new Person 张三 list add new Person 李四 打印列表的字符串表示System out println list 可以在指定位置插入list add 1 new Person 王五 插队啦 输出方式1通过下标索引的方式遍历System out println 通过下标索引的方式输出 for int i 0 iiterator list iterator while iterator hasNext Person p iterator next System out println p 输出方式3forEach方式 System out println forEach方式输出 for Person p list System out println p 数据元素类class Person private String name public Person String name super this name name 对象的字符串表示public StringtoString return name ArrayList类的用法 package bzu java jcf p7 本示例演示 link ArrayList 类的用法 link ArrayList 是一种特殊的列表 List 除了具有 link List 的一般特点外 还有 1 基于数组实现 存储空间是连续的 可以通过下标实现随机访问 2 容量不是固定的 可以自动扩容 当然这在一定程度上牺牲了一点效率 link ArrayList 的不足之处在于插入和删除元素时需要移动大量元素 效率 不高 public classArrayListTest public staticvoid main String args 狗太多了 找个容器安置狗 创建ArrayLis t ArrayListdogHouse new ArrayList Dog dahuang new Dog 大黄 2 黄色的 公狗 Dog huahua new Dog 花花 1 红色的 12母狗 Dog xixi new Dog 西西 3 白色的 公狗 放些狗进去dogHouse add dahu ang dogHouse add huahua dogHouse add xixi dogHouse add d ahuang 大黄被放了两次 允许重复 System out println 方 式1 for int i 0 i 0 移除某个元素System out println 可怜的 dogRemoved ge tName 被赶出去了 System out println 方式3 for int i 0 i link LinkedList 是一种特殊的列表 List 除了具有 link List 的一般特点外 还有 1 LinkedList采用链式存储结构 插入 删除元素时不移动其他元素 效 率高 2 LinkedList提供了对尾部和头部添加和删除的操作方法 而且效率很高 可以做为双端队列使用 相比之下 LinkedList更适用于经常添加和删除数据的情况 public classLinkedListTest public staticvoid main String args 狗太多了 找个容器安置狗 创建链表Link edListdogHouse new LinkedList Dog dahuang new Dog 大黄 2 黄色的 公狗 Dog huahua new Dog 花花 1 红色的 母狗 Dog xixi new Dog 西西 3 白色的 公狗 放些狗进去dogHouse add dahu ang dogHouse add huahua dogHouse add xixi dogHouse add d ahuang 大黄被放了两次 允许重复的for int i 0 i 演示了如何用Socket与服务器进行通信 用 link Socket 连接服务器并进行通信 主要用到如下方法 link Socket Socket IAddress int 创建流套接字连接到指定IP地址的指定端口号 link Socket getInputStream 返回此套接字的输入流 link Socket getOutputStream 返回此套接字的输出流 link Socket close 关闭此套接字 附协议小知识 baidu 是一个服务器 即Web服务器 通常 要依靠浏览器向Web服务器发送请求 这里直接用Socket连接服务器并进行通信 所以必须遵守协议才行 程序中发送 GET 1 1 r n r n 的意思是请求网站的主页 GET后 面的 表示网站的默认主页 有关协议的详细内容请参 see Socket see IAddress public classSocketTest public staticvoid main String args try 获得服务器的IP地址IAddress addr IAddress getByName baidu 与服务器建立连接Socket socket new Socket addr 80 获得输入流和输出流InputStream in socket getInputStream OutputStream out socket getOutputStream 输出内容String req GET 1 1 r n r n out write req getBytes out flush 读取响应byte buf new byte 256 in read buf 显示响应内容System out println new String buf 关闭连接socket close catch UnknownHostExc eption e e printStackTrace catch IOException e e printStackTrace 收到客户端请求后发送Hello package bzu java work p5 知识要求掌握 应用 Hello服务器 收到客户端请求后发送Hello 本示例演示了 link ServerSocket 和 link Socket 的用法 服务器监听8000端口 一旦有客户端连接 首先读取并记录客户端 请求 然后向客户端发送Hello link ServerSocket ServerSocket int 创建15绑定到特定端口的服务器套接字 link ServerSocket aept 侦听并接受到此套接字的连接 link Socket getInputStream 返回此套接字的输入流 link Socket getOutputStream 返回此套接字的输出流 link Socket close 关闭此套接字 提示可以用浏览器作为客户端 首先运行程序 然后打开浏览器 输入地址localhost 8000 test 然后可以看到浏览器中显示 Hello和请求行内容 可以在控制台看到连接服务器的客户端和请求行 public classHelloServer public staticvoid main String args try 服务器监听8000端口ServerSocket serverSocket new ServerSocket 8000 等待接受连接请求Socket socket serverSocket aept 获得连接的输入流 并读取客户端 请求BufferedReader in new BufferedReader new InputStreamReader sock

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论