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.整型:
2.浮点型:不适合出现在禁止舍入误差的金融计算中.该用类库中的BigDecimal类
3.字符型: 尽量少用,除非要操作代码单元.可以直接赋值字符也可以赋值代码点范围内的整数,可以参与运算,可以看成整数.
4.布尔型:不能和整形相互转换.用于逻辑判断.
四.变量:包含三个概念(类型,名字,值) 可以理解变量是一个框子,框子的名称就是变量名,框子的大小和格式就类型,框子中装的就是值.
注意:java不区分变量的声明和定义.不像c/c++.
五.常量:不能改变其值.final表示只能被赋值一次,一旦赋值以后不能改变.
六.运算符:
1.算数运算符:+ - * / %
2.自增自减运算符: ++ ? -- 只能用于整型 浮点型 字符型变量
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是一样的结果.
n>>3:n除以2的三次方.n>>3:就n乘以2的三次方.
注:整数编码方式:整数的编码(原码 反码 补码)和在内存中的存储方式.
七.类型转换:
1.自动转换:

?
?
实线为安全的转换,虚线表示可能会有精度损失.自动的转换按如下的方式进行.如果有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};
注意:
?
?
?
?
?