![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 60
孟君
Every little step adds up to giant leap.
展开
-
Java Break的几个用法
在Java中, break除了能够在switch中使用之外,还可以用于跳出循环。 比如, [b]例子一 [/b][code="java"]public class BreakTest { public static void main(String[] args) { for (int i = 1; i 3) { ...原创 2014-01-06 22:55:44 · 170 阅读 · 0 评论 -
Java泛型小结(一)
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。 泛型的好处是在编译的时候检查类型安全,消除源代码中的许多强制类型转换。这使得代码更加可...2013-09-09 17:55:47 · 87 阅读 · 0 评论 -
Java泛型小结(二) 通配符
Java泛型支持通配符,可以单独使用 '?' 来表示任意类型,也可以使用extends关键字表示某一个类或接口的子类,也可以使用super关键字表示某一个类,接口的父类型。本文对读写操作的分析得出什么时候该使用extends 和 super。[color=blue][b][u]的使用[/u][/b][/color]List表示的是任意类型。因为编译器不知道List中容纳...2013-09-10 00:32:33 · 108 阅读 · 0 评论 -
Swing数独游戏(一):终盘生成之矩阵转换法
数独(すうどく,Sudoku)是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。参考:[url]http://baike.baidu.com/link?url=ePXUCvpBaRKBkEA3pVfOkg3m-NBozO6a4GDS0N3E5_gK1nnJCDzd5O-YL1w...2013-09-12 17:03:45 · 874 阅读 · 0 评论 -
Swing数独游戏(二):终盘生成之随机法
在上一篇博文介绍了用矩阵转换法来产生数独终盘。关于矩阵转换法产生终盘矩阵请参考如下的文章。[b]Swing数独游戏(一):终盘生成之矩阵转换法 [/b]==> [url]http://mouselearnjava.iteye.com/blog/1941483[/url]本篇博文将对数独游戏随机产生数独终盘展开说明。[size=medium][color=blue][b]用什...2013-09-12 23:49:24 · 386 阅读 · 0 评论 -
Swing数独游戏(三):数独难题生成
前面两篇博文介绍了数独终盘生成的两种方法。Swing数独游戏(一):终盘生成之矩阵转换法 ==> [url]http://mouselearnjava.iteye.com/blog/1941483[/url]Swing数独游戏(二):终盘生成之随机法 ==> [url]http://mouselearnjava.iteye.com/blog/1941693[/url]拥有了数独...2013-09-14 00:08:08 · 765 阅读 · 0 评论 -
Java并发编程-Condition使用实例
本文将简单介绍用于线程协作的Condition, 并给出一个例子,实现一个多线程题目--有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC…。Condition是从JDK 1.5开始有的。API是这么描述的:[img]http://dl2.iteye.com/upload/attachment/0089/7456/d092662c-d5aa...2013-09-27 21:35:31 · 193 阅读 · 0 评论 -
面试题--三个线程循环打印ABC10次的几种解决方法
最近发现公司有份笔试试卷中有道多线程的[b]题目[/b]:[color=blue][b]有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC…[/b][/color]这个最早好像是迅雷的面试题目吧,看到了然后就想重温一下这个题目的解决方法。在本文中,给出了五种这个题目的解决方法:[list][*][b]使用sleep[*]使用sync...2013-09-29 20:01:58 · 521 阅读 · 0 评论 -
面试题 -- 1到50个数,每次去掉两个数,增加两个数差的绝对值,最后剩什么数?为什么?...
逛网页的时候,发现阿里巴巴2014校园招聘笔试最后一道题目[url]http://blog.csdn.net/qingsong3333/article/details/11910771[/url][b]题目:[/b]在黑板上写下50个数字:1至50.在接下来的49轮操作中,每次做如下动作:选取两个黑板上的数字a和b,擦去,在黑板上写|b - a|。请问最后一次动作之后剩下数字可能是什么...2013-09-30 19:03:39 · 407 阅读 · 0 评论 -
面试题 -- 一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。...
[b]题目:[/b][color=blue]一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。[/color]解决的方法有很多种,比如:使用synchronized, wait和notifyAll 使用Lock 和 Condition 使用Semaphore 等。本文采用Lock 和 Condition来实现。...2013-10-01 13:03:58 · 333 阅读 · 0 评论 -
String split方法使用小结
String对象的split方法提供了字符串分割的功能。split方法的参数可以是正则表达式,这样的话可以支持相对复杂的字符串分割。比如: [code="java"]"Welcome;to,the Java:World".split("[;|,| |:]")[/code]将得到由[b]"Welcome" "to" "the" "Java"[/b]和[b2013-08-27 22:54:06 · 174 阅读 · 0 评论 -
Java随机数使用实例总结
Java中提供了好几个类,可以让我们方便的实现随机数等功能,这些类有[b]java.util.Random[/b], [b]java.util.UUID [/b]以及JDK 7 新引入的[b]java.util.concurrent.ThreadLocalRandom[/b]等。本文将通过这些类对平时使用的实例进行简单的总结,这些实例的功能大致可以分成四个方面:[u][b]1....2013-08-26 23:04:24 · 107 阅读 · 0 评论 -
常用排序算法小结
离开课堂后,排序算法写的比较少了,当有排序的要求时,一般用的比较多的是直接采用Arrays.sort以及Collections.sort结合比较器来实现。[b]Arrays[/b]工具类包含了对各种类型数组的排序,以下是Arrays中包括的sort方法:[img]http://dl2.iteye.com/upload/attachment/0088/2033/9ac7faba-51...2013-08-14 23:32:06 · 81 阅读 · 0 评论 -
Java内置Logger详解
平时使用Log4j记录日志信息,对JDK内置的Logger还真没有去关注和使用过,只知道这个是在JDK 1.4引入的。这次,抽空去看了一下JDK内置Logger(java.util.logging)。在这篇博文中将记录如下几个方面的信息:1. JDK内置Logger的类结构2. JDK内置Logger支持的Level3. JDK内置Logger支持的Formatter4. JD...2013-08-17 00:33:37 · 533 阅读 · 0 评论 -
使用RuntimeMXBean获取PID
java.lang.management.RuntimeMXBean是Java 虚拟机的运行时系统的管理接口。使用它可以获取正在运行的 Java 虚拟机等信息,包括获取PID。以下就是一个获取PID的例子:[code="java"]import java.lang.management.ManagementFactory;import java.lang.managemen...2013-08-18 13:18:55 · 2646 阅读 · 0 评论 -
获取System Properties的方法
我们可以通过如下两种方式获取System Properties信息:[color=darkblue][b]1. System.getProperties()2. ManagementFactory.getRuntimeMXBean().getSystemProperties()[/b][/color]ManagementFactory.getRuntimeMXBean()....2013-08-18 22:24:58 · 377 阅读 · 0 评论 -
这代码怎么就打印出"hello world"了呢?
[code="java"]for (long l = 4946144450195624L; l > 0; l >>= 5) System.out.print((char) (((l & 31 | 64) % 95) + 32));[/code]这段代码有点诡异,输出的结果是[b][color=orange]hello world[/color][/b]。4946144450...2014-06-08 00:37:41 · 321 阅读 · 0 评论 -
Collections.emptyXXX方法
从JDK 1.5开始, Collections集合工具类中预先定义了一些空集合:如[code="java"] public static final List emptyList() { return (List) EMPTY_LIST; }[/code][code="java"] public static final Map em...2014-06-08 13:37:42 · 207 阅读 · 0 评论 -
java.lang包下的异常及例子
java.lang包下的Exception如下:[b]Exception[/b] -ClassNotFoundException -CloneNotSupportedException -[color=red]IllegalAccessException[/color] -InstantiationException -Interr...2013-08-19 18:55:24 · 246 阅读 · 0 评论 -
String substring的内存泄漏分析和优化方法
本文将对String.substring方法可能产生内存泄漏的问题进行分析,并给出相应的优化方法。[u][b]String.substring内存泄漏分析[/b][/u]首先看一下JDK6 String.substring的源代码:[code="java"]public final class String implements java.io.Serializa...2013-08-21 23:26:22 · 409 阅读 · 0 评论 -
从jar包中搜寻拥有某个方法的所有class
看到一个问题,"一个jar包有很多的class,但是,唯一知道的只是一个方法名,怎么样知道哪一个或哪些class拥有这个方法呢?"我想我们可以通过如下的步骤来实现:1. 获取jar包中所有的JarEntry2. 检查每一个JarEntry的name,如果name是以'.class'结尾,那么,获取class名字3. 使用第2步中得到的class名字,通过反射获取Meth...2013-08-23 10:24:05 · 500 阅读 · 0 评论 -
三道多线程编程题
本文记录三道多线程编程题。[b]第一道:[/b] 有四个线程1、2、3、4。[b]线程1的功能就是输出A[/b],[b]线程2的功能就是输出B[/b],以此类推......... 现在有四个文件file1,file2,file3, file4。初始都为空。现要让四个文件呈如下格式: file1:A B C D A B.... file2:B C D A B C.... ...2013-10-14 14:30:03 · 151 阅读 · 0 评论 -
Java递归搜索指定目录下具有某个后缀名的所有文件
本文简单记录一下一个简单功能:递归搜索指定目录下具有某个后缀名的所有文件。[b]在JDK 1.7之前,我会使用类似如下的办法:[/b][code="java"]package my.utils.algorithm.files;import java.io.File;import java.util.ArrayList;import java.util.List;...2013-10-16 22:19:34 · 649 阅读 · 0 评论 -
Java保留两位小数的几种做法
在平时做项目时,可能有这样的业务需求:[color=blue][b]页面或界面上展示的数据保留小数点后两位。[/b][/color]为了达到这样的展示效果,本文列举了几个方法:[color=blue][b]1. 使用java.math.BigDecimal2. 使用java.text.DecimalFormat3. 使用java.text.NumberFormat4...2013-10-18 21:49:46 · 302 阅读 · 0 评论 -
EnumSet的几个例子
EnumSet 是一个与枚举类型一起使用的专用 Set 实现。枚举set中所有元素都必须来自单个枚举类型(即必须是同类型,且该类型是Enum的子类)。 枚举类型在创建 set 时显式或隐式地指定。枚举 set 在内部表示为位向量。 此表示形式非常紧凑且高效。此类的空间和时间性能应该很好,足以用作传统上基于 int 的“位标志”的替换形式,具有高品质、类型安全的优势。Enumset是个虚类,...2014-11-14 16:24:48 · 218 阅读 · 0 评论 -
找出1到n缺失的一个数
题目:Problem description: You have an array A of size n – 1 containing numbers from 1 to n so there is one missing number, find it! 本文给出解决上述问题的两个方法。方法一:求和然后相减在这个方法中,首先求出1到n的和,可以使用数学公式int total...2014-11-18 12:57:35 · 636 阅读 · 0 评论 -
随机产生由特殊字符,大小写字母以及数字组成的字符串,且每种字符都至少出现一次...
题目:随机产生字符串,字符串中的字符只能由特殊字符 (!@#$%), 大写字母(A-Z),小写字母(a-z)以及数字(0-9)组成,且每种字符至少出现一次。这样产生字符串的方式可以应用到如下场景,比如,我们有一个应用就是添加用户完毕之后,发邮件给指定用户包括一个长度为11位的初始化密码。1. 我们先来定义一个包含这四种字符类型的char数组 private stat...2014-11-19 14:48:06 · 821 阅读 · 0 评论 -
(广度优先搜索)打印所有可能的括号组合
问题:给定一个正整n,作为括号的对数,输出所有括号可能的组合,如n=2(())()()n = 3的情况((()))(()())(())()()(())()()()在之前的一篇文章中,我们采用了深度优先搜索的方式实现:(深度优先搜索)打印所有可能的括号组合本博文中,我们将给出采用广度优先搜索的方式实现,程序如下:public class...2014-11-20 11:58:18 · 186 阅读 · 0 评论 -
几个可以用英文单词表达的正则表达式
本文,我们将来看一下几个可以用英文单词表达的正则表达式。这些可以使用的英文关键词,可以在类java.util.regex.Pattern找到,如下:帮助public final class Patternimplements java.io.Serializable{ // Posix regular expression character cl...2014-11-21 13:12:15 · 1782 阅读 · 0 评论 -
使用正则表达式判断一个数是否为素数
正则表达式能够用于判断一个数是否为素数,这个以前完全没有想过。本文将给出一个使用正则判断素数的方法,该正则表达式来源于网页http://stackoverflow.com/questions/2795065/how-to-determine-if-a-number-is-a-prime-with-regex正则表达式为.{0,1}|(.{2,})\\1+正则含义.{0,1} ...2014-11-23 13:35:06 · 227 阅读 · 0 评论 -
判断一个字符串中的字符是否都只出现一次
本篇博文将给大家带来几个判断一个字符串中的字符是否都只出现一次的方法。方法一:首先将字符串转换成字符数组(char[]), 循环迭代char数组,对于每一个字符c,如果其第一次出现的索引和最后一个出现的索引是不一样的,那么我们可以认为该元素出现多次。public static boolean isUniqueChars(String str) { char[] chars ...2014-11-25 12:58:08 · 912 阅读 · 0 评论 -
四种复制文件的方法
尽管Java提供了一个类ava.io.File用于文件的操作,但是该类不包括文件的复制操作。但是,复制文件是平时文件操作中一个重要的功能,本文给出四种比较流行的文件复制方法。1. 使用FileStreamprivate static void copyFileUsingFileStreams(File source, File dest) throws IOException { ...2014-11-29 13:21:32 · 526 阅读 · 0 评论 -
数组复制的三种方法
本文将给出三种实现数组复制的方法 (以复制整数数组为例)。方法一 : 循环遍历赋值达到复制数组的效果帮助 /** * 循环遍历赋值达到复制数组的效果 */public static int[] copy1(int[] source) { int len = source.length; int[] resu...2014-11-30 12:57:30 · 1436 阅读 · 0 评论 -
给定两个有序数组和一个指定的sum值,从两个数组中各找一个数使得这两个数的和与指定的sum值相差最小...
题目:给定两个有序数组和一个指定的sum值,从两个数组中各找一个数使得这两个数的和与指定的sum值相差最小。比如,有两个有序数组,数组1 为{ -5, -1, 0, 1, 4, 5, 7, 9 },数组2 为{ -3, 3, 10, 12, 15, 18, 21, 28 },如果 sum 为20,则获得的结果为[-1 , 21],如sum为30,则与sum相差最小的两个数为[7 ,...2014-11-12 11:24:58 · 558 阅读 · 0 评论 -
Java面试编程题练手
面试编程写一个程序,去除有序数组中的重复数字编写一个程序使得两个线程陷入死锁使用递归算法反转字符串合并两个有序数组找出三个有序数组共有的元素字符(字母、数字、中文字符)统计示例最短时间过桥从一个整数数组中找出总和为S的所有子集5个钢珠离开凹轨的最短时间和最长时间1到50个数,每次去掉两个数,增加两个数差的绝对值,最后剩什么数?为什么?输出全排列...2014-11-04 22:49:17 · 324 阅读 · 0 评论 -
计算非负数二进制形式中1的个数
要求:计算非负数二进制形式中1的个数.本文采用两种方法来实现:1) 通过[b]Integer#toBinaryString[/b]方法获得二进制表达式, 替换掉0,那么剩余的都是1, 然后直接计算剩余字符串的长度来得到1的个数.2) 采用位运算. 把一个整数减1,然后再与原来整数做与运算(&),会把该整数最右边一个1变成0,那么一个整数的二进制表示中有多少个1就可以进行...原创 2014-04-10 17:05:18 · 2881 阅读 · 0 评论 -
重排数组使得array[i]等于array[array[i]],但只能用0(1)的额外空间
题目:给定一个长度为N的数组,里面的每一个元素的值都在0到N-1之间,并且[b]数组的元素是各不相同的[/b]。重新排列这个数组,使得array[i]的值变成array[array[i]], 但是只能使用[b]0(1)[/b]的额外空间。实现的代码如下:[code="java"]import java.util.Arrays;/** * * 题目要...2014-04-14 23:38:53 · 511 阅读 · 0 评论 -
The Code Sample 代码实例 个人博客开通
个人博客小站开通[url]http://thecodesample.com/[/url]原创 2014-09-04 18:48:51 · 197 阅读 · 0 评论 -
打印一个数组所有的非空子集
采用[b]位[/b]掩码实现打印给定数组所有的非空子集。[b]分析:[/b]首先来看一个例子,如果给定一个正整数N,如何输出由1到N组成的数组所有的非空子集呢?如N=3, 那么1到3组成的数组为{1,2,3},数组长度为3,那么二进制表示有[b]1...2014-04-20 13:02:29 · 1059 阅读 · 0 评论 -
将数组分割成差值最小的子集
本文使用[b]位[/b]掩码实现一个功能 ==》将数组分割成差值最小的子集代码如下:[code="java"]import java.util.Arrays;public class MinimalDifference { /** * 将数组分割成差值最小的子集 */ public void printTwoMinDiffGroups(int[] v...2014-04-20 22:34:06 · 1107 阅读 · 0 评论