- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 Java程序 如何确保threadsafe
编写Java程序的时候,经常会遇到线程冲突的情况,线程因为异常而中断经常导致程序无法正常运行,然而在编程时很多时候需要保证线程不会被interrupt,最普通的方式就是加锁,可以理解成线程执行的时候被锁定,外界的干扰不会对线程造成影响。用同步的方法来确保threadsafe的,同时配合一些线程安全的ADT来保证线程安全。类中一部分被多个线程共享的数据都是不可变的,比如String和基本数据类型...
2019-06-20 22:16:34 347
原创 Java多种读写文件文件方法之对比分析
编程的时候读写文件是一个经常遇到的情况,Java读写文件的方法有很多种,在文档比较小的时候,使用不同的方法似乎没有什么差异,然而当数据规模非常庞大的时候,读写文件的策略就会影响整个程序的性能。举一个例子,一个工厂在生产机器非常先进管理很到位的情况下,如果原料供应不上或者产品输出渠道很小,工厂的生产效益也不会很高。读写文件的过程就相当于工厂的原料供应和产品输出,在整个程序中起着非常重要的作用,尤...
2019-06-19 23:08:20 1102
原创 Java日志功能
小编今天要来分享的是Java的日志输出,我们在编写程序的时候通常希望程序可以记录下每一个操作,每一次异常,这样有利于将来对程序的维护工作,日志的记录还是要从点滴开始做起。由于日志直接输出会是一个非常乱的格式,因此我们需要自己定义日志输出的格式,这样查看起来会方便一些。public class MyFormatter extends Formatter{ @Override public S...
2019-06-10 22:49:41 1238
原创 Java异常处理(把异常处理卸载代码中,做出更健壮的程序)
众所周知,我们在使用一个程序的时候,当我们的输入不符合要求的时候,我们并不希望程序直接抛出一个异常,就停止了。而是希望程序可以给出一个优雅的提示,并且继续运行,这样就显得比较优雅,因此我们需要在代码上多下点功夫。下面来举个例子(输入以文件的形式进行)我们读入文件,希望用正则表达式匹配出符合要求的字串,然后继续执行程序。然而,有些文件是不合法的,这时我们希望程序不会因为不合法的输入停止运行。...
2019-06-04 21:58:37 280
原创 Java表示泄露及预防办法
众所周知,Java是以类为单位的。Java程序也是类与类之间的调用来执行的。每一个类中都定义了许多的变量,函数。这些变量分为immutability、mutability两种,前者例如int、float、String,后者例如map、list、set等。我们通常需要访问这些变量,我们可以做一个比喻,一个类相当于一个档案室,里面有很多的档案,这个档案库有两种管理机制,immutability相...
2019-04-02 22:00:22 928
原创 Java弗洛伊德算法
小编很懒,只做了一个无权图的算法,有权图也类似呦。点和线就构成了图,人与人之间总是可以构成一个关系网络的,这就是一个图。先看看小编的person类吧...
2019-03-14 18:10:23 769
原创 Java字符串、集合键值对倒排索引
笔者的代码比较简洁,可移植性较好。键值对就是一个集合到另一个集合的映射关系,一个键只能有一个唯一的值,但是不同的键可以映射到相同的值。在Java语言中常用的键值对是Map,在本文中笔者以HashMap为例介绍倒排索引。倒排索引,举个例子,比如一本书中,段落a在第1页,段落b在第2页,段落c也在第2页,要计算出第1页有段落a,第2页有段落b和段落c。下面是倒排索引的代码for(Set<...
2019-03-14 16:59:48 964
原创 Java如何测试
用Java写完程序之后需要测试准确性,然而每写一次测试如果出错,就需要重新修改并重新写,这是一个很麻烦的过程,而且如果样本比较多那么靠人力来完成就变得不可能了。可是莫慌、莫慌。我们可以用Test文件来测试在测试文件中就是用assert方法比较期望得到的值和程序运行的结果是否一致。在左侧栏中找到project文件首先右键project文件,新建一个Source Folder:再新建pa...
2019-03-12 21:32:49 7807
原创 Java凸包的计算
凸包就是一个点集的一个子集,这个子集中的点连接起来可以包含所有的点且这个子集中元素个数最少。在这里我介绍一种方法适用于使用Java语言的初学者通常情况下大家会想计算凸包,直接把它围一圈就可以了,然而计算机并不会这么做,Java代码在围这一圈的过程中也是要进行复杂的计算的。但是Java是有办法的,如上图所示,显而易见的是,距离原点最远的点一定是凸包的某个顶点,所以先找到最右上角的点,假设初始...
2019-03-12 20:31:17 1162
原创 程序人生 hello's P2P
摘 要 hello是一位程序员编写的一个程序,本文所分析的是一个简单的程序hello,从最开始的.c文件开始,hello经过预处理生成.i文件,再经过编译生成由汇编代码组成.s文件,下一步是汇编,把汇编代码组成的文件编译成二进制可重定位目标文件,再进行链接生成一个可执行程序。hello就可以开始执行了,执行的过程中,hello会在系统的调度下执行每一个命令,执行过程中需要不断地访问计算机的存储空间,这时就需要存储管理的统一调度,程序执行时会有输入和输出的需要,这时就需要I/O管理来统一调度。本文
2018-12-31 18:53:07 472
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人