上一周跟着弯弯姐学习了IT行业计算机应用基础,了解了行业里的基本知识。还有思维导图,增长了见识,拓宽了思路。
这一周前两天跟着弯弯姐学习了office的基本用法(包括word,excel,ppt)。
后三天跟着张文老师学习了《java面向对象编程(上册)》的第一章初始java和第二章java基础语法。
总的来说,我还听得懂,因为开始有过预习和自学。然后在这个过程中发现一些难以理解的问题,记录如下:
1.首先是二进制的移位运算符,左移加倍(《左移后将最低一位设为0),无论输入值是正是负,结果都没有变化。右移减半(》右移后根据原来最高位是多少,就填上多少)。
无符号右移怎么弄则没有听懂。(好像是无符号右移指的是不论为正为负,都将做高位定为0)
2.java的数据类型,目前学的包括八种基本类型和三种引用类型。(java中的变量不是基本类型,就是引用类型)
八种基本类型:(整型里的byte、short、int、long)(浮点型里的float和double)(字符型char)(布尔类型的boolean) 基本类型的特点是 名字和取值都在栈内存里。
三种引用类型:(类class)(接口interface)(数组arr) 引用类型的特点是 名字(地址引用指向)在栈内存,取值在堆内存。(string类型不是八大基本类型之一,他是javase中常用的类)
关于八种基本类型的相互转换一部分,没太听明白。
JVM(java虚拟机)中默认的数值类型:整型是int,浮点型是double。如果要使用其他类型,需在数字后面加上类型简写。
ex:long a=9223372036854775807;(这是long类型的最大值) 但这样输入是要报错的,因为JVM会把这个整数当做int类型。而int类型不能存入这么大的值,所以应该是long a=9223372036854775807L;注明他是long类型的。
ex:short c=(Math.pow(2,15)-1)s;这是错误的 有运算的则应该在前面强制转换 c=(short)(Math.pow(2,15)-1) 但是强制转换不能超过一定值 否则数值出现错误 ex:
long a,b;
int c;
a=21474830000000l;
b=647L;
c=(int)(a+b);
System.out.print(c);
输出数值-6479353
明显相差很远
运算规则:
char,在数学表达式运算中,会被自动提升至int型,ex:
char a=‘3‘;
char b=‘2‘;
char c=(a+b);
System.out.print(c);运行报错
正确:
char a=‘3‘;
char b=‘2‘;
char c=(char)(a+b);
System.out.print(c);运行输出e,未报错
short与byte同理,否则报错
另外三条:数学表达式运算中,其中有一个操作数是long,结果是long。
其中有一个操作数是float,结果是float。
其中有一个操作数是double,结果是double。
(这个规则指的是long 和 int,short,byte 整型互相之间的运算 char字符型之间的运算 浮点型float和double相互运算)
这三条看似冲突,实际不冲突,在位数更高的情况下,以高位数为准。byte <short< int< long< float <double
关于这一周的知识点总结,稍候空的时候我会总结出来补上。这周有事,就暂时不总结知识点了。
原文:http://www.cnblogs.com/zoujuns/p/5274247.html