写给java培训第二天的自己

经过第一天的融洽的学习,已经基本掌握老师讲课的节奏和方式,学习进度稳定,一天过的超级充实,喜欢这给感觉!加油!

下面总结一下今天所学的内容,哈哈

第一个知识点,什么是常量,它的分类是什么?常量就是在程序执行过程中其值不发生变化的量。分为字面值常量和自定义常量。

字面值常量主要分为字符串常量,整数常量,小数常量,字符常量和布尔常量等。

第二个知识点,是进制转换

虽说跟java这门语言关系不是特别大,但是作为一名有职业操守的计算机专业的学生,我还是必须得掌握一下的。下面来说一说的我的理解。计算机底层全是01代码也就是所谓的二进制,所以二进制比较常用一点,但是随着数据量的增大,二进制的位数越来越多,就产生了八进制,十六进制等等。二进制表示以0b开头,八进制以0开头,十六进制以0x开头,注意这里是零不是字母O。

第三个知识点:进制之间的转换

下面来总结一下十进制转换到二进制的方法:

一个口诀 除基取余,直到商为0,余数反转。

还学到一个快速转换进制的方法,也就是8421码,记住特殊位置,就可以快速推出,这个方法还是比较适合我的

二进制转换八进制,十六进制 :

可以这样记 八进制 8=2^3 即将二进制 拆开3位组成一组,转换为十进制按顺序拼起来就是答案;

十六进制  16=2^4 即将二进制 拆开4位构成一组,转换为十进制最后按照顺序拼起来。

为了更好的理解计算机底部是如何进行运算的,我们必须得了解一下三个码,即原码,反码,补码。(所有数据的运算都是采用补码进行的)

正数最好记,三码合一,即原码,反码,补码是一样的

原码:利用二进制表示。最高位是符号位(0是正,1是负),其余为为数值位;

反码:主要是负数反码是原码除了最高位,也就是符号位不变,其余为取反,即0变1,1变0;

补码:负数的补码是在反码基础上在末尾加1。

第四个知识点:变量

了解了什么是常量,接下来肯定是变量了。万事万物不可能都是静止的,都是变化的。

那么什么是变量呢,变量其实是内存中的一小块区域,仿照着常量,可以写出来就是在程序执行过程中,可以改变其值的量。但是改变的仅是值,类型是不可以改变的。

变量的定义格式为  : 数据类型 变量名 = 变量值

紧接着趁热打铁总结一下java中的常用数据类型:数据类型分基本数据类型,和引用数据类型,引用数据类型会在后面学了面向对象思想的时候总结。基本数据类型可以继续细分为数值型和字符型以及布尔类型。详细分类如下

整数型                                  字节数   /*8bit                        范围

byte                                          1                                 -128-127

short                                         2                                -2^15 ~  2^15 - 1
 int                                            4                                -2^31 ~  2^31 - 1
 long                                         8                                -2^63 ~  2^63 - 1

浮点型

float                                          4                                -3.403*10^38  ~ 3.403*10^38
double                                      8                                -1.798*10^308 ~ 1.798*10^308

布尔型   boolean                      1                                 -128-127

这里有两个注意点:第一个是整数默认都是int类型,浮点型默认是double类型,第二点是为如果是long类型给其赋值的时候后面需要加L作为区分,同理float类型需要加F。

概念点很多,但是总结出来,每天看一下,肯定很有帮助的。好了,我继续了。

什么是作用域?就拿代码来说很容易理解,即变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。大括号就是作用域的分界线。

下面就是比较容易出错以及面试比较容易出的知识点!

第五个知识点:数据类型转换之隐式转换

 boolean类型不能转换为其他的数据类型;byte,short,char逐级向上转换int-->long-->float-->double;byte,short,char类型之间不会进行转换,光说不练假把式,一道面试题

看下面的程序是否有问题,如果有问题,请指出并说明理由。

 byte b1 = 3;
 byte b2 = 4;
1) byte b3 = b1 + b2;
2) byte b4 = 3 + 4;       

 1)的程序会报错,因为byte类型参与转换会首先变为int类型所以byte类型是无法接受int类型的,而2)进行的是数值运算,这里有一个优化问题,java编译以后会自动判断你所计算的两个数的和是否超过byte所能存放的数据值这里没有超过,所以输出结果是7。

下面总结一下强制类型转换需要的注意点:

强制类型转换格式 :目标数据类型 变量名=(目标数据类型)(被转换的数据)

建议不要经常使用强制类型转换,因为这个可能会造成精度的丢失。

第六个知识点:字符和字符串参与运算

System.out.println("hello" + 'world' + 1);
System.out.println('java' + 2 + "hello");

两个输出语句 第一个打印出来的结果是helloworld1

第二个打印出来的结果是java2hello,这里面可以注意到+号没有被用作加法而是字符串之间的拼接,那么就可以总结一下加号的的用处:

1)如果加号的左右两边都为数值,那么 + 被用作加法符号 例如System.out.println(1 + 1);输出的结果是2

2)如果加号任意一边是字符串那么 + 被用作字符串连接符(数值拼一个字符串结果是一个新的字符串)

System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");

输出结果如下 

5+5=55 

10=5+5

第七个知识点:算术运算符的基本用法

+ , - , * , / , % , ++ , --  这些就是常见的算术运算符,加减乘除取余,这里需要特别注意一下++ --,它们也被叫做单目运算符,即操作数就一个比如 a++ ++a  a-- --a

++ 即变量自增1 对变量进行+1操作

== 即变量自减1 对变量进行-1操作

而这个还分两种情况 :

第一种情况 如果单独使用 那么 ++位于变量前后的结果一样 

第二种情况 如果参与复制运算 就要分两种情况

1)放在操作数的前面,先自增或者自减,然后再参与运算。
2)放在操作数的后面,先参与运算,再自增或者自减。

比较抽象,不如来一个活生生的例子:

请分别计算出a,b,c的值?
        int a = 10;
        int b = 10;
        int c = 10;

        a = b++; // a=10 b=11
        c = --a;//c=9 a=9
        b = ++a;//b=10 a=10
        a = c--;//a=9 c=8

最终结果

a=9 

b=10

c=8

你可能感兴趣的:(写给java培训第二天的自己)