Java
罗鹏_1022
求知若渴,大智如愚
展开
-
POJ 1002 487-3279
这个题是按要求输出电话号码,开始很快写了一版出来,用给的测试案例测试没问题,但是提交一直提示Wrong Answer,从网上看到有人用如下测试案例20000-00-000-0-0-0-0-0顿时意识到我的电话号码都是当作int来处理的,这样两端的0都不见了。其实,问题的起因是我之前只知道有个Arrays.sort(int[] temp),而不知道还有个Arrays.sort(char[] temp)。为了使用Arrays.sort(int[] temp),我将中间结果都先转换成int,然后调用来排序原创 2015-01-18 22:36:56 · 665 阅读 · 0 评论 -
POJ 1001 Exponentiation
这道题是计算实数的N次方问题,对于这样要求高精度的地方,double是肯定不够用的(double的精度只有16位)。看到题的第一感觉是可能需要用数组来计算,但越想挺复杂,找找看有没有其他比较简单的解决方法,发现BigDecimal可以用来处理有效位超过16位的数。BigDecimal不能使用简单的+-*/,说明BigDecimal类其实在数的基础上进行了封装。原创 2015-01-16 01:06:52 · 876 阅读 · 0 评论 -
POJ1008 Maya Calendar
对比才能看出差距!先是我写的一段代码,然后是参考高手的一段代码,对比分析。1、跟踪了很久发现是第一个元素总是为空。原来nextInt()方法仅仅读取了一个int型的token,但并不换行。紧接着使用nextLine()方法的话会读取换行前的其他内容,然后就换行等待下一个输入,所以nextLine()读到的第一个就是null了。连续输入部分改成下面这样的代码就可以了,开始就使用nextLine()。2、我的代码在最后打印天名称的时候使用的是switch...case,虽然可以正常打印,但我总感觉手写麻烦而原创 2015-01-27 09:08:46 · 669 阅读 · 0 评论 -
策略模式
策略设计模式,指的是创建一个能够根据所传递的参数对象的不同而具有不同行为的方法。策略就是传递进去的参数对象,比如下面例子main()中的Processor对象。有两种不同类型的策略应用到了String类型的s对象上。策略模式编写步骤1、对一组操作抽象出一个共同接口,定义这个共同接口2、编写策略类,实现这个接口,每个策略类都有其独特的实现3、编写环境角色类,类中持有一个对共同接口的引用,对策略对象注入如set方法和get方法或者用构造方法完成赋值原创 2014-05-14 22:31:03 · 752 阅读 · 0 评论 -
类中static final域和final域的区别
简单来看,static final跟final的区别就是前者多了个static。static表示是静态的,static含有两个很关键的特点。一是static分配的存储空间不会变,而且static会在装载的时候初始化,而不是每次创建新对象时都初始化。二是static修饰的属性或方法又叫类属性或类方法,也就说可以直接通过类名进行调用。只要把握住这两个关键点,问题就不大了,通过一个实例来看看区别。原创 2014-05-28 11:35:50 · 2755 阅读 · 0 评论 -
编译性语言与解释性语言
计算机不能直接理解高级语言,所以需要将高级语言翻译成机器语言,翻译有两种方式:编译、解释,这两种方式主要是翻译的时间不同。编译性语言指代码需要先编译成机器语言的二进制文件,然后再执行。这样在执行的时候就不需要再翻译了,所以执行效率高。解释性语言指跳过编译阶段,直接运行,在运行时翻译。每次执行都需要翻译一次,所以效率较低。每种解释性语言都有对应的引擎来解释执行。有点类似于“同声翻译”,代码一边由相应的解释器“翻译”成机器语言,一边执行。脚本语言都是解释性的。原创 2014-05-23 10:40:14 · 1121 阅读 · 0 评论 -
Hadoop源码阅读准备
2014-05-10到2014-05-11 (周末两天)了解Hadoop中使用了哪些原创 2014-05-12 14:38:19 · 835 阅读 · 0 评论 -
工厂模式
简单工厂模式,就是专门弄一个工厂类,然后根据传入的参数决定创建哪一种产品类。在编码时不能预见需要创建哪一种类实例,就可以考虑使用简单工厂模式。当每个抽象产品都有多个具体子类的时候,工厂角色怎么知道实例化哪一个子类呢?这个时候需要引入抽象工厂模式,抽象工厂模式可以说是简单工厂模式的扩展,主要的区别在于需要创建对象的复杂程度上。原创 2014-05-14 20:29:14 · 599 阅读 · 0 评论 -
常用数据结构
Hashtable,哈希表是根据关键码值(Key value)直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。HashMap,不保证映射的顺序,特别是它不保证该顺序恒久不变。一个HashMap的实际容量=容量x因子,其默认值是16×0.75=12。当存入HashMap的对象超过这个容量时,HashMap会重新构造存取表(长度变为原来的2倍,然后一个个indexfor进去),这是一个大问题,所以当你知道大概要存放多少个对象时,最好设为该实际容量的能接受的数字。对于冲突原创 2014-05-13 22:52:54 · 657 阅读 · 0 评论 -
单例模式
Java中单例模式定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。要点:一是某个类只能有一个实例,二是它必须自行创建这个实例,三是它必须自行向整个系统提供这个实例。实现:一是类只提供私有的构造函数,二是类定义中含有一个该类的静态私有对象,三是该类提供了一个静态的共有的函数用于创建或获取它本身的静态私有对象。原创 2014-05-14 10:20:34 · 700 阅读 · 0 评论 -
Java IO
阻塞式IO:多线程处理多个连接。每个线程拥有自己的栈空间并且占用一些 CPU 时间。每个线程遇到外部未准备好的时候,都会阻塞掉。阻塞的结果就是会带来大量的进程上下文切换。且大部分进程上下文切换可能是无意义的。非阻塞式NIO:由一个专门的线程来处理所有的 IO 事件,并负责分发。事件到的时候触发,而不是像阻塞式那样同步的去监视事件。保证每次上下文切换都是有意义的。原创 2014-05-12 14:22:37 · 725 阅读 · 0 评论 -
POJ 1006 Biorhythms
POJ 1003,1004,1005 比较简单,很快就解决了。有个小插曲,刚开始做ACM不太懂,最近提交问题反馈最多的就是Runtime Error,开始我以为是超时,一方面我怀疑是不是Java跑得太慢了,然后去了解发现有些国际大赛推荐用java,那说明java本身是不慢的。另一方面我怀疑是我程序太烂,每次都很好耗时,所以每次遇到Runtime Error问题就去优化代码,但怎么优化还是不行。最后将POJ1005题网上的代码贴上去AC了,但是我的还是不行,这个时候才发现罪魁祸首是我提交时总是带着包名(当然有原创 2015-01-22 01:05:28 · 824 阅读 · 0 评论