最近忙着找工作,可是总是到最后面试完了就没信儿了。哎,你说找个如意的工作就这么难吗?自己感觉实力还是不错的,也有实际的开发经验啊。好多公司打电话第一句话就问,你可不可马上上班,晕,我还没毕业呢?大学生活还没过完。我总觉得大学的最后生活是在幸福中度过的,可是到现在,出了每天跑吉大招聘会之外,基本没别的干的。可能也累了吧,在做完那个派出所的系统后,感觉自己很久没有动手写过代码了,所以为了练练手,同时也为找个"好“工作加些筹码。从今天开始就开始看张老师讲得java基础提高了。
今天主要是听了JDK1.5的几个新特性,比如静态导入(import static ****)、增强for循环、自动装箱和拆箱-->中间又提到了享元模式。接着就是我以前很少接触的枚举了,在我学的时候根本就没把枚举当回事,因为我在开发的时候很少写自己的enum,大多是用JDK自己写好了的enum 。看了张老师的视频之后才认识到枚举真正的作用和用法,还巩固了一下inner class 。以及如何在定义带有一个抽象方法的枚举。
下面是今天听课时候自己记的笔记:
1:eclipse 日常用法
2:import static 静态导入与常规导入 import
3:可变参数 overload 和 override 的区别(面试经常考,我就经常遇到)
4:overload重载
override重写
5:增强for循环
for(type 变量:集合变量名){.....}
6:自动装箱和拆箱
装箱 把一个基本数据类型转换为一个引用类型 如 Integer i = 3
拆箱
7:基本数据的缓存
8:享元模式 有很多相似的数据,他们有很多的共同点(内部属性),然后,把它变成一个对象,然后把不同的属性作为方法的参数传入(外部属性)
9:枚举:枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。
枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。
10:采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类。
11:枚举的中定义的其他信息必须定义元素列表
12:枚举只有一个成员时,就可以作为一种单例的实现方式
13:class Class--->代表一类事物
Class cls1 = 字节码1 如 Class cls = String.class;
Person p1 = new Person();
Class cls2 = Person.class; // 或者 p1.getClass();
Class.forName("java.lang.String");//返回字节码 JVM中有\没有
9个预定义class 八个基本类型 + void
There are nine predefined Class objects to represent the eight primitive types and void.
下面是今天重点学习的一些代码
1 package com.anduo.day1;
2
3 public class EnumTest {
4
5 /**
6 * @param args
7 */
8 public static void main(String[] args) {
9 // int weekDay = 0;
10 // WeekDay day = WeekDay.Fri;
11 WeekDays day = WeekDays.SUN;
12 System.out.println(day.toString());
13 System.out.println(day.nextDay());
14
15 WeekDay day2 = WeekDay.FRI;
16
17 System.out.println(day2.name());
18
19 WeekDay[] days = WeekDay.values();
20 for (WeekDay weekDay : days) {
21 System.out.println(weekDay);
22 }
23
24 System.out.println("--------------------");
25
26 System.out.println(TrafficLamp.RED.nextLamp().time);
27
28 }
29
30 /**
31 * 枚举的一个对象就相当与一个对象
32 *
33 * @author anduo date:2011-11-7--下午03:01:58
34 */
35 public enum WeekDay {
36 /*
37 * SUN(1)调用的是带有参数的构造方法 SUN 调用的是无参构造方法
38 */
39 SUN(1), MON(2), TUE, WED, THI, FRI, SAT;
40 private WeekDay() {
41 System.out.println("first");
42 }
43
44 private WeekDay(int day) {
45 System.out.println("second");
46 }
47 }
48
49 /**
50 * 带有抽象方法的枚举
51 *
52 * @author anduo
53 *
54 * date:2011-11-7--下午05:38:22
55 */
56 public enum TrafficLamp {
57 RED(30) {
58 @Override
59 public TrafficLamp nextLamp() {
60 return GREEN;
61 }
62 },
63 GREEN(35) {
64 @Override
65 public TrafficLamp nextLamp() {
66 return YELLOW;
67 }
68 },
69 YELLOW(5) {
70 @Override
71 public TrafficLamp nextLamp() {
72 return RED;
73 }
74 };
75 public abstract TrafficLamp nextLamp();
76
77 private int time;
78
79 private TrafficLamp(int time) {
80 this.time = time;
81 }
82 }
83
84 }
85
张老师的课讲得确实好,不敢说自己的境界又提高了多少,但是我可以可定的是以前有写疑问的地方,现在明白了不少。比如:
1 package com.anduo.day1;
2
3 public class AutoBox {
4
5 /**
6 * @param args
7 */
8 public static void main(String[] args) {
9 Integer iObj = 3;// 装箱 以前的用法是 new Integer(3)
10
11 System.out.println(iObj + 13);
12
13 Integer i1 = 12;
14 Integer i2 = 12;
15 //在-128~127之间的时候将他们缓存起来 当在定义一个对象的时候到缓存池里来查找
16 //如果有就直接引用该对象
17 //而不在上边这个区间的时候就需要建立各自的对象
18 //设计模式是 享元模式
19
20 System.out.println(i1 == i2);
21
22
23 }
24
25 }
26
这个问题以前有寝室的问我,我也不知道怎么回答,找google老师,查了很久还是没有得到一个正确的解答,今天总算可以给人家一个满意的答案了。
其实我关注了老师的讲课,我发现如果加上一下发图的说明的过程会更加清晰地解决我们的有些问题。第二点,要掌握一种学习能力,做为一名程序员,企业看重的就是你的学习能力。因为软件这一行的更新速度是最快的,千万不能落后,所以我们做程序员的要天天学习,这样才可以跟着时代的步伐。当然,知识你是学不完了,只要有很强的学习能力,那么不管任何技术都是可以很快拿下的。