JAVA学习笔记
备注:简易笔记,自用。可参考。
2016年3月21日更新
1、 JDK(Java SE Development Kits),即Java开发工具包,最新版的为JDK7.0,代号Dolphin
2、 Java的三个版本。①JavaSE(Java Platform,Standard Edition):前身J2SE,为JAVA标准版,用于桌面程序,包含Java Web服务的一些类。②Java EE(Java Platform,Enterprise Edition):前身J2EE,Java的企业版,用于开发企业级分布式网络程序。③Java ME(Java Platform,Micro Edition):前身J2ME,用于嵌入式系统和移动通信设备开发。
3、 Java的特点:易学易用、面向对象、平台无关、健壮、分布式、可移植性、解释型、多线程。
4、 JRE(Java RunTime Environment),即Java运行环境。
5、 Java应用程序由若干个类组成,唯一含有主方法的类(main),以public修饰,成为主类。Java程序从main方法开始。
6、 常量用关键字final定义 final double PI=3.1415;
7、 转义字符。\b:退格。\f:换页。
8、 长整型后面要加“l” long b=1234567890l;
9、 %运算符前后必须是整型
10、逻辑非——!;逻辑与——&&;逻辑或——||
11、Scanner类是扫描器类,从控制台接受数据。nextInet()、nextDouble()等。
Scannerreader=new Scanner(System.in);
Num=reader.nextInt();
12、使用Scanner类时,在程序开头要加“import java.util.*;”
13、设置eclipse的豆绿色背景:Windows—Preferences—General—Editors—Text Editors—Appearance color options—Background color
14、设置eclipse自动提示:Windows—Preferences—Java—Editor—Content Assistant—Auto Activation——第二个,默认的“.”改为“abcdefghijklmnopqrstuvwxyz.”
15、定义数组:int a[]; int[] b; a=new int[4];
16、变量命名惯例,首字母小写,后续单词首字母大写
17、类的成员变量具有默认值
18、JAVA源文件可以由多个类组成,只能有一个类加public修饰符,且此时源文件名与该类名一致。
19、setter方法和getter方法
20、构造方法用于初始化新建的对象,也成为构造函数,方法名与类名相同,无返回值或void,可以重载。
21、继承,class Postgraduate extends Student{}
22、JAVA只支持单继承,不支持多继承。不能继承private私有成员或方法
23、创建子类对象时,首先执行父类的无参数构造方法,再执行自己的构造方法。
24、若要执行父类有参数的构造方法,需要在子类构造方法中使用super调用父类构造方法。
25、子类中定义父类同名、同参、同返回值的成员,则覆盖/隐藏父类成员。可使用super.成员名调用父类成员。
26、多态是指父类某个方法被子类覆盖,各自产生自己的功能行为。编程的基本前提:①存在继承结构。②通过父类引用指向子类对象,然后通过父类引用调用方法:Animal animal=new Dog(); animal.父类成员√;animal.子类成员×。
27、要将父类对象类型转为子类对象类型。①Animal animal=new Dog();②Dog dog=(Dog)animal;
2016年3月22日更新
28、包用于存放一组相关的类,包中的类必须通过包名访问,一个包中类不同名,不同包可以由同名类。package 包名;指定所属包。
29、包名一般用小写字母
30、包可以层次嵌套,引用时用点好隔开。Package cn.edu.gdaib;
31、每个JAVA文件中有且仅有一条package语句,且必须是第一条。
32、通常只能使用同一个包中的类,若要使用其他包的类,则①包名.类名;②import
33、不同修饰符下的被访问权限
修饰符 |
类内 |
包内 |
其他包的类 |
所有类 |
Private |
是 |
否 |
否 |
否 |
默认 |
是 |
是 |
否 |
否 |
Protected |
是 |
是 |
否(继承_是) |
否 |
Public |
是 |
是 |
是 |
是 |
34、 抽象类:修饰符abstract 返回值类型 方法名(参数表)。抽象方法
35、抽象类不能创建自己的对象
36、子类继承抽象类是,必须覆盖抽象类中的所有抽象方法
37、接口可以进行多继承,接口中只包含数据成员和抽象方法
38、接口的常量数据成员默认修饰符是publicstatic final,抽象方法的默认修饰符是public abstract。
39、接口中不能有非抽象方法,方法中不能有方法体
40、接口的实现:class 子类 [extends 父类] implements 接口1,接口2,…{/*类体*/}
41、接口本身不能实例化为对象
42、static变量,所有对象公用,饮用方法为类名.静态变量;类对象.静态变量
43、静态方法不能访问对象的成员变量,只能处理类的静态变量
44、final修饰的类不可被继承;final方法不可被覆盖,可以继承;final成员为常量,不可改
45、Java API 提供大量类和接口,采用包的形式组织起来
Java.lang |
核心类库,包括基本数据类型、Math、Thread、Exception等,不用import |
Java.util |
实用工具类,Date、Vector、Random等 |
Java.io |
输入/输出包 |
Java.awt |
构建和管理图形用户界面 |
Java.net |
网络功能 |
Java.sql |
数据库相关 |
46、Java Applet为Java小程序,不能独立运行,要嵌入到HTML中。
47、Applet的主要方法,程序中必须有一个Applet的子类,称为主类,用public修饰
Init() |
初始化,只调用一次 |
Start() |
Init后自动调用,可执行多次,跳转页面返回自动调用 |
Stop() |
终止方法,暂时停止 |
Paint() |
在applet程序在屏幕的屏幕显示信息 |
Destroy() |
释放applet占用资源,执行一次 |
48、applet嵌入html
49、
异常类型 |
说明 |
Exception |
异常层次结构根类 |
NullPointer Exception |
尝试访问null对象成员 |
ArrayIndexOutOfBounds Exception |
数组小标越界 |
ArrayStore Exception |
数组元素类型不匹配 |
ClassNotFound Exception |
不能加载所需要的类 |
ClassCast Exception |
强制类型转换异常 |
InputMismatch Exception |
实际输入数据类型不匹配 |
IllegalArgument Exception |
方法接收到非法参数 |
Arithmetic Exception |
算数错误 |
NumberFormat Exception |
数字格式转换异常 |
50、try-catch其中一个被执行。Try-catch-finally中的finally必定执行。
51、一个try可跟多个catch,执行第一个匹配项
52、抛出异常,返回上级,由编者自己解决异常,替换默认异常返回内容。如
throw new IllegalArgumentException(“学生学号应为11位”);
53、集合。①collection:无顺序,可重复。②list:有序,可重复;③set:无序,不可重复;④map:有key和value,一一对应。
54、ArrayList arr=newArrayList();其中元素按存放顺序排序。
55、对ArrayList中的元素访问,使用迭代器(Iterator)。其中有hasNext()、next()、remove()三个方法。
56、集合在java.util包中
57、ArrayList.size()返回成员数量
2016年3月23日更新
58、集合的使用方式。①ArrayList arr1=new ArrayList();②ArrayList
59、泛型(Generic type)是Java语言的类型系统的一种扩展,自Java SE5.0引入。可在普通方法、构造方法、静态方法中使用。
60、泛型格式:[权限修饰符]<参数类型> 返回类型methodName(paramlist)。如:public static
61、泛型的用途,用来替代位置参数类型。使用时,以T代表的参数可以为任意类型输入。
62、泛型类,有类型参数修饰的类成为泛型类。Public class Generic
63、File类的构造方法
①File file1=newFile(“D:\\java\\cmd.exe”);
②File file2=newFile(“D:java”,”cmd.exe”);
③File path=newFile(“D:\\java”);
File file3=new File(path,”cmd.exe”);
64、File对象可以表示一个文件,也可以表示一个目录。
65、File类常用方法
Boolean createNewFile() |
不存在,创建;存在,flase |
Boolean delete() |
删除文件,或空目录,成功返回true |
Boolean exists() |
判断文件/目录是否存在 |
String getAbolutePath() |
获取绝对路径 |
String getName() |
获取文件/目录名 |
Boolean isDirectory() |
判断当前File对象是否表示一个目录 |
Boolean isFIle() |
判断当前File对象是否表示一个文件 |
Long length() |
判断该文件长度 |
String[] list() |
返回该目录下全部文件 |
File[] listFiles() |
返回该目录下全部文件 |
Boolean mkdir() |
创建该File对象表示的目录 |
66、字符流输出时,不直接向目的地输出,会在内存划定缓冲区。需要写入目的地是,可调用flush()方法刷新缓冲区写入目的地。使用结束后要用close()方法释放内存。
67、FileReader类的read()方法一次读取一个字符,若是无值,返回-1.
68、FileWriter类的write方法可以用”\r\n”进行换行
69、BufferedWriter类的newLine()方法进行换行
70、bufferedReader类的readLine()方法可以读取一行文本,无值返回null
71、BufferedReaderbr=new BufferedReader(new FileReader(“in.txt”));
72、public string[]split(string s)
73、字符流只能读写文本文件,字节流可用于图像、音频视频、可执行程序等二进制文件
74、使用FileOutputStream类写入时,需要先将文件转换为字节数组。Byte b[]=string.getBytes()
75、FileInputStream类读取时,可以一次读取read(byte[] b)数组内容,也可以一次一个字节读取
76、BufferedOutputStream和BufferedInputStream 与File……功能一致,加入了缓冲机制,效率更佳
77、对象序列化是把一个对象变为二进制的数据流,实现文件存储和网络传输。对象—文件为序列化,文件—对象为反序列化。
78、ObjectOutputStream类中的writeObject方法来实现序列化
79、对象被序列化后,保存的知识对象的属性信息,方法没有被序列化
80、用ObjectInputStream类的readObject方法进行反序列化,返回的Object类型需要强制转换
81、 Java中,对数据库访问是通过JDBC工具包进行的(Java DataBase Connection),使用SQL语句对数据库进行操作
82、Java与数据库交互的两种方式,①JDBC-ODBC桥驱动;②JDBC本地驱动
83、JDBC常用的类和接口
名称 |
类型 |
作用 |
DriverManager |
类 |
管理驱动程序,建立数据库连接 |
Connection |
接口 |
与特定数据库链接 |
Statement |
接口 |
表示和执行静态SQL语句 |
ResultSet |
接口 |
查询数据库返回接口记录的几何 |
PreparedStatement |
接口 |
预编译的SQL语句对象 |
SQLException |
类 |
异常 |
84、加载驱动程序 Class.forName(“驱动类名”)【驱动类名因数据库类型而异】
85、建立数据库链接,getConnection(url,user,password);
86、各种数据库默认端口号
引用自: http://www.cnblogs.com/shenliang123/archive/2012/04/24/2467702.html 常用JDBC连接数据库方法总结如下: 一、JDBC连接DB2 Class.forName("Com.ibm.db2.jdbc.net.DB2Driver"); String url="jdbc:db2://dburl:port/DBname" cn = DriverManager.getConnection( url, sUsr, sPwd );
二、JDBC连接Microsoft SQLServer(microsoft) Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" ); cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://DBServerIP:1433;databaseName=master", sUsr, sPwd );
三、JDBC连接Sybase(jconn2.jar) Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" ); cn = DriverManager.getConnection( "jdbc:sybase:Tds:DBServerIP:2638", sUsr, sPwd );
四、JDBC连接MySQL(mm.mysql-3.0.2-bin.jar) Class.forName( "org.gjt.mm.mysql.Driver" ); cn = DriverManager.getConnection( "jdbc:mysql://DBServerIP:3306/myDatabaseName", sUsr, sPwd );
五、JDBC连接PostgreSQL(pgjdbc2.jar) Class.forName( "org.postgresql.Driver" ); cn = DriverManager.getConnection( "jdbc:postgresql://DBServerIP/myDatabaseName", sUsr, sPwd );
六、JDBC连接Oracle(classes12.jar) Class.forName( "oracle.jdbc.driver.OracleDriver" ); cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );
七、JDBC连接ODBC Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd ); |
2016年3月24日更新
87、Java链接数据库的步骤:①加载驱动程序Class.forName(“*****”);②建立数据库链接:Connectioncon=DriverManager.getConnection(url,user,pass);③使用SQL语句操作:StatementcreateStatement();executeQuery(string sql);④关闭数据库连接:con.close();
88、想得到结果集的总行数,需要先用last()方法将游标移到最后一样,然后调用getRow()方法求行号
89、图形用户界面GUI(GraphicsUser Interface),为应用程序提供一个图形化的界面,借助菜单、按钮、文本框等标准界面元素和鼠标操作,帮助用户方便地与应用程序交互。
90、目前有三种专门的类库进行界面设计。Java提供的AWT和Swing,IBM提供的SWT
91、Swing组件建立在AWT上,由AWT组件派生而来。都是轻量级组件
92、多数Swing组件的父类为javax.swing.JComponent,JComponent的直接父类为java.awt.Container。出JFrame外,其余组件都继承自JComponent类
93、使用Swing必须导入javax.swing包
94、Swing组件可以分为容器组件、原子组件两类,也可细分为顶层容器、中间层容器、特殊容器、基本组件、可编辑组件、不可编辑组件六类
95、原子组件必须加载容器组件中,容器组件用于容纳其他容器或原子组件
96、顶层容器是可以直接显示在系统桌面上的组件,其他组件必须直接或间接的借助顶层容器显示。顶层容器包括JFrame、JWindow和JDialog,最常用的是JFrame
97、中间层容器位于顶层容器和一般组件之间,可以在顶层容器中,又可以存放一般组件,包括JPanel、JMenuBar
98、JFrame类,即窗体,拥有标题栏、边框、菜单栏和控制按钮。常用方法:
JFrame();JFrame(Stringtitle);构造初始不可见的窗体
setVisible(booleanb);可见性
setTitle(Stringtitle);标题
setBounds(intx,int y,int width,int height);设置出显位置和大小
setLocation(intx,int y);设置出显位置
setResizable(booleansize);设置窗口大小是否可调,默认true
setDefaultCloseOperation();设置窗体关闭方式,有①不执行任何动作;②释放窗体对象;③隐藏窗体;④退出JVM。默认为③
setIconImage(Imageimage);设置图标
add();添加其他组件
setLayout();设置布局管理器
99、可在类的构造方法中写窗体界面,该类要extends于JFrame,该类要importjavax.swing.*;
100、获取Image的方法。Image image=this.getToolket().getImage(“src:\\b.jpg”);
101、JPanel类,面板类。中间容器。
JPanel();JPanel(LayoutManagerlayout);创建新JPanel
Add();添加组件
getHeight();getWidth();获取高度、宽度。
102、JButton类,按钮类。
JButton();JButton(Iconicon);JButton(String text);JButton(String text,Icon icon);创建按钮
setText();getText();设置/获取按钮文本
setMnemonic();设置按钮助记符,即Alt+?=按按钮
addActionListener();添加监视器
removeActionListener();移除监视器
setIcon(Iconicon);添加图标
103、JLabel类,标签类。
JLabel();JLable(Iconimage);JLabel(String text);等构造方法。
JLable(Iconimage,int horizontalAlignment);对齐方式——LEFT、CENTER、RIGHT、LEADING、TRAILING
setText();getText();setIcon();getIcon();常用方法,文字、图标
104、JTextField类,文本框类,允许编辑单行文本;JPasswordField类,密码框类。
JTextField();JTextField(intcolumns);JTextField(String text);构造方法
setText();getText();文本获取/设置
setEditable();可否编辑
对于密码框,setEchoChar(char c);方法可以改变密码框显示字符
105、JTextArea类,文本区类。
getColumns();getRows();获取列数/行数
append(Stringstr);追加文本
inset(Stringstr,int pos);将制定文本插入制定位置
106、JRadioButton类,单选按钮类。
构造方法可以设置icon、selected、text属性
isSelected();
加入使用ButtonGroup类,可以使按钮只能有一个被选中。
107、JCheckBox类,复选框类。
构造方法可以设置icon、selected、text属性
isSelected();
108、JComboBox类,下拉列表框类。
构造方法可制定Vector> items、Object[] items
getItemCount();获取表中项数
getSelectedIndex();获取选中位置
getSelectedItem();获取当前所选项
setSelectedItem(ObjectanObject);设置下拉列表中的选择项
setEditable(booleanaFlag);设置JComboBox字段是否可编辑
addItem(ObjectanObject);添加项
getItemAt(intindex);获取指定索引处的值
109、布局管理器是使用某种算法,在窗体内自动排列好空间。Java常用的包括流式布局、边界布局、网格布局、空布局。
110、流式布局,FlowLayout,是默认的布局管理器,从上至下,从左至右,自动填充。
构造方法设置对齐方式、水平间隙、垂直间隙
getHgap();setHgap(inthgap);获取/设置水平间隙。getVgap();setVgap(intvgap);获取/设置垂直间隙
例:jp.setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
111、边界布局,BorderLayout,东西南北中五块。
构造方法设置水平间隙、垂直间隙
常用方法同流式布局
例:this.setLayout(new BorderLayout());
This.add(BorderLayout.EAST,jb1);
112、网格布局,GridLayout,以矩形网格形式布置,容器分为大小相等的网格。
构造方法设置行数、列数、水平间隙、垂直间隙
常用方法,获取/设置行数/列数,获取/.设置水平/垂直间隙
113、空布局,不适用任何布局管理器,需要setBounds()方法自行设计
114、事件发生和响应事件的过程中,需要事件源和事件监听器两个对象
115、Java已经定义好了一些事件源可能产生的事件类型及其对应的接口,位于java.awt.event和javax.swing.event包中。
116、单击按钮。系统产生ActionEvent事件类的对象,该对象描述了事件发生的一些信息。与ActionEvent对应的接口ActionListener接受系统传递来的时间对象,并调用ActionPerformed方法进行处理
117、方法类型与接口
事件类型 |
接口名 |
方法 |
ActionEvent |
ActionListener |
actionPerformed(ActionEvent e),单击按钮、选择菜单项、文本框回车时 |
ItemEvent |
ItemListener |
itemStateChanged(ItemEvent e),选择复选框、选项框、单击列表框、选中带复选框菜单时 |
MouseEvent |
MouseListener |
mouseClicked(MouseEvent e)单击鼠标 mouseEntered 鼠标进入 mouseExited 鼠标离开 mousePressed 鼠标按下 mouseReleased 鼠标释放 |
MouseEvent |
MouseMotionListener |
mouseDragged 鼠标拖动 mouseMoved 鼠标移动 |
KeyEvent |
KeyListener |
KeyPressed(KeyEvent e) 键盘按下 KeyReleased 键盘释放 KeyTyped 击键 |
AdjustmentEvent |
AdjustmentListener |
adjustmentValueChanged(AdjustmentEvent e) 改变滚动条滑块位置 |
ComponentEvent |
ComponentListener |
componentMoved(ComponentEvent e)组件移动 componentHidden 组件隐藏 componentResized 组件缩放 componentShown 组件显示 |
ContainerEvent |
ContainerListener |
componentAdded(ContainerEvent e)添加组件 componentRemoved 移除组件 |
FocusEvent |
FocusListener |
focusGained(FocusEvent e)获得焦点 focusLost 失去焦点 |
TextEvent |
TextListener |
textValueChanged(TextEvent e)文本框、多行文本框内容修改时 |
WindowEvent |
WindowListener |
windowOpened(WindowEvent e) 窗口打开 windowClosed 窗口关闭后 windowClosing 窗口关闭时 windowActivated 窗口激活 windowDeactivated 窗口失去焦点 windowIconified 窗口最小化 windowDeiconified 最小化窗口还原 |
118、Java支持在一个类中声明另一个类,成为内部类,内部类的方法可以调用外部类的方法。
119、匿名类是特殊的内部类,省略类名称,一次性,多是图形界面的事件监听器
120、自写监听器类,例。
BEvent be=new BEvent(); btn.addActionListener(be);
class BEvent implements ActionListener//监听器类 { public void actionPerformed(ActionEvent e) { System.out.println("You Pressed the Button!!!"); } } |
121、匿名监听器类实例。
btnNewButton.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent arg0) { newLabel.setText("I See You!!!"); } }); |
122、非匿名监听器类实例2
Class ??? extends JFrame implements ActionListener { btn.addActionListener(this);
public void actionPerformed(ActionEvent e) { if(e.getSource()==btn) { System.out.println("You did it!"); } } } |
123、使用e.getSource()方法获取事件源
124、Java的菜单分为三层,菜单栏(JMenuBar)、菜单栏上的菜单(JMenu)、菜单项(JMenuItem)
125、菜单栏的常用方法:创建、追加菜单、返回菜单数、返回指定组件索引、返回菜单栏上指定菜单
126、菜单常用方法:创建(可带文本)、追加菜单项、追加组件、设置菜单选择、菜单末尾添加分隔符、在指定位置插入菜单项、指定位置插入分隔符、返回菜单项数量、返回组件等
127、菜单项常用方法:创建(设置图标、文本、助记符号)、启用与禁用、返回菜单组件的子菜单组件的数组等
128、setJMenuBar方法可设置菜单、JMenu.addSeparator方法可以添加分隔符
129、弹出菜单,JPopupMenu类。主要方法:构造带/不带标题的JPopupMenu、添加菜单项、添加分隔符、插入组件、可见性、在组件相对位置显示、是否将鼠标事件设置为触发器(e.getComponent(),e.getX(),e.getY()即可获得鼠标位置信息)
130、标准对话框,JOptionPane类。有三种模式:①showConfirmDialog——yes/no/cancel信息提示。②showInputDialog提示输入信息。③showMessageDialog信息显示
i.信息显示:JOptionPane.showMessageDialog(null,”内容”,”标题”,类型);其中类型为(0—停止,1—“i”,2—“!”,3—“?”)
ii.信息提示:JOptionPane.showMessageDialog(null,”内容”,”标题”,”按钮类别”,”图标样式”),其中按钮类别为(0—是、否;1—是、否、撤销;2—确定、撤销)
iii.信息输入对话框。JOptionPane.showInputDialog(“内容”,”初始值”);点击确定后返回文本框值、取消返回null
131、工具栏,JToolBar类。常用方法:创建(标题、水平/垂直方向)、添加组件、添加分割线
2016年3月25日更新
132、国际标准化组织ISO与1978年提出“开放式系统互联参考模型”,即注明的OSI(Open SystemInterconnection)
133、OSI模式把计算机网络分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,每一层都为上一层提供服务。
135、TCP(TransmissionControl Protocol)协议,即传输控制协议,规定一种可靠的数据信息传递服务。
136、TCP/IP结构对应OSI结构
TCP/IP |
OSI |
应用层 |
应用层 |
传输层(TCP) |
表示层 |
会话层 |
|
传输层 |
|
网络层(IP) |
网络层 |
链路层 |
数据链 |
物理层 |
137、每台主机都有唯一的网络地址,即IP(InternetProtocol)地址。
138、IP地质按规模分为A\B\C三类。①A类:1.0.0.0~126.255.255.255,子网掩码255.0.0.0;特大规模网络使用,第一个表示网路,后三个分配主机。②B类128.0.0.0~191.255.255.255,子网掩码255.255.0.0;中型网络,前两个表示网络,后两个分配主机;169.254.0.0~169.254.255.255为保留地址。③C类:192.0.0.0~23.255.255.255,子网掩码255.255.255.0;小型网络,前三个表示网络位置,后一个表示主机。
139、端口是一个软件结构,表示数据交给哪个通信程序处理。不同应用程序处理不同端口的数据,同一台及其不能有两个程序使用同一个端口,端口号从0~65535(16位数)。
①公认端口:0~1023,紧密绑定一些服务
②注册端口:1024~49151,松散绑定一些服务
③动态/私有端口:49152~65535,应用程序使用,应用程序一般不会主动使用
140、套接字(Socket)用于将应用程序和端口连接起来。
141、Java提供InertAddress类来代表IP地质,Inet4Address、Inet6Address分别代表IPV4、IPV6,该类不提供构造器,提供两个静态方法来获取InetAddress实例
getByName(Stringhost) 根据助记获得对应的InetAddress对象
getByAddress(byte[]addr) 根据原始IP地址获取对应的InetAddress对象
StringgetCanonicalHostName() 获取此IP地址的全限定域名
StringgetHostAddress() 返回该InetAddress实例对应的IP地址字符串
StringgetHostName() 获取此IP地址的主机名
getLocalHost()获取本机IP地质对应的InetAddress实例
isReachable()测试是否可以到达该地址
142、使用URLDecoder和URLEncoder来完成普通字符和pplication/x-www-form-urlencodedMIME字符串之间的转换。URLDecoder的decode(string,string)方法,将乱码转为普通字符串;URLEncoder类的encode(string,string)方法将普通字符串转为**MIME码
String keyWord=URLDecoder.decode("java%CD%F8%C2%E7%B1%E0%B3%CC", "GBK"); String urlSttr=URLEncoder.encode("java网络编程", "GBK"); |
143、URL对象代表统一资源定位器,指向互联网资源的指针。由协议名、主机、端口和资源组成,格式:protocol://host:port/resourceName
构造方法设置URL地址
StringgetFile() 获取此URL的资源名
StringgetHost() 获取此URL的主机名
StringgetPath() 获取此URL的路径部分
Intgetport() 获取此URL的端口号
StringgetQuery() 获取此URL的查询字符串
StringgetRef() 获取此URL在文件中的相对位置
StringgetAuthority() 获取此URL的权限信息
StringgetUserInfo() 获取使用者信息
144、URL对象提供的openStream()可以读取该URL资源的inputStream,获取远程资源
145、URLConnection类是一个抽象共有类,实现Java程序和URL在网络上的通信连接。通过URL.openConnection()来生成实例对象。
146、使用URLConnection类访问web页面步骤:调用URL类的openConnection()方法得到实例,调用connect()方法连接远程资源,使用getInputStream()方法访问资源数据
147、TCP/IP通信协议,在通信两段各建立一个Socket,形成虚拟链路,通过Socket产生的普通IO流来进行网络通信。
148、基于TCP协议的两个通信实体,必须有一个通信实体做出“主动姿态”。另一个接受的实体处于等待状态,利用ServerSocket等待客户端的Socket连接
ServerSocket构造设置端口、队列长度以及IP地址等。常用犯法close()、accept();
服务器端: //创建一个ServerSocket ,用于监听客户端Socket的连接请求 ServerSocket ss=new ServerSocket(30000); //采用循环不断接受来自客户端的请求 While(true) { //服务器端接受到客户端Socket请求,产生一个Socket Socket s=ss.accpt(); //将输出流包装为PrintStream PrintStream ps=new PrintStream(s.getOutputStream()); Ps.println(“您好,您收到了服务器的问候”); //关闭 Ps.close();s.close(); } 客户端: Socket socket=new Socket(“127.0.0.1”,30000); //将Socket输入流包装为BufferedReader BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream())); //普通IO操作 String line=br.readLine(); System.out.println(“来自服务器:”+line); Br.close();socket.close();
|
149、一个程序中,独立运行的程序片段叫“线程”(Thread),利用它进行编程称为“多线程处理”
150、进程占用资源,线程几乎不占用资源,它使用所在进程的资源
151、线程创建方法一:继承thread类创建线程。①定义Tread类的子类,重写run方法,方法体就是线程要完成的任务;②创建Thread对象;③start方法启动线程
152、线程创建方法二:实现Runnable接口创建线程类。① 定义Runable接口的实现类,重写run方法;②创建runnable实例;③调用start方法启动
153、调用start方法,自动运行run方法。