关闭

IO流之对象序列化(Serializable接口和Externalizable接口)

Java对象序列化所有分布式应用常常需要跨平台,跨网络,因此要求所有传的签署,返回值都必须实现序列化。 定义:对象的序列化是指将一个Java对象写入IO流中,反序列化是指从IO流中恢复改Java对象。 实现: 实现如下两个接口之一的类才能被序列化: (1)Serializable (2)Externalizable —序列化:ObjectOutputStream...
阅读(68) 评论(0)

IO流实战1

File文件对象只能操作文件或者文件夹的属性,例如文件或文件夹的创建,删除,获取文件属性,我们最终建立文件的目的,是往文件里面存数据,File对象是做不了这个的,这时,我们就要用到IO流。字节流InputStream抽象类是表示字节输入流的所有类的超类: FileInputStream:从文件系统中的某个文件中获得输入字节。 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 Fil...
阅读(129) 评论(0)

IO流中的File类

File类是java.io代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成。 但是File类只能新建,删除,重命名文件和目录,并不能访问文件内容本身。 如果需要访问文件内容本身,则需要使用输入输出流File类常见方法 创建。 —boolean createNewFile():在指定目录下创建文件,如果该文件已经存在,则不创建。 在crea...
阅读(62) 评论(0)

三种线程间的通信方式(让随机被调用的线程变成"人为调用"的线程)

释放同步监视器的锁定 -当前线程的同步方法,同步代码块执行结束 -在同步代码块,同步方法中遇到break,return终止了该代码块或者该方法的继续执行 -在同步代码块,同步方法中出现了未处理的Error或Exception - 执行了同步监视器对象的wait()方法 程序调用Thread.sleep(),Thread.yield()方法暂停当前线程的执行,当前线程不会释放同步...
阅读(157) 评论(0)

多线程同步问题

多线程安全问题 多线程安全问题为什么会出现: 因为程序在运行时,会出现一个线程在判断条件满足后,但没有运行代码。但是后一个线程也判断了条件,也具备了执行了资格,后一个线程运行了代码,但这时候线程运行的条件不满足了,便出现了安全问题。 多线程出现安全问题的原因: 当多条语句在操作同一线程共享数据时,一个线程对多条语句执行了一部分,还没有执行完,另一个线程参与进来,导致共享数据...
阅读(103) 评论(0)

线程的生命周期

线程要经历新建(New) 就绪(Runnable) 运行(Running) 阻塞(Blocked) 死亡(Dead)5种状态线程生命周期图线程优先级调度 Java线程的优先级用整数表示,取值范围是1~10,Thread类有以下三个静态常量: static int MAX_PRIORITY 线程可以具有的最高优先级,取值为10。 static int MIN_...
阅读(144) 评论(0)

多线程的三种建立方式

