
Java基础
文章平均质量分 53
空空的城
这个作者很懒,什么都没留下…
展开
-
Java语言-74:TCP编程-------字符流
1、客户端:package Socket_TCP;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;public class C...原创 2018-06-07 23:24:03 · 255 阅读 · 0 评论 -
Java语言-53:进程和线程的概念和原理
1、进程:进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个进程。 2、线程: 1)线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。 注意:“同时”执行是人的感觉,在线程之间实际上轮换执行。 ...原创 2018-05-24 23:11:19 · 133 阅读 · 0 评论 -
Java语言-52:序列化和反序列化
1、概念: 1) Java序列化是指把Java对象转换为字节序列的过程; 2) 而Java反序列化是指把字节序列恢复为Java对象的过程。2、作用: 1)实现了数据的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里); 2)利用序列化实现远程通信,即在网络上传送对象的字节序列。3、如何实现序列化和反序列化...原创 2018-05-24 22:58:48 · 106 阅读 · 0 评论 -
Java语言-51:将集合中的数据加入到File文件中和将File文件中的数据加入到集合中
1、集合------------>File 将集合中的元素添加到File文件中: 思路:1)遍历集合元素-------->目标源文件---------->ArrayList 2)BufferedWriter----------->目的地文件----------&g...原创 2018-05-23 23:31:15 · 775 阅读 · 0 评论 -
Java语言-50:读取功能的方法和区别
方法1:一次读取一个字节 例如代码 :public class IO_InputStream_FileInputStream_method {public static void main(String[] args) throws Exception {// 首先在本项目目录下创建f.txt文件,文件内容为asdfgh// 创建一个字节文件输入流对象/...原创 2018-05-23 22:48:37 · 168 阅读 · 0 评论 -
Java语言-49:File文件的复制和读写功能
1、复制功能(copy):package IO;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;/*需求:将asd.txt文件中的内容复制到f.txt中 * 分析:优先采用字符流; * 1)源文件:asd.txt----->Reader-...原创 2018-05-23 22:34:33 · 273 阅读 · 0 评论 -
Java语言-48:字节缓冲输出流BufferedOutputStream
1、BufferedOutputStream:该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。 2、构造方法和常用方法: 1)构造方法: a、BufferedOutputStream(OutputStream out) 创建一个新的缓冲...原创 2018-05-22 22:37:32 · 305 阅读 · 0 评论 -
Java语言-47:字节缓冲输入流BufferInputStream
1、BufferInputStream概述: BufferedInputStream 为另一个输入流添加一些功能。在创建 BufferedInputStream 时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节2、BufferInputStream的构造方法和功能 ...原创 2018-05-22 22:18:22 · 2680 阅读 · 0 评论 -
Java语言-46:FileOutputStream的一些功能
1、是OutputStream的一个实现类,FileOutputStream 用于写入诸如图像数据之类的原始字节的流。2、流的概念:流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动。按照数据的传输方向,分为输入流和输出流。Java语言里的流序列中的数据既可以是未经加工的原始二进制数据,也可以是经过一定编码处理后符合某种特定格式的数据。3、FileOutputStream的...原创 2018-05-20 22:22:10 · 329 阅读 · 0 评论 -
Java语言-45:字节输入流InputStream的常用方法
1、package IO;import java.io.FileInputStream;import java.io.FileNotFoundException;/*由于InputStream是抽象类,不能实例化,故在实际开发中一般使用其子实现类FileInputStream进行实例化 * FileInputStram的一些方法: * read() :从此输入流中读取一个数据字...原创 2018-05-17 21:24:47 · 812 阅读 · 0 评论 -
Java语言-44:IO流的概述
1、IO流的结构:2、什么是IO流? 将通过不同的输入输出设备之间的数据传输抽象表示为“流”,程序允许通过流的方式与输入输出设备进行数据传输。Java中的流都位于java.io包中,称为IO(输入输出)流。3、IO流分为字符流和字节流。 1)字节流:可以处理所有以bit为单位存储的文件,即可处理所有的文件,但在处理字符上相对于字符流速度较慢。 2)...原创 2018-05-17 19:39:02 · 118 阅读 · 0 评论 -
Java语言-43:File的高级功能理解并举例
package File;import java.io.File;/* File的高级功能 * public String[] list() :获取当前某个路径下的所有的文件夹以及文件名称的字符串数组 * public File[] listFiles() :获取当前某个路径下所有的文件夹以及文件的File数组 * * 需求:获取d盘下所有的文件夹以及文件的名称 * * */p...原创 2018-05-17 19:00:28 · 127 阅读 · 0 评论 -
Java语言-42:File的获取和判断功能
1、File的获取功能package File;import java.io.File;/* * File类的获取功能: * public String getAbsolutePath():获取抽象文件的绝对路径 * public String getPath():获取相对路径的字符串 * public String getName()返回由此抽象路径名表示的文件或目录的名称 *...原创 2018-05-17 13:36:06 · 133 阅读 · 0 评论 -
Java语言-41:File的删除和重命名功能
1、删除功能 package File;import java.io.File;/*删除功能:public boolean delete() :删除文件或者文件夹(目录不能是空的) :逐一删除文件或者目录的 * * 如果创建一个文件/目录,没有写盘符的时候,会创建在哪里呢? * 会创建在当前项目路径下 * * */public class File_method...原创 2018-05-17 13:01:42 · 181 阅读 · 0 评论 -
Java语言-40:File类的概述和创建功能
1、概述:package File;import java.io.File;/* File: * 1)文件和目录路径名的抽象表示形式。IO流就是对文件进行操作的 * 2)抽象路径名中的第一个名称是目录名,抽象路径名中第一个名称之后的每个名称表示一个目录; * 3)最后一个名称既可以表示目录,也可以表示文件。空 抽象路径名没有前缀和名称序列 * method:(封装) * 1)pu...原创 2018-05-17 12:59:17 · 217 阅读 · 0 评论 -
Java语言-39:异常中的注意事项
1、子类继承父类的时候的注意事项 1)子类重写父类的方法的时候,子类的方法的抛出的异常必须要么是父类的方法异常一样,要么是父类方法异常的子类 2)子类重写父类方法的时候,如果父类中的这个方法没有抛出异常,那么子类重写的这个方法也不能抛出异常,只能try...catch 3)如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是...原创 2018-05-16 17:40:25 · 260 阅读 · 0 评论 -
Java语言-38:抛出异常的三种方式和Throws和Throw的区别
1、第一种方式:Throw 概述: 1)是指抛出的一个具体的异常类型。表示也是抛出异常,抛出的一个异常对象 (throw new 异常类名() :匿名对象的方式) 2)在语句体中抛出的,由语句体进行处理,它表示抛出异常的肯定性2、第二种方式:Throws 概述: 1)是用来声明一个方法可能抛出的所有...原创 2018-05-16 00:21:24 · 817 阅读 · 0 评论 -
Java语言-54:多线程的实现思路和代码实现
1、多线程的举例 :JVM:Java虚拟机 识别main(主线程) JVM是多线程程序吗?至少有几条线程.. jvm是多线程的, 至少有2条线程... 有主线程,main..执行这些代码,能够被Jvm识别 在执行一些程序的时候,一些对象Jvm释放掉,原因, 它开启了垃圾回收线程,里面GC:垃圾回收器(回收一些没有更多引用的对象或者变量...)2、多线程的实现思路 :...原创 2018-05-24 23:19:01 · 170 阅读 · 0 评论 -
Java语言-55:守护线程
1、概念:Java的线程分为两种:User Thread(用户线程)、DaemonThread(守护线程)。 1)只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束是,守护线程随着JVM一同结束工作,Daemon作用是为其他线程提供便利服务,守护线程最典型的应用就是GC(垃圾回收器),他就是一个很称职的守护者。 ...原创 2018-05-24 23:24:54 · 139 阅读 · 0 评论 -
Java语言-73:TCP编程-客户端和服务器端加入反馈
1、客户端:客户端步骤:1)创建Socket对象2)获取通道内的输出流3)接收客户端反馈4)显示数据5)关闭资源 简单举例:package Socket_TCP;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class Cli...原创 2018-06-07 22:51:31 · 215 阅读 · 0 评论 -
Java语言-72:TCP客户端和服务器端的开发原则和方法
1、服务器端:服务端的开发步骤: 1)创建服务器端的Socket对象 2)监听客户端的连接(阻塞方法) 3)获取通道内的输入流 4)读取数据,显示控制台 5)释放资源简单举例:package Socket_TCP;import java.io.InputStream;import java.net.ServerSocket;import java.net...原创 2018-06-07 22:01:18 · 192 阅读 · 0 评论 -
Java语言-70:UDP编程加入send()方法和receive()方法
1、send(DatagramPacket p) 从此套接字发送数据报包2、receive(DatagramPacket p) 从此套接字接收数据报包。3、简单举例:数据接收程序://数据发送程序...原创 2018-06-07 15:57:12 · 3285 阅读 · 0 评论 -
Java语言-69:Socket编程-UDP编程
1、Socket : 此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点。2、public class DatagramSocket extends Object :此类表示用来发送和接收数据报包的套接字。在 DatagramSocket 上总是启用 UDP 广播发送。为了接收广播包,应该将 DatagramSocket 绑定到通配符地址。在某些实现中,将 Data...原创 2018-06-01 01:16:44 · 200 阅读 · 0 评论 -
Java语言-68:InetAddrass类的应用
1、InetAddrass : 此类表示互联网协议 (IP) 地址。InetAddress 类具有一个缓存,用于存储成功及不成功的主机名解析。默认情况下,当为了防止 DNS 哄骗攻击安装了安全管理器时,正主机名解析的结果会永远缓存。该类中的某些静态成员方法的返回值是该类本身2、方法: getAddress() : 返回此 InetAddress 对象的原始 IP 地址。ge...原创 2018-05-31 22:19:32 · 257 阅读 · 0 评论 -
Java语言-67:网络编程的概述和三要素
1、计算机网络:多台计算机通过网络协议,实现网络资源共享和信息传递!2、网络编程的三要素 1)ip地址 2)端口号 3)协议/规则:TCP/IP、UDP 3、IP地址:如本机Ip地址:10.88.23.129Ip地址的分类:IP地址的组成IP地址 = 网络号码+主机地址A类IP地址:第一段号码为网络号码,剩下的三段号码...原创 2018-05-31 20:46:49 · 223 阅读 · 0 评论 -
Java语言-66:线程组和线程池的相关知识(Callable、Future、Excutors)
1、ThreadGroup:线程组表示一个线程的集合。此外,线程组也可以包含其他线程组2、线程池:线程池在系统启动时即创建大量空闲的线程,程序将一个Runnable对象或Callable对象传给线程池,线程池就会启动一个线程来执行它们的run()或call()方法,当执行完毕后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。(线程池(某个线程执行完毕,反复利用线程对象...原创 2018-05-31 20:27:52 · 246 阅读 · 0 评论 -
Java语言-65:Runtime类
1、每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。 getRuntimepublic static Runtime getRuntime():返回与当前 Java 应用程序相关的运行时对象。Runtime类的大多数方法是实例方法...原创 2018-05-31 16:20:24 · 252 阅读 · 0 评论 -
Java语言-63:常见设计模式------工厂方法设计模式
1、抽象工厂方法设计模式:一个抽象产品类,可以派生出多个具体产品类 一个抽象工厂类,可以派生出多个具体工厂类 每个具体工厂类,只能创建一个具体产品类的实例。 2、优缺点:优点: 客户端不需要在负责对象的创建(不需显...原创 2018-05-30 16:02:09 · 111 阅读 · 0 评论 -
Java语言-61:线程等待和唤醒机制
1、线程等待: 1)在Object.java中,定义了wait(), notify()和notifyAll()等接口。2)wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。3)wait() -- 让当前线程处于“等待(阻塞)状态”,“直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法”,当前线程被唤醒...原创 2018-05-30 00:14:29 · 266 阅读 · 0 评论 -
Java语言-61:死锁问题
1、死锁问题:两个或两个以上的线程,在执行的过程中出现互相等待的情况,就叫做死锁! 例如:有这样一个场景:一个中国人和一个美国人一起吃饭,美国人拿了中国人的筷子,而中国人拿了美国人的刀子和叉子,两个人开始争执; 中国人:你把我的筷子给我我就给你刀叉 美国人:你把我的刀叉给我我就给你...原创 2018-05-29 21:06:53 · 438 阅读 · 1 评论 -
Java语言-60:同步方法以及同步方法与同步代码块的区别以及同步锁的概念和作用
1、同步方法: 1)同步方法就是使用synchronized关键字修饰某个方法,这个方法就是同步方法。被synchronized修饰的方法在某一时刻只允许一个线程访问,访问该方法的其它线程都会发生阻塞,直到当前线程访问完毕后,其它线程才有机会执行该方法。 2)这个同步方法(非static方法)无须显式指定同步监视器,同步方法的同步...原创 2018-05-29 20:00:54 · 655 阅读 · 0 评论 -
Java语言-59:使用同步代码块解决多线程安全问题
1、线程安全问题:1)为什么会出现安全问题?因为程序在运行时,会出现一个线程在判断条件满足后,具备了执行资格,但没有运行代码后一个线程也判断了条件,也具备了执行资格,后一个线程运行了代码,但这时候,线程运行的条件不满足了这时候,就出现了安全问题2)问题的原因? 当多条语句在操作同一线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完 另一个线程参与进来,导致共享数据错误 ...原创 2018-05-28 23:59:58 · 165 阅读 · 0 评论 -
Java语言-58:线程的生命周期
1、线程的生命周期: 线程从开始创建的时候,一直到线程的执行,最终到线程的结束。新建线程:此时线程没执行资格,也没有执行权线程就绪:有执行资格,无执行权 在执行线程之前,可能会有阻塞执行线程:线程有执行资格并且有执行权线程死亡:线程执行结束,被JVM从内存中清理并释放掉...原创 2018-05-28 23:43:35 · 114 阅读 · 0 评论 -
Java语言-57:多线程的两种方式
1、第一种:自定义一个类,继承Thread类 实现方式:1)自定义如MyThread类,继承自Thread类 2)重写Thread类中的run()方法 3)创建MyThread类对象,分别启动线程 4)代码举例:package Thre...原创 2018-05-28 22:17:07 · 166 阅读 · 0 评论 -
Java语言-56 : 中断线程
1、概述 : 中断线程的作用是强迫线程停止执行,中断是通过调用Thread.interrupt()方法来做的. 这个方法通过修改了被调用线程的中断状态来告知那个线程, 说它被中断了. 对于非阻塞中的线程, 只是改变了中断状态, 即Thread.isInterrupted()将返回true; 对于可取消的阻塞状态中的线程, 比如等待在这些函数上的线程, Thread.sl...原创 2018-05-24 23:42:47 · 134 阅读 · 0 评论 -
Java语言-37:异常的概述和其子类
1、什么是异常(Throwable)? Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。2、其子类 1)Error:称为错误类,表示Java运行时产生的系统内部错误或资源耗尽的错...原创 2018-05-15 20:56:08 · 350 阅读 · 0 评论 -
Java语言-36:集合的功能应用举例
用游戏斗地主的玩法来体现各集合的功能:package Powker;import java.util.ArrayList;import java.util.Collections;/*需求:斗地主的装牌,洗牌,发牌,看牌 * 分析:1)装牌 * 创建集合容器,向集合中添加牌 * 牌的属性:A-K的大小 * 颜色:♠,♥,♣,♦ * 大小王 * 2)洗牌:随机打乱集合...原创 2018-05-15 16:09:52 · 190 阅读 · 0 评论 -
Java语言-17:对象数组和集合的基本功能
1、对象数组package ObjectArray;import StudentText.teacher;/* * 对象数组:可以存储对象的数组 * 需求:有三个代课老师,老师的属性为:性别,姓名,年龄,所带课的科目 * 分别为:张三,男,29,语文; * 李四,女,25,数学; * 王麻子,男,38,英语; * */public class ObjectArray__...原创 2018-05-03 22:56:08 · 231 阅读 · 0 评论 -
Java语言-16:正则表达式的与一些常用方法和最基础的校验---电话校验
package Regular_expression;import java.util.Scanner;/*正则表达式通常用于校验 * 字符x x字符\\ 反斜线字符\t 制表符 \n 换行符\r 回车符 字符类:[abc] a、b 或 c(简单类)[^abc] 任何字符,除了 a、b 或 c(否定)[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) ...原创 2018-05-03 21:14:18 · 132 阅读 · 0 评论 -
Java语言-15:System类、Math类和Random类的常用方法
1、System类package System;import java.util.Arrays;/* *常用的方法:public static void gc()运行垃圾回收器。 public static void exit(int status)终止当前正在运行的 Java 虚拟机。参数用作状态码; 一般情况,需要终止Jvm,那么参数0public static long c...原创 2018-05-03 20:54:23 · 163 阅读 · 0 评论