![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
文章平均质量分 94
编程小菜鸟123
这个作者很懒,什么都没留下…
展开
-
JAVA网络编程之上传文件(TCP协议)
1.客户端public static void main(String[] args) throws UnknownHostException, IOException { // 1.提示输入要上传的文件路径, 验证路径是否存在以及是否是文件夹 File file = getFile(); // 2.发送文件名到服务端 Socket socket = new Sock...原创 2019-04-02 23:25:36 · 233 阅读 · 0 评论 -
随机访问流RandomAccessFile
一、简介1.概述此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;该文件指针可以通过 getFilePointer 方法读取,并通过 seek 方法设置。RandomAccessFile类不属于流,是Object类的子类。但它融合了InputStream和OutputStream...原创 2019-02-11 17:52:26 · 242 阅读 · 0 评论 -
内存输出流ByteArrayOutputStream
一、简介1.概述此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。关闭 ByteArrayOutputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。2.构造方法ByteArrayOutputStream()...原创 2019-02-11 17:41:08 · 20161 阅读 · 0 评论 -
序列流SequenceInputStream
一、简介1.概述SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。 2.构造方法SequenceInputStream(Enumeration<? extends InputStream> e) ...原创 2019-02-11 17:28:04 · 596 阅读 · 0 评论 -
JAVA实现偷偷复制好友U盘中的照片
public class Steal { private String resource = null; private String des = null; private BufferedInputStream bis = null; private BufferedOutputStream bos = null; public Steal(Str...原创 2019-02-11 16:48:13 · 345 阅读 · 0 评论 -
JAVA多线程实现的四种方法
一、方法一(继承Thread类)定义类继承Thread,重写run方法,把新线程要做的事写在run方法中,创建线程对象,开启新线程, 内部会自动执行run方法。public class Demo2 { public static void main(String[] args) { MyThread mt = new MyThread(); //4,创建Thre...原创 2019-02-28 23:55:16 · 244 阅读 · 0 评论 -
JAVA多线程简介
一、简介1.线程线程是程序执行的一条路径,一个进程中可以包含多条线程多线程并发执行可以提高程序的效率,可以同时完成多项工作2.应用场景红蜘蛛同时共享屏幕给多个电脑 迅雷开启多条线程一起下载 QQ同时和多个人一起视频 服务器同时处理多个客户端请求3.并行和并发的区别并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。(需要多核CPU) 并发是指两个任务都...原创 2019-02-21 22:16:57 · 297 阅读 · 0 评论 -
JAVA实现获取文本上字符出现的次数
public static void main(String[] args) throws IOException { //1,创建带缓冲的输入流对象 BufferedReader br = new BufferedReader(new FileReader("zzz.txt")); //2,创建双列集合对象TreeMap TreeMap<Character, In...原创 2019-02-09 22:03:42 · 215 阅读 · 0 评论 -
JAVA使用指定的码表读写字符
一、InputStreamReader和OutputStreamWriter1.概述①InputStreamReaderInputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如: BufferedReader...原创 2019-02-09 21:50:18 · 417 阅读 · 0 评论 -
JAVA字符流复制文件的几种方式
一、注意事项1.字符流也可以拷贝文本文件,但不推荐使用因为读取时会把字节转为字符,写出时还要把字符转回字节。2.不可以拷贝非纯文本的文件因为在读的时候会将字节转换为字符,在转换过程中,可能找不到对应的字符,就会用?代替;写出的时候会将字符转换成字节写出去,如果是?,直接写出,这样写出之后的文件就会产生乱码。3.使用情况程序需要读取一段文本,或者需要写出一段文本的时候可以使用...原创 2019-02-09 19:09:40 · 2353 阅读 · 0 评论 -
字符流概述
一、字符流概述字符流是可以直接读写字符的IO流,字符流读取字符,就要先读取到字节数据,然后转为字符.;如果要写出字符,需要把字符转为字节再写出。父类为Reader,子类为Reader结尾二、FileReader1.构造函数FileReader(File file) 在给定从中读取数据的 File 的情况下创建一个新 FileReader。 Fil...原创 2019-02-09 18:55:30 · 457 阅读 · 0 评论 -
JAVA字符流实现图片加密
ublic static void main(String[] args) throws IOException { BufferedInputStream bis = new BufferedInputStream(new FileInputStream("copy.jpg")); BufferedOutputStream bos = new BufferedOutputStrea...原创 2019-02-08 21:30:41 · 709 阅读 · 0 评论 -
JAVA字节流的标准处理异常代码
一、1.6版本及其以前public static void demo1() throws FileNotFoundException, IOException { FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream("xxx.txt");...原创 2019-02-08 21:28:05 · 166 阅读 · 0 评论 -
JAVA字节流读写中文
一、问题1.字节流读取中文的问题字节流在读中文的时候有可能会读到半个中文,造成乱码 2.字节流写出中文的问题字节流直接操作的字节,所以写出中文必须将字符串转换成字节数组,写出回车换行 write("\r\n".getBytes());二、代码public static void main(String[] args) throws IOException { Fil...原创 2019-02-08 21:24:16 · 1359 阅读 · 0 评论 -
JAVA字节流实现复制文件的几种方式
一、方式一public static void demo1() throws FileNotFoundException, IOException { FileInputStream fis = new FileInputStream("res.jpg"); //创建输入流对象,关联res.jpg FileOutputStream fos = new FileOutpu...原创 2019-02-08 21:19:23 · 3899 阅读 · 2 评论 -
对象操作流ObjectOutputStream、ObjectInputStream
一、简介1.概述该流可以将一个对象写出, 或者读取一个对象到程序中. 也就是执行了序列化和反序列化的操作①ObjectOutputStream(对象写出,序列化)ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。只能将支持 java.io.Serializa...原创 2019-02-12 17:55:18 · 296 阅读 · 0 评论 -
数据输入输出流DataInputStream,DataOutputStream
一、简介DataInputStream,DataOutputStream可以按照基本数据类型大小读写数据例如按Long大小写出一个数字,写出时该数据占8字节,读取的时候也可以按照Long类型读取,一次读取8个字节。二、使用方式public static void demo3() throws FileNotFoundException, IOException { Data...原创 2019-02-12 18:00:10 · 317 阅读 · 0 评论 -
两种方式实现键盘录入
一、方式一(IO流)BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //InputStreamReader转换流String line = br.readLine();System.out.println(line);br.close();二、方式二(Scanner)Scann...原创 2019-02-12 18:21:23 · 503 阅读 · 1 评论 -
JAVA网络编程之TCP传输
一、多线程网络编程(TCP协议)1.客户端创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器 调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流 输入流可以读取服务端输出流写出的数据 输出流可以写出数据到服务端的输入流public static void main(String[] args...原创 2019-04-02 23:16:19 · 157 阅读 · 0 评论 -
JAVA枚举类
一、方式一(无参数)public enum Week { MON,TUE,WED;}相当于public class Week { public static final Week MON = new Week(); public static final Week TUE = new Week(); public static final Week WED = ne...原创 2019-04-10 22:59:10 · 567 阅读 · 0 评论 -
JAVA反射练习
一、题目一需求:ArrayList<Integer>的一个对象,在这个集合中添加一个字符串数据,如何实现呢?提示:泛型只在编译期有效,在运行期会被擦除掉public static void main(String[] args) throws Exception { ArrayList<Integer> list = new ArrayList<&...原创 2019-04-10 22:46:11 · 1045 阅读 · 0 评论 -
JAVA反射
一、获取Class对象的三种方式public static void main(String[] args) throws ClassNotFoundException { //第一种 Class clazz1 = Class.forName("com.lym.bean.Person"); //第二种 Class clazz2 = Person.class; /...原创 2019-04-10 22:37:43 · 112 阅读 · 0 评论 -
JAVA类加载概述
一、类的加载概述和加载时机1.加载概述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三步来实现对这个类进行初始化。①加载就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象②连接验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化...原创 2019-04-03 23:42:57 · 122 阅读 · 0 评论 -
JAVA实现简单聊天室
GUI部分由Jformdesigner自动生成网络编程部分由UDP实现效果图如下:代码实现:public class Chat extends Frame{ public Chat() { initComponents(); initOthers(); } private void initOthers() { ...原创 2019-03-18 23:45:15 · 2184 阅读 · 1 评论 -
Runtime类和Timer类
一、Runtime类每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。static Runtime getRuntime() 返回与当前 Java 应用程序相关的运行时对象。 Process exec(String command) 在单独的进程中执行指定的字符串命令。 ...原创 2019-02-25 23:56:54 · 215 阅读 · 0 评论 -
JAVA网络编程值之UDP传输
一、UDP传输1.发送Send步骤: 创建DatagramSocket,随机端口号 创建DatagramPacket,指定数据,长度,地址,端口 使用DatagramSocket发送DatagramPacket 关闭DatagramSocket DatagramSocket() 构造数据报套接字并将其绑定到本地主机上任何可...原创 2019-03-14 22:59:08 · 153 阅读 · 0 评论 -
JAVA网络编程概述
一、网络编程概述1.计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。2.网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。二、网络编程三要素之IP概述每个设备在网络中的唯一标识,每台网络终端在网络中都有一个独立的地址,...原创 2019-03-04 22:44:27 · 277 阅读 · 0 评论 -
JAVA线程组概述和使用
一、概述Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。默认情况下,所有的线程都属于主线程组。ThreadGroup getThreadGroup() 返回该线程所属的线程组。 String getName() 返回此线程组的名称。 ...原创 2019-02-28 23:34:57 · 485 阅读 · 0 评论 -
JAVA多线程通信
一、两个线程间的通信1.什么时候需要通信多个线程并发执行时,在默认情况下CPU是随机切换线程的,如果我们希望他们有规律的执行, 就可以使用通信, 例如每个线程执行一次打印2.如何通信如果希望线程等待,就调用wait()如果希望唤醒等待的线程,就调用notify()这两个方法必须在同步代码中执行, 并且使用同步锁对象来调用3.代码class Printer { p...原创 2019-02-28 23:22:39 · 505 阅读 · 0 评论 -
JAVA多线程同步代码块
一、简介1.什么情况下需要同步当多线程并发,有多段代码同时执行时,我们希望某一段代码执行的过程中CPU不要切换到其他线程工作,这时就需要同步如果两段代码是同步的,那么同一时间只能执行一段,在一段代码没执行结束之前,不会执行另外一段代码2.同步代码块使用synchronized关键字加上一个锁对象来定义一段代码,这就叫同步代码块多个同步代码块如果使用相同的锁对象,那么他们就是...原创 2019-02-24 17:11:10 · 506 阅读 · 0 评论 -
Properties概述和使用
一、概述Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。public static void demo1() { Properties prop = new Properties(); prop.put("abc", 123); System.out.println(prop);...原创 2019-02-13 13:24:55 · 318 阅读 · 0 评论 -
JAVA多线程成员方法
一、获取名字和设置名字 String getName() 返回该线程的名称。 void setName(String name) 改变线程名称,使之与参数 name 相同。 也可以能够通过Thread的构造方法传入String类型的名字new Thread("线程1") { ...原创 2019-02-24 00:21:30 · 227 阅读 · 0 评论 -
Collection和Map简要总结对比
一、CollectionList(存取有序,有索引,可以重复) ArrayList 底层是数组实现的,线程不安全,查找和修改快,增和删比较慢 LinkedList 底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢 Vector 底层是数组实现的,线程安全的,无论增删改...原创 2019-01-29 23:11:44 · 203 阅读 · 0 评论 -
集合模拟斗地主洗牌和发牌
一、洗牌发牌(牌未排序)public static void main(String[] args) { //1,买一副扑克,其实就是自己创建一个集合对象,将扑克牌存储进去 String[] num = {"A","2","3","4","5","6","7","8","9","10",&qu原创 2019-01-29 23:05:53 · 117 阅读 · 0 评论 -
Collections工具类
一、概述针对集合操作的工具类,此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。二、常用方法static <T extends Comparable<? super T>> void sort(List<T> list) 根据元素的自然顺序 对指定列表按升序进行排序。...原创 2019-01-29 22:53:17 · 66 阅读 · 0 评论 -
LinkedList类之详解
LinkedList类一、概述List 接口的链接列表实现。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。二、特有方法 void addFirst(E e) 将指定元素插入此列表的开头。 void...原创 2018-12-08 17:13:38 · 498 阅读 · 2 评论 -
ArrayList类去除重复值
ArrayList类去除重复值思路:创建新集合方式明确返回值类型,返回ArrayList 明确参数列表ArrayList 步骤:创建新集合 根据传入的集合(老集合)获取迭代器 遍历老集合 通过新集合判断是否包含老集合中的元素,如果包含就不添加,如果不包含就添加实现:public static ArrayList getSingle(ArrayList list) {...原创 2018-12-08 12:36:24 · 727 阅读 · 0 评论 -
Collection类之详解(一)
Collection类之详解(一)一、概述Collection 层次结构 中的根接口。由来由于数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,所以java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少。数组和集合的区别区别1 : 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数...原创 2018-12-05 08:57:06 · 10355 阅读 · 0 评论 -
JAVA之常见类(二)
JAVA之常见类(二)六、Date类1.概述类 Date 表示特定的瞬间,精确到毫秒。2.构造方法Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 ...原创 2018-12-01 20:13:31 · 188 阅读 · 0 评论 -
Collection类之详解(二)
Collection类之详解(二)六、List集合1.概述有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。List 接口提供了 4 种对列表元素进行定位(索引)访问方法。List 接口提供了特殊的迭代器。2.特有函数void add(i...原创 2018-12-06 22:20:25 · 315 阅读 · 0 评论