
java
文章平均质量分 68
kaiseu
把你的心给我一小部分,把我的整个拿去...
展开
-
javaSWing程序命令行和IDE运行没有问题,打包成jar后直接双击运行部分功能不行
编写的javaSWing程序打包成可运行的jar后通过命令行java -jar xx.jar运行没有问题(在IDE中运行也没有问题),但是直接双击运行在进行其中的一步操作(图像校正)的时候没有任何反应,由于是直接双击的xx.jar运行的,也就无法看到程序是否抛出了异常(通过命令行运行如果有异常可以看到,但是通过命令行运行的时候没有问题)。在网上也搜了不少,有人遇到过同样的问题,但是没有人给出原创 2015-06-07 20:26:43 · 3242 阅读 · 0 评论 -
java两个线程打印奇数和偶数
设计两个线程类,一个线程类负责打印100以内所有的偶数,另一个线程打印100以内所有的奇数。要求偶数线程每打印10个偶数以后,就让奇数线程打印10个奇数,如此交替进行。public class TwoThreadPrint { public static void main(String[] args) { PrintBean bean = new PrintB原创 2015-08-13 18:20:06 · 4356 阅读 · 0 评论 -
java杨氏矩阵查找算法
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字6,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。1 2 8 92 3 9 124 7 10 13转载 2015-08-14 21:34:46 · 1548 阅读 · 0 评论 -
Java字符串编程--最长连续字母序列的长度
给定一个 query 和一个 text,均由小写字母组成。要求在 text 中找出以同样的顺序连 续出现在 query 中的最长连续字母序列的长度。例如, query 为“acbac”,text 为 “acaccbabb”,那么 text 中的“cba”为最长的连续出现在 query 中的字母序列,因此, 返回结果应该为其长度 3。请注意程序效率。思路:用一个矩阵来记录两个字符串中原创 2015-08-15 22:17:42 · 3152 阅读 · 0 评论 -
java中的final关键字所起的作用
final的作用随着所修饰的类型而不同 1、final修饰类中的属性或者变量 无论属性是基本类型还是引用类型,final所起的作用都是变量里面存放的“值”不能变。 这个值,对于基本类型来说,变量里面放的就是实实在在的值,如1,“abc”等。 而引用类型变量里面放的是个地址,所以用final修饰原创 2015-08-22 16:13:39 · 1432 阅读 · 0 评论 -
全排列和全组合实现
Java版C++版转载 2015-10-16 18:56:32 · 641 阅读 · 0 评论 -
快速排序算法Java实现
1、算法概念。快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。2、算法思想。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。3、实现思路。①以第一个关键字 K转载 2015-10-16 22:14:00 · 798 阅读 · 0 评论 -
Java归并排序
归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合转载 2015-10-16 22:18:11 · 608 阅读 · 0 评论 -
JAVA构造函数内调用多态方法
看如下程序代码段:public class Test1 { public static void main(String[] args) { A b = new B(); b.print(); }}class A { public A(){ print(); } public void print()原创 2015-11-03 22:11:28 · 2907 阅读 · 0 评论 -
一致性哈希及java实现
1、一致性hash介绍一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。 因此,引入了一致性哈希算法转载 2015-11-10 15:44:42 · 2205 阅读 · 1 评论 -
面试题:java GC是在什么时候,对什么东西,做了什么事情?
一.回答:什么时候? 能说明minor gc/full gc的触发条件、OOM的触发条件,降低GC的调优的策略。 分析:列举一些我期望的回答:eden满了minor gc,升到老年代的对象大于老年代剩余空间full gc,或者小于时被HandlePromotionFailure参数强制full gc;gc与非gc时间耗时超过了GCTimeRatio的限制引发OOM,调优诸如通转载 2015-10-12 10:02:31 · 5978 阅读 · 0 评论 -
4种java复制文件的方式
本篇文章列举了4种最受欢迎的java复制文件的方式,复制文件是一个重要的操作,需要的朋友可以参考下尽管Java提供了一个可以处理文件的IO操作类,但是没有一个复制文件的方法。复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候。然而有几种方法可以进行Java文件复制操作,下面列举出4中最受欢迎的方式。1. 使用FileStreams复制这是最经典的方式将一个文件的内容复制转载 2015-10-12 12:20:03 · 1506 阅读 · 0 评论 -
Hashcode的作用
关于Hashcode的作用 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢?这就是Object.equals方法了。但是,如果每增加一个元素就检查一 次,那么当元素很多时,后添加到集合中的元素比较的转载 2015-10-12 12:23:39 · 561 阅读 · 0 评论 -
HashMap的工作原理总结
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入转载 2015-07-20 09:08:28 · 905 阅读 · 0 评论 -
深入理解 Java 垃圾回收机制
一、垃圾回收机制的意义Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。ps:内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂转载 2015-07-19 21:43:32 · 706 阅读 · 0 评论 -
Java HashMap的工作原理
面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的。我们来看个非常简单的例子。有一个”国家”(Country)类,我们将要用Country转载 2015-07-19 21:03:20 · 722 阅读 · 0 评论 -
java 字节流与字符流的区别
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。 范例:使用字节流不关闭执行 Java代码转载 2015-07-08 17:00:28 · 677 阅读 · 0 评论 -
HashMap的存储与实现
我们如果要保存一组对象,用我们之前学过的知识,会使用对象数组,但鉴于数组的局限性,数组长度一经定义就不能改变,所以我们使用链表、队列等数据结构操作,但是很麻烦。类集框架就是一个动态的数组,但不受数组长度的限制。 HashMap允许key值为空,(在方法containsValue(Object value):如果指定值key==null,并且在键值对中有value为null时,也转载 2015-07-08 19:25:10 · 962 阅读 · 0 评论 -
Java 集合系列之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
1 fail-fast简介fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail转载 2015-07-02 21:35:35 · 560 阅读 · 0 评论 -
Java 集合系列之 Iterator和Enumeration比较
第1部分 Iterator和Enumeration区别在Java集合中,我们通常都通过 “Iterator(迭代器)” 或 “Enumeration(枚举类)” 去遍历集合。今天,我们就一起学习一下它们之间到底有什么区别。我们先看看 Enumeration.java 和 Iterator.java的源码,再说它们的区别。Enumeration是一个接口,它的源码如下:转载 2015-07-02 21:15:05 · 1408 阅读 · 0 评论 -
Java值传递与引用传递
1 Java值传递Java原始数据类型在传递时以值传递,而包装类和其他的类在传递时是按引用传递的。s1按照引用传递,n按照值传递,所以passParam(s1, n) 函数会修改s1的内容,而n的值不变。将n的类型改为int的包装类Integer:可以看到,打印的结果不变,这是为什么呢?n还是按照引用传递的,只是由于Integer是不可变类,没有原创 2015-07-04 18:36:52 · 693 阅读 · 0 评论 -
Java 异常处理:finally,return
1 语句的执行顺序try{ } 中有个return 语句,那么紧跟在try后面的finally{ } 中的代码是否被执行?如果执行,什么时候被执行?是在return前还是return后?例如这个函数:public static int testFinally1(){int res = 1;try {res = 2;return res;}catch (Excepti原创 2015-07-05 19:04:08 · 854 阅读 · 0 评论 -
Idea 编译报错 javacTask: 源发行版 1.6 需要目标发行版 1.6
在idea中编译时发生如下的错误Information:Using javac 1.7.0_75 to compile java sourcesInformation:java: javacTask: 源发行版 1.6 需要目标发行版 1.6Information:java: Errors occurred while compiling module 'kulong'Informati转载 2015-06-14 16:05:22 · 22683 阅读 · 2 评论 -
Java_逃逸分析技术
什么是逃逸分析(Escape Analysis)?在编程语言的编译优化原理中,分析指针动态范围的方法称之为逃逸分析。它跟静态代码分析技术中的指针分析和外形分析类似。通俗一点讲,当一个对象的指针被多个方法或线程引用时,我们称这个指针发生了逃逸。而用来分析这种逃逸现象的方法,就称之为逃逸分析。举个例子: Java代码 class转载 2015-08-08 12:23:35 · 6337 阅读 · 1 评论 -
Java字符串题目--删除给定字符串中出现次数最少的字符
输入一段字符串,字符串中只包含大小写字母。要求完成函数删除给定字符串中出现次数最少的字符。 输出删除完的字符串。如果有多个出现次数一样的字符,都为最少时,一并删除。例如:输入:abbccd,输出为bbcc。分析:删除出现次数最少的也就是保留出现最多的,但是可能有多个出现最多的,如上面的例子,就要考虑记录出现最多的字符以及出现的次数。public class MaxCharacter原创 2015-08-09 19:34:48 · 5084 阅读 · 1 评论 -
大数相乘、大数相加、大数相减Java版本
题目:两个非常大的数字相乘(相加,相减) 该题目在java中可以使用BigInteger类中的方法来实现。否则的话可以使用如下方式来实现。 大数相乘:假设有A和B两个大数,位数分别为a和b。根据我们平常手动计算乘法的方式可以看出,最终的结果的位数c一定小于等于a+b,我们可以举一个简单的例子来说明,99*999=98901,最终结果是五位(a+b)。下面我们转载 2015-08-09 20:28:11 · 1941 阅读 · 0 评论 -
Java中Integer与int类型的比较--装箱和拆箱
先上例子:下面的代码输出什么? Integer a = 1; Integer b = 1; Integer c = 2; Integer d = 3; Integer e = new Integer(3); Integer e1 = new Integer(3);原创 2015-08-24 11:01:15 · 6421 阅读 · 2 评论 -
Java字符串题目--去除重复字符并排序
去除重复字符并排序:输入: 字符串输出: 去除重复字符并排序的字符串样例输入: aabcdefff样例输出: abcdef统计出现的过的字符串,并将相应的数组位置为1,然后遍历数组,为1的将对应的字符输出。package com.huawei;import java.util原创 2015-08-10 19:03:55 · 13681 阅读 · 7 评论 -
StringBuilder 以及 StringBuffer默认大小与扩容
默认值初始化:1. 首先明确 StringBuffer类与 StringBuilder类均继承了抽象类 AbstractStringBuilder类无参构造方法2. 源码中StringBuffer类和StringBuilder类初始化均调用父类的构造方法: 父类初始化: 子类默认传入值16 给父类初始转载 2015-07-19 18:50:07 · 13200 阅读 · 0 评论 -
浅谈ThreadPool 线程池
关概念: 线程池可以看做容纳线程的容器; 一个应用程序最多只能有一个线程池; ThreadPool静态类通过QueueUserWorkItem()方法将工作函数排入线程池; 每排入一个工作函数,就相当于请求创建一个线程; 线程池的作用:线程池是为突然大量爆发的线程设计的,通过有限的几个固定线程为大量的操作服务,减少了创转载 2015-10-12 10:54:33 · 675 阅读 · 0 评论