- 博客(49)
- 收藏
- 关注
原创 最大子段和问题
问题描述: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],...,a[n],求该序列如: a[i]+a[i+1]+..+a[j]。当所给的整数均为负数时定义子段和为0.如果序列中全部是负数则 最大子段和为0,依次所定义:所求的最优值max{0,a[i]+a[i+1]+...+a[j]},1<=i<j<=n.问题解...
2019-07-21 11:09:17
426
原创 红黑树的操作(二)
红黑树的节点删除:1、如果删除的节点的孩子节点补上来是红色的,就直接将孩子涂成黑色;2、删除节点没有红色的孩子节点时的情况A:兄弟节点是黑色的,而且兄弟的孩子节点都是黑色的.C.color = Color.RED;X = A;B:兄弟节点是黑色的,兄弟节点的孩子节点是左黑右红A.color = C.color;C.color = A.color;E.c...
2019-07-18 15:32:00
202
原创 红黑树的操作(一)
红黑树的介绍 红黑树的定义:(Red Black Tree)是一种自平衡二叉查找树,能在进行删除和插入操作时通过特定操作保持二叉查找树的平 衡,从而获得较高的查找性能。 红黑树的特点: 1、红黑树是一颗平衡树 2、红黑树节点左右子树的高度差为:长的不能超过短的2倍,这样就牺...
2019-07-16 09:56:45
402
原创 树
树树:树是n个节点的有限集,任意一颗树有且仅有一个特定的称为根的节点。(树是由一个根节点和若干棵子树组成的)注意:1、当n>0时根节点是唯一的,不可能存在多个根节点。2、m>0时,子树的个数是没有限制的,但它们一定是互不相交的。节点的分类:1、节点拥有的子树数称为节点的度,度为0的节点称为叶子结点或者终端节点。2、树的度是树内各节点的度的最大值。3、树中节...
2019-07-02 13:47:49
189
原创 进程的创建(二)
** 进程常见的前提条件 **通常会有四个时间会导致创建进程:(1)在批处理环境中,响应作业提交时会创建进程,通常位于磁带或磁盘中的批处理作业控制流被提供给操作系统。当操作系统准备接纳新工作时,它将读取下一个作业控制命令。(2)交互登录 ,在交互环境中,当一个新用户试图登录时会创建进程,或终端用户登录到系统。(3)操作系统因为提供一项服务而创建,操作系统可以创建一个进程,代表用户程序执行一...
2019-05-17 15:53:09
606
原创 网络-----》TCP协议和OSI模型
计算机网络定义:计算机网络是通过传输介质、通信设施和通信协议,将分散在不同点的计算机设备互联起来实现资源共享和数据传输的系统。网络编程就是编写程序使联网的两个或者多个设备直接进行传输。国际标准组织提出网络开发互联模型OSI(open System Interconnection),将网络划分成7层OSI:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层OSI模型各层的作用:应...
2019-05-15 16:37:53
155
原创 线程-----多线程循环打印ABC10次
问题:开启3个线程,这3个线程的ID分别为A.B.C,每个线程将自己的ID依次在屏幕上打印10次,要求输出结果必须按照ABC的顺序显示方法一://ThreadName类public class ThreadName0511 { private Integer index;//当前执行线程ID public Integer getIndex() { ...
2019-05-14 15:31:08
1361
原创 CAS(Compare And Swap)问题
CAS是乐观锁中用到的机制CAS 有 3 个操作数,内存值 V,旧的预期值 A,要修改的新值 B。当且仅当预期值 A 和内存值 V相同时,将内存值 V 修改为 B,否则什么都不做。...
2019-05-14 13:30:27
125
原创 死锁基础知识点
死锁死锁的知识点死锁的定义资源的分类资源分配图产生死锁的原因死锁的必要条件死锁的预防或解除定义死锁可以定义为相互通信的线程或者一组竞争系统资源的线程相互之间"永久阻塞”的情况,即就是有两个即两个以上的线程在执行过程中,由于竞争资源而造成的阻塞问题,在没有 外力的作用下,它们将无法进行下去,此时系统处于四座状态,这种情况称之为死锁。资源的分类(可重用资源、可消费资...
2019-05-13 15:21:22
274
原创 线程池
1.1为什么要有线程池?当有一个请求到达的时候,就要创建一个线程,开销相当大,在实际情况中,每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的资源,有时会比花费在处理实际用户的请求上的时间和资源还要多。除了创建和销毁线程之外,活动的线程也需要消耗系统资源。创建过多的线程,可能会导致系统由于过度消耗内存或“切换过度”而导致系统资源不足。为了防止资源不足,服务器应用程序需要一些方法来...
2019-05-08 19:33:51
158
原创 IO流-----FileInputStream/OutInputstream的随笔
文件输入流:FileInputStream从文件系统中的某个文件中获得输入字节。FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。构造方法FileInputStream(File file) 通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定...
2019-05-04 15:10:19
262
原创 Concurrent HashMap的源码分析
Concurrent HashMap的特点:线程安全1、Concurrent HashMap的底层数据结构?数组(Segment)+数组(Segments)+链表(Segment(初始化后不可扩容)+segments(可扩容)+链表)通过分析Hashtable就知道,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作...
2019-04-26 13:17:00
492
原创 线程的创建方法(一)
线程之间的执行时相互独立的,哪一个线程优先执行取决于os的调度线程的创建方式:3种实现Runnable接口、继承Thread类、实现Callable接口实现runnable接口1、创建自定义类并实现runnable接口,并实现接口中的run方法2、实例化自定义的类3、将自定义类的实例作为参数给Thread类,创建thread实例4、调用thread实例的start方法,启动子线程R...
2019-03-31 18:22:49
194
原创 线程、进程的联系(二)
Linux下运行Java程序: javac javastrace 跟踪进程、线程调用过程Java进程/线程 映射到了Linux系统上java跑在Linux上,跟踪一下Java进程,线程具体的系统调用,Linux系统本身的fork和pthread_create调用对比一下,一模一样 => Java进程/线程 映射到了 Linux系统上在Linux系统利用strace跟踪...
2019-03-31 18:11:43
212
原创 线程、进程之间的联系(一)
线程、进程的介绍进程:进程是资源进行分配的单元 eg:IO,内存资源。。。线程:线程是进行资源调度的单位 执行程序代码片段 真正执行的指令 例:操作数据的执行流[main]Java中启动main方法是进程还是线程???java中main方法启动的是一个进程也是一个主线程,main方法里面的其他线程均为子线程是一个线程也是一个进程,一个java程序启动后它就是一个进程,进程相当于...
2019-03-31 18:05:06
183
原创 ByteArrayInputStream的源码解析
ByteArrayInputStream是字节数组输入流,继承于InputStream,已经实现的接口:Closeable;继承关系:class ByteArrayInputStream extends InputStream {ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。通俗点讲,它的内部缓冲区就是一个字节数组,而ByteArrayInp...
2019-03-31 16:38:39
334
原创 StringBuffer的知识点
StringBuffer的用法1、StringBuffer对象的初始化a.StringBuffer s = new StringBuffer();这样初始化出的StringBuffer对象是一个空的对象b.如果需要创建带有内容的StringBuffer对象,则可以使用:StringBuffer s = new StringBuffer(“abc”);c.StringBuffer对象和Str...
2019-03-24 15:15:47
247
原创 字符输入流:Reader
字符输入流:Reader操作步骤步骤1:打开字符读操作流,可能会抛出FileNotFoundException异常FileReader reader = new FileReader(path);步骤2:读操作,可能会抛出IOException异常reader.read();步骤3:关闭字符读操作流reader.close();常用方法介绍:int read() :每次读取一个...
2019-03-21 20:45:40
218
原创 字符输出流:Writer
字符输出流:Writer操作步骤:步骤1:打开字符写操作流,可能会抛出IOException异常FileWriter writer = new FileWriter(path,true);构造函数 FileWriter(String fileName, boolean append) 第二个参数表示数据是否追加 true:追加的形式写入 false:覆盖原内容的形式写入 ,默认是false...
2019-03-21 20:40:10
213
原创 OutputStream 字节输出基类
OutputStream 字节输出基类写操作步骤步骤1:打开字节输出流,可能会抛出FileNotFoundException异常String path = “/Users/gongdezhe/Desktop/test.txt”;FileOutputStream outputStream = new FileOutputStream(path);写操作时,文件不存在,会自动创建文件,并写入...
2019-03-21 20:36:45
754
原创 InputStream 字节输入流基类
InputStream 字节输入流基类操作步骤:步骤1:打开特定类型的输入流,可能会抛出FileNotFoundException FileInputStream inputStream = new FileInputStream(path);步骤2:读取数据操作,-1表示读取结束,可能会抛出IOException异常int read = inputStream.r...
2019-03-21 20:29:58
599
原创 IO流的小碎片点
IO流知识点什么是流? 本质:数据传输字符流字节流 节点流 处理流编码 解码-------》ASCII \ GBK \ UTF-84种IO流测基类字节输入流:InputStream字节输出流:OutputStream字符输入流:Reader字符输出流:Writer操作文件类:FileInputStream 、FileOutputStream缓冲...
2019-03-21 20:25:23
99
原创 HashTable
底层数据结构:哈希表(数组+链表)特点:1.键值对不能为null;2.底层数据结构:数组+链表3.key重复性:key不能重复;4.有序性:不能保证插入有序继承关系: public class Hashtable<K,V> extends Dictionary<K,V> JDK较早提供的实现类 implements Map<K,V&...
2019-02-27 17:35:35
94
原创 HashMap
【HashMap】特点:1、数据插入是无序的2、键不能重复,值可以重复 3、键可以为null,值可以为null插入元素:hashMap.put();获取元素: String lisi = hashMap.get(“2”);删除元素:hashMap.remove(null);常用方法: int size(); map中存储键值对的个数 ...
2019-02-27 16:27:29
96
原创 Map
Map中keySet()的使用:Map<String,Integer> map = new HashMap<String,Intrger>();map.put("a","1");map.put("b","2");map.put("c","3");set<String> ks = map.keySe
2019-02-27 15:44:14
72
原创 LinkedList
继承关系class LinkedList&lt;E&gt; extends AbstractSequentialList&lt;E&gt; implements List&lt;E&gt;, Deque&lt;E&gt;, Cloneable, java.io.Serializable // LinkedList继承AbstractSequentia
2019-02-24 20:03:58
89
原创 迭代器
迭代器:是一种设计模式,提供了一种方法,来对集合、容器进行遍历的方法不需要关注底层数据结构的是据类型,来达到底层和上层遍历的目的iterator迭代器方法介绍:boblean hasNext():判断集合是否还存在元素, true:还存在 false:不存在E next(): 返回当前数据类型void remove():删除元素使用上:hasNext和next是轮循出现...
2019-02-24 18:58:03
103
原创 ArrayList接口
特点:重复性:数据可以重复null值:可以有null值存在有序性:能保证数据插入有序继承关系 public class ArrayList&amp;lt;E&amp;gt; extends AbstractList&amp;lt;E&amp;gt; implements List&amp;lt;E&amp;gt;, RandomAccess, Cloneable
2019-02-24 18:47:04
505
1
原创 程序语句
1.顺序结构语句执行的基本顺序按各语句出现的位置先后顺序执行,称之为顺序结构;public static void main(String[] args) { double a,b,c,p,area; Scanner scanner = new Scanner(System.in); //Scanner可用于扫描控制台输入 System.out.print("请输入三角形的边A...
2019-02-21 23:31:28
1080
原创 运算符、表达式
1.运算符 (1)一元运算符 接受一个操作数的运算符被称为一元运算符(前缀运算符(operator op)、后缀运算符(op operator)) 例如:++ -- new等 (2)二元运算符 接受两个操作数的运算符被称为二元运算符(op1 operator op2) 例如:+ - * / (3)三...
2019-02-21 16:40:14
228
原创 Java数据类型、常量、变量
1.标识符标识符的首字符必须是字母、下划线(&amp;amp;quot;_&amp;amp;quot;)、或美元符号(&amp;amp;quot;$&amp;amp;quot;),其后的字符可以是字母、下划线、美元符号或数字。2.Java命名两种:PascalClass 和 camelClassPascalClass:每个单词的首字母大写,其余均小写(一般用于自定义类型)camelClass :第一个单词全部小写,
2019-02-21 16:23:28
191
原创 单链
数据域data:存储数据元素信息的域称为数据域;指针域:存储直接后继位置的域称为指针域;指针域中存储的信息称为指针或链。数据域和指针域组成数据元素ai的存储印象,称为节点(Node).每个节点中包含一个指针域,称为单链表。链表中第一个节点的存储的位置称为头指针。链表的最后一个节点指针为“空”。单链表的第一个节点前附设一个节点,称为头结点。头结点和头指针的异同头插入:...
2018-11-25 11:54:41
1041
原创 顺序
顺序表—线性表的顺序存储结构,指的是用一段地址连续的存储单元一次存储线性表的数据元素。顺序表的实现—用一维数组来实现线性表的顺序存储结构,即把第一个数据元素存放到数组下标为0的位置,接着把线性表相邻的数据元素存放到数组相邻的位置。三个属性:存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置;线性表的最大存储容量:数组长度 Maxsize;线性表的当前长度:lengt...
2018-11-25 11:39:57
141
原创 泛型
通用栈class ObjectStack { private Object[] elem; private int top;public ObjectStack(){ this(10);}public ObjectStack(int size){ this.elem = new Object[size]; this.top = 10; ...
2018-11-20 01:18:34
268
原创 枚举
枚举枚举在C/C++/c#,还有Objective-C中,是一个被命名的整型常数的集合,枚举在日常生活中很常见。例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一个枚举。在应用程序开发中,经常涉一个变量的取值范围为一组固定的常量的集合。例如:字体的大小、线条的样式等。为此,java语言引入了枚举类...
2018-11-18 02:52:05
192
原创 类接口
抽象类包含抽象方法的类,叫做抽象类。抽象方法:由abstract所修饰,而且,类也需要由abstract所修饰。抽象方法:在抽象类内部不给于实现。抽象方法不能被private所修饰,如果不加访问修饰限定符,那么默认为public当有一个类,继承了当前的抽象类后,需要实现。a、抽象类中:可以有非抽象方法;b、抽象类不能创建实例对象(new对象);“抽象类是对部分的方法进行抽象”...
2018-11-03 19:53:02
2147
原创 单利模式、继承
单利模式定义1、一个类只产生一个实例2、单利类必须自己创建自己的唯一实例。3、单利类必须给所有其他对象提供这一实例 =====》提供一个全局访问点场景:(什么时候用单利模式)一个类可以定义无数个对象,“但是只能有一个实例” =====》 控制构造函数懒汉式单利模式 //懒汉式单利模式 =====》 线程不安全 (new的时候才调用一个对象 不是线程安全的)...
2018-11-03 14:12:59
257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人