Java语言
文章平均质量分 65
Jerry_xl
2015年毕业于哈尔滨工业大学
本科在企业智能实验室,进行情景感知相关学习
硕士在自然计算实验室,进行机器学习、并行深度计算平台相关研究和学习
目前在阿里巴巴-人工智能实验室-W实验室
展开
-
Java 利用POI实现将数据库中内容导入到EXcel中
最近做了一些Excel的导入导出的东西,在从数据库导出到Excel时,参考的这个博客,挺实用的,所以转帖过来效果:使用时先把poi包导入工程的path,注意只需要导入poi包即可,下载后有三个jar包核心代码:连接数据库:DBConnection.javapackage org.xg.db;import java.sql.Connection;import ja转载 2012-02-17 17:19:19 · 3753 阅读 · 1 评论 -
继续java多线程——生产者消费者类似问题
一个题目是这样的采用Java 多线程技术,设计实现一个符合生产者和消费者问题的程序。对一个对象(枪膛)进行操作,其最大容量是12颗子弹。生产者线程是一个压入线程,它不断向枪膛中压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。(30分)要求:(1)给出分析过程说明。(10分)(2)程序输出,要模拟体现对枪膛的压入和射出操作;(10)(2)设计程序时应考虑到两个线程的同原创 2012-04-04 10:46:34 · 1055 阅读 · 0 评论 -
字符串 逆序
递归方法求解public static String reverseString(String x){ if(x==null || x.length() return reverseString(x.substring(1,x.length()))+ x.charAt(0);}原创 2012-04-04 22:24:32 · 481 阅读 · 0 评论 -
约瑟夫问题求解
据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从,Josephus要他的朋友先假原创 2012-04-04 20:04:58 · 932 阅读 · 0 评论 -
Java 输入输出练习
package test;import java.io.BufferedReader;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.Tr原创 2012-04-04 21:30:10 · 549 阅读 · 0 评论 -
JavaMail应用——如何发送超文本(html)格式的邮件
附件以超文本形式,很常用,与普通的邮件,只是查了一些设置,只有处理方式有些细微的差别代码如下:try{ request.setCharacterEncoding("GBK"); String from=request.getParameter("from"); String to=request.getParameter("to"); String原创 2012-04-07 21:52:10 · 2837 阅读 · 0 评论 -
关于JavaMail的应用——发送普通的邮件
前几天帮一位老师做一个邮件群发,但是要做到单独显示的邮件发送程序,之前没有碰过JavaMail,在图书馆找了一本JavaWeb宝典,看了看里面的关于JavaMail的实例,很容易上手也很容易理解,很快就做完了。在这里和大家分享一下。凡是从简入繁。首先来看看如何发送一个普通的Email首先准备环境:Java发送邮件有用到JavaMail的包mail.jar 和ac.jar(当然命名可原创 2012-04-07 21:49:54 · 1309 阅读 · 0 评论 -
Java设计模式——六大原则
设计模式6大原则:里氏置换原则里氏置换原则(Liskov Substitution Principle),简称LSP。所有引用基类的地方必须能够透明的使用其子类对象。也就是说,只要父类出现的地方子类就能够出现,而且替换为子类不会产生任何错误或异常。里氏置换原则(Liskov Substitution Principle),简称LSP定义:Functions that use poi转载 2012-04-09 22:37:19 · 7851 阅读 · 3 评论 -
单词搜索迷宫游戏
我们在杂志上,经常能够看到找单词的小游戏,在一个二维表格中,存在各种字母,我们可以从八个方向找单词。这个用计算机处理十分方便,但是,算法的好坏很重要,因为要是用蛮力算法实现,那么耗费的时间是不可想象的。这是数据结构与问题求解Java语言描述一书中给的实现思路完整代码如下,注释写的很明白了import java.io.BufferedReader;import java.io.Fil原创 2012-04-10 17:40:19 · 1396 阅读 · 0 评论 -
Java中Preference 类的使用,保存上一次记录
在使用java中JFileChooser选择文件的时候,我们总希望在下次打开的时候能保存上次浏览的记录,即打开文件对话框的时候,总能追溯到上一次的路径。有一个很愚蠢的方法,那就是在每次打开的时候把选择的文件的路径保存到本地文件中,再打开JFileChooser对话框的时候,先查看是否有内容,如果文件中有内容则按照存储的路径打开对话框。如果我说Java里面可以不使用JNI的手段操作W原创 2012-06-12 21:42:52 · 4501 阅读 · 2 评论 -
重温Java的类加载机制
java的类加载机制简介原创 2014-02-26 18:12:05 · 10845 阅读 · 0 评论 -
Java Comparable 解决排序问题
一次举重竞赛的比赛规则是:选手的成绩以成功举起的总重量来排序,举起总重量多的排在前面;当举起总重量相同时,按照体重来排序,体重轻的排在前面;要求程序读取数据文件作为输入,并按照上述规则排序后,打印出选手编号;数据文件说明如下:现有5名选手,其选手编号、成功举起的总重量及其体重如数据文件data4.txt,样例内容为:114054215553原创 2012-03-30 16:18:11 · 2966 阅读 · 0 评论 -
java 模拟公告板 wait -notify 实例
关于java多线程中数据同步问题——共享资源,经常用的是生产者和消费这问题,类似的还有公告板的问题。这里给一个实例。首先说公告板,只有公告板上有内容,浏览者才能读取内容,如果公告板没有内容,那么必须等待先写入,只有写入了才能读取。所以应该有三个实体类:一个是MessageBoard即公告板Reader 读取Writer 写入对于通俗的约定来说,公告板开始时是空的,所以必须先原创 2012-03-29 22:06:30 · 2269 阅读 · 0 评论 -
Java 如何获得指定区间的数
在编写Java程序的时候很多时候都用到了随机数,但是一直都是用一次查一次,这次来一个总结吧,把Java中得随机数的产生弄的清晰一些,以后就直接自己参考自己的这篇文章就好了。Java中有两个类可以产生随机数:java.util.Random和java.Math.RandomJava实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、lo原创 2012-02-15 16:03:00 · 9960 阅读 · 0 评论 -
Java和指针
在实际 的编程中,经常有人问我关于两个对象相同,一个改变了对于另一个是否影响的问题,实际中也常遇到这样的问题,有的时候,可能一时发现不了问题,这个问题实际上就是对于Java中和C++中指针的认识没有搞清楚。下面我来阐述我对Java中指针的理解。尽管java并不使用显示指针而且不允许编程者使用指针,可是访问对象依然以来指针。一个对象占用了从某个位置开始的一段内存空间,指针对于该对象而言只是一个保原创 2012-02-27 13:57:14 · 6765 阅读 · 1 评论 -
利用堆栈解决大数相加问题
在大数相加的时候,因为像int这样的数据类型有上限,那么如果不用其他超大类型如何实现超大的数字相加减呢,我们可以利用堆栈的特性来是实现,对于堆栈的应用,在大数相加中可以充分利用。我们可以把int无法表示的大数看成字符串,存储在不同的堆栈中,从堆栈中探出数字执行加减法,那么这个问题就结局了。伪代码如下:AddlargeNum()读取第一个数的各个数字并将他们存储在一个堆栈中;读取原创 2012-02-28 22:43:43 · 924 阅读 · 0 评论 -
删除二叉树中的节点——归并删除法
实现的思想很简单:first:找到要删除的节点second:如果删除的节点没有右子树那么左子树链到父节点third:如果删除的节点没有左子树那么右子树链到父节点forth:如果删除的节点又左右孩子,那么可以归并删除节点后的子树:方法有两种一种是用删除节点的左子树的最右节点,指向删除节点的右子树,另一种是用删除节点的用字数的最左节点指向删除节点的左子树。Java 实现如下:p原创 2012-03-04 11:50:09 · 1393 阅读 · 0 评论 -
基本排序算法
选择排序将要排序的对象分作两部份,一个是已排序的,一个是未排序的,从后端未排序部份选择一个最小值,并放入前端已排序部份的最后一个,例如:排序前:70 80 31 37 10 1 48 60 33 80[1] 80 31 37 10 70 48 60 33 80 选出最小值1[1 10] 31 37 80 70 48 60 33 80 选出最小值10[1 10 31] 3原创 2012-03-24 23:32:32 · 380 阅读 · 0 评论 -
快速排序
快速排序Java代码 public class Quick { public static int[] Data = { 9, 8, 7, 4, 1, 12, 15, 63, 15, 20 }; public static void quick(int left, int right) { int i, j; int Pivot; int temp; i原创 2012-03-10 23:32:25 · 363 阅读 · 0 评论 -
关于中文乱码很透彻的分析与解决方法
一、中文问题的来源 计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理。随着计算机的发展,为了适应世界其它民族的语言(当然包括我们的汉字),人们提出了UNICODE编码,它采用双字节编码,兼容英文字符和其它民族的双字节字符编码,所以,目前,大多数国际性的软件内部均采用UNICODE编码,在软件运行时,它获得本地支持系统(多数时间是操转载 2012-03-11 22:21:48 · 858 阅读 · 0 评论 -
关于Java中初始化顺序的问题
在遇到关于Java考试内容的时候总会避免不了一些初始化顺序的问题,究竟是谁先被初始化,在Think in Java 中作者是这样阐述的,希望对迷茫的人有帮助。 初始化的顺序是首先static(如果它们尚未由前一次对象创建过程初始化),接着是非static 对象。大家可从输出结果中找到相应的证据。在这里有必要总结一下对象的创建过程。请考虑一个名为Dog 的类:(1) 类型为Dog原创 2012-03-11 16:01:08 · 448 阅读 · 0 评论 -
几种排序算法的实现及简单分析
package test;public class first {/*普通的插入排序*/public void insertSort(int[] list) {int i, j;list[0] = -999;//相当于设置一个监视哨兵,不用判断是否越界,但要求数组从第二个数开始即i=1开始存储for (i = 1; i j = i;while (list原创 2012-03-12 17:04:52 · 390 阅读 · 0 评论 -
ConcurrentHashMap的关键部分解析
ConcurrentHashMap关键方法分析原创 2014-04-29 23:57:59 · 8305 阅读 · 1 评论