java基础知识

时间:2024.3.31

关键字

Java 中一些赋以特定的含义,并用做专门用途的单词称为关键字(keyword)。所有Java

关键字都是小写的,TRUE、FALSE、NULL 等都不是Java 关键字;goto 和const 虽然从未

被使用,但也作为Java 关键字保留。Java 的关键字如下:

访问控制:

private 私有的

protected 受保护的

public 公共的类、方法和变量修饰符:

abstract 声明抽象

class 类

extends 扩允,继承

final 终极,不可改变的

implements 实现

interface 接口

native 本地

new 新,创建

static 静态

strictfp 严格,精准

synchronized 线程,同步

transient 短暂

volatile 易失

程序控制语句:

break 跳出循环

continue 继续

return 返回

do 运行

while 循环

if 如果

else 反之

for 循环

instanceof 实例

switch 开关

case 返回开关里的结果

default 默认

错误处理:

catch 处理异常

finally 有没有异常都执行

throw 抛出一个异常对象

throws 声明一个异常可能被抛出

try 捕获异常

包相关:

import 引入

package 包

基本类型:

boolean 布尔型

byte 字节型

char 字符型

double 双精度

float 浮点

int 整型

long 长整型

short 短整型

null 空

true 真

false 假

变量引用:

super 父类,超类

this 本类

void 无返回值

字符串处理

AddSlashes:         字符串加入斜线。

bin2hex:            二进位转成十六进位。

Chop:              去除连续空白。

Chr:               返回序数值的字符。

chunk_split:         将字符串分成小段。

convert_cyr_string:   转换古斯拉夫字符串成其它字符串。

crypt:              将字符串用 DES 编码加密。

echo:               输出字符串。

explode:            切开字符串。

flush:              清出输出缓冲区。

get_meta_tags:       抽出文件所有 meta 标记的资料。

htmlspecialchars:     将特殊字符转成 HTML 格式。

htmlentities:         将所有的字符都转成 HTML 字符串。

implode:            将数组变成字符串。

join:                将数组变成字符串。

ltrim:               去除连续空白。

md5:                计算字符串的 MD5 哈稀。

nl2br:               将换行字符转成 <br>。

Ord:                 返回字符的序数值。

parse_str:             解析 query 字符串成变量。

print:                 输出字符串。

printf:                 输出格式化字符串。

quoted_printable_decode: 将 qp 编码字符串转成 8 位字符串。

QuoteMeta:            加入引用符号。

rawurldecode:          从 URL 专用格式字符串还原成普通字符串。

rawurlencode:          将字符串编码成 URL 专用格式。

setlocale:              配置地域化信息。

similar_text:            计算字符串相似度。

soundex:               计算字符串的读音值

sprintf:                 将字符串格式化。

strchr:                 寻找第一个出现的字符。

strcmp:                字符串比较。

strcspn:                不同字符串的长度。

strip_tags:              去掉 HTML 及 PHP 的标记。

StripSlashes:            去掉反斜线字符。

strlen:                  取得字符串长度。

strrpos:                 寻找字符串中某字符最后出现处。

strpos:                 寻找字符串中某字符最先出现处。

strrchr:                 取得某字符最后出现处起的字符串。

strrev:                  颠倒字符串。

strspn:                  找出某字符串落在另一字符串遮罩的数目。

strstr:                   返回字符串中某字符串开始处至结束的字符串。

strtok:                   切开字符串。

strtolower:                字符串全转为小写。

strtoupper:                字符串全转为大写。

str_replace:               字符串取代。

strtr:                     转换某些字符。

substr:                   取部份字符串。

trim:                     截去字符串首尾的空格。

ucfirst:                   将字符串第一个字符改大写。

ucwords:                  将字符串每个字第一个字母改大写。

接  口

Java 中接口可看做“纯粹的抽象类”。接口与类一样,有方法名、参数列表和返回类型。Java 接口的方法只能是抽象的,所以没有方法体。Java 接口不能有构造方法,接口的

方法都隐含public 和final。

