![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
❶、JavaSE基础
JavaSE基础
郑清
If I were you.
展开
-
JavaSE基础(141) TCP协议(通过Socket和ServerSocket)实现客户端与服务端之间的通信
Java此协议中有两个类Socket 和ServerSocket 其中有一些方法,能够实现在两个不同的终端之间传输数据(客户端-服务端)建立连接模拟:客户端 > 服务端 > 客户端 (这是一个ECHO程序:是一个网络编程通信交互的经典例子,称为回应程序)1.窗体的搭建2.建立连接3.数据发送何数据读取下面的例子 注意:需要先启动服务端,再启动客户端 ...原创 2018-09-10 19:44:38 · 1684 阅读 · 0 评论 -
JavaSE基础(140) URLEncoder与URLDecoder
URLEncoder:方法摘要 staticString encode(Strings, Stringenc) 使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式。 URLDecoder:方法摘要 staticString decode(Strings, String...原创 2018-09-10 18:50:32 · 321 阅读 · 0 评论 -
JavaSE基础(139) 正则表达式
具体查看API文档 ==》Pattern、Matcherex:/** * 正则表达式 * @author 郑清 */public class _09Pattern { public static void main(String[] args) { //验证电话号码 String telephone = "1[3,5,8,9][0-9]{9}"; System....原创 2018-09-10 11:46:51 · 399 阅读 · 0 评论 -
JavaSE基础(138) 随机访问文件RandomAccessFile
RandomAccessFile:此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的...原创 2018-09-10 11:13:17 · 832 阅读 · 0 评论 -
JavaSE基础(137) 对象流
对象流:将对象永久保存到磁盘或者进行网络传输 (注意:前提是对象能够序列化,然后提供一个版本号)ObjectInputStream : 从文件中读取出保存的对象ObjectOutputStream :从内存中、代码中 将对象写入磁盘文件 【能够将对象永久的保存到磁盘文件中】ex:使用对象流完成对自定义对象的序列化和重构测试/** * 对象流:将对象永久保存到磁盘或者进...原创 2018-09-10 09:53:52 · 1536 阅读 · 0 评论 -
JavaSE基础(136) 文本扫描器Scanner
文本扫描器Scanner:主要用来扫描 文本Scanner implments Iterator[ hasNext Next]: 一个Scanner 可以通过迭代的方式,将一个文本的数据,全部迭代出来Scanner(File source) :扫描的指定的文件Scanner(InputStream source) :扫描指定的输入流Scanner(String source) :扫描指定...原创 2018-09-09 22:07:43 · 862 阅读 · 0 评论 -
JavaSE基础(135) 重定向标准输入输出流以及标准错误输出流的重定向
重定向标准输入输出流以及标准错误输出流的重定向:(ex:System.out 把数据输出到控制台,通过重定向可以改变输出的目的地)System中提供对应的重定向的方法:static void setOut(PrintStream out):重新分配“标准”输出流,标准输出流:输出到指定的输出流。static void setErr(PrintStream err): 重新分配“标准”错误...原创 2018-09-09 21:40:42 · 1398 阅读 · 0 评论 -
JavaSE基础(134) 打印流
打印流:是输出流 ==》只有2个,只有输出,没有输入PrintStream:字节打印流PrintWriter:字符打印流ex:打印数据 ==》打印到指定的文件D:1/1/1.txt (提示:错误日志可以用打印流)/** * 打印流:是输出流 ==》只有2个 只有输出,没有输入 * PrintStream:字节打印流 * PrintWriter:...原创 2018-09-09 21:19:09 · 1240 阅读 · 0 评论 -
JavaSE基础(133) 标准输入输出流以及标准错误输出流的基本使用
标准输入输出流以及标准错误输出流的基本使用:System.out是一个特殊的 PrintStream "标准"输出流==》 输出结果到控制台System.err是一个特殊的 PrintStream "标准"错误输出流==》输出到控制台System.in是一个特殊的InputStream "标准"输入流==》接收数据源 到 控制台输入ex:/** * ...原创 2018-09-09 21:18:15 · 3433 阅读 · 1 评论 -
JavaSE基础(132) 缓冲流
缓冲流:在读取的过程中,对其他的IO流进行一个包装 缓冲数据,减少了操作节点设备的次数 -->以达到高效的读写操作 磁盘 <==>(缓冲) <==> 内存BufferedInputStream:为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力BufferedOutputStream:该类实现缓冲的输出流...原创 2018-09-09 20:39:46 · 380 阅读 · 0 评论 -
JavaSE基础(131) 内存流
内存流:在内存中读写数据 (特点:数据在内存中处理比磁盘(硬盘)要更快一些,有时候可能需要临时在内存中保存并处理数据,内存流效率会更高)ByteArrayInputStream:包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪 read 方法要提供的下一个字节。关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOExc...原创 2018-09-09 20:03:03 · 2779 阅读 · 2 评论 -
JavaSE基础(130) IO流的异常处理
IO流中异常处理方式一:传统方式try { //可能出现异常的代码} catch (Exception e) { //处理异常}finally { //关闭流 }/** * IO流 异常处理 * @author 郑清 */public class Demo { public static void main(String[] args...原创 2018-09-09 13:13:46 · 1988 阅读 · 0 评论 -
JavaSE基础(129) IO流拷贝文件(文本,视频,图片,音频)的方法
/** * IO流拷贝文件的方法 * @author 郑清 */public class Demo { public static void main(String[] args) throws IOException { String src = "D:1/1/1.avi";//需要拷贝的源文件路径 String dest = "D:1/2/2.avi";//需要拷...原创 2018-09-09 12:12:26 · 884 阅读 · 0 评论 -
JavaSE基础(128) 使用文件流来读取文件内容和写入内容到一个文件中
读取文件内容:FileInputStream、FileReader写入内容到文件:FileOutputStream、FileWriterex:/** * 使用文件流来读取文件内容和写入内容到一个文件中 * 读取文件内容:FileInputStream、FileReader * 写入内容到文件:FileOutputStream、FileWriter * @author 郑清...原创 2018-09-08 11:41:39 · 5878 阅读 · 0 评论 -
JavaSE基础(127) IO流之转换流
InputStreamReader:字节输入流转字符输入流第一步: 创建InputStreamReader对象,构造方法中传入一个InputStream字节输入流构造方法摘要 InputStreamReader(InputStreamin) 创建一个使用默认字符集的 InputStreamReader。 InputStreamReader(InputS...原创 2018-09-08 10:32:37 · 360 阅读 · 0 评论 -
JavaSE基础(126) IO流中字节流和字符流的区别
操作的单位不一样,一个是字节[byte-8bit],一个是字符[变长字节] 操作中文的时候使用字符流更方便 字节流更广泛:文本,视频,音频,图片... 字符流中有可以直接写字符串的方法 字节输出流 : 程序 ---> 磁盘文件 如果不关闭流也会写入字符输出流 : 程序 ==> 缓冲【flush/close】 ==> ...原创 2018-09-08 10:01:35 · 893 阅读 · 0 评论 -
JavaSE基础(125) 开发中常见的字符编码
ASCII编码:用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7位存储数据,一共可以表示128个字符。0-7数据 : 英文的编码GBK ==》ASCII ex: 65 ==》A 97 ==》a拓展ASCII编码:用于表示更多的欧洲文字,用8个位存储数据,一共可以表示256个字符GBK/GB2312/GB18030:简称国标,...原创 2018-09-08 09:47:52 · 347 阅读 · 0 评论 -
JavaSE基础(124) IO流读写乱码问题(字符编码)
为什么IO流读写中可能会出现乱码问题??①编码和解码规则不一致②这个字符编码不支持某种语言(ex:中文)那我们应该怎么去尽可能的避免出现乱码的情况呢??1.编码 : String ---> byte[]String中有对应的方法: ①:byte[] getBytes() : 使用平台的默认字符集将此 String 编码为 byte 序列 ②:b...原创 2018-09-08 09:42:17 · 12597 阅读 · 1 评论 -
JavaSE基础(123) FileWriter(字符流-文件输出流)将内容写入到文件中
FileWriter:用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter。文件是否可用或是否可以被创建取决于底层平台。特别是某些平台一次只允许一个 FileWriter(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打...原创 2018-09-07 19:17:32 · 5160 阅读 · 0 评论 -
JavaSE基础(122) FileReader(字符流-文件输入流)读取文件内容
FileReader:用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。FileReader 用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream。第一步: 创建字符流对象 怎么创建??==》 通过File...原创 2018-09-07 18:58:56 · 11095 阅读 · 0 评论 -
JavaSE基础(121) FileOutputStream(字节流-文件输出流)将数据写入到一个文件中
FileOutputStream:文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。FileOutputStream 用于写入诸如图像数据之类的原始字...原创 2018-09-07 17:04:58 · 20456 阅读 · 0 评论 -
JavaSE基础(120) FileInputStream(字节流-文件输入流)读取文件内容
FileInputStream:从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。FileInputStream:用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。第一步: 创建输入流对象 怎么创建?? ==》通过FileInputStream的构造方法创建FileInputStream(Filefile)...原创 2018-09-07 12:14:23 · 10883 阅读 · 0 评论 -
JavaSE基础(119) 递归实现斐波那契数列
递归:一个方法内部自己调用自己斐波那契数列: f(0) = 0; f(1) = 1; f(n) = f(n-1)+f(n-2); n>=2ex:f(3)=f(2)+f(1)=f(1)+f(0)+f(1)=1+0+1=2/** * 递归:自己调用自己 * 要求:使用递归实现斐波那契数列 * 斐波那契数列: * f(0) = 0; * ...原创 2018-09-06 19:26:26 · 3610 阅读 · 0 评论 -
JavaSE基础(118) File文件过滤器
File文件过滤器:File[] listFiles(FilenameFilterfilter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 File[] listFiles(FileFilterfilter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目...原创 2018-09-06 19:14:19 · 1180 阅读 · 0 评论 -
JavaSE基础(117) File的list方法
static File[] listRoots() : 列出可用的文件系统根 ==》即列出计算机磁盘的盘符 String[] list() : 返回一个字符串数组,这些字符串指定file路径下的所有文件和目录 ==》列出文件名File[] listFiles() : 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件 ==》列出文件的绝对路径/** * ...原创 2018-09-06 18:53:41 · 7919 阅读 · 0 评论 -
JavaSE基础(116) File如何删除文件和文件夹方法
boolean delete() 删除此抽象路径名表示的文件或目录。 删除文件:存在文件则直接删除返回true,如果不存在返回false删除目录: ①:为空:直接删除 ②:不为空:删不掉 (需要先删除文件夹里面所有文件,再删除文件夹) ③:不存在直接返回false注意:delete方法 ==》直接从磁盘中删除,不能像回收站一样可以恢复!!...原创 2018-09-06 18:31:38 · 19456 阅读 · 3 评论 -
JavaSE基础(115) File 自定义方法实现文件过滤
自定义方法实现文件过滤: 1.先指定要查找文件的父路径 2.定义方法实现查找指定文件类型 ①: String[] list() :返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 作用:保存1.指定父路径下所有的 文件和目录 的路径 ②:声明一个数组list2用于保存所要查找的文件 ③:遍历list查找指定...原创 2018-09-06 17:29:22 · 708 阅读 · 0 评论 -
JavaSE基础(114) File对象的创建以及创建文件和文件夹
File:抽象的描述了磁盘路径(创建一个具体的对象==>指定路径 但是该路径的文件或者文件夹不一定在磁盘真的存在!!!) 一个File对象就是一个具体的文件或者目录(目的:指定文件或文件夹保存的路径)如何得到一个具体的File对象?? ==》通过构造方法 File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。...原创 2018-09-06 12:58:10 · 33781 阅读 · 2 评论 -
JavaSE基础(113) Collection体系结构图
原创 2018-09-06 12:03:56 · 1694 阅读 · 2 评论 -
JavaSE基础(112) 设计泛型方法
设计一个泛型方法: 要求:传入一个数组 ==》存在默认类型 ①根据传入的数组,获得 一个副本,然后对该副本进行一个排序 ②将数组返回出去 ③当在使用方法的时候,传入什么类型,返回什么类型注意:需要在使用的时候指定类型/** * 设计一个泛型方法: * 要求:传入一个数组 ==》存在默认类型 * ①根据传入的数组,获得 一个副本,然后对该副本进...原创 2018-09-05 22:45:43 · 509 阅读 · 0 评论 -
JavaSE基础(111) 自定义泛型类
自定义泛型类: 允许声明两个泛型 ex:MyGeneric<T,Y> 泛型类设计:泛型声明是在类头部,所以在类中任何位置都可以使用注意:①泛型不支持 基本数据类型 ②泛型写法:MyGeneric<Object, Object> myGeneric = new MyGeneric<>(); //jdk1.7之后支持后面&...原创 2018-09-05 22:18:14 · 548 阅读 · 0 评论 -
JavaSE基础(110) Properties文件的读写
Properties文件读写: (主要目的就是用来存储处理字符串数据)Properties 类表示了一个持久的属性集。 持久化:数据永久的保存存到硬盘中 属性集:一个数据的集合key - value ==》 String - String①可保存在流中或从流中加载。②特殊的map集合【装了一个定的数据 】:可以将这些数据放入到 流中 : 直接 通过流将数据流动到磁盘③类 ...原创 2018-09-05 20:20:24 · 440 阅读 · 0 评论 -
JavaSE基础(109) Collections操作集合的工具类
Collections:操作集合的工具类 static <T> boolean addAll(Collection<? super T> c, T... elements) : 将所有指定元素添加到指定 collection 中。 static <T> void copy(List dest, List src) : 将所有元素从一个列表复制到另...原创 2018-09-05 19:34:35 · 225 阅读 · 0 评论 -
JavaSE基础(108) Map应用之求一个字符串中字符出现的次数?并打印出出现次数最多的那对键值对
求一个字符串中 字符出现的次数, 并打印出 出现次数最多的那对 键值对 思路: ①:通过 char[] toCharArray() 将字符串保存到字符数组中 ②:遍历字符数组 ③:将数组里的每一个不重复的字符作为键保存到map中,将每一个相同字符的数量作为值保存到map中 ④:求出出现次数最多的键值对/** * 求一个字符串中 字符出现的次数? ...原创 2018-09-05 18:57:08 · 994 阅读 · 0 评论 -
JavaSE基础(107) Map的4种遍历方式
Map的4种遍历方式: ①:EntrySet ②:KeySet ③:foreach ④:iterator迭代器注意:在这里方式①遍历出来的是键值对,方式②遍历是去取map中的键然后得到值,而方式③和方式④遍历出来的只是保存在map中的值!!ex:/** * Map的4种遍历方式: * ①:EntrySet * ②:KeySet * ③:...原创 2018-09-05 17:58:02 · 375 阅读 · 0 评论 -
JavaSE基础(106) Map
Map的基本使用: Map的特点:key - value (key 唯一) boolean containsKey(Objectkey) :如果此映射包含对于指定键的映射关系,则返回 true。 boolean containsValue(Objectvalue) :如果此映射将一个或多个键映射到指定值,则返回 true。 get(Objectkey) :返回指...原创 2018-09-05 17:36:02 · 252 阅读 · 0 评论 -
JavaSE基础(105) TreeSet
TreeSet的介绍及基本使用 1.基于 TreeMap 的 NavigableSet 实现 2.使用元素的自然顺序对元素进行排序 3.或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法 4.注意,此实现不是同步的SortedSet s = Collections.synchronizedSortedSet(new Tr...原创 2018-09-03 23:05:34 · 278 阅读 · 0 评论 -
JavaSE基础(104) HashSet
HashSet的基本认识及基本使用 1.此类实现 Set 接口, 2.由哈希表(实际上是一个 HashMap 实例)支持。 3.它不保证 set 的迭代顺序; 4.特别是它不保证该顺序恒久不变。 5.此类允许使用 null 元素。 6注意,此实现不是同步的Set s = Collections.synchronizedSet(new Hash...原创 2018-09-03 22:28:46 · 839 阅读 · 0 评论 -
JavaSE基础(103) GUI自定义一个画板
功能:可以画直线,拖动窗体变化后可重新对屏幕绘制一开始画的直线public class MyPaint extends Frame{ int x1,y1,x2,y2; ArrayList list = new ArrayList();//只要MyPaint对象存在,list集合一直存在 public static void main(String[] args) { new M...原创 2018-08-31 23:13:41 · 1233 阅读 · 0 评论 -
JavaSE基础(102) LinkedList链表
LinkedList:链表 ①:LinkeList implements List ,Deque extends Queue ②:实现了可选列表操作,数据列表,插入null值 ③:提供了 get remove insert 对链表的头,尾 ④:可以作为:堆栈 FILO 队列 排队:FIFO 双端队列 LinkedList( ) :构造一个空列表 L...原创 2018-08-31 19:54:55 · 435 阅读 · 0 评论