
HeimaJava
惨猴
The Way To God
展开
-
08_4_1_四种线程池
Java 里面线程池的顶级接口是 Executor,但是严格意义上讲 Executor 并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是 ExecutorService。 newCachedThreadPool创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言...原创 2019-11-14 10:56:58 · 171 阅读 · 0 评论 -
04_1_Collection集合
集合介绍1.1为什么需要Collection 集合类的出现:java是一门面向对象的语言,就免不了处理对象,为了方便操作多个对象,那么我们就得把这多个对象存储起来,想要存储多个对象(变量),很容易就能想到一个容器——- 常用的容器我们知道有—>StringBuffered,数组,但是由于数组的长度固定;访问方式单一,只能用下标;删除数据,数据不连续,需要往前移动数据;插入数据,...原创 2019-11-04 10:00:03 · 153 阅读 · 0 评论 -
04_2_迭代器
迭代器的实现增强for循环迭代器package com.itheima.demo02.Iterator;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;/* java.util.Itrator接口:迭代器(对集合进行遍历) ...原创 2019-11-04 10:04:46 · 84 阅读 · 0 评论 -
04_3_数据结构
详解原创 2019-11-04 10:33:45 · 71 阅读 · 0 评论 -
05_1_ArrayList集合
package com.itheima.demo01.List;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/* java.util.List 接口 extends Collection接口 List接口特点: 1.有序的集合,存储元素和取出元素的...原创 2019-11-04 10:40:17 · 69 阅读 · 0 评论 -
05_2_LinkedList集合
package com.itheima.demo01.List;import java.util.LinkedList;/* java.util.LinkedList 集合 implements List接口 LinkedList集合的特点: 1.底层双向链表:查询慢,增删快 2.包含了大量操作首位元素的方法 注意:使用Li...原创 2019-11-04 10:40:50 · 162 阅读 · 0 评论 -
05_3_Vector集合
package com.itheima.demo01.List;import java.util.Enumeration;import java.util.Vector;public class Demo03Vector { public static void main(String[] args) { Vector<String> vector ...原创 2019-11-04 10:42:11 · 81 阅读 · 0 评论 -
05_4_HashSet集合
package com.itheima.demo02.Set;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Set;/* java.util.Set接口 extends Collection Set接口的特点: ...原创 2019-11-04 10:44:40 · 88 阅读 · 0 评论 -
05_5_HashSet存储任意类型数据
HashCode()package com.itheima.demo02.Set;import java.sql.SQLOutput;/* 哈希值:是一个十进制的整数,有系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来得到的地址,不是数据实际存储的物理地址) 在Object类有一个方法,可以获取对象的哈希值 int hashCode() 返回该对象...原创 2019-11-04 10:50:17 · 613 阅读 · 0 评论 -
05_6_LinkedHashSet集合
package com.itheima.demo02.Set;import java.util.HashSet;import java.util.LinkedHashSet;/* java.util.LinkedHashSet extends HashSet LinkedHashSet集合特点: 底层是一个哈希表(数组+链表/红黑树)+链表:多了一条链表...原创 2019-11-04 10:51:00 · 88 阅读 · 0 评论 -
05_7_可变参数
package com.itheima.demo03.VarArgs;/* 可变参数:是JDK1.5之后出现的新特性 适用前提: 当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数 使用格式: 定义方法时使用 修饰符 返回值类型 方法名(数据类型...变量名){} 可变参数的原理: ...原创 2019-11-04 10:51:57 · 138 阅读 · 0 评论 -
05_8_Collections工具类
package com.itheima.demo04.Collections;import java.util.ArrayList;import java.util.Collections;/* java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下: public static <T> boolean addAl...原创 2019-11-06 08:51:55 · 147 阅读 · 0 评论 -
05_9_Collections.sort使用Comparable排序
package com.itheima.demo04.Collections;import java.util.ArrayList;import java.util.Collections;/* java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下: public static <T> void sort(Lis...原创 2019-11-06 08:52:22 · 117 阅读 · 0 评论 -
05_10_Collections.sort使用Comparator排序
package com.itheima.demo04.Collections;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;/* java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下: ...原创 2019-11-06 08:52:32 · 380 阅读 · 0 评论 -
06_1_Map 接口中的常用方法
package com.itheima.demo01.Map;import java.util.HashMap;import java.util.Map;/* java.util.Map<K,V> Map集合得特点: 1.Map集合是一个双列集合,一个元素包含两个值 2.Map集合中的元素,key和value的数据类型可以相同...原创 2019-11-06 08:58:53 · 154 阅读 · 0 评论 -
06_2_Map集合的遍历
keySet()遍历package com.itheima.demo01.Map;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;/* Map集合的第一种遍历方式:通过键找值 public Set<K> keySe...原创 2019-11-06 09:01:11 · 112 阅读 · 0 评论 -
06_3_HashMap存储自定义类型
package com.itheima.demo02.Map;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;/* HashMap存储自定义类型键值 Map集合保证key是唯一的: 作为key的元素,必须重写has...原创 2019-11-06 09:02:29 · 146 阅读 · 0 评论 -
06_4_LinkedHashMap
package com.itheima.demo02.Map;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Map;/* 不允许重复 HashMap无序 LinkedHashMap有序 */public class Demo02LinkedHashMap {...原创 2019-11-06 09:05:58 · 84 阅读 · 0 评论 -
06_5_Hashtable
package com.itheima.demo02.Map;import java.util.HashMap;import java.util.Hashtable;/* java.util.Hashtable<K,V> implements Map Hashtable:底层是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢 HashMap:底...原创 2019-11-06 09:07:34 · 126 阅读 · 0 评论 -
06_6_JDK9新特性_of方法
package com.itheima.demo03.JDK9;import java.util.List;import java.util.Map;import java.util.Set;/* JDK9新特性 List接口,Set接口,Map接口:里面增加了一个静态的方法of,可以给集合一次性添加多个元素 static<E> l...原创 2019-11-06 09:22:36 · 228 阅读 · 0 评论 -
08_1_多线程的使用
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些...原创 2019-11-06 19:48:57 · 218 阅读 · 1 评论 -
08_2_实现线程安全
如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。我们通过一个案例,演示线程的安全问题:电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “葫芦娃大战奥特曼”,本次电影的座位共100个(本场电影只能卖100张票)。我们来模拟电影院的售票窗口,实现多个窗口同时卖 “葫芦娃大...原创 2019-11-07 19:09:45 · 113 阅读 · 0 评论 -
08_3_线程间的通信和生产者消费者的实现
线程间的通信package com.itheima.demo08.WaitAndNotify;/* 等待唤醒案例:线程之间的通信 创建一个顾客(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到WATTING状态(无效等待状态) 创建一个老板(生产者):花了5s做包子,做好包子后,调用notify方法,唤醒顾客吃包子...原创 2019-11-07 19:20:24 · 146 阅读 · 0 评论 -
08_4_线程池的使用
线程池的使用package com.itheima.demo10.ThreadPool;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/* 线程池:JDK1.5之后提供的 java.util.concurrent.Executors:线程池的工厂类...原创 2019-11-07 19:39:53 · 89 阅读 · 0 评论 -
08_5_Lambda的使用
package com.itheima.demo01.Lambda;/* Lambda表达式标准格式: 三部分组成: 一些参数 一个箭头 一段代码 格式: (参数列表)->{一些重写方法的代码} 解释说明格式: ...原创 2019-11-07 19:49:21 · 122 阅读 · 0 评论 -
09_0_1_File类的使用
File类的静态成员变量package com.itheima.demo01.File;import java.io.File;/* java.io.File 文件和目录路径名的抽象表示。 java把电脑中的文件和文件夹(目录)封装为一个File类,我们可以对File类对文件和文件夹进行操作 我们可以使用File类的方法 创建一个文...原创 2019-10-29 15:38:39 · 146 阅读 · 0 评论 -
09_0_2_递归
递归概述package com.itheima.demo02.Recursion;/* 递归:指在当前方法内调用自己的这种现象。 递归的分类: 递归分为两种,直接递归和间接递归。 直接递归称为方法自身调用自己。 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。 注意事项: 递归一定要...原创 2019-10-31 09:47:15 · 143 阅读 · 0 评论 -
09_0_3_过滤器
过滤器优化文件搜索使用过滤器编写实现类实现过滤package com.itheima.Demo03.Filter;import java.io.File;/* 练习: 递归打印多级目录 需求: 只要.jpg结尾的文件 我们可以使用过滤器来实现 在File类中有两个和ListFiles重载的方法,方法的参数传递的就...原创 2019-10-31 10:01:26 · 133 阅读 · 0 评论 -
09_1_IO流
1.1 什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了 ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。 我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为 输入input 和 输出output ,即流向内...原创 2019-10-31 10:10:52 · 88 阅读 · 0 评论 -
09_2_IO字节输出流
2.1 一切皆为字节 一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。2.2 字节输出流【OutputStream】java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指...原创 2019-10-31 10:26:56 · 112 阅读 · 0 评论 -
09_3_IO字节输入流
IO字节输入流java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入流的基本共性功能方法。publicvoidclose() :关闭此输入流并释放与此流相关联的任何系统资源。publicabstractintread() : 从输入流读取数据的下一个字节。publicintread(byte[]b) : 从...原创 2019-10-31 10:37:21 · 355 阅读 · 0 评论 -
09_4_IO字符输入流
字符流当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。publicvoidclose() :关闭此流并释放与此流相关联的任何系统资源。publicintread() : 从输入流读取一个字符。publicint...原创 2019-10-31 20:07:19 · 80 阅读 · 0 评论 -
09_5_IO字符输出流
3.3 字符输出流【Writer】java.io.Writer 抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。voidwrite(intc) 写入单个字符。voidwrite(char[]cbuf) 写入字符数组。abstractvoidwrite(char[]cbuf,intoff,intlen...原创 2019-10-31 20:13:16 · 87 阅读 · 0 评论 -
09_6_IO异常的处理
之前的入门练习,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用 try...catch...finally 代码块,处理异常部分,代码使用演示:package com.itheima.demo06.trycatch;import java.io.FileWriter;import java.io.IOException;/* 在jdk1.7之前我们可以使用try...原创 2019-10-31 20:23:40 · 153 阅读 · 0 评论 -
09_7_属性集Properties集合
Properties类java.util.Properties 继承于 Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时, System.getProperties 方法就是返回一个 Properties 对象构造方法publicProperties() :创建一个空的属性列表。...原创 2019-10-31 20:29:41 · 95 阅读 · 0 评论 -
10_1_IO缓冲流
缓冲流 昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。1.1 概述缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分...原创 2019-11-03 09:16:45 · 119 阅读 · 0 评论 -
10_2_IO缓冲流复制文件对比
普通流进行文件复制package com.itheima.demo02.CopyFile;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/* 文件复制练习:一读一写 明确: 数据源:c:\\1.jpg ...原创 2019-11-03 09:20:31 · 153 阅读 · 0 评论 -
11_01_网络编程入门
网络编程入门1.1软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。1.2 网络通信协议...原创 2019-11-10 19:34:25 · 146 阅读 · 0 评论 -
11_02_实现简单的TCP网络程序
客户端package com.itheima.demo01.TCP;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/* TCP通信的客户端:向服务器发送链接请求,给服务器发送数据,读取服务器回写的数据 ...原创 2019-11-10 19:35:53 · 125 阅读 · 0 评论 -
11_03_实现文件上传并优化
客户端package com.itheima.demo02.FileUp;import java.io.*;import java.net.Socket;public class TCPClient { public static void main(String[] args) throws IOException { Socket socket = n...原创 2019-11-10 19:55:21 · 200 阅读 · 0 评论