创建接口时用 interface 来代替class,前面可以有public,如果不加访问权限,那么它

就是默认的包访问权限。接口中的方法默认为public。类实现接口要用implements 关键字。

创建一个接口的方法:

interface abcd{
    定义参数;

    例: static final double PI=3.14;

   

    定义方法;

    例:double area();                //没有方法体!!

}

实现一个接口的方法:

public class abc implements abcd{

       一定要具体实现接口中的方法!(覆盖方法)

}

抽象类

Java 的抽象类是包含一种或多种抽象方法的类,不需要构造实例。定义抽象类后,其他类可以对它进行扩充并且通过实现其中的抽象方法,使抽象类具体化。

Java 抽象类有以下一些特点:

(1) 普通的Java 类也可以在class 前加abstract 声明为抽象,只不过此时的该类不可以

再实例化。

(2) 如果一个类里有一个以上的抽象方法,则该类必须声明为抽象类,该方法也必须

声明为抽象。

(3) 抽象类虽然不能被实例化,但抽象类可以有构造方法,以备继承类扩充。

例:

/* 文件名:AbstractDemo.java

* Copyright (C): 2009

* 功能:通过继承抽象类实现圆面积的计算

*/

abstract class Shape{

int x,y;

Shape (int a){x=a;}

Shape (int a,int b){x=a;y=b;}

abstract double area();

}

class Circle extends Shape{

Circle (int a){super(a);}

double area(){

return 3.14*(x*x);

}

}

public class AbstractDemo{

public static void main(String args[]){

Circle c=new Circle(5);

System.out.println(c.area());

}

多线程

在java语言中创建一个线程共有两种方式。

一种是实现Runnable接口,代码如下:

public class example(类名) implements(实现) Runnable{

public void run(){

 …

}

}

Runnable接口中只定义了一个run()方法。

另一种是扩展Thread类,代码如下:

public class example extends Thread{

public void run(){

    …

}

}

Thread类中定义的方法要用到构造器。

构造器列表如下:

      public Thread()          //  括号内为参数

