JAVA学习笔记

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

<applet code=”AppletDemo.class” width=”200” height=”300”></applet>

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<Student>arr2=new ArrayList<>();后一种叫泛型集合。

59、泛型(Generic type)是Java语言的类型系统的一种扩展,自Java SE5.0引入。可在普通方法、构造方法、静态方法中使用。

60、泛型格式:[权限修饰符]<参数类型> 返回类型methodName(paramlist)。如:public static <T> voidfun(T t);T可以为任意字母,一般用T、E、K、V,大写。<>读typeof。

61、泛型的用途,用来替代位置参数类型。使用时,以T代表的参数可以为任意类型输入。

62、泛型类,有类型参数修饰的类成为泛型类。Public class Generic <T>

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方法。



已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页