- 博客(96)
- 收藏
- 关注
原创 集合框架与collection接口
集合框架与collection接口1.集合框架![1559220580233](E:\javaclass\集合框架.png1.1 学习集合的目标1.会使用集合储存数据2.会遍历集合,把数据取出来3.掌握每种集合的特性1.2 学习集合的方法1.学习顶层,学习顶层的接口/抽象类 中共性的方法。所有的子类都可以使用。2.使用底层,顶层不是接口就是抽献类,无法创建对象。需使用底层的子类创...
2020-05-02 14:49:14
224
原创 排序
排序1. 选择排序package Ds.Sort.selectSort;import java.util.Arrays;/** * @Name: 选择排序 * @Author:ZYJ * @Date:2019-08-13-16:09 * @Description: */public class selectSort { public static void main...
2019-09-15 20:17:36
222
原创 快慢指针删除数组中为0的数
快慢指针删除数组中为0的数import java.util.Arrays;/** * @Name: 快慢指针删除数组中为0的数据 * @Author:ZYJ * @Date:2019-09-02-20:03 * @Description: */public class DeleteZero { public static void main(String[] args) {...
2019-09-02 20:38:17
241
原创 二叉查找树算法
二叉查找树算法1. contains操作 /** * 判断二插查找树是否含有 指定结点 * @param x * @return */ public boolean contains(T x){ return contains(x,root); } private boolean contains(T x ...
2019-08-11 14:17:43
233
原创 折半查找
折半查找一 、非递归法package com.DS.search.bisearch;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/** * @Name: 折半查找 非递归法 * @Author:ZYJ * @Date:2019-08-10-...
2019-08-11 14:05:29
189
原创 二叉树非递归遍历算法
二叉树非递归遍历算法1. 前序遍历 /** * 前序非递归遍历 借助链表和栈 */ @Override public void preOrderByStack() { System.out.print("前序非递归遍历:"); if (root==null){ System.out.println...
2019-08-07 17:23:37
271
原创 树与二叉树
树与二叉树1. 树表明一种上下级的关系 ,是n(n>=0)个节点的有限集1)空树:n=0,不包含任何结点2)非空树:n>0,此时有且仅有一个“根结点” n>1,此时其余节点可分为(m>0)个互不相交的有限集1.1 基本的概念结点的度:结点拥有的子树的个数叶子结点:度为0的结点称为叶子结点或终端结点树的度:各个结点...
2019-08-02 17:07:32
245
原创 队列
队列1. 定义与特点队列简称“队”,是一种操作受限的线性表,在表的一端进行插入操作,另一端进行删除操作。采用“先进先出”(First In First Out)应用:多线程中等待队列和阻塞队列。2. 队列操作与存储结构2.1.1 队列操作public interface Queue{ int getSize();//获取队列长度 boolean isEmpty();/...
2019-08-01 10:04:17
129
原创 栈
栈1.1 概念与结构特点:先进后出 LIFO(Last In First Out)栈也是一种特殊的线性表,一种操作受限制的线性表,只允许在一端插入与删除数据。1.1.1 栈的基本操作栈顶:数据插入与删除的一端叫做栈顶,另一端叫做栈底压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶出栈:栈的删除操作叫做出栈。出数据也在栈顶栈是一种“操作受限”的线性表,只允许在一端插入和删除数据...
2019-07-27 15:52:49
126
原创 顺序表和链表
顺序表和链表1. 线性表定义:线性表是由n个具有相同特性的数据元素组成的有限序列,表中每个元素具有相同元素。逻辑上为连续的线性结构。常见的线性表:顺序表,链表、栈、队列、字符串线性表根据物理储存方式分为:顺序表和链表线性表在逻辑上是线性结构,在物理上并不是连续的,线性表在物理上储存时,通常是以数组和链式结构的形式储存。动态数组:底层仍然使用数组,但支持动态扩容 不属于动态数据结构。...
2019-07-27 15:29:46
198
原创 双链表
双链表的实现1. 接口package com.DS.DoubleLinked;/** * @Name:链表接口 * @Author:ZYJ * @Date:2019-07-23-15:21 * @Description: */public interface ILinked { // 头插法 void addFirst(Object data); // ...
2019-07-26 14:39:52
111
原创 解决懒汉单例模式线程安全问题
解决懒汉单例模式线程安全问题1, 懒汉单例模式package SingleTonTest;/** * @Name: 懒汉单例设计模式 * @Author:ZYJ * @Date:2019-07-25-20:55 * @Description: */class Singleton{ private static Singleton singleton; priv...
2019-07-26 14:03:34
928
原创 反转链表
反转链表//第一种算法ListNode dummyHead=new ListNode(-1);dummyHead.next=head;if(head==null||head.next==null){ return null;}else{ ListNode F=dummyHead.next; ListNode S=F.next; while ...
2019-07-24 10:14:31
98
原创 基于数组的顺序表实现
基于数组的顺序表实现1.接口package com.DS.ArrayList;/** * @Name:线性表接口 * @Author:ZYJ * @Date:2019-07-23-10:26 * @Description: */public interface Sequence { void add(Object data); Object remove(int...
2019-07-24 10:06:48
189
原创 单链表的实现
单链表的实现1.接口package Test.DS.LinkedList;/** * @Name:链表接口 * @Author:ZYJ * @Date:2019-07-23-15:21 * @Description: */public interface ILinked { // 头插法 void addFirst(int data); // 尾插法...
2019-07-24 10:04:06
105
原创 建立通讯步骤
TCP通信程序1. 概述TCP通信能实现两台计算机之间的数据交互,通信的两端要严格区分客户端和服务器端1.1 两端建立通信步骤1,服务器端程序需要事先启动,等待客户端的连接2,客户端主动连接服务器端,连接成功才能通信,服务器端不能主动连接客户端3,两端建立逻辑连接后,这个连接包含一个I/O对象。客户端,服务器端可以使用I/O对象进行通信,通信数据不仅仅是字符所以使用字节流对象。1....
2019-07-22 15:07:30
1183
原创 网络
网络简介1. 网络常见定义在网络中随着网络的覆盖范围不同,划分出了几种网络:局域网 ,城域网 , 广域网因特网:更加国际化的,覆盖范围更大的广域网互联网:许多路由器之间的星型互联以太网:子网标准令牌环网:子网标准2. 软件结构C/S:Client/Server结构,客户端–>服务器结构 常见:QQ 百度网盘B/S:Browser/Server结构,浏览器–>服务器结...
2019-07-21 17:09:24
372
原创 Map 接口
sMap 接口:保存一对对象的最大父接口Map集合的特点:1,双列集合,一个元素包含两个集(key,value)键值对;2,key,value 数据类型可以不同,也可以不同。3,key值不允许重复 key值唯一4,key->value(value可重复) 当Key值重复时,覆盖value值1 .子类1.1 HashMapjava.util.HashMap<k,v&g...
2019-07-20 15:20:27
210
原创 集合输出
集合输出1.Collection输出见 集合框架与Colleaction2. foreach(增强for循环) :语法糖见 集合框架与Colleaction本质上也为迭代器输出Collection接口能采用foreach输出的本质在于:所有子类都实现了Iterator接口**语法糖:**只存在于代码代码编译阶段 例如:泛型,自动拆装箱,foreach()3.ListIters...
2019-07-17 14:14:30
140
原创 List接口和Set接口
List接口与Set接口类集=数据结构+线程安全。考点:1.常见子类:ArrayList ,Vector,LinkedList2.HashMap、HashTable、Table1. list集合接口(Collection的子接口)1.1 方法1.根据下标返回元素内容List接口与Collection接口相比最大的特点在于这个方法E get(int index);//index与数...
2019-06-20 20:50:39
713
原创 线程池(实现线程的第四种方式)
线程池(实现线程的第四种方式)1. 线程是什么线程池其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作。无需反复创建线程而消耗过多的资源2.使用线程池的优点**推荐使用线程池来创建线程 ****1.降低资源消耗:**通过重复利用已创建的线程降低线程创建和销毁带来的消耗**2.提高响应速度:**当任务到达时,任务可以不需要等待线程创建就能立即执行**...
2019-06-18 20:06:56
313
原创 等待唤醒机制与生产消费者模型
等待·唤醒机制 与生产消费者模型等待唤醒机制:线程之间的通信通过保证在临界区上由多个线程的相互排斥从,线程同步完全可以避免资源冲突的发生,但是有时还需要线程之间的相互协作。使用条件便于线程之间的通信。线程间通信三大问题:1,分工2,互斥3,同步重点: 有效利用资源 :对其状态的判断1.机制**同步队列:**所有尝试获取锁对象失败的线程保存在这个队列中,排队等待获取锁;**等待队...
2019-06-11 23:19:57
172
原创 Lock 体系
Lock 体系1. 产生原因与定义1.1 LOCK锁(JDK1.5提供 基于java语言层面 的“锁”)产生背景:sychroniezd 死锁,是一种阻塞式获取锁:获取不到线程一直阻塞下去,破坏**不可抢占(不公平) **问题:1,synchronized 不响应 interrupt中断2,支持超时3,非阻塞式获取锁 线程若获取不到锁,线程直接退出。可重入锁:持有锁的线程可以再次...
2019-06-05 21:37:35
198
原创 线程的同步与死锁
线程的同步与死锁1.线程互斥多线程编程三大问题:分工:同步:多个线程同时做一件事(线程间通信:线程合作)互斥:在多线程并发时,某一时刻只能由一个线程访问共享资源锁:一个锁只能保护一个对象(相应对象/资源),不同锁保护的不同的对象/资源线程安全问题:多线程访问了共享的数据,会产生线程安全问题。单线程程序不会出现线程安全问题。多线程程序没有访问共享数据,不会产生线程安全问题。解决办...
2019-06-05 19:27:23
441
原创 泛型
泛型1.新特性1.1. 可变参数JDK1.5之后追加可变参数的概念 定义方法public [static] [final] 返回值 方法名称([参数类型...参数名称] [])范例:方法的可变参数package Test.zyj.com;/** * @Name: * @Author:ZYJ * @Date:2019-05-31-17:24 * @Description: ...
2019-06-01 17:59:28
167
原创 线程的优先级、继承性、守护线程
线程的优先级、继承性、守护线程线程的优先级越高,越有可能先执行而已(仅为建议)1.1 设置优先级public final void setPriority(int newPriority)1.2 取得优先级public final int getPriority()1.2.1 JDK内置优先级1.最高优先级 : public final static int MAX_PRIORI...
2019-05-29 16:44:22
421
原创 进程与多线程
进程与多线程1. 进程与线程的概念1.进程操作系统中程序的一次执行过程,是操作系统资源分配的最小单元。操作系统为每个进程分配独立的内存进程是独立的2.线程线程在进程中的一个子任务,是操作系统任务分配的最小单元,在一个进程中的所有线程共享线程资源。每个子任务对应一个线程3.进程与线程关系1.进程是操作系统资源分配的最小单元,线程是操作系统任务分配的最小单元.2.进程的启动与销毁开...
2019-05-29 11:39:51
153
原创 序列化
序列化1.基本概念序列化是指:将内存中保存的对象变为二进制数据流的形式进行传输,或者是将其保存在文本中。java中只要实现了Serializable接口,就具备了序列化的能力。Serializable接口称为‘标记接口’,这个接口内部没有定义任何内容,所以只是起标记的作用,让JVM知道哪些类需要被序列化。代码示例,定义一个可以被序列化的类;import java.io.Serializ...
2019-05-27 21:09:18
148
原创 System类对IO的支持
1.System类对I/O的支持系统输出System.out.println 是利用了I/O流的模式完成的。实际是打印流PrintStream对象System类中定义了三个操作的常量1.标准/系统输出(显示器)public final static PrintStream out2.标准错误输出,也是打印流对象,除了颜色是红色外与System.out 别无二致public fina...
2019-05-27 21:08:39
201
原创 java异常体系
java异常体系1.异常的分类1.1 运行时异常1.2 编译时异常2.异常处理2.1 JVM处理异常的方式如果出现异常我们没有处理。JVM会帮我们进行处理,它会把异常的类型、原因以及发生的位置(包、类、方法)显示在命令行,并终止程序,异常后面的代码将不在执行2.2 自己处理2.2.1 捕获处理1.try…catch 语句try{ 可能出现问题的代码}catch(异...
2019-05-22 18:20:32
140
原创 单例设计模式
单例设计模式1.定义单例设计模式指任何类的对象只有一个1.1 如何实现单例设计模式模式思想:一个类只能实例化一个对象 控制对象的产生数量 ,将构造你方法私有(从源头控制对象数量),使类的外部不可调用构造方法。步骤:1.构造方法私有化,使其他类均无法产生此类对象;2.唯一对象产生与类内部,类内部提供一个实例化好的对象,并用private修饰 (类内部提供静态对象);3.唯一的属性为...
2019-05-22 18:18:11
103
原创 转换流
1.转换流1.1 将字节流转换为字符流InputStreamReader:将字节输出流变为字符输出流定义public class OutputStreamWriter extends Writer //继承自字符输出流构造方法public OutputStreamWriter(OutputStream out)//接收字节输出流 代码示例package JAVASE.IOt...
2019-05-19 19:41:01
111
原创 字节流与字符流
java.io包中,流分为两种 **字节流与字符流 **1.1 字节流:InputStream(输入流) , OutputStream(输出流);输入流与输出流是相对参考系的而言的字节操作流:原生操作,不需要处理;应用场景:进行网络传输、磁盘数据保存 时的数据类型:字节(文件储存、网络传输);1.2 字符流:Reader ,Writer ;字符操作流:通过转换得来的,需要中间处理;...
2019-05-19 19:39:27
106
原创 包
包1. 包的定义与使用写主类之前先定义包 在源文件首行package 包名称为避免源文件重名产生包,包就是文件夹。2.包名称规范:公司域名反转、个人主页地址反转不能使用别人的包名打包编译命令:javac -d .Test.java;-d:根据package定义的包名称创建生成目录. :在当前目录下生成4.类定义了包名 +类名:全限定名执行需要使用全名称:包名...
2019-05-09 19:27:40
139
原创 IO
IO(jdk1.0 BIO 阻塞式IO)JDK 1.4 NIO 非阻塞式JDK 1,7 AIOIO的核心组成 就是五个类:(File、OutputStream、InputStream、Reader、Writer)和一个接口 (Serializable);1. File 文件操作类File 是唯一一个与文件本身相关(不涉及文件内容)的基本操作(创建、删除、取得文件信息)类。Fil...
2019-05-09 19:26:14
121
原创 数据结构
数据结构与算法10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、调表、图、Trie 树10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法1.什么是数据结构定义 操作系统中组织数据的集合1.1 逻辑数据结构反映数据元素之间的逻辑关系,与数据在计算机中存储的位置无关形式:集合、线性、树形、图1.2 物理数据结构逻辑数据在计...
2019-04-24 20:49:34
211
原创 包装类
包装类Object类可以接收所有的引用数据类型。基本数据类型的处理引入了包装类bao1. 基本原理包装类就是将基本数据类型包装进一个类中。package Test;//定义一个包装类class IntDemo{ private int num; public IntDemo(int num){//构造方法 this.num=num; } ...
2019-04-21 20:59:33
102
原创 Object 类
#Object 类 (最高参数统一化)Object类是JDK默认提供的一个类。java中除了Object类,所有类都存在继承关系,默认会继承Object父类;当一个类的参数用object 接收,可以接收任何参数;所有类的对象都可以使用Object 进行接收。Object类是参数的最高统一类型。1.方法1.1构造方法public Object();//无参构造 //空实现 为子类...
2019-04-19 16:48:39
174
原创 StringBuffer
StringBuffer类和StringBulider类字符串的判空一个字串为空有两种情况:1)空字符串 2)nullString str ="null";if(str==null||str.isEmpty()){ //不可调换顺序}1.StringBuffer类任何字符串常量都是String类,而String类的常量一旦声明努克更改。字符串的 + 操作更改的只是栈的指向,...
2019-04-18 15:47:14
234
原创 字符串的一些操作方法
字符串1.字符串比较1.1 区分大小写比较public boolean equals(Object anObject);1.2 不区分大小写比较public boolean equalsIgnoreCase(String, anotherString);1.3 比较两个字符串的大小关系public int compareTo(String ,anotherString);c...
2019-04-18 12:03:08
358
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人