      public Thread(Runnable target)                               

public Thread(Runnable target,String name)

public Thread(,String name)

public Thread(ThreadGroup group,Runnable target)

public Thread(ThreadGroup group, Runnable target ,Runnable target)

public Thread(ThreadGroup group, String name)

参数说明:

Runnable target,当前线程启动时,其激发target中的run()方法。

String name线程名。

ThreadGroup group创建线程加入到的线程组。

方法列表如下:

public static int activeCount()  //获取线程组中的当前活动线程数

public final void checkAaccess()  //确定当前线程是否允许改变

public static Thread currentThread()  //获取当前活动线程对象

public void destory()  //撤销当前线程,但不进行任何善后清理工作

public final String getName()  //获取线程名

public final int geiPriority()  //获取线程的优先级

public final ThreadGroup getThreadGroup(0  //获取所属的线程组

public void interrupt()  //中断线程

public static bollean interrupted() //判断当前线程是否被中断

public final bollean isAlive()  //判断线程是否仍在运行

public final bollean isDaemon()  //判断线程是否后台线程

public bollean isInterrupted()  //判断线程是否被中断

public final void join()  //等待线程终止

public final void join(long millis,int nanos)  //等待线程终止,可指定等待时间

public void run()  //线程的入口点

public final void setDaemon(boolean on)  //将线程设置为后台线程,该方法必须在线程调用start()方法之前调用

public final void setName(String name)  //设置线程的名称

public final void setPriority(int newPriority)  //设置线程的优先级

public static void sleep(long mills)  //挂起线程指定时间段,以毫秒为单位

public static void sleep(long mills,int nanos)  //挂起线程指定时间段,以纳秒为单位

public void start()  //启动线程

public static void yield()  //暂停当前线程

网络编程

端口:

1~~1023 之间已经被系统占用!在定义自己的端口时,应该使用1024~~65535之间的任意端口号,以免发生端口冲突。

TCP 程序设基础

Java中的TCP网络程序设计是指利用Socket类编写通信程序。TCP程序设计的一个过程是:服务器的套接字等待客户机连接请求,并创建新的套接字,使其与客户机的套接字连接,而本身继续等待其他客户机的连接请求。

1.与IP相关的InetAddress类应用:

InetAddress类是与IP地址相关的类。利用此类可以获取IP地址、主机地址等信息。

InetAddress类的常用方法如下:

public static InetAddress getByName(String host): 获取与host相对应的InetAddress对象。

public String getHostAddress(): 返回主机地址的字符串表示。

public String getHostName(): 返回主机名的字符串表示。

public synchronized static InetAddress getLocalHost(): 返回本地主机的InetAddress对象。

例如:

import java.net.*;

/*

*创建一个InetAddress类对象IP

*通过getHostName方法获得主机名

*通过getHostAddress方法获得主机的IP地址

*通过getLocalHost().getHostAddress()方法获取本机的IP地址

*/

publicclass tcptest {

    publicstaticvoid main(String[] args) {

       // TODO Auto-generated method stub

       InetAddress ip=null;   //创建对象

       try{    //一定要获取异常!

           ip=InetAddress.getByName("WIN-H3VDJ9FM01T");

              //根据主机名实例化对象;

           System.out.println("主机名:"+ip.getHostName());

                                        //获取主机的名称;

           System.out.println("主机IP地址:"+ip.getHostAddress());

                                       //获取主机(服务器)的IP地址

System.out.println("本机IP地址:"+InetAddress.getLocalHost().getHostAddress());

    //获取本地的IP地址;

       }catch(Exception e){

           System.out.println(e);

       }

    }

}

2.服务器套接字应用

  ServerSocket类表示服务器套接字。服务器的套接字是通过指定的端口等待连接的套接字。服务器的套接字一次只可以与一个客户机的套接字连接,如果有多台客户机同时要求同服务器连接,那么服务器套接字会将请求的客户机的套接字存入队列中,然后,从中取一个连接一个。队列的默认大小为50.

ServerSocket类的常用构造函数有:

pblic ServerSocket(int port)

使用指定的端口创建服务器套接字。

public ServerSocket(int port,int backlog)

使用指定的端口创建服务器,backlog用来指定队列大小。

public ServerSocket(int port,int backlog,InetAddress bindAddr)

使用指定的IP地址、端口号及队列大小,创建服务器套接字。

ServerSocket类的主要常用方法有:

public Socket accept()   :等待客户机连接,若连接,则创建一个套接字,并且将其返回。

public void close()   :关闭服务器套接字。

public boolean isClosed()   ;若服务器套接字成功关闭,则返回true。否则返回false。

public InetAddress getInetAddress()   :返回与服务器套接字结合的IP地址。

public int getLocalPort()   :获取服务器套接字等待的端口号。

public void bind(SocketAddress endpoint)  :绑定于endpoint相对应的套接字地址(IP地址+端口号)。

public boolean isBound()   :若服务器套接字已经与某个套接字地址连接绑定起来,则返回true;否则返回false。

3.套接字实现

  Socket类表示套接字。使用Socket时,需要指定待连接服务器的IP地址及端口号。客户机创建了Socket对象后,将立即向指定的IP地址及端口号发起请求且尝试连接。于是,服务器套接字就会创建新的套接字对象,使其与客户端套接字连接起来。

Socket类的构造器有两个:

public Socket(String host,int port)

创建连接指定的服务器(主机名和端口号)的套接字

public Socket(InetAddress address,int port)

创建连接指定服务器的套接字。address表示IP地址对象,port是端口号。

Socket类的常用方法有:

public InetAddress getInetAddress():获取被连接的服务器的地址

public int getPort():获取端口号。

public InetAddress getLocalAddress():获取本地地址。

public int getLocalPort():获取本地端口号。

public Inputstream getInputStream():获取套接字的输入流。

public OutputStream getOutputStream():获取套接字的输出流。

public void bind(SocketAddress bindpoing):绑定指定的IP地址和端口号。

public boolean isBound():获取绑定状态。

public synchorized void close():关闭套接字。

public boolean isClosed():获取套接字是否关闭。

public boolean isConnected():获取套接字是否被连接

public void shutdownInput():关闭输入流。

public boolean isInputShutdown();返回输入流是否被关闭。

(1)服务器程序编写:

1)调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口。

2)调用accept(),监听连接请求,如客户端连接,则接受并返回通信套接字。

