Corejava连载第三天
以后尽量以代码的形式展示,都讲一些语法的话我相信大家也不想看的,还不如举一些常见的例子,难懂的例子,深入去理解,让大家不感到烦,而且又能学好。可能有时候有些想法太主观了,大家有什么问题可以提出来,一起讨论讨论,我想这样子才能学得更好。
01 |
package
day03; |
02 |
public class BaseCalculate
{ |
03 |
public static
void main(String[] args)
{ |
04 |
//1.switch语句 |
05 |
switch ( "a" ){ |
06 |
case
"a" :
System.out.println( "a" );; |
07 |
} //jdk1.7以前
switch条件只能是整数(int,byte,char,short) 表达式 |
08 |
//jdk1.7
switch条件可以是字符串了,但是long类型的还是不行的 |
09 |
|
10 |
//2.++/--运算符 |
11 |
byte
a= 1 ; |
12 |
a++; |
13 |
//a=a+1; |
14 |
//为什么a++可以,但是a=a+1不可以呢? |
15 |
//a++在底层其实做了一个强制转换,而直接a=a+1, |
16 |
//在运算的时候a+1返回过来是int类型的,所以不能赋值给byte类型的a |
17 |
|
18 |
//3.% 取余 |
19 |
//0对其他数的余数是0 |
20 |
System.out.println( 0 % 4 ); //输出0 |
21 |
//负数的余数是负数 |
22 |
System.out.println(- 5 % 4 ); //输出-1,计算方法跟正数一样的 |
23 |
|
24 |
//4.&& || ==
! |
25 |
// 分别是与 、或、是否相等、非 |
26 |
//需要重点指出的是,初学者很容易把==
写成= |
27 |
//=是赋值,==是判断是否相等 |
28 |
|
29 |
//5.3元运算符 |
30 |
//(boolean值 或者 boolean
表达式)?0:1; |
31 |
// 如果括号里是true 那么就返回
0,如果为false返回1; |
32 |
//举个难点的 |
33 |
int
b= true ?( false ? 0 : 1 ): 2 ; |
34 |
//我这个还算简单的,难的
可以套n层,不过你只要找到他最后的那一层, |
35 |
//一个个往前推,不管多少层都没关系; |
36 |
|
37 |
|
38 |
//知识点先这么多,接下来举几个例子 |
39 |
int
i= 1 ; |
40 |
i=i++; //i为几呢? |
41 |
System.out.println(i); //1 |
42 |
//i=i++有3个步骤 |
43 |
//1 把i的值赋给i++这个表达式 |
44 |
//2 i=i+1; |
45 |
//3 把i++这个表达式的值赋给i |
46 |
//所以 i其实是 先变为2
然后又变为1的 |
47 |
boolean
c= false && false || false && true ; //第二个false还有最后一个true是执行不到的,从左到右 |
48 |
boolean
d= true || true && false || true ; //第二个true还有第一个false执行不到 |
49 |
System.out.println(c+ "
" +d); |
50 |
//以前一直以为&&优先级比||高,可能是因为学过c吧 |
51 |
//但是 现在来看 他们优先级是一样的 |
52 |
//事实胜于雄辩 |
53 |
//如果&&比||的优先级高 那么 boolean
d=true||true&&false||true;的第二个true还有第一个false就不会执行不到 |
54 |
//如果||比&&的优先级高 那么 boolean
c=false&&false||false&&true;的第二个false还有最后一个true就不会执行不到 |
55 |
} |
56 |
} |
Corejava连载第三天了,白天还要上课,中午要午睡,晚上10点左右回到寝室,然后开始写第二天的连载,很累,但是我会努力的,把每天的连载写的更好,现在连载的部分可能很简单,可能也没太多人关注,不过没关系,我会坚持的,相信连载到io,连载到socket编程那里的话,应该会有人关注的吧,加油,comeon
!
Corejava第四天
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 |
package
corejava04;<br> <br> import java.util.Arrays;<br> <br> public class Corejava04 {<br> public
static void main(String[] args) {<br> //数组<br> //声明<br> int [] ary1;<br> int
ary2[]; //不建议这么写<br> <br> //动态初始化<br> ary1= new
int [ 4 ];<br> //数组元素是自动初始化的,自动初始化为“零”值<br> //什么事“零”值呢?<br> // int : 0 float:0.0 char:\u0000 boolean:false Object:null<br> //零值 不是说就是0 而是所对应类型的零值<br> ary1= new
int []{ 1 , 2 , 3 }; //直接给元素初始化<br> //ary1=new int[3]{1,2,3}; 这里报错了,动态初始化的时候,不能在[]里面写数值<br> <br> //静态初始化<br> int [] ary3={ 1 , 2 , 3 }; //静态初始化只能在数组声明的时候同时初始化<br> //ary3={2,3,4}; 编译错误,因为只能在声明时初始化<br> //动态初始化就没这个限制了,你可以先声明 然后再初始化也是可以的,上面的例子已经证明了<br> <br> <br> //java关键字: if public class else while<br> //特殊关键字: goto const<br> //java中 true false null 不是关键字 是字面量<br> <br> //当你访问数组元素的时候要注意 不要越界了 <br> //越界了要发送运行时异常ArrayOutofBoundException<br> //这也是初学者很容易范的错误,但是解决起来也相对比较简单<br> //你可以输出你取得下标是几,还有你的数组长度是几,对比下,很快能找到解决方法的<br> <br> <br> //数组的复制和动态扩展<br> //数组对象的大小是固定的,数组对象是不能扩展的<br> //利用数组复制的方法实现数组扩展<br> int [] ary4= new
int []{ 1 , 2 , 3 , 4 };<br> int [] ary5= new
int [ 10 ];<br> System.arraycopy(ary4, 0 , ary5, 0 , 4
);<br> <br> //什么叫用数组复制的方法实现数组扩展呢<br> //比如 原来的ary4是不是满啦,我现在想再加个元素,肯定加不进去了,那么我要扩展他<br> //怎么扩展呢 先建个ary5 长度大一点 再把ary4的元素全部复制到ary5里面,这样就变相的实现了数组的扩展<br> <br> String[] ary6= new
String[]{ "1" , "2" };<br> String[] ary7= new
String[ 10 ];<br> System.arraycopy(ary6, 0 , ary7, 0 , 2
);<br> System.out.println(ary6[ 0 ]==ary7[ 0 ]); //true<br> <br> //这块 我想说明的是什么问题呢, 就是 浅层复制<br> //什么叫浅层复制呢 <br> //就是说 在ary6里的 第一个元素 和ary7的第一个元素其实是同一个元素<br> //因为对于对象来说 == 比较的是2个对象所在的地址,相等就代表是同一对象 <br> //其实 还有一种叫做深层复制,在以后讲io的时候 应该会讲到<br> //敬请期待哦 呵呵<br> <br> ary7=Arrays.copyOf(ary6, ary6.length* 2 );<br> //Arrays.copyOf()这个方法其实和System.arraycopy()这个方法差不多的,不过用起来更方便点<br> //所以建议大家都用这种方法<br> <br> <br> //二维数组<br> //int[][] ary8=new int[][1]; 编译出错<br> //int[][] ary8=new int[1][];//正确<br> //int[][] ary8=new int[1][1];//正确<br> //int[][] ary8=new int[][]{};//正确<br> //int[][] ary8=new int[][1]{};编译出错<br> //int[][] ary8=new int[1][]{};编译出错<br> //int[][] ary8=new int[1][1]{};编译出错<br> <br> <br> //这种东西不用记 多用几次 叫我记 我也记不了 |
【连载】corejava 第三天 Corejava第四天,布布扣,bubuko.com
原文:http://www.cnblogs.com/hebjtl/p/3648343.html