13 Java Date 日期的使用方法
注意: 月份的设定要-1。0-代表1月;1代表2月,11代表12月。

  Calendar cal = new GregorianCalendar(2013,00,11,11,11,0);
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("/yyyyMMdd/HHmm");
System.out.println("Today is:"+ format.format(cal.getTime()));
cal.add(Calendar.MINUTE, +1);
System.out.println("Today is:"+ format.format(cal.getTime()));

  更多用法见:http://www.blogjava.net/kelly/archive/2011/02/21/344755.html

 
12.try catch是否会引起程序性能
异常最大的开销是创建异常时需要回溯栈信息,如果没有异常的时候几乎不会影响性能。
可以使用try catch控制程序逻辑,但是异常必须抛出的非常少。
 
11.如何对一个不断更新的HashMap进行排序?
解答:等到HashMap更新稳定后,用ArrayList包装进行排序。或者自己写一个可以类似HashMap的有序Map,每次更新的时候都进行排序,构建自己的put方法,并且可以排序。
实时计算的排序:
    Map<String, Integer> itemCount = new HashMap<String, Integer>();
    Comp cmp = new Comp();
    List<Map.Entry<String, Integer>> itemSort;
    itemSort = new ArrayList<Map.Entry<String, Integer>>( itemCount.entrySet()); 
    Collections.sort(itemSort, cmp);
 
1.Comparator比较器的用法
//下面的做法是对数组arr做acsend升序排序,数组必须是Integer[]的数组:
        Integer[] arr = new Integer[10];
Comparator<Integer> cmp = new Comparator<Integer>() {
public int compare(Integer i1, Integer i2) {
return i1 - i2;
}
};
Arrays.sort(arr, cmp);
或者构造一个类Comp来implements Comparator接口。这个就是比较器了。
 
2 判断一个数是奇数的最好方法用操作符&:
 boolbean isOdd(int i){
return (i & 1) != 0; //偶数的话,(i&1)==0;
}

3 关于精度计算的问题,一定要使用BigDecimal(String)构造器,千万不要用BigDecimal(Double)。 (这一点,我通过程序测试了,确实如此;如果用BigDeimal(double)相当于没有用,即没有任何精度提高的效果。)

用法:BigDecimal big = new BigDecimal("2.10");//这里要使用引号表示是字符串。
总之, 在需要精确答案的地方,要避免使用 float和double;对于货币计算,要使用int、long 或BigDecimal。
 
4 编译器在计算常量表达式'H'+'a'时,通过原始类型转换将两个具有字符型数值的操作数('H'和'a')提升为int数值而实现的。
    1、+作为字符串连接的时候,2边的参数至少有1个是String类型
    2、否则,其它类型将会转换成int32位,变成ASCII码的值来计算输出
语言所关心的是,char是一个无符号 16位原始类型整数——仅此而已。对类库来说就不尽如此了,类库包含了许多可以接受 char 参数,并将其作为 Unicode字符处理的方法。
 
5 字符数组输出的问题
public class ABC{
public static void main(String[] args) {
String letters = "ABC";
char[] numbers = { '1', '2', '3' };
System.out.println(letters + " easy as " + numbers);
}
}
//输出:ABC easy as [C@de6ced

在一个非空 char数组上面调用 toString方法会产生什么样的行为呢?数组是从Object 那里继承的toString 方法[JLS 10.7],规范中描述到:“返回一个字符串,它包含了该对象所属类的名字,'@'符号,以及表示对象散列码的一个无符号十六进制整数”[Java-API]。

Solution:  总之,char数组不是字符串。要想将一个 char数组转换成一个字符串,就要调用String.valueOf(char[])方法。
System.out.println(letters + " easy as " +  String.valueOf(numbers)); 
 
6 byte数值的转换
为了比较byte 数值(byte)0x90和int 数值0x90,Java通过拓宽原始类型转换将byte 提升为一个 int[JLS 5.1.2],然后比较这两个int 数值。
0x90 对应二进制0000,0000,1001,0000.    byte(0x90)只会取后八位:1001,0000(对应的数字-16) 这两个数进行比较的时候,把byte的值扩展到int型,做的是符号扩展,即为1000,0000,1001,0000。(前8位补充符号、0,后八位不变。值为-112)-112 与+144当然不相等。
 
7 BigInteger 实例是不可变的。String、BigDecimal以及包装器类型: Integer、 Long、 Short、 Byte、 Character、 Boolean、Float和 Double 也是如此,你不能修改它们的值。我们不能修改现有实例的值,对这些类型的操作将返回新的实例。
比如大整数的加法要这样写: BigInteger total = BigInteger.ZERO;       total = total.add(fiveThousand); 
 
