
Java开发
文章平均质量分 69
孙冬冬
做周鸿祎一样的男人!
展开
-
Java设计模式-单例模式
首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了,比如,一台计算机上可以连好几个打印机,但是这个计算机上的打印程序只能有一个,这里就可以通过单例模式来避免两个打印作业同时输出到打印机中,即在整个的打印过程中我只有一个打印程序的实例。简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。原创 2014-12-23 20:59:43 · 710 阅读 · 0 评论 -
Java双亲委派机制
预定义类加载器和双亲委派机制JVM预定义的三种类型类加载器:启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 /lib下面的类库加载到内存中(比如rt.jar)。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。标准扩展(Extension)类加载器:是由 Sun 的 ExtClas原创 2015-04-13 22:17:48 · 1664 阅读 · 0 评论 -
两个堆栈实现一个队列 , 利用两个队列实现一个堆栈(Java)
面试中经常会问到这样的问题,利用两个堆栈实现一个队列以及利用两个队列实现一个堆栈。我们知道堆栈的特点是先进后出,而队列的特点是先进先出。这里我用java实现了一下,不对的地方还请大家及时指出。两个堆栈实现一个队列思想:(1)弹出时,如果stack2不为空的话,直接由stack2弹出,如果stack1不为空,则将stack1移入stack2,并将最后一个元素弹出。(2)存入时,直接将原创 2015-04-14 17:24:39 · 1184 阅读 · 0 评论 -
Java类变量初始化顺序
以前一直以为java类的初始化是最先从构造函数开始的,今天看了《编程思想》这本书,才发现以前的很多认识都是错误的,赶紧写下来共享。首先是java类中普通变量的初始化顺序:package com.test.demos;class Window{ public Window(int market) { System.out.println("Window(" + market + ")原创 2015-04-08 22:00:50 · 782 阅读 · 0 评论 -
Java编程思想
1. Java中的多态性理解(注意与C++区分)Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意味着通常情况下,我们不必判定是否应该进行动态绑定—它会自动发生。final方法会使编译器生成更有效的代码,这也是为什么说声明为final方法能在一定程度上提高性能(效果不明显)。原创 2015-04-13 17:10:09 · 765 阅读 · 0 评论 -
String str="abc" 与 String str = new String("abc")
1.java运行环境有一个字符串池,由String类维护,执行语句String str="abc"时:1.首先查看字符串池中是否存在字符串"abc",如果存在则直接将“abc”赋给str,如果不存在则先在 字 符串池中新建一个字符串"abc",然后再将其赋给str.2.执行语句String str = new String("abc");时。不管字符串池中是否存在字符串“abc”原创 2015-04-06 11:40:31 · 2409 阅读 · 0 评论 -
HashMap实现原理
1.HashMap的数据结构 数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法—— 拉链法,我们可以理解为“链表的数组” ,如图: 从上图我们可以发现哈希表是由数组原创 2015-03-18 14:12:33 · 549 阅读 · 0 评论 -
java实现简易计算器完整代码
早起起来没事,打开mac突然想写个小程序,就写来个简易的计算器,可以实现基本的运算,测试目前无bug,下面分享下自己的代码。首先写了个简单的界面如下:整个面板用了BorderLayout布局,分为北,左和中。中部采用网格布局。定义这个类为CalFrame.java:package calframe;import java.awt.BorderLayout;import j原创 2015-03-08 17:39:42 · 120881 阅读 · 13 评论 -
Java编程规则
本附录包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写的一般性指导: (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:ThisIsAClassNamethisIsMethodOrFieldName若在定义中出现了常数初始化字符,则大写static final基翻译 2015-03-07 20:30:51 · 564 阅读 · 0 评论 -
Java 写入xml
dom4j 是一个用java处理xml非常好的开源包,其实java自带的dom也很好用,但是java没有直接写入xml格式的类,所以在保存xml格式的数据时,先将数据转化成dom结构,最后保存java的dom结构,以下是《java核心技术》上的一段代码,在我的工程中也调试通过了。// save DOM tree to xml file public static void saveDOM2XML原创 2015-03-06 15:59:03 · 883 阅读 · 0 评论 -
Java读书笔记
1. Java中的多态性理解(注意与C++区分)Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意味着通常情况下,我们不必判定是否应该进行动态绑定—它会自动发生。final方法会使编译器生成更有效的代码,这也是为什么说声明为final方法能在一定程度上提高性能(效果不明显)。转载 2015-03-03 17:21:10 · 558 阅读 · 0 评论 -
低位优先的字符串排序
今天看Sedgewick的书《算法》,给大家分享一段低位优先的字符串排序代码,当然还有高位优先字符串排序,三向字符串快速排序等。《算法》这本书上面说的都很详细,感兴趣的同学可以看看。低位优先的字符串排序:public class LSD { public static void sort(String[] a, int W){ //通过前W个字符将a[]排序 int N =原创 2015-03-02 11:01:37 · 1197 阅读 · 0 评论 -
JAXB使用
以前读XML文件一般都是用Dom4j。 今天才知道java1.6以后加入了JAXB(Java Architecture for XML Binding)这个好东西。刚好科研需要用到,写了一个Demo,运行通过了。原创 2014-12-31 20:31:20 · 546 阅读 · 0 评论 -
Java按行读txt
Java按行读txt原创 2014-12-28 15:18:01 · 1650 阅读 · 0 评论 -
java多线程之消费者生产者模式
/*@author shijin* 生产者与消费者模型中,要保证以下几点:* 1 同一时间内只能有一个生产者生产 生产方法加锁sychronized* 2 同一时间内只能有一个消费者消费 消费方法加锁sychronized* 3 生产者生产的同时消费者不能消费 生产方法加锁sychronized* 4 消费者消费的同时生产者不能生产 消费方法加锁sychronized* 5 共转载 2014-12-23 21:03:24 · 451 阅读 · 0 评论 -
ANT从入门到精通
一、ANT的安装和配置(略,参考《ant实践》吧)二、ANT的学习方法学习ANT应该从“到底要用ANT来做什么”开始,针对自己的目的来学习,只要能够满足自己的工作的需要就可以了,ANT设计为可扩展的插件式的结构,每天都有人为ANT增加新的插件,因此要将ANT的所有功能掌握是不可能的,从我们的工作需求出发,ANT主要就是用来compile, test, build, package, del转载 2015-08-27 15:02:16 · 692 阅读 · 0 评论