Java
文章平均质量分 63
在知识的行业里狗刨
求知
展开
-
序列化和反序列化小入门
序列化和反序列化小入门 什么是序列化和反序列化 ObjectOutputStream类 java.io.ObjectOutputStream 类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。 构造方法 public ObjectOutputStream(OutputStream out): 创建一个指定OutputStream的ObjectOutputStream。 构造举例,代码如下: ObjectOutputStream oos = new ObjectOutputStream(n原创 2021-05-25 16:59:24 · 92 阅读 · 0 评论 -
文件上传小入门
文件上传小入门 ServerSocket和Socket简介 Socket类 Socket 类:该类实现客户端套接字,套接字指的是两台设备之间通讯的端点。 构造方法 public Socket(String host, int port) :创建套接字对象并将其连接到指定主机上的指定端口号。如果指定的host是null ,则相当于指定地址为回送地址。 小贴士:回送地址(127.x.x.x) 是本机回送地址(Loopback Address),主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使原创 2021-05-21 15:48:51 · 82 阅读 · 0 评论 -
文件复制小入门
文件复制小入门 复制原理图解 代码实现 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileCopy { public static void main(String[] args) { FileInputStream fis=null;原创 2021-05-21 15:20:13 · 64 阅读 · 0 评论 -
实现线程的方法
1.Thread类 构造方法: public Thread() :分配一个新的线程对象。 public Thread(String name) :分配一个指定名字的新的线程对象。 public Thread(Runnable target) :分配一个带有指定目标新的线程对象。 public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并指定名字。 常用方法: public String getName() :获取当前线程名称原创 2021-05-09 15:13:38 · 94 阅读 · 0 评论 -
线程通信小入门——notify()和wait() 包子铺案例
1.1 线程通信 **概念:**多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3xljt3hi-1620480261754)(file://C:\Users%E9%82%B5%E4%BA%AE%E4%BA%AE\Desktop\JAVA%E8%AF原创 2021-05-08 21:25:52 · 144 阅读 · 0 评论 -
以买票案例演示线程的安全问题
电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “复联4”,本次电影的座位共100个 (本场电影只能卖100张票)。 我们来模拟电影院的售票窗口,实现多个窗口同时卖 “复联4”这场电影票(多个窗口一起卖这100张票) 需要窗口,采用线程对象来模拟; 需要票,Runnable接口子类来模拟 模拟买票 public class Ticket implements Runnable{ private int ticket=100; private final Object obj=ne转载 2021-05-08 21:14:36 · 221 阅读 · 0 评论 -
Java经典算法之插入排序(Insertion Sort)
3.插入排序 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 3.1 算法描述 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序; 取出下一个元素,在已经排序的元素序列中从后向前扫描; 如果该元素(已排序)大于新元素,将该元素移到下一位置; 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置; 将新元素插入到原创 2021-05-06 21:49:39 · 454 阅读 · 0 评论 -
map的三种遍历方式
map的三种遍历方式 1.通过entryset遍历 private static void bianliyi1(HashMap<String, String> map) { /*通过entryset遍历 1.获取map上的所有entry,得到set集合(存放的是map里的entry类) 2.遍历set集合 3.通过entry的getkey()和getvalue()方法 */ //获取此集合上的entryset Set<Map.Ent原创 2021-04-29 18:34:46 · 314 阅读 · 0 评论 -
==和equals的区别 && “+“ 和 append
和equals的区别 **对于,比较的是值是否相等** 如果作用于基本数据类型的变量,则直接比较其存储的 值是否相等, 如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。 其实==比较的不管是基本数据类型,还是引用数据类型的变量,比较的都是值,只是引用类型变量存的值是对象的地址 对于equals方法,比较的是是否是同一个对象 首先,equals()方法不能作用于基本数据类型的变量, 另外,equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,所以说所有类中的原创 2021-04-28 19:07:49 · 90 阅读 · 0 评论