工作后,会发现经常会重复一些ctrl+c ,ctrl+v 的工作,这样对我的水平并不会有太大的提高。因为所用到的都是一些公司长久积累下来的框架,所以内部的具体封装我并不了解。在经历了一段时间的读代码,以及框架的基础搭建后,我知道了,学习也许有捷径,但是基础还是很重要,否则浪费的时间远远大于学习的时间。
因此在这里,我打算从java基础重新复习,以走上架构师正确的前进道路,至少现在我这样认为。
一.数据类型
整型 : int 4字节 约-20亿到20亿
short 2字节 -32768-32767
long 8字节
byte . 1字节 -128-127
浮点型:float 4字节 有效数为6-7位
double 8字节 有效数位15位
字符型: char
布尔型: boolean
3个特殊的浮点型: Double.POSITIVE_INFINITY;Double.NEGITIVE_INFINITY;Double.NAN
分别为正无穷,负无穷,非数字。
一个判断是否是非数字的方法: Double.isNAN(x)
另外还要简单了解Unicode编码,详细的可查看https://en.wikipedia.org/wiki/UTF-16
另外强烈不建议代码中使用char类型,除非需要对UTF-16代码单元进行操作
java中 ,不同的操作系统,int字节不会发生改变,这点很重要,C与C++则会发生改变
二.变量
变量声明:
int i;
变量初始化:
i = 1;
变量声明后一定要初始化在使用。
java中子母和数字的范围要比其他语言更大,字母包括 ‘A’-‘Z’ ‘a’-‘z’, ‘_’,‘$’等
常量 final
public class Constants{
//final 常量只能被赋值一次,习惯上使用全大写,加上public static称作类常量,可在 一个类或几个类的多个方法使用。
public static final double CM_PER_INCH = 2.54;
}
三.运算符
最基本的当然是算数运算符 :用+ - * /来表示。
需要注意两点:整数除以0,会产生异常,浮点数除以0,会得到无穷大或NAN
通常将运算符放在赋值号的左边比如
x += 1;
严格的浮点计算strictfp,实际的计算方式取决于intel处理器。
public static strictfp main(String[] args)
自增自减运算符,有前缀后缀两种方式。
int m = 7;
int n = 7;
int a = 2 * ++m;//now a is 16 , m is 8
int b = 2 * n++;//now b is 14 , n is 8
因此,不要在其他表达式内部使用++运算,这样令人困惑,而且易出bug。
关系运算符与boolean运算符 (&& == != ||)
其中如果用 && 对表达式进行计算
expression1 && expression2
如果第一个操作出错,就不需要进行第二个操作了。
java很重要的三元操作符:
a ? m : n;//如果a,则m , 否则 n.
&& 与 & 的区别 &&会在第一个操作数计算得到false后,直接得到false , 而 & 在得到计算结果前,一定要计算两个操作数的值。
位运算符(& | ~ ^分别对应 与 或 非 异或)
等待补充ing。。。