码迷,mamicode.com
首页 > 编程语言 > 详细

《Thinking in Java》学习笔记(一)

时间:2015-03-16 00:57:30      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

  服务器端的编程可以参考另一本书《企业Java编程》(Thinking in Enterprise Java)。

 1.基本类型

 

基本型别 大小 最小值 最大值  默认值
boolean ----- ----- ------  false
char 16-bit Unicode 0 Unicode 2^16-1   \u0000(null)
byte 8-bit -128 +127  0
short 16-bit -2^15 +2^15-1  0
int 32-bit -2^31 +2^31-1  0
long 64-bit -2^63 +2^63-1  0L
float 32-bit IEEE754 IEEE754  0.0f
double 64-bit IEEE754 IEEE754  0.0d

 

 

 

 

 

 

 

  数值类型的都有正负之分。

  boolean类型所占的空间没有明确的制定。

 

   1.java的数值是有符号的,不要忘了还要考虑负数

        判断一个数是不是奇数,

        if( i % 2 == 1){

            ...

        }

        如果i是负数,i%2 的结果将是-1.应该是写成:

       if( i%2 ! =0){

     ...

       }

     2.如果使用小数,默认的将是double类型,要使用float类型,应该显示的指明小数的类型

        float f = 1.24f;

 

     3.小数都可能会有精度的丢失,使用float和double做小数计算时可能都会碰到这样的问题,如果就是需要精确地计算,可以考虑使用BigDicemal,整型对应的是BigInteger。这里要用的是new BigDicemal(String)而不能用new BigDicemal(double),否则在构造BigDicemal之前就已经丢失了精度,这是需要注意的。

        System.out.println(2.0f - 1.1f);

        System.out.println(2.0d - 1.1d);

  2.封装类型

   包装类型包括:Integer 、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger、BigDecmail

   其中BigInteger、BigDecimal没有相对应的基本类型,主要应用于高精度的运算,BigInteger 支持任意精度的整数,BigDecimal支持任意精度带小数点的运算。

   使用BigInteger、BigDecimal不会产生精度丢失的问题,而是用longfloat时都需要考虑精度丢失的问题。可能不是很大的数值的计算都会有精度丢失的问题。

 

   为什么有了基本类型还需要包装类型?很多时候方法的参数是一个对象而非基本类型,例如ArrayList的add方法的参数就是对象。

 

   3.缓存

         缓存是一种典型的空间交换时间的方案,数据库频繁读取时需要考虑缓存,最基本的思路就是Map。

    使用缓存需要考虑的问题:

    1.数据需要缓存多久

    2.缓存数据很真实数据的一致性,当真实数据更新或删除时

    3.缓存的并发控制,增删改查在多线程的环境下需要考虑

 

    java.lang包默认会导入到每个Java文件中,所以lang包下的类默认都可以直接使用。

    rt.jar包也会自动加载,jre/lib下的jar包也会自动加载。

 

   

《Thinking in Java》学习笔记(一)

标签:

原文地址:http://www.cnblogs.com/lnlvinso/p/4340801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!