关闭

Java并发编程实践

背景我的桌面一直留着一张Java线程知识结构图,近期正好有空梳理自己的技能知识,于是打印出来准备复习一下。2014年曾经把那本《Java并发编程实践》经典看过好几遍,不过时间太久远了,这张图上的多线程的知识有些也模糊了,趁此捡起来,于是有了本文的实践结果整理。Java线程知识图谱阻塞队列的应用多线程环境下的生产者/消费者算法大家都应该听说过,项目中涉及到的一个索引创建功能:一个线程每小时生成待创建索...
阅读(111) 评论(0)

Tomcat源码分析-Java原生态log运用

背景调试tomcat源码过程中,控制台日志打印的都是INFO级别的日志,于是就想修改下日志级别,打印Digester类的DEBUG级别的日志,便于观察Digester类解析server.xml的流程,顺便跟踪了一下tomcat使用日志的流程,整理如下。使用方法Java提供了原生态的日志工具包java.util.logging,功能虽然没有log4j强大,但是够用了,我想这也是tomcat使用原生日志...
阅读(392) 评论(0)

简单东西-Java定时调度线程池用法

If any execution of the task encounters an exception, subsequent executions are suppressed. Otherwise, the task will only terminate via cancellation or termination of the executor. If any execution of...
阅读(314) 评论(0)

GC判断可回收对象算法

声明:本文摘录周志明先生的《深入理解Java虚拟机》,记录下GC算法中的可达性算法分析。是在问答频道看到一个对可达性算法的疑问,梳理下,也是自我学习巩固的过程。关于可达性算法的几点记录如下: 首先,可达性算法基本思路是定义一些列称为"GC-Roots"的对象作为起始阶段,从这些节点向下搜索,搜索走过的路径称为引用链,当一个对象到GCRoots没有任何引用链时(即从GCRoots到这个对象不可达...
阅读(456) 评论(0)

Java Process应用

Runtimejava可以通过Runtime来调用其他进程,如cmd命令,shell文件的执行等。可以应该该类设置系统时间,执行shell文件。此处记录几个有用应用如下。 设置本地时间可以调用cmd /c date命令,完成本地时间设置,不过这个命令在win7下可以使用,但是win10需要管理员权限,可能无法设置系统时间。win7下使用Java实现修改本地时间代码如下,需要注意的是waitFo...
阅读(348) 评论(3)

算法整理-二分查找列表最大值

需求描述 已知一个列表是先增后减的半有序列表,现在需要找出列表中的最大值,列表长度可能很大,考虑时间复杂度,该算法该如何实现? 实现思路 在不考虑时间复杂的的情况下,可以直接遍历,用max标识来记录最大值,知道找到一个比最大值小的记录,说明列表开始降序,最大值就找到了。 如果考虑到时间复杂度,且是半有序的列表,收到二分查找的启发,可以使用二分查找,每次比较中间项与其相邻元素的大小,判断...
阅读(749) 评论(0)

简单东西-插入排序算法Java实现

简单插入排序算法        数据结构里面,常用的内部排序算法之一,简单插入排序。算法思想很简单,就是从第2个元素开始,用临时变量存储该待插入元素,然后从该位置处指针往回递减,如果某个位置处元素比该待插入元素大,就往后挪,直到找到某个位置处的元素比该元素小或相等,说明其后一个位置就是待插入元素的有序位置,则插入。实现算法如下: import java.util.Arrays; public...
阅读(394) 评论(0)

简单归并算法-有序数组合并算法实现

一个简单的有序数组合并算法:写一个函数,传入 2 个有序的整数数组,返回一个有序的整数数组。实现相当简单,创建一个长度为这两个长度之和的数组,然后分别用三个指针指向这三个数组,找到这两个数组中各个元素在合并数组中的位置并插入,直到某个数组指针到达尾部。再将另一个数组剩下的所有元素,直接放入归并数组尾部。算法的简单实现,需要注意的是对参数的校验,判断数组是否有序。        public...
阅读(1050) 评论(0)

归纳法-生成全排列算法Java实现

数学领域的全排列问题,  从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。《算法设计与技巧分析》这本书中,使用归纳法生成一组数【1,2,3……n】的所有排列问题,并用数组P[1……n]来存放每一个排列。该归纳法基于这样一个假设:可以生成n-1个数的所有排列,那么就可以扩展方法,生成1,2,……n这...
阅读(1476) 评论(0)

Java基础-Map容器的并发访问控制

在并发环境中,多线程之间共享数据时,需要对数据访问进行并发控制。例如,经典的生产者-消费者的实例中,生产线程和消费线程共享同一个容器对象,那么必须使用线程安全的容器对象。         简单的使用HashMap,统计某些key的出现次数,正确的并发控制代码如下:...
阅读(1081) 评论(0)

Java基础-jdk自动资源管理功能

JDK1.7新功能中,一个很好用的功能就是自动资源管理功能try-with-resources。       try-with-resources 是一个定义了一个或多个资源的try 声明,这个资源是指程序处理完它之后需要关闭它的对象。try-with-resources 确保每一个资源在处理完成后都会被关闭。 任何实现了java.lang.AutoCloseable 接口和java.io.Cl...
阅读(468) 评论(0)

数据结构-单链表的java实现

单链表实现链表的打印及元素删除操作,链表的实现主要是next属性的定义,将一堆节点关联起来的。实现简单的链表如下: public class LinkNode { private int value; private LinkNode next; public LinkNode(int x) { value = x; } public LinkNode getNext(){ ...
阅读(1042) 评论(1)

简单东西-java动态更改JLabel背景图片

java的awt设置背景图片的一种方式是使用JLabel类,它的setIcon可以设置背景图片,但是如何动态修改背景图片呢?这源于问答频道上的一个问题,题主给的代码总是无法正确动态修改背景图片,找了一阵子,发现它处理点击事件的代码存在错误,JLabel类对象实例化一次就够了,然后动态setIcon修改背景。而不是在点击时重新实例化标签对象。 public class DynamicBackgro...
阅读(3244) 评论(0)

JavaEE-stuts2返回json数据简单实现

CSDN的ASK频道,看到关于struts2返回json数据的问题,整理了下struts2的简单demo,完成JSON数据的展示。     Action定义 public class ValidateAction extends ActionSupport { private static final long serialVersionUID = 1L; private String u...
阅读(879) 评论(0)

java基础-Reader的reset重置到文件首部

今天在CSDN问答频道看到一个问题,需要把一个BufferedReader读取完成之后,重新回到文件首部再读一遍。我想的是重新再new一个BufferedReader,后来查了下API发现有一个reset方法可以用,但是它要结合mark一起用。 import java.io.File; import java.io.FileNotFoundException; import java.io.Fi...
阅读(2113) 评论(1)
40条 共3页1 2 3 下一页 尾页