继承Thread类创建线程类public class Thread extends Object implements Runnable 定义Thread类的子类,并重写其run()方法 创建Thread子类的实例,即创建了线程对象 调用线程对象的start()方法启动线程 public class FirstThread extends Thread { public void run()...
阅读(2432) 评论(6)

JavaSE中Swing类中的一些典型的组件

Swing组件...
阅读(256) 评论(0)

双向链表

双向链表简介和举例解析双链表结构体的定义1: 结构体: 主函数中: 调用函数中:双链表结构体的定义2: 结构体: 主函数中: 调用函数中:头插法:尾插法:双向链表代码1#include #include #define true 1 #define false 0 typedef int bool; typedef int ElemType; t...
阅读(319) 评论(0)

链表之单链表

链表表示方法方法1: 结构体: 主函数中: 调用函数中:方法2:(这里用的是栈的存储方式,但同样适用于链表) 结构体: 主函数中: 调用函数中:方法3: 结构体: 主函数中: 调用函数中: (这里的Status为 typedef int Status)单链表代码#include #include struct student {...
阅读(128) 评论(0)

内部排序之归并排序

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,归并排序将两个已排序的表合并成一个表。归并排序基本思想设两个有序的子序列(相当于输入序列)放在同一序列中相邻的位置上:array[low..m],array[m + 1..high],先将它们合并到一个局部的暂存序列 temp (相当于输出序列)中,待合并完成后将 temp...
阅读(142) 评论(0)

内部排序之选择排序(直接选择排序,堆排序)

目录 堆排序简介及其代码 直接选择排序简介及其代码 选择排序总结 堆排序简介及其代码1、首先明确完全二叉树概念:  深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。其次明确堆的概念:  堆是具有以下性质的完全二叉树,每个结点的值小于或等于其孩子结点的值(小根堆),每个结点的值大于或等于其孩子结点的值(大根堆)堆的定义如图所示:2、...
阅读(133) 评论(0)

内部排序之交换排序

目录 快速交换排序简介及其代码 冒泡交换排序及其代码 交换排序总结 快速排序简介及其代码我们知道假如一个已排好序的数组,假如是从小到大升序排列,则随便取其中一个数N,则N左边所有数都小于或等于N,右边的都大于或等于N.那反向思维下,我们先随便取数组第一个数为基准X,然后将所有小于它的数交换到左边,大于它的数交换到右边.最后X可能就被交换到中间某个位置.以X为分界线,数组被分成两部分.接着再对两部分重...
阅读(215) 评论(0)

内部排序之插入排序(直接插入排序,二分插入排序,希尔插入排序)

目录 直接插入排序简介及其代码 二分插入排序简介及其代码 希尔插入排序简介及其代码 插入排序总结 直接插入排序简介及其代码简介: 直接插入排序过程: 代码块:#include #include #define MAXSIZE 100 typedef int KeyType; typedef struct { KeyType key;...
阅读(246) 评论(0)

动态规划之最优二叉搜索树

目录 最优二叉搜索树简介 举例以及详细分析 代码块 测试结果 最优二叉搜索树简介1、概念引入  基于统计先验知识,我们可统计出一个数表(集合)中各元素的查找概率,理解为集合各元素的出现频率。比如中文输入法字库中各词条(单字、词组等)的先验概率,针对用户习惯可以自动调整词频——所谓动态调频、高频先现原则,以减少用户翻查次数。这就是最优二叉查找树问题:查找过程中键值比较次数最少,或者说希望用最少的键值比...
阅读(155) 评论(0)

栈之链栈

目录 链栈的简介 举例以及详细分析 代码块 测试结果 链栈的简介链栈则没有上溢的限制,它就象是一条一头固定的链子,可以在活动的一头自由地增加链环(结点)而不会溢出,链栈不需要在头部附加头结点,因为栈都是在头部进行操作的,如果加了头结点,等于要在头结点之后的结点进行操作,反而使算法更复杂,所以只要有链表的头指针就可以了。举例以及详细分析**栈可以采用链式存储结构表示,采用这种结构表示的栈简称为链栈。...
阅读(130) 评论(0)

栈之顺序栈

目录 顺序栈的简介 举例以及详细分析 代码块 测试结果 顺序栈的简介在顺序栈中有”上溢”和”下溢”的概念。顺序栈好比一个盒子,我们在里头放了一叠书,当我们要用书的话只能从第一本开始拿(你会把盒子翻过来吗?真聪明^^),那么当我们把书本放到这个栈中超过盒子的顶部时就放不下了(叠上去的不算,哼哼),这时就是”上溢”,”上溢”也就是栈顶指针指出栈的外面,显然是出错了。反之,当栈中已没有书时,我们再去拿,看...
阅读(203) 评论(0)

树之二叉查找树(二叉搜索树)

目录 二叉查找树简介 二叉查找树举例以及详细分析 代码块 测试结果以及参考图纸 二叉查找树二叉树的一个重要的应用是它们在查找中的使用。使二叉树成为查找树的性质是,对于树中的每个结点X,它的左子树中所有关键字值小于X的关键值,而它的右子树中所有关键字大于X的关键值。在图1中,左边的树是二叉查找树,但右边的树则不是(想一想为什么)。 二叉查找树举例以及详细分析二叉查找树定义:又称为是二叉排序树(Bin...
阅读(147) 评论(0)

树之完全二叉树(AVL树)

目录 AVL树的简介 AVL举例以及详细分析 代码块 测试结果和参考图纸 备注 AVL树的简介AVL树是根据它的发明者G.M. Adelson-Velsky和E.M. Landis命名的。 它是最先发明的自平衡二叉查找树,也被称为高度平衡树。相比于”二叉查找树”,它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。 这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复...
阅读(629) 评论(0)

图之从一个顶点到其余各个顶点的最短路径(有向图)

目录 从一个顶点到其余各个顶点最短路径的简介 举例以及详细分析 代码块 测试结果 从一个顶点到其余各个顶点最短路径的简介1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,...
阅读(821) 评论(0)
34条 共2页1 2 下一页 尾页
    个人资料
    • 访问:9677次
    • 积分:426
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:0篇
    • 译文:0篇
    • 评论:6条
    文章分类
    文章存档