`
YL之城
  • 浏览: 20637 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论
文章列表
以前学习HahsMap都是粗略的了解一下,能够用就行了。这次对HahsMap的源代码看了几遍,对此有一定的理解,就我的理解我总结出如下几点。但在此之前,我们先说下HahsMap的结构,简单来说:HahsMap其实是一个数组和链表的结合体。 第一、首先对HahsMap的初始容量(也即DEFAULT_INITIAL_CAPACITY)来说个事,看下面的代码吧: public class TestHashMap { public static void main(String[] args) { HashMap<Integer, Integer> hm1=new HashMap& ...
本科能力到底是一种什么能力?如果说研究生和本科生之间的差别在于学术创新和研发能力的话,那么,仅仅差一年学制的本科生和专科生,他们的差异体现在哪里?能力证的背后难道果真是因为专科生学历“档次”不行?还是讽刺本科教育徒有虚名? 纵观人才市场中形形色色的毕业生,我们不难发现,专科生往往在某一领域有着较好的操作技能,就业渠道比较精专,很容易成为生产一线的技术能手,这也是很多企业愿意花大力气进行订单式培养和签约就业的主要动因。而我们这些本科生,很多毕业生却为找工作而踌躇,往往不知道自己该干些什么,特别是“211”和“985”这些高校,很多学生因为不知道进入社会该干些什么,只能继续深入学习,从而去读研究生 ...

超越与责任

暑假在蓝杰培训的一个月中,是我最充实的一段时光。虽然学得不咋滴,但却是最有意义的一个暑假。 今天,感觉胡哥跟我们谈话的时间是最长的一次,也许是因为暑期培训的最后一天吧,这让我感触颇深。我强烈意识要用文 ...

文件的压缩

 
本节主要是利用huffman树的原理来对文件进行处理,从而达到压缩文件的效果。huffman树又称为最优二叉树。是带权路径最短的树。 先说说怎么建huffman树,其构造方法为: 1.根据给定的n个权值的结点,选出两个结点值最小的数作为左、右子树,这个二叉树的根结点为左、右结点的权值之和。 2.将新的权值加入到剩余结点中,删除原来的两个结点 3.重复
前面介绍了双向链表,其实二叉树也相当于一个链表。二叉树相对而言比较好理解,我们可以把其看做成一棵树,只不过每个结点至多只有2个枝节点,且仅且只有一个根结点,这就是二叉树。二叉树的定义其实和链表差不多,双向链表是和其前后结点相连,而二叉树的结点就必须和其左右枝节点保持关系。与链表类似,可以这样定义二叉树:   public class TreeNode { private Object obj; private TreeNode parent; private TreeNode left; private TreeNode right; //重写构造方法 public ...
学过数据结构的应该对双向链表比较熟悉,但如果用java语言是怎么来实现的呢?本节是来讨论如何用java语言来实现链表,主要谈谈对双向链表的理解。 链表其实是一种非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的。链表由一系列的结点组成,结点是由存储数据元素的数据域和存储结点地址的指针域。对于单链表而言,结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。但当我们对单链表进行操作时,有时你要对某个结点前面的一个结点进行操作时,又必须从表头重新查找(这是由单链表的结构所造成的),这样接相当麻烦,为了解决这个问题,从而提出了双向链表。双向链表,结 ...
桌面弹球是游戏中常见的游戏,从以前的掌上游戏机到如今的手机游戏,都是一个十分经典的游戏。玩家控制一个可以左右移动的挡板去改变运动中小球的移动方向,目的是用小球消除游戏屏幕中的所有砖块,不同颜色的砖块有着不一样的效果,例如:黄色砖块五魔法效果、粉色的砖块弹球可以穿越,咖啡色的砖块可以使小球加速,绿色的砖块可以使小球发色子弹等等。本节主要介绍如何实现一个简单的弹球游戏,让读者了解“动画”的实现原理。 其实所谓的动画就是一张一张图片的不断演示,让人看上去有动感,最后使用Java中的双缓冲去重复绘图,

多线程02

前面一节我们是通过继承Thread这个类来实现多线程,而如果当前类要继承其他类的时候,我们怎么来实现多线程呢?大家都知道,Java中只允许单从继承,也就是说不能在继承Thread这个类了,那设个时候怎么来实现多线程呢?其实,我们可以通过Runnable接口的方式实现多线程,查看API可以知道,Runnable接口中只定义了一个抽象方法: public void run(){ }

多线程01

Java是支持多线程的语言,要想了解线程,我们得先知道进程。所谓进程,其实很好理解,进程就是程序的一次动态执行过程。多进程操作系统能同时运行多个进程,由于CPU具备分时机制,由于CPU执行速度分常快,使得程序好像是在“同时”执行一样,其实不是! 而多线程是实现并发机制的一种有效手段。所谓多线程其实是只一个进程在执行过程当中可以产生多个线程,这些线程可以同时存在、同时运行,一个进程可能包含了多个同时执行的线程。 在Java中要想实现多线程,我们可以通过继承Thread类。其定义格式为: class 类名称 extends
经过将近这么久的时间的整理和加工,现在自己做的画图板的基本功能都已经实现。当然,肯定不可能有windows XP中提供的画图那样完美。我只是实现了其中的部分功能,如画直线、画圆、画矩形、曲线这几种,实现了图片的保存与打开,但这个过程只能在自己的画图板中才能查看,而不能用已有的软件来打开。现在我正向把图片保存成bmp格式努力,这样查看图片就比较方便啦。 现在我主要谈谈我对自己做的画图板的保存与打开的所想和所悟。在我刚接触Java时,我觉得我能做出画图板,我就相当的惊讶,而我现在还能实现自己的保存,我更是匪夷所思,但现在我确实做到了,虽然其中还有很多漏洞,但那种做出来的喜悦的心情是非常爽的。 一 ...
在Java程序中,要比较两个对象是否相等,经常会使用到“= =”和“equals”,那么什么时候我们用“= =”,什么时候用“equals”呢?这其实就是让我们来看看这两个比较方法的区别。在这里,最让我们搞混淆的是在String里面的比较,首先我们来看个例子: public class Test01 { public static 

文件操作

一、File类 在整个io包中,唯一与文件本身有关的类就是File类。使用File类可以进行创建或删除文件等常用操作。要使用File类,首先我们看下File类得构造方法,它有4种构造方法,我们看一个比较常用的构造方法: public File(String pathname)    ------>实例化File类,必须设置好路径 我们假设要在D盘下创建一个
在我们编写java程序时,我们经常遇到的问题就是:程序老出现问题。这里出现的问题可分为两种:一、程序出现错误(Error);二、程序出现异常(Exception)。程序出现错误,那就是用户的问题,即出现了语法错误,只能自己不断的调试更正。而当一个程序在编译时没有问题,但在运行时可能出现各种各样的错误导致程序退出,这就是异常。本节主要对异常来做个小小的分析。 异常是导致程序中断运行的一种指令流。如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失,所以要在程序的设计中必要的考虑各种各样异常的发生,并正确的做好相应的处理,以确保程序的正常执行。我们分以下几步来说明问题。 一、在 ...

递归算法

递归算法是一种特殊的调用形式,是方法自己调用自己,这样有点比较难理解,但我们也可以认为方法调用另外一个方法,只不过方法名相同而已,且方法的算法也相同。这样也许还是比较难理解,我们可以用一个图来表示该算法:       我们可以举个简单的例子来运用下递归算法。我们在读初中的时候,老师一般会出这样一道题目:计算出1+2+3+……+100的结果,现在学程序阶段,我们首先想到的一般是用循环来做,但其实我们也可以使用递归算法来做这道题目。代码如下: public class Test {
在Java的学习过程中,我们会遇到一些固定、具有具体含义的标识符,这就是关键字。通常在一些编写Java程序的软件中,关键字都是用特殊颜色来跟其他字符区别开来,这样方便我们来理解程序,且避免我们用关键字来定义类名 ...
Global site tag (gtag.js) - Google Analytics