3)调用Socket类的getOutputStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接收。

4)最后关闭通信流套接字。

(2)客户端程序编写:

1)调用Socket()创建一个流套接字,并连接到服务器端。

2)调用Socket类的getOutputStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接收。

3)最后关闭通信流套接字。

例如:

服务器端:

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.*;

// 1 服务器端

publicclass tcptest1 {

   

    privatestatic BufferedReader reader1;     //创建一个缓冲输入流

    publicstaticvoid main(String[] args) {

       // TODO Auto-generated method stub

       try{

          

           ServerSocket server1=new ServerSocket(5012);

           Socket soc;

           soc=server1.accept();

           //System.out.println(soc.getInputStream());

           reader1=new BufferedReader(new InputStreamReader(soc.getInputStream()));

           //获取套接字的数据输入流;

           //System.out.println(reader1);

           while(true){

              System.out.println("客户机:"+reader1.readLine());

                                          //接收客户端的数据流;

           }

       }catch(Exception e){

           //System.out.println(e);

       }

    }

}

客户端:

import java.io.IOException;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.*;

//1 客户端

public class test {

   

    private static PrintWriter writer1;

    /**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        try {

            Socket s=new Socket("127.0.0.1",5012);

            writer1=new PrintWriter(s.getOutputStream(),true);

            //获取输出流

            for(int i=0;i<10;i++){

                writer1.println("jiang "+i);

                //向服务器发送字符串数据

            }

            //System.out.println(s.getOutputStream()+"   jiang");

        } catch (UnknownHostException e) {         

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

输出结果为:

UDP程序设计基础

编写UDP程序的步骤:

(1)接收端程序代码编写:

1)调用DatagramSocket(int port)创建一个数据报套接字,并且绑定到指定的端口上。

2)调用DatagramPacket(byte[] buf,int length),创建一个字节数组以接收UDP包。

3)调用DatagramSocket类的receive(),接收UDP包。

(2)关闭数据报套接字。

(3) 发送端程序编写:

1)调用DatagramSocket创建一个数据包套接字。

2)调用DatagramPacket(byte[] buf,int offset,int length,InetAddress address,int port),建立要发送的UDP包。

3)调用DatagramSocket类的send(),发送UDP包。

(4)关闭数据包套接字。

UDP不提供可靠的数据传输,TCP的目的是提供可靠的数据传输。

更多相关推荐:
Java基础知识总结(超级经典)

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java各知识点详细总结

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识总结(超级经典)1

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识总结(超级经典)

Java基础知识总结超级经典写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技...

Java基础知识总结

JAVA基础知识总结第一章Java入门1java诞生19xx年5月23日Sun公司发布了jdk10版本作者JamesGoslingJAVAME微型版手机软件开发JAVASE标准版桌面应用程序JAVAEE企业版企...

Java基础知识总结

Java总结标识符?Java对各种变量、方法和类等要素命名时使用的字符数列称为标识符。?凡是自己可以起名字的地方都叫标识符,都遵循标识符的规则?Java标识符命名规则:?标识符由字母、下划线“__”、美元”$”…

Java基础知识总结

JAVA基础知识总结第一章Java入门1java诞生19xx年5月23日Sun公司发布了jdk10版本作者JamesGoslingJAVAME微型版手机软件开发JAVASE标准版桌面应用程序JAVAEE企业版企...

java基础知识总结

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识总结

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

Java入门基础知识总结学习教程大全【必看经典】

java基础知识总结

毕向东Java基础知识总结超级经典InordertotomorrowJava基础知识总结超级经典1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的ja...

java基础知识总结

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点qq群号3288490421...

java基础知识总结(35篇)