首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java读书笔记一(基本类型和运算符)

2012-09-19 
java读书笔记1(基本类型和运算符)java读书笔记1(基本类型和运算符)一.程序启动:1.java虚拟机默认是以指定

java读书笔记1(基本类型和运算符)

java读书笔记1(基本类型和运算符)

一.程序启动:

1.java虚拟机默认是以指定类的main方法开始执行(eg:执行命令,java MyApp,这是虚拟机就从MyApp类的main方法开始执行).

2.main方法的规范:public static void main(string[] args){};(为什么必须是这样呢????)

二.java中的注释:多行注释不能嵌套的.

1.单行:

//我是注释

2.多行:

/*

?我是注释.

? 我还是注释.

?*/

3.能够被javadoc识别生成文档的注释(里面还可以包含一些标记):

/**

?我最牛逼.

?你行吗.

?*/

三. ?基本数据类型:没有无符号的,各种系统上都是一样的大小和范围.

1.整型:


byte: ?1个字节 ?-128~127 ? (用于特定的场合,文件流和节约空间大小)short: ?2个字节 ?-32768~32767 ??(用于特定的场合,文件流和节约空间大小)int: ? ? ?4个字节 ?-2147483648~2147483647(20多亿) (直接常量的默认值,最常用的 如:45 其类型就int)long: ? ?8个字节 非常大 ?(直接常量加L后缀就是用这个long类型存储)


2.浮点型:不适合出现在禁止舍入误差的金融计算中.该用类库中的BigDecimal类


float: ?4个字节 ?有效位6~7位.?1.4E-45~3.4028235E38 (直接常量 后缀f用这种类型存储)double: 8个字节 有效位15位. ?4.9E-324~1.7976931348623157E308(直接常量的默认存储类型)


3.字符型: 尽量少用,除非要操作代码单元.可以直接赋值字符也可以赋值代码点范围内的整数,可以参与运算,可以看成整数.


? char:2个字节.用UTF-16编码描述一个代码单元.(复杂) 表示的代码点的范围:0~65535 ?可以无损转换为int常见的转义字符:
    \\: 反斜杠": 双引号\': 单引号\n:换行\r:回车

4.布尔型:不能和整形相互转换.用于逻辑判断.


boolean: 1个字节 false和true?

四.变量:包含三个概念(类型,名字,值) 可以理解变量是一个框子,框子的名称就是变量名,框子的大小和格式就类型,框子中装的就是值.


类型:决定变量需要占的内存大小.(eg:int类型: 4个字节空间,引用类型: 存放堆地址的大小空间)名字:分配的内存的首地址(不知道这样理解对不对)值:内存中实际存储的内容.



    1.变量名:大小写敏感,以字母 $ _开头,后面可是数字 字母 $ _的组合.不能是java中关键字.2.变量的声明:int i;3.变量的初始化:i=3;4.一步到位:int i=3;


注意:java不区分变量的声明和定义.不像c/c++.


五.常量:不能改变其值.final表示只能被赋值一次,一旦赋值以后不能改变.


    直接常量:3,"susu",3.45,'a';(呵呵呵,这个是如何也改变不了的)对象常量:final int FLAG=3;final String NAME="rock";(每个对象有一个)类常量:static final int FLAG=3;(只有一个)


六.运算符:


1.算数运算符:+ - * / %


当/用于两个整数时表示整数的除法,否则表示浮点数除法.整数除0得到异常.浮点数除0得到无穷大或者NAN赋值运算符和算数运算符结合使用:+= -+ /= %= eg:i+=3;表示i=i+3;


2.自增自减运算符: ++ ? -- 只能用于整型 浮点型 字符型变量


n++,n--:执行完后将变量值加/减1++n,--n:执行之前将变量值加/减1


3.关系运算符:< > == != <= >= ;运算的结果是true或者false.


4.逻辑运算符:&& || !;二元运算符,参与运算的是boolean类型.其结果也是boolean类型.


按照短路的方式运算.


5.三元运算符: boolean类型的表达式或者变量或者直接常量 ? true是执行的语句 : false是执行的语句;


6.位运算符: 对一个整数或者字符的位进行操作(运用屏蔽技术,以后研究).对于byte short char类型先提升为int再一位

? ? ? ? ? ? ? ? 所以对于byte short char int的移位运算,右边的移位位数先要和32取模,long类型的移位右边的位数要

? ? ? ? ? ? ? ? 先和64取模.所以int i=4;i<<1和i<<33是一样的结果.


不按短路的方式 ?&:与位运算 全1为1|:全0为0^:相同为1~:0则1,1则0有点小复杂,以后研究.<<:左移,>>:右移,>>>:


n>>3:n除以2的三次方.n>>3:就n乘以2的三次方.

注:整数编码方式:整数的编码(原码 反码 补码)和在内存中的存储方式.


七.类型转换:

1.自动转换:



java读书笔记一(基本类型和运算符)
?

?

实线为安全的转换,虚线表示可能会有精度损失.自动的转换按如下的方式进行.如果有double类型,有则转换为double类型.否则判断是否有float类型,有则转换为float类型否则判断是否有long类型,有则转换为long否则转换成int类型.

?

2.强制类型转换(可能不安全)

如:int i=1234;

? ? byte j=(byte)i;

?

但把浮点数强制转换为整数时会截断小数点后面的部分.如果相对浮点数进行舍入运算得到接近的整数可以用:int i=(int)Math.round(2.35);

?


八.数组:用来存储同一类型的集合.一旦创建了数组的大小就不能改变.

1.声明和定义:int[] a=new int[10];生命整形数组变量a,并且分配了10个int的存储空间.

2.初始化:

? ? ? ?先定义在初始化.

?

for(int i=0;i<a.length;i++){a[i]=i+1;}

?

? ? 定义和初始化一起:int[] a={2,4,5,6,7};

注意:

?

    匿名数组: new int[]{3,4,5,6};数组操作相关的工具类:Arraysjava中二维数组实际上是数组中存放的数组

?

?

?


















?

热点排行