java毕向东学习笔记——day02~day05

day02

 
   
//1.数据类型转换
short a = 5;
a = a+2;
/*
* 这个就会出现编译错误,因为short类型的a变量是2个字节,在执行a+2时,a自动
* 升级为4个字节的整型,无法再赋值给2个字节的short类型变量。
* /
a = (short)(a+2); //这样才是合理的,即为强制类型转换
a += 2; //这个是直接左右相加赋值给左边,是合理的。
//2.逻辑运算符
// & | 运算时两边都要运算
// && || 运算时左边能出结果就不用算右边(短路)
// ^ 异或运算符
//3.位运算符
/*
* >>代表右移,比如x>>y,代表x除以2的y次方
* <<代表左移,----x<
* >>>代表无符号右移
* 因为正常右移动时在最高位补位由当前最高位决定,负数最高位就是1
* 若使用>>> 无论正负数,最高位补0
* & | ^ 作为位运算符时,代表两边对应位的数字作对应运算
* 如何不引入第三个变量让两个变量的值互换?
* m =1, n = 2;
* m = m+n; or m = m^n;
* n = m-n; n = m^n;
* m = m-n; m = m^n;
*/
//4.switch语句
/*
* switch(x)中的x只能是byte.short.int.char类型
* switch语句中case和default可以调换
*/

day03

 
    
/*
* 1 . 循环 for while 的区别
* for 中定义的循环增量,在 for 循环结束后就从内存中释放,因此若仅仅需要一
* 个变量来控制循环次数,用 for while 更好,可以节约内存空间。
*
* 2 . for 语句的拓展
* for ( int x = 0 , y = 0 ; x < 10 ; x ++, y ++)
*
* 3 . 无限循环
* for (;;){} or while ( true ){}
*
* 4 . 循环可以命名,如
* w: for (;;){}
* break w ; continue w ;
*
* 5 . 方法重载时,代码间可以复用。
*
* 6 . 数组在内存中的存储机制
* int [] a = new int [ 3 ];
* 其中数组变量 a (引用数据类型)存储的是 int [ 0 ] 的地址值,比如 0x078
* a 变量存储在栈中
* new int [ 3 ] 则是在堆中开辟了连续的 3 个地址值。
*
* a . 数组变量 a 是存储在栈中,与其他全局变量和局部变量没有区别;
* b . 数组中的值若为 int 类型自动赋值为 0 ,为 boolean 则自动赋值为 false ;
* c . 之所以叫引用数据类型,就是由 a 引用或者说指向了堆中数组实体的首地址 ;
* d . 如果 a = null , 则视为堆中的 int [ 0 ] int [ 2 ] 无指向,被 java 虚拟机视为垃圾,
* 一段时间后会启动垃圾回收机制自动回收堆中的内存。
* /

day04

 
     
/* 1 . 获取数组长度
* arr . length
*
* 2 . 对输出进行倒置
* for ( i = 0 ; i < string . length ; i ++){
* Stringbuffer sb = new Stringbuffer ();
* sb . append ( "要倒置的字符串中的字符装入容器" );
* System . out . println ( sb . reverse ());
* }
* /

day05

/*
1.构造代码块与构造方法的区别:
构造代码块优先于构造方法执行;
构造代码块作用于所有对象,而构造方法只作用于对应对象;
2.this的用法:
用于成员变量与局部变量重名的情况;
用于构造方法间的相互调用;
*/

你可能感兴趣的:(java基础)