8 与hashCode有关的equal:puzzle57.
当你覆写equals方法时,一定要记着覆写hashCode()方法。更一般的讲,当你在覆写一个方法时,如果它具有一个通用的约定,那么一定要遵守它。对大多数在Object中声明的非final的方法,都需要注意这一点【EJ Chapter3】
public int hashCode(){
return 37*first.hashCode()+last.hashCode();
}

具体hashCode的计算方法见 Effective JAVA

 
 String trim() 
          Returns a copy of the string, with leading and trailing whitespace omitted.返回字符串的副本,忽略前导和尾随的空白。
 
10. Log4j的使用
示例程序:只需要引入log4j-1.2.16.jar这个apache的包就可以了。记得在里面写log4j的配置文件:log4j.properties。
下面有一个示例的写法。更多log4j的参数意义,请看http://johnny-gz.iteye.com/blog/1750714 

import org.apache.log4j.Logger;

public class TestLog4j {
private static final int MAX = 10;
static Logger Log = Logger.getLogger(TestLog4j.class);
public static void main(String[] args) {
int i = 0;
Log.error("错误的高大上的输出:" + (i++));
Log.info("信息的高大上的输出:" + (i++));
Log.debug("Debug的高大上的输出。" + (i++));
Log.info("信息的高大上的输出:" + (i++));
}
}

  

Java编程杂记的更多相关文章

  1. Java编程思想学习杂记(1-4章)

    程序流程控制 移位运算符 移位运算符面向的运算对象是二进制的位,可单独用它们处理整数类型.左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)." ...

  2. JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)

    switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...

  3. 《Java编程思想》学习笔记(二)——类加载及执行顺序

    <Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ...

  4. #Java编程思想笔记(一)——static

    Java编程思想笔记(一)--static 看<Java编程思想>已经有一段时间了,一直以来都把笔记做在印象笔记上,今天开始写博客来记录. 第一篇笔记来写static关键字. static ...

  5. [Java编程思想-学习笔记]第3章 操作符

    3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...

  6. Java编程思想重点笔记(Java开发必看)

    Java编程思想重点笔记(Java开发必看)   Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...

  7. JAVA编程讲座-吴老

    JAVA系列公开课第4讲:多态系列课程:从JAVA编程零基础讲起,同时结合工作中遇到的具体实例,语言清晰易懂,连续10周+深入讲解,打下编程基础,让我们一起打来自动化测试的大门时间:4月25日(周一) ...

  8. 《java编程思想》读书笔记(一)开篇&第五章(1)

    2017 ---新篇章  今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...

  9. Google Java编程风格指南

    出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...

随机推荐

  1. Java基础知识强化之IO流笔记31:转换流出现的原因和格式

    1. 由于字节流操作中文不是特别方便,所以Java就提供了转换流.  字符流 = 字节流 + 编码表 2. 编码表 由字符及其对应数值组成的一张表 常见的编码表: • ASCII/Unicode字符集 ...

  2. jQuery Validate 插件

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  3. JS如何封装一些列方法为一个对象的操作,然后集中管理这些操作,方便修改和调用

    var Api = { ajax:{ // 添加项目 旧! add_project : function(pro_name, html, css, js,callback) { $.post(&quo ...

  4. PHP+jQuery+Ajax实现用户登录与退…

    用户登录与退出功能应用在很多地方,而在有些项目中,我们需要使用Ajax方式进行登录,登录成功后只刷新页面局部,从而提升了用户体验度.本文将使用PHP和jQuery来实现登录和退出功能. 查看演示DEM ...

  5. css中判断IE版本的语句

    css中判断IE版本的语句<!--[if gte IE 6]> Only IE 6/+ <![endif]-->: 1. <!--[if !IE]> 除IE外都可识 ...

  6. python查看网站的RTT

    import requests time=0.0 jpserver=['jp1.herejump.com','jp1.herejump.com','jp1.herejump.com'] usserve ...

  7. Oracle数据库学习 视图、序列及存储过程

    视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查 ...

  8. Python:列表

    #!/usr/bin/python3 #列表 是可变的,可修改的 listDemo = ["one","two","three"," ...

  9. linux创建守护进程

    守护进程deamon 是一个后台进程,无需用户输入就能运行,用来在系统后台提供某种服务. 常见的守护进程有Wbe服务器.邮件服务器以及数据库服务器等等.守护进程不能控制终端,所以任何的输入和输出都需要 ...

  10. 朋友的礼物(英雄会,csdn,高校俱乐部)信封问题,匹配模型

    前言: 首先这是一题解,但是重点最代码之后,有耐心的可以直接从代码后看. 上题目:n个人,每个人都有一件礼物想送给他人,他们决定把礼物混在一起,然后每个人随机拿走一件,问恰好有m个人拿到的礼物恰好